@trii/types 2.10.764 → 2.10.766

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/dist/Automations/Events/Event.d.ts +3 -3
  2. package/dist/Common/Messages/Message.d.ts +1 -0
  3. package/dist/Common/index.js +7 -17
  4. package/dist/Contacts/CommunicationEndpoint.d.ts +8 -8
  5. package/dist/Conversations/Classifications/ConversationClassificationEvents.d.ts +2 -2
  6. package/dist/Conversations/Conversation.d.ts +11 -11
  7. package/dist/Conversations/InboxMongo.d.ts +12 -12
  8. package/dist/Conversations/InboxQueries.d.ts +73 -3
  9. package/dist/Conversations/Routing.d.ts +10 -10
  10. package/dist/Conversations/index.js +7 -17
  11. package/dist/Events/DomainEventTypes.d.ts +23 -23
  12. package/dist/Spaces/spaces.d.ts +2 -2
  13. package/dist/Tickets/Automation.d.ts +2 -0
  14. package/dist/Tickets/Automation.js +2 -0
  15. package/dist/Tickets/Routing.d.ts +9 -0
  16. package/dist/Tickets/Workflow.d.ts +3 -1
  17. package/dist/Tickets/Workflow.js +2 -0
  18. package/dist/index.js +7 -17
  19. package/dist/src/Automations/Capabilities/Capability.d.ts +81 -0
  20. package/dist/src/Automations/Capabilities/Capability.js +23 -0
  21. package/dist/src/Automations/Capabilities/index.d.ts +1 -0
  22. package/dist/src/Automations/Capabilities/index.js +17 -0
  23. package/dist/src/Automations/Common.d.ts +94 -0
  24. package/dist/src/Automations/Common.js +40 -0
  25. package/dist/src/Automations/Events/Event.d.ts +69 -0
  26. package/dist/src/Automations/Events/Event.js +14 -0
  27. package/dist/src/Automations/Events/index.d.ts +1 -0
  28. package/dist/src/Automations/Events/index.js +17 -0
  29. package/dist/src/Automations/Executions/Execution.d.ts +254 -0
  30. package/dist/src/Automations/Executions/Execution.js +62 -0
  31. package/dist/src/Automations/Executions/Testing.d.ts +166 -0
  32. package/dist/src/Automations/Executions/Testing.js +54 -0
  33. package/dist/src/Automations/Executions/index.d.ts +2 -0
  34. package/dist/src/Automations/Executions/index.js +18 -0
  35. package/dist/src/Automations/Flows/Canvas.d.ts +103 -0
  36. package/dist/src/Automations/Flows/Canvas.js +38 -0
  37. package/dist/src/Automations/Flows/Flow.d.ts +147 -0
  38. package/dist/src/Automations/Flows/Flow.js +58 -0
  39. package/dist/src/Automations/Flows/Requests.d.ts +71 -0
  40. package/dist/src/Automations/Flows/Validation.d.ts +28 -0
  41. package/dist/src/Automations/Flows/Validation.js +9 -0
  42. package/dist/src/Automations/Flows/index.d.ts +4 -0
  43. package/dist/src/Automations/Flows/index.js +20 -0
  44. package/dist/src/Automations/Nodes/Node.d.ts +113 -0
  45. package/dist/src/Automations/Nodes/Node.js +27 -0
  46. package/dist/src/Automations/Nodes/index.d.ts +1 -0
  47. package/dist/src/Automations/Nodes/index.js +17 -0
  48. package/dist/src/Automations/index.d.ts +6 -0
  49. package/dist/src/Automations/index.js +22 -0
  50. package/dist/src/Chats/Chat.d.ts +61 -0
  51. package/dist/src/Chats/Chat.js +28 -0
  52. package/dist/src/Common/Channels/Channel.d.ts +28 -1
  53. package/dist/src/Contacts/contacts.d.ts +2 -2
  54. package/dist/src/Conversations/Assignment.d.ts +81 -0
  55. package/dist/src/Conversations/Assignment.js +4 -0
  56. package/dist/src/Conversations/Conversation.d.ts +331 -48
  57. package/dist/src/Conversations/Conversation.js +14 -34
  58. package/dist/src/Conversations/DashBoard/dashboard.d.ts +2 -2
  59. package/dist/src/Conversations/Flows/Workflows/Workflow.d.ts +280 -123
  60. package/dist/src/Conversations/Flows/Workflows/Workflow.js +85 -35
  61. package/dist/src/Conversations/Groups/Group.d.ts +2 -8
  62. package/dist/src/Conversations/Groups/Group.js +0 -6
  63. package/dist/src/Conversations/InboxMongo.d.ts +154 -0
  64. package/dist/src/Conversations/InboxMongo.js +128 -0
  65. package/dist/src/Conversations/InboxProjection.d.ts +162 -0
  66. package/dist/src/Conversations/InboxProjection.js +2 -0
  67. package/dist/src/Conversations/Label.d.ts +1 -1
  68. package/dist/src/Conversations/Outbox.d.ts +24 -0
  69. package/dist/src/Conversations/Outbox.js +4 -0
  70. package/dist/src/Conversations/Queue.d.ts +107 -0
  71. package/dist/src/Conversations/Queue.js +4 -0
  72. package/dist/src/Conversations/Routing.d.ts +164 -0
  73. package/dist/src/Conversations/Routing.js +2 -0
  74. package/dist/src/Conversations/Sla.d.ts +227 -0
  75. package/dist/src/Conversations/Sla.js +6 -0
  76. package/dist/src/Conversations/Transfer.d.ts +73 -0
  77. package/dist/src/Conversations/Transfer.js +2 -0
  78. package/dist/src/Conversations/WebHook.d.ts +1 -1
  79. package/dist/src/Conversations/index.d.ts +9 -1
  80. package/dist/src/Conversations/index.js +9 -1
  81. package/dist/src/Forms/API.d.ts +53 -0
  82. package/dist/src/Forms/API.js +2 -0
  83. package/dist/src/Forms/SubmittedForm.d.ts +56 -0
  84. package/dist/src/Forms/SubmittedForm.js +9 -0
  85. package/dist/src/Forms/index.d.ts +2 -0
  86. package/dist/src/Forms/index.js +18 -0
  87. package/dist/src/Presence/AgentPause.d.ts +24 -0
  88. package/dist/src/Presence/AgentPause.js +19 -0
  89. package/dist/src/Presence/QueueParticipation.d.ts +17 -0
  90. package/dist/src/Presence/QueueParticipation.js +2 -0
  91. package/dist/src/Presence/QueueRoutingState.d.ts +27 -0
  92. package/dist/src/Presence/QueueRoutingState.js +9 -0
  93. package/dist/src/Presence/index.d.ts +3 -0
  94. package/dist/src/Presence/index.js +19 -0
  95. package/dist/src/Tickets/Category.d.ts +18 -0
  96. package/dist/src/Tickets/Dashboard.d.ts +78 -0
  97. package/dist/src/Tickets/Dashboard.js +13 -1
  98. package/dist/src/Tickets/Fields.d.ts +1 -0
  99. package/dist/src/Tickets/Layouts.d.ts +3 -1
  100. package/dist/src/Tickets/Workflow.d.ts +20 -0
  101. package/dist/src/Users/UserTrii.d.ts +10 -0
  102. package/dist/src/Users/UserTrii.js +8 -1
  103. package/dist/src/index.d.ts +3 -0
  104. package/dist/src/index.js +4 -1
  105. package/package.json +5 -2
  106. package/dist/Conversations/DashBoard/dashboardForms.d.ts +0 -44
  107. package/dist/Conversations/DashBoard/dashboardForms.js +0 -24
  108. package/dist/Conversations/InboxCounters.d.ts +0 -18
  109. package/dist/src/Conversations/DashBoard/dashboardForms.d.ts +0 -44
  110. package/dist/src/Conversations/DashBoard/dashboardForms.js +0 -24
  111. /package/dist/{Conversations/InboxCounters.js → src/Automations/Flows/Requests.js} +0 -0
@@ -1,8 +1,8 @@
1
1
  import { AutomationCustomer, AutomationJsonObject, AutomationJsonSchema, AutomationResourceReference, AutomationSourceApplication } from '../Common';
2
2
  export declare const AUTOMATION_MESSAGE_SCHEMAS: {
3
- readonly DOMAIN_EVENT_V1: 'automations.domain-event/v1';
4
- readonly START_REQUEST_V1: 'automations.start-request/v1';
5
- readonly EXECUTION_WORK_ITEM_V1: 'automations.execution.work-item/v1';
3
+ readonly DOMAIN_EVENT_V1: "automations.domain-event/v1";
4
+ readonly START_REQUEST_V1: "automations.start-request/v1";
5
+ readonly EXECUTION_WORK_ITEM_V1: "automations.execution.work-item/v1";
6
6
  };
7
7
  export interface AutomationEventDefinition {
8
8
  eventType: string;
@@ -220,6 +220,7 @@ export interface EmailDocument {
220
220
  /**The url of the fie. */
221
221
  url: string;
222
222
  isInline: boolean;
223
+ contentId?: string;
223
224
  }
224
225
  export interface MessageSticker {
225
226
  /**The ID for the video. */
@@ -15,23 +15,13 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
35
25
  Object.defineProperty(exports, "__esModule", { value: true });
36
26
  exports.QueueEvent = exports.Schedules = exports.Notifications = exports.Messages = exports.Channels = exports.API = void 0;
37
27
  exports.API = __importStar(require("./API/index"));
@@ -9,22 +9,22 @@ export declare enum CommunicationEndpointKind {
9
9
  */
10
10
  export declare const providerIdentityNamespaces: {
11
11
  readonly meta: {
12
- readonly instagramUser: 'instagram_user';
13
- readonly messengerUser: 'messenger_user';
14
- readonly whatsappUser: 'whatsapp_user';
12
+ readonly instagramUser: "instagram_user";
13
+ readonly messengerUser: "messenger_user";
14
+ readonly whatsappUser: "whatsapp_user";
15
15
  };
16
16
  readonly telegram: {
17
- readonly user: 'user';
18
- readonly chat: 'chat';
17
+ readonly user: "user";
18
+ readonly chat: "chat";
19
19
  };
20
20
  readonly trii: {
21
- readonly webchatVisitor: 'webchat_visitor';
21
+ readonly webchatVisitor: "webchat_visitor";
22
22
  };
23
23
  readonly mercadolibre: {
24
- readonly buyer: 'buyer';
24
+ readonly buyer: "buyer";
25
25
  };
26
26
  readonly google: {
27
- readonly businessMessagesUser: 'business_messages_user';
27
+ readonly businessMessagesUser: "business_messages_user";
28
28
  };
29
29
  };
30
30
  export type KnownIdentityProvider = keyof typeof providerIdentityNamespaces;
@@ -1,7 +1,7 @@
1
1
  import type { ConversationClassificationEvaluationStatus } from './ConversationClassificationEvaluation';
2
2
  export declare const CONVERSATION_CLASSIFICATION_EVENT_TYPES: {
3
- readonly CONVERSATION_RESOLVED_FOR_EVALUATION: 'conversation.resolved-for-classification';
4
- readonly EVALUATION_FINISHED: 'conversation.classification-evaluation-finished';
3
+ readonly CONVERSATION_RESOLVED_FOR_EVALUATION: "conversation.resolved-for-classification";
4
+ readonly EVALUATION_FINISHED: "conversation.classification-evaluation-finished";
5
5
  };
6
6
  export declare const CONVERSATION_CLASSIFICATION_EVENT_SCHEMA_VERSION: 1;
7
7
  /**
@@ -11,6 +11,7 @@ import { IEnding } from "./Ending";
11
11
  import { ChatType } from "../Chats/Chat";
12
12
  import { TransferConversationCommand, TransferConversationResult } from "./Transfer";
13
13
  import { AcceptConversationAssignmentCommand, AcceptConversationAssignmentResult, DeclineConversationAssignmentCommand, DeclineConversationAssignmentResult, CancelConversationAssignmentCommand, CancelConversationAssignmentResult } from "./Assignment";
14
+ import { InboxPaginationSort, InboxSortDirection } from "./InboxQueries";
14
15
  export interface IConversation {
15
16
  id: string;
16
17
  spaceId: string;
@@ -258,35 +259,35 @@ export type ConversationAssignmentSnapshot = {
258
259
  offerExpiresAt?: never;
259
260
  assignedAt?: never;
260
261
  acceptedAt?: never;
261
- } | (QueuedConversationAssignmentBase & {
262
+ } | QueuedConversationAssignmentBase & {
262
263
  status: 'queued' | 'routing';
263
264
  owner: NoConversationOwner;
264
265
  offeredAt?: never;
265
266
  offerExpiresAt?: never;
266
267
  assignedAt?: never;
267
268
  acceptedAt?: never;
268
- }) | (QueuedConversationAssignmentBase & {
269
+ } | QueuedConversationAssignmentBase & {
269
270
  status: 'offered';
270
271
  owner: UserConversationOwner;
271
272
  offeredAt: Date;
272
273
  offerExpiresAt?: Date;
273
274
  assignedAt?: never;
274
275
  acceptedAt?: never;
275
- }) | (QueuedConversationAssignmentBase & {
276
+ } | QueuedConversationAssignmentBase & {
276
277
  status: 'assigned';
277
278
  owner: UserConversationOwner;
278
279
  offeredAt?: Date;
279
280
  offerExpiresAt?: Date;
280
281
  assignedAt: Date;
281
282
  acceptedAt?: never;
282
- }) | (QueuedConversationAssignmentBase & {
283
+ } | QueuedConversationAssignmentBase & {
283
284
  status: 'accepted';
284
285
  owner: UserConversationOwner;
285
286
  offeredAt?: Date;
286
287
  offerExpiresAt?: Date;
287
288
  assignedAt: Date;
288
289
  acceptedAt: Date;
289
- });
290
+ };
290
291
  export type ActorType = 'user' | 'contact' | 'bot' | 'flow' | 'system';
291
292
  export type ParticipantRole = 'owner' | 'collaborator' | 'follower' | 'mentioned' | 'supervisor' | 'bot' | 'flow' | 'historical';
292
293
  export type ConversationEventType = 'conversation_created' | 'queued' | 'assigned' | 'accepted' | 'transferred' | 'consult_requested' | 'collaborator_added' | 'participant_added' | 'participant_removed' | 'participation_abandoned' | 'follow_started' | 'follow_stopped' | 'message_sent' | 'message_received' | 'internal_note_added' | 'bot_started' | 'bot_finished' | 'flow_started' | 'flow_finished' | 'status_changed' | 'resolved' | 'reopened' | 'sla_warning' | 'sla_breached' | 'sla_started' | 'sla_paused' | 'sla_resumed' | 'sla_met' | 'sla_overridden';
@@ -320,15 +321,15 @@ interface ConversationSubscriptionBase {
320
321
  * A subscription is persistent product intent. Assignment or participation
321
322
  * visibility must not create it unless an explicit auto-follow policy applies.
322
323
  */
323
- export type ConversationSubscription = (ConversationSubscriptionBase & {
324
+ export type ConversationSubscription = ConversationSubscriptionBase & {
324
325
  status: 'following';
325
326
  followedAt: Date;
326
327
  unfollowedAt?: never;
327
- }) | (ConversationSubscriptionBase & {
328
+ } | ConversationSubscriptionBase & {
328
329
  status: 'unfollowed';
329
330
  followedAt: Date;
330
331
  unfollowedAt: Date;
331
- });
332
+ };
332
333
  export interface PutConversationSubscriptionRequest {
333
334
  expectedVersion?: number;
334
335
  notifications: ConversationSubscriptionNotifications;
@@ -387,9 +388,8 @@ export interface InboxFilterDto {
387
388
  to?: Date;
388
389
  };
389
390
  sort: {
390
- type: 'activity';
391
- } | {
392
- type: 'priority';
391
+ type: InboxPaginationSort;
392
+ direction?: InboxSortDirection;
393
393
  };
394
394
  }
395
395
  export interface InboxFacetOptionDto {
@@ -11,7 +11,7 @@ export declare const INBOX_PROCESSOR_RECEIPTS_COLLECTION = "inbox_processor_rece
11
11
  * InboxAudienceResolver receives as input.
12
12
  */
13
13
  export declare const CONVERSATION_SUBSCRIPTION_INDEXES: readonly [{
14
- readonly name: 'uq_subscription_user_conversation';
14
+ readonly name: "uq_subscription_user_conversation";
15
15
  readonly key: {
16
16
  readonly spaceId: 1;
17
17
  readonly userId: 1;
@@ -19,7 +19,7 @@ export declare const CONVERSATION_SUBSCRIPTION_INDEXES: readonly [{
19
19
  };
20
20
  readonly unique: true;
21
21
  }, {
22
- readonly name: 'ix_subscription_conversation_followers';
22
+ readonly name: "ix_subscription_conversation_followers";
23
23
  readonly key: {
24
24
  readonly spaceId: 1;
25
25
  readonly conversationId: 1;
@@ -35,7 +35,7 @@ export declare const CONVERSATION_SUBSCRIPTION_INDEXES: readonly [{
35
35
  * must not combine multiple array paths.
36
36
  */
37
37
  export declare const USER_INBOX_ITEM_INDEXES: readonly [{
38
- readonly name: 'uq_inbox_item_user_conversation';
38
+ readonly name: "uq_inbox_item_user_conversation";
39
39
  readonly key: {
40
40
  readonly spaceId: 1;
41
41
  readonly userId: 1;
@@ -43,7 +43,7 @@ export declare const USER_INBOX_ITEM_INDEXES: readonly [{
43
43
  };
44
44
  readonly unique: true;
45
45
  }, {
46
- readonly name: 'ix_inbox_view_activity';
46
+ readonly name: "ix_inbox_view_activity";
47
47
  readonly key: {
48
48
  readonly spaceId: 1;
49
49
  readonly userId: 1;
@@ -53,7 +53,7 @@ export declare const USER_INBOX_ITEM_INDEXES: readonly [{
53
53
  readonly id: -1;
54
54
  };
55
55
  }, {
56
- readonly name: 'ix_inbox_view_priority';
56
+ readonly name: "ix_inbox_view_priority";
57
57
  readonly key: {
58
58
  readonly spaceId: 1;
59
59
  readonly userId: 1;
@@ -64,7 +64,7 @@ export declare const USER_INBOX_ITEM_INDEXES: readonly [{
64
64
  readonly id: -1;
65
65
  };
66
66
  }, {
67
- readonly name: 'ix_inbox_view_status_activity';
67
+ readonly name: "ix_inbox_view_status_activity";
68
68
  readonly key: {
69
69
  readonly spaceId: 1;
70
70
  readonly userId: 1;
@@ -74,7 +74,7 @@ export declare const USER_INBOX_ITEM_INDEXES: readonly [{
74
74
  readonly id: -1;
75
75
  };
76
76
  }, {
77
- readonly name: 'ix_inbox_view_queue_activity';
77
+ readonly name: "ix_inbox_view_queue_activity";
78
78
  readonly key: {
79
79
  readonly spaceId: 1;
80
80
  readonly userId: 1;
@@ -91,7 +91,7 @@ export declare const USER_INBOX_ITEM_INDEXES: readonly [{
91
91
  * spaceId + userId prefix.
92
92
  */
93
93
  export declare const USER_INBOX_COUNTER_INDEXES: readonly [{
94
- readonly name: 'uq_inbox_counter_user_view';
94
+ readonly name: "uq_inbox_counter_user_view";
95
95
  readonly key: {
96
96
  readonly spaceId: 1;
97
97
  readonly userId: 1;
@@ -103,7 +103,7 @@ export declare const USER_INBOX_COUNTER_INDEXES: readonly [{
103
103
  * MongoDB indexes for durable processor idempotency receipts.
104
104
  */
105
105
  export declare const INBOX_PROCESSOR_RECEIPT_INDEXES: readonly [{
106
- readonly name: 'uq_inbox_processor_source_scope';
106
+ readonly name: "uq_inbox_processor_source_scope";
107
107
  readonly key: {
108
108
  readonly processor: 1;
109
109
  readonly sourceEventId: 1;
@@ -144,11 +144,11 @@ interface InboxPageQueryBase {
144
144
  viewId: InboxViewId;
145
145
  limit: number;
146
146
  }
147
- export type InboxPageQuery = (InboxPageQueryBase & {
147
+ export type InboxPageQuery = InboxPageQueryBase & {
148
148
  sort: 'activity';
149
149
  cursor?: InboxActivityCursor;
150
- }) | (InboxPageQueryBase & {
150
+ } | InboxPageQueryBase & {
151
151
  sort: 'priority';
152
152
  cursor?: InboxPriorityCursor;
153
- });
153
+ };
154
154
  export {};
@@ -1,23 +1,33 @@
1
- import type { ID, InboxViewId, InboxFilterDto } from './Conversation';
2
- export type InboxPaginationSort = 'activity' | 'priority';
1
+ import type { ID, InboxViewId, InboxFilterDto, IConversation, ConversationStatus, InteractionKind } from './Conversation';
2
+ export type InboxPaginationSort = 'activity' | 'priority' | 'created';
3
+ export type InboxSortDirection = 'asc' | 'desc';
3
4
  /** Cursor over current authorized conversations, after filtering.
4
5
  * Bind to tenant/user/view/filter/sort; live updates may move rows between pages.
5
6
  */
6
7
  export interface InboxActivityCursor {
7
8
  sort: 'activity';
9
+ direction?: InboxSortDirection;
8
10
  pinned: boolean;
9
11
  lastActivityAt: Date;
10
12
  conversationId: ID;
11
13
  }
12
14
  export interface InboxPriorityCursor {
13
15
  sort: 'priority';
16
+ direction?: InboxSortDirection;
14
17
  pinned: boolean;
15
18
  /** Explicit rank urgent > high > normal > low, not lexical order. */
16
19
  priority: 'low' | 'normal' | 'high' | 'urgent';
17
20
  lastActivityAt: Date;
18
21
  conversationId: ID;
19
22
  }
20
- export type InboxPaginationCursor = InboxActivityCursor | InboxPriorityCursor;
23
+ export interface InboxCreatedCursor {
24
+ sort: 'created';
25
+ direction?: InboxSortDirection;
26
+ pinned: boolean;
27
+ createdAt: Date;
28
+ conversationId: ID;
29
+ }
30
+ export type InboxPaginationCursor = InboxActivityCursor | InboxPriorityCursor | InboxCreatedCursor;
21
31
  export interface InboxPageQuery {
22
32
  /** Trusted server context, not client authorization claims. */
23
33
  spaceId: ID;
@@ -28,3 +38,63 @@ export interface InboxPageQuery {
28
38
  /** Must match filter.sort. */
29
39
  cursor?: InboxPaginationCursor | null;
30
40
  }
41
+ /** Complete authorized personal lists for local-first inbox navigation. */
42
+ export interface PersonalInboxSnapshot {
43
+ schemaVersion: 1;
44
+ generatedAt: string;
45
+ snapshotId: string;
46
+ views: PersonalInboxMembership;
47
+ items: PersonalInboxItem[];
48
+ }
49
+ export interface PersonalInboxMembership {
50
+ pending: ID[];
51
+ following: ID[];
52
+ }
53
+ export interface PersonalInboxItem {
54
+ id: ID;
55
+ version: number;
56
+ chatName: string;
57
+ contactName: string | null;
58
+ contactId: ID | null;
59
+ contactIsBusiness: boolean | null;
60
+ chatImage: string | null;
61
+ channelType: string;
62
+ channelName: string | null;
63
+ status: ConversationStatus;
64
+ priority: IConversation['priority'];
65
+ lastMessagePreview: string;
66
+ lastMessageId: ID | null;
67
+ wallRootCommentId: ID | null;
68
+ lastActivityAt: string;
69
+ createdAt: string;
70
+ pinned: boolean;
71
+ requiresAction: boolean;
72
+ unreadCount: number;
73
+ isUnread: boolean;
74
+ readState: IConversation['readState'];
75
+ slaStatus: IConversation['sla']['status'];
76
+ slaDeadlineAt: string | null;
77
+ queueId: ID | null;
78
+ ownerUserId: ID | null;
79
+ ownerName: string | null;
80
+ ownerAvatarUrl: string | null;
81
+ interactionKind: InteractionKind;
82
+ participants: {
83
+ id: ID;
84
+ name: string;
85
+ imageUrl: string | null;
86
+ }[];
87
+ labels: {
88
+ id: ID;
89
+ name: string | null;
90
+ color: string | null;
91
+ }[];
92
+ }
93
+ export interface ResolvePersonalInboxItemsRequest {
94
+ conversationIds: ID[];
95
+ }
96
+ export interface ResolvedPersonalInboxItems {
97
+ views: PersonalInboxMembership;
98
+ items: PersonalInboxItem[];
99
+ removedIds: ID[];
100
+ }
@@ -18,27 +18,27 @@ export interface PartyOwnerAssigneeResolver {
18
18
  mode: 'prefer' | 'required';
19
19
  }
20
20
  export type QueueOwnerAssigneeResolver = PartyOwnerAssigneeResolver;
21
- export type QueueRoutingPolicy = (QueueRoutingPolicyBase & {
21
+ export type QueueRoutingPolicy = QueueRoutingPolicyBase & {
22
22
  distributionMode: 'shared';
23
23
  strategy?: never;
24
24
  ownerResolver?: never;
25
- }) | (QueueRoutingPolicyBase & {
25
+ } | QueueRoutingPolicyBase & {
26
26
  distributionMode: 'manual_pull';
27
27
  strategy?: never;
28
28
  ownerResolver?: never;
29
- }) | (QueueRoutingPolicyBase & {
29
+ } | QueueRoutingPolicyBase & {
30
30
  distributionMode: 'exclusive';
31
31
  strategy: QueueRoutingStrategy;
32
- ownerResolver?: undefined | (PartyOwnerAssigneeResolver & {
32
+ ownerResolver?: undefined | PartyOwnerAssigneeResolver & {
33
33
  mode: 'prefer';
34
- });
35
- }) | (QueueRoutingPolicyBase & {
34
+ };
35
+ } | QueueRoutingPolicyBase & {
36
36
  distributionMode: 'exclusive';
37
37
  strategy?: never;
38
38
  ownerResolver: PartyOwnerAssigneeResolver & {
39
39
  mode: 'required';
40
40
  };
41
- });
41
+ };
42
42
  export type QueueRoutingConfig = QueueRoutingPolicy & {
43
43
  queueId: string;
44
44
  spaceId: string;
@@ -125,15 +125,15 @@ export type PartyOwnerAssigneeEvaluation = {
125
125
  }>;
126
126
  outcome: 'selected';
127
127
  nextStep?: never;
128
- } | (FailedPartyOwnerEvaluation & {
128
+ } | FailedPartyOwnerEvaluation & {
129
129
  type: 'party_owner';
130
130
  mode: 'prefer';
131
131
  nextStep: 'strategy';
132
- }) | (FailedPartyOwnerEvaluation & {
132
+ } | FailedPartyOwnerEvaluation & {
133
133
  type: 'party_owner';
134
134
  mode: 'required';
135
135
  nextStep: 'fallback';
136
- });
136
+ };
137
137
  export interface RoutingDecision {
138
138
  decisionId: string;
139
139
  spaceId: string;
@@ -15,23 +15,13 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
35
25
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
36
26
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
37
27
  };
@@ -9,39 +9,39 @@
9
9
  */
10
10
  export declare const DOMAIN_EVENT_TYPES: {
11
11
  readonly AUTOMATIONS: {
12
- readonly MANUAL: 'automations.manual';
13
- readonly SCHEDULE_TICK: 'automations.schedule.tick';
12
+ readonly MANUAL: "automations.manual";
13
+ readonly SCHEDULE_TICK: "automations.schedule.tick";
14
14
  };
15
15
  readonly CONTACTS: {
16
- readonly CONTACT_CREATED: 'contacts.contact.created';
17
- readonly BUSINESS_CREATED: 'contacts.business.created';
18
- readonly PROPERTY_CHANGED: 'contacts.property.changed';
19
- readonly TAG_ADDED: 'contacts.tag.added';
20
- readonly TAG_REMOVED: 'contacts.tag.removed';
21
- readonly PROPERTY_DATE_REACHED: 'contacts.property.date_reached';
16
+ readonly CONTACT_CREATED: "contacts.contact.created";
17
+ readonly BUSINESS_CREATED: "contacts.business.created";
18
+ readonly PROPERTY_CHANGED: "contacts.property.changed";
19
+ readonly TAG_ADDED: "contacts.tag.added";
20
+ readonly TAG_REMOVED: "contacts.tag.removed";
21
+ readonly PROPERTY_DATE_REACHED: "contacts.property.date_reached";
22
22
  };
23
23
  readonly CONVERSATIONS: {
24
- readonly CONVERSATION_CREATED: 'conversations.conversation.created';
25
- readonly CONVERSATION_CLOSED: 'conversations.conversation.closed';
26
- readonly MESSAGE_RECEIVED: 'conversations.message.received';
27
- readonly AGENT_INTERVENED: 'conversations.agent.intervened';
24
+ readonly CONVERSATION_CREATED: "conversations.conversation.created";
25
+ readonly CONVERSATION_CLOSED: "conversations.conversation.closed";
26
+ readonly MESSAGE_RECEIVED: "conversations.message.received";
27
+ readonly AGENT_INTERVENED: "conversations.agent.intervened";
28
28
  };
29
29
  readonly TICKETS: {
30
- readonly CREATED: 'tickets.created';
31
- readonly STATUS_CHANGED: 'tickets.status_changed';
32
- readonly PRIORITY_CHANGED: 'tickets.priority_changed';
33
- readonly ASSIGNED: 'tickets.assigned';
34
- readonly CUSTOMER_REPLIED: 'tickets.customer_replied';
35
- readonly SLA_WARNING: 'tickets.sla_warning';
36
- readonly SLA_BREACHED: 'tickets.sla_breached';
37
- readonly CLOSED: 'tickets.closed';
38
- readonly REOPENED: 'tickets.reopened';
30
+ readonly CREATED: "tickets.created";
31
+ readonly STATUS_CHANGED: "tickets.status_changed";
32
+ readonly PRIORITY_CHANGED: "tickets.priority_changed";
33
+ readonly ASSIGNED: "tickets.assigned";
34
+ readonly CUSTOMER_REPLIED: "tickets.customer_replied";
35
+ readonly SLA_WARNING: "tickets.sla_warning";
36
+ readonly SLA_BREACHED: "tickets.sla_breached";
37
+ readonly CLOSED: "tickets.closed";
38
+ readonly REOPENED: "tickets.reopened";
39
39
  };
40
40
  readonly FORMS: {
41
- readonly SUBMITTED: 'forms.submitted';
41
+ readonly SUBMITTED: "forms.submitted";
42
42
  };
43
43
  readonly INTEGRATIONS: {
44
- readonly WEBHOOK_RECEIVED: 'integrations.webhook.received';
44
+ readonly WEBHOOK_RECEIVED: "integrations.webhook.received";
45
45
  };
46
46
  };
47
47
  type Values<T> = T extends unknown ? T[keyof T] : never;
@@ -50,13 +50,13 @@ export declare const RegionInfo: {
50
50
  Value: number;
51
51
  DisplayName: string;
52
52
  RegionalDisplayName: string;
53
- } | null;
53
+ };
54
54
  getInfo_from_Value: (Value: number) => {
55
55
  Name: string;
56
56
  Value: number;
57
57
  DisplayName: string;
58
58
  RegionalDisplayName: string;
59
- } | null;
59
+ };
60
60
  };
61
61
  export interface ISpace {
62
62
  id: string;
@@ -25,6 +25,8 @@ export declare enum TicketAutomationTrigger {
25
25
  TICKET_RESOLVED = "TICKET_RESOLVED",
26
26
  /** The ticket entered a work queue or moved to another one. */
27
27
  TICKET_ENQUEUED = "TICKET_ENQUEUED",
28
+ /** A step of an escalation policy ran on the ticket. */
29
+ TICKET_ESCALATED = "TICKET_ESCALATED",
28
30
  SCHEDULED = "SCHEDULED",
29
31
  MANUAL = "MANUAL"
30
32
  }
@@ -27,6 +27,8 @@ var TicketAutomationTrigger;
27
27
  TicketAutomationTrigger["TICKET_RESOLVED"] = "TICKET_RESOLVED";
28
28
  /** The ticket entered a work queue or moved to another one. */
29
29
  TicketAutomationTrigger["TICKET_ENQUEUED"] = "TICKET_ENQUEUED";
30
+ /** A step of an escalation policy ran on the ticket. */
31
+ TicketAutomationTrigger["TICKET_ESCALATED"] = "TICKET_ESCALATED";
30
32
  TicketAutomationTrigger["SCHEDULED"] = "SCHEDULED";
31
33
  TicketAutomationTrigger["MANUAL"] = "MANUAL";
32
34
  })(TicketAutomationTrigger || (exports.TicketAutomationTrigger = TicketAutomationTrigger = {}));
@@ -147,6 +147,12 @@ export interface ITicketQueue extends ITicketAuditedEntity {
147
147
  strategy: TicketRoutingStrategy;
148
148
  ordering: ITicketQueueOrder[];
149
149
  skillRequirements?: ITicketSkillRequirement[];
150
+ /**
151
+ * How long a ticket may wait in this queue before `escalationPolicyId` starts:
152
+ * escalation starts at the ticket's enqueue time + this value (0 = as soon as it
153
+ * waits). Without it the queue never escalates. Pulling or assigning the ticket
154
+ * stops the clock; re-enqueueing restarts it. Wall-clock minutes (no calendar).
155
+ */
150
156
  maximumWaitMinutes?: number;
151
157
  escalationPolicyId?: string;
152
158
  }
@@ -175,8 +181,11 @@ export interface ITicketEscalationStep {
175
181
  id: string;
176
182
  order: number;
177
183
  trigger: TicketEscalationTrigger;
184
+ /** Minutes after the escalation started (see ITicketQueue.maximumWaitMinutes) until the first run. Default 0. */
178
185
  thresholdMinutes?: number;
186
+ /** Runs again every N minutes after the first one. Without it the step runs once. */
179
187
  repeatEveryMinutes?: number;
188
+ /** Cap on runs per stay in the queue (a re-enqueue starts a new stay). */
180
189
  maximumExecutions?: number;
181
190
  actions: ITicketEscalationAction[];
182
191
  }
@@ -94,7 +94,9 @@ export declare enum TicketActivityType {
94
94
  CHECKLIST_COMPLETED = "CHECKLIST_COMPLETED",
95
95
  TICKET_EVENT = "TICKET_EVENT",
96
96
  /** The ticket entered a work queue or moved to another one (`changes` carries `queueId`). */
97
- ENQUEUED = "ENQUEUED"
97
+ ENQUEUED = "ENQUEUED",
98
+ /** A step of an escalation policy ran on the ticket (`changes` carries what its actions changed). */
99
+ ESCALATED = "ESCALATED"
98
100
  }
99
101
  export interface ITicketFieldChange {
100
102
  fieldNameKey: string;
@@ -43,4 +43,6 @@ var TicketActivityType;
43
43
  TicketActivityType["TICKET_EVENT"] = "TICKET_EVENT";
44
44
  /** The ticket entered a work queue or moved to another one (`changes` carries `queueId`). */
45
45
  TicketActivityType["ENQUEUED"] = "ENQUEUED";
46
+ /** A step of an escalation policy ran on the ticket (`changes` carries what its actions changed). */
47
+ TicketActivityType["ESCALATED"] = "ESCALATED";
46
48
  })(TicketActivityType || (exports.TicketActivityType = TicketActivityType = {}));
package/dist/index.js CHANGED
@@ -15,23 +15,13 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
35
25
  Object.defineProperty(exports, "__esModule", { value: true });
36
26
  exports.Automations = exports.Forms = exports.APIResponses = exports.Shop = exports.AI = exports.APIKeys = exports.Events = exports.EventsQueue = exports.ApiResponses = exports.Presence = exports.Users = exports.Collections = exports.Sales = exports.Tickets = exports.Spaces = exports.Reports = exports.Security = exports.Calls = exports.Conversations = exports.Calendar = exports.Contacts = exports.Common = exports.AuditLogs = exports.Accounts = void 0;
37
27
  exports.Accounts = __importStar(require("./Accounts/index"));