@trii/types 2.10.656 → 2.10.658
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.
- package/dist/Collections/Api.d.ts +41 -0
- package/dist/Collections/Api.js +2 -0
- package/dist/Collections/Commission.d.ts +52 -0
- package/dist/Collections/Commission.js +10 -0
- package/dist/Collections/Common.d.ts +78 -0
- package/dist/Collections/Common.js +39 -0
- package/dist/Collections/Dashboard.d.ts +27 -0
- package/dist/Collections/Dashboard.js +2 -0
- package/dist/Collections/Debt.d.ts +97 -0
- package/dist/Collections/Debt.js +12 -0
- package/dist/Collections/Interest.d.ts +38 -0
- package/dist/Collections/Interest.js +25 -0
- package/dist/Collections/Payment.d.ts +87 -0
- package/dist/Collections/Payment.js +21 -0
- package/dist/Collections/PaymentPlan.d.ts +87 -0
- package/dist/Collections/PaymentPlan.js +21 -0
- package/dist/Collections/PaymentPlanConfiguration.d.ts +100 -0
- package/dist/Collections/PaymentPlanConfiguration.js +34 -0
- package/dist/Collections/Portfolio.d.ts +52 -0
- package/dist/Collections/Portfolio.js +12 -0
- package/dist/Collections/Promise.d.ts +49 -0
- package/dist/Collections/Promise.js +25 -0
- package/dist/Collections/index.d.ts +11 -0
- package/dist/Collections/index.js +27 -0
- package/dist/Common/Channels/Channel.d.ts +6 -1
- package/dist/Common/Channels/Channel.js +6 -1
- package/dist/Common/Channels/WhatsApp.d.ts +22 -0
- package/dist/Common/Channels/WhatsApp.js +7 -1
- package/dist/Common/Messages/Message.d.ts +9 -0
- package/dist/Common/Messages/Message.js +6 -1
- package/dist/Conversations/Conversation.d.ts +15 -0
- package/dist/Conversations/Conversation.js +8 -1
- package/dist/Reports/ScheduledReport.d.ts +146 -0
- package/dist/Reports/ScheduledReport.js +37 -1
- package/dist/Sales/Api.d.ts +40 -0
- package/dist/Sales/Api.js +2 -0
- package/dist/Sales/Common.d.ts +72 -0
- package/dist/Sales/Common.js +31 -0
- package/dist/Sales/Dashboard.d.ts +25 -0
- package/dist/Sales/Dashboard.js +2 -0
- package/dist/Sales/Lead.d.ts +99 -0
- package/dist/Sales/Lead.js +8 -0
- package/dist/Sales/index.d.ts +4 -0
- package/dist/Sales/index.js +20 -0
- package/dist/Spaces/spaces.d.ts +1 -0
- package/dist/Tickets/AI.d.ts +400 -0
- package/dist/Tickets/AI.js +113 -0
- package/dist/Tickets/AdvancedApi.d.ts +486 -0
- package/dist/Tickets/AdvancedApi.js +108 -0
- package/dist/Tickets/Api.d.ts +62 -0
- package/dist/Tickets/Api.js +8 -0
- package/dist/Tickets/Approval.d.ts +139 -0
- package/dist/Tickets/Approval.js +30 -0
- package/dist/Tickets/Automation.d.ts +237 -0
- package/dist/Tickets/Automation.js +74 -0
- package/dist/Tickets/Category.d.ts +25 -0
- package/dist/Tickets/Category.js +2 -0
- package/dist/Tickets/Common.d.ts +90 -0
- package/dist/Tickets/Common.js +38 -0
- package/dist/Tickets/Conversation.d.ts +68 -0
- package/dist/Tickets/Conversation.js +30 -0
- package/dist/Tickets/Dashboard.d.ts +408 -0
- package/dist/Tickets/Dashboard.js +206 -0
- package/dist/Tickets/Fields.d.ts +133 -0
- package/dist/Tickets/Fields.js +44 -0
- package/dist/Tickets/Layouts.d.ts +63 -0
- package/dist/Tickets/Layouts.js +22 -0
- package/dist/Tickets/Routing.d.ts +290 -0
- package/dist/Tickets/Routing.js +87 -0
- package/dist/Tickets/Satisfaction.d.ts +31 -0
- package/dist/Tickets/Satisfaction.js +9 -0
- package/dist/Tickets/Security.d.ts +302 -0
- package/dist/Tickets/Security.js +107 -0
- package/dist/Tickets/SelfService.d.ts +255 -0
- package/dist/Tickets/SelfService.js +56 -0
- package/dist/Tickets/Sla.d.ts +253 -0
- package/dist/Tickets/Sla.js +73 -0
- package/dist/Tickets/Task.d.ts +122 -0
- package/dist/Tickets/Task.js +17 -0
- package/dist/Tickets/Ticket.d.ts +133 -0
- package/dist/Tickets/Ticket.js +2 -0
- package/dist/Tickets/Views.d.ts +77 -0
- package/dist/Tickets/Views.js +23 -0
- package/dist/Tickets/Workflow.d.ts +109 -0
- package/dist/Tickets/Workflow.js +44 -0
- package/dist/Tickets/index.d.ts +20 -1
- package/dist/Tickets/index.js +20 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +3 -1
- package/package.json +1 -1
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { MessageDirection, MessageVisibility } from '../Common/Messages/Message';
|
|
2
|
+
import { ChannelType } from '../Common/Channels/ChannelType';
|
|
3
|
+
import { ITicketActivity } from './Workflow';
|
|
4
|
+
export declare enum TicketConversationRole {
|
|
5
|
+
PRIMARY = "PRIMARY",
|
|
6
|
+
CUSTOMER = "CUSTOMER",
|
|
7
|
+
INTERNAL_DISCUSSION = "INTERNAL_DISCUSSION",
|
|
8
|
+
EXTERNAL_COLLABORATION = "EXTERNAL_COLLABORATION"
|
|
9
|
+
}
|
|
10
|
+
export interface ITicketConversationReference {
|
|
11
|
+
id: string;
|
|
12
|
+
spaceId: string;
|
|
13
|
+
ticketId: string;
|
|
14
|
+
conversationId: string;
|
|
15
|
+
role: TicketConversationRole;
|
|
16
|
+
sourceMessageId?: string;
|
|
17
|
+
channelType?: ChannelType;
|
|
18
|
+
channelId?: string;
|
|
19
|
+
isPrimary: boolean;
|
|
20
|
+
linkedAt: Date;
|
|
21
|
+
linkedBy?: string;
|
|
22
|
+
unlinkedAt?: Date;
|
|
23
|
+
unlinkedBy?: string;
|
|
24
|
+
}
|
|
25
|
+
export declare enum TicketMessageActorType {
|
|
26
|
+
CONTACT = "CONTACT",
|
|
27
|
+
AGENT = "AGENT",
|
|
28
|
+
BOT = "BOT",
|
|
29
|
+
SYSTEM = "SYSTEM",
|
|
30
|
+
EXTERNAL_COLLABORATOR = "EXTERNAL_COLLABORATOR"
|
|
31
|
+
}
|
|
32
|
+
export declare enum TicketMessageEventType {
|
|
33
|
+
CREATED = "CREATED",
|
|
34
|
+
UPDATED = "UPDATED",
|
|
35
|
+
DELETED = "DELETED",
|
|
36
|
+
DELIVERY_STATUS_CHANGED = "DELIVERY_STATUS_CHANGED"
|
|
37
|
+
}
|
|
38
|
+
export interface ITicketMessageEvent {
|
|
39
|
+
eventId: string;
|
|
40
|
+
spaceId: string;
|
|
41
|
+
ticketId: string;
|
|
42
|
+
conversationId: string;
|
|
43
|
+
messageId: string;
|
|
44
|
+
occurredAt: Date;
|
|
45
|
+
direction: MessageDirection;
|
|
46
|
+
visibility: MessageVisibility;
|
|
47
|
+
actorType: TicketMessageActorType;
|
|
48
|
+
eventType: TicketMessageEventType;
|
|
49
|
+
}
|
|
50
|
+
export declare enum TicketTimelineEntryType {
|
|
51
|
+
ACTIVITY = "ACTIVITY",
|
|
52
|
+
MESSAGE = "MESSAGE"
|
|
53
|
+
}
|
|
54
|
+
export interface ITicketMessageReference {
|
|
55
|
+
conversationId: string;
|
|
56
|
+
messageId: string;
|
|
57
|
+
}
|
|
58
|
+
export type ITicketTimelineEntry = {
|
|
59
|
+
id: string;
|
|
60
|
+
type: TicketTimelineEntryType.ACTIVITY;
|
|
61
|
+
occurredAt: Date;
|
|
62
|
+
activity: ITicketActivity;
|
|
63
|
+
} | {
|
|
64
|
+
id: string;
|
|
65
|
+
type: TicketTimelineEntryType.MESSAGE;
|
|
66
|
+
occurredAt: Date;
|
|
67
|
+
messageReference: ITicketMessageReference;
|
|
68
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TicketTimelineEntryType = exports.TicketMessageEventType = exports.TicketMessageActorType = exports.TicketConversationRole = void 0;
|
|
4
|
+
var TicketConversationRole;
|
|
5
|
+
(function (TicketConversationRole) {
|
|
6
|
+
TicketConversationRole["PRIMARY"] = "PRIMARY";
|
|
7
|
+
TicketConversationRole["CUSTOMER"] = "CUSTOMER";
|
|
8
|
+
TicketConversationRole["INTERNAL_DISCUSSION"] = "INTERNAL_DISCUSSION";
|
|
9
|
+
TicketConversationRole["EXTERNAL_COLLABORATION"] = "EXTERNAL_COLLABORATION";
|
|
10
|
+
})(TicketConversationRole || (exports.TicketConversationRole = TicketConversationRole = {}));
|
|
11
|
+
var TicketMessageActorType;
|
|
12
|
+
(function (TicketMessageActorType) {
|
|
13
|
+
TicketMessageActorType["CONTACT"] = "CONTACT";
|
|
14
|
+
TicketMessageActorType["AGENT"] = "AGENT";
|
|
15
|
+
TicketMessageActorType["BOT"] = "BOT";
|
|
16
|
+
TicketMessageActorType["SYSTEM"] = "SYSTEM";
|
|
17
|
+
TicketMessageActorType["EXTERNAL_COLLABORATOR"] = "EXTERNAL_COLLABORATOR";
|
|
18
|
+
})(TicketMessageActorType || (exports.TicketMessageActorType = TicketMessageActorType = {}));
|
|
19
|
+
var TicketMessageEventType;
|
|
20
|
+
(function (TicketMessageEventType) {
|
|
21
|
+
TicketMessageEventType["CREATED"] = "CREATED";
|
|
22
|
+
TicketMessageEventType["UPDATED"] = "UPDATED";
|
|
23
|
+
TicketMessageEventType["DELETED"] = "DELETED";
|
|
24
|
+
TicketMessageEventType["DELIVERY_STATUS_CHANGED"] = "DELIVERY_STATUS_CHANGED";
|
|
25
|
+
})(TicketMessageEventType || (exports.TicketMessageEventType = TicketMessageEventType = {}));
|
|
26
|
+
var TicketTimelineEntryType;
|
|
27
|
+
(function (TicketTimelineEntryType) {
|
|
28
|
+
TicketTimelineEntryType["ACTIVITY"] = "ACTIVITY";
|
|
29
|
+
TicketTimelineEntryType["MESSAGE"] = "MESSAGE";
|
|
30
|
+
})(TicketTimelineEntryType || (exports.TicketTimelineEntryType = TicketTimelineEntryType = {}));
|
|
@@ -0,0 +1,408 @@
|
|
|
1
|
+
import { ChannelType } from "../Common/Channels/ChannelType";
|
|
2
|
+
import { ITicketDateRange, ITicketMetricGroup, ITicketMetricPoint, TicketPropertyValue } from "./Common";
|
|
3
|
+
import { ITicketFilter } from "./Api";
|
|
4
|
+
export declare enum TicketAnalyticsAudience {
|
|
5
|
+
AGENT = "AGENT",
|
|
6
|
+
SUPERVISOR = "SUPERVISOR",
|
|
7
|
+
ADMIN = "ADMIN",
|
|
8
|
+
CUSTOMER = "CUSTOMER"
|
|
9
|
+
}
|
|
10
|
+
export declare enum TicketDashboardVisibility {
|
|
11
|
+
PRIVATE = "PRIVATE",
|
|
12
|
+
SHARED = "SHARED",
|
|
13
|
+
ROLE = "ROLE",
|
|
14
|
+
GROUP = "GROUP"
|
|
15
|
+
}
|
|
16
|
+
export declare enum TicketWidgetType {
|
|
17
|
+
KPI = "KPI",
|
|
18
|
+
TREND = "TREND",
|
|
19
|
+
BAR = "BAR",
|
|
20
|
+
STACKED_BAR = "STACKED_BAR",
|
|
21
|
+
LINE = "LINE",
|
|
22
|
+
AREA = "AREA",
|
|
23
|
+
PIE = "PIE",
|
|
24
|
+
DONUT = "DONUT",
|
|
25
|
+
FUNNEL = "FUNNEL",
|
|
26
|
+
GAUGE = "GAUGE",
|
|
27
|
+
HEATMAP = "HEATMAP",
|
|
28
|
+
TABLE = "TABLE",
|
|
29
|
+
LEADERBOARD = "LEADERBOARD",
|
|
30
|
+
AGING_BUCKETS = "AGING_BUCKETS",
|
|
31
|
+
SLA_CLOCK = "SLA_CLOCK",
|
|
32
|
+
QUEUE = "QUEUE",
|
|
33
|
+
TEXT = "TEXT"
|
|
34
|
+
}
|
|
35
|
+
export declare enum TicketMetricAggregation {
|
|
36
|
+
COUNT = "COUNT",
|
|
37
|
+
SUM = "SUM",
|
|
38
|
+
AVERAGE = "AVERAGE",
|
|
39
|
+
MIN = "MIN",
|
|
40
|
+
MAX = "MAX",
|
|
41
|
+
MEDIAN = "MEDIAN",
|
|
42
|
+
PERCENTILE = "PERCENTILE",
|
|
43
|
+
RATE = "RATE",
|
|
44
|
+
RATIO = "RATIO",
|
|
45
|
+
DISTINCT_COUNT = "DISTINCT_COUNT"
|
|
46
|
+
}
|
|
47
|
+
export declare enum TicketAnalyticsDimension {
|
|
48
|
+
TIME = "TIME",
|
|
49
|
+
STATUS = "STATUS",
|
|
50
|
+
STAGE = "STAGE",
|
|
51
|
+
PRIORITY = "PRIORITY",
|
|
52
|
+
CATEGORY = "CATEGORY",
|
|
53
|
+
ASSIGNEE = "ASSIGNEE",
|
|
54
|
+
GROUP = "GROUP",
|
|
55
|
+
QUEUE = "QUEUE",
|
|
56
|
+
CHANNEL = "CHANNEL",
|
|
57
|
+
ORIGIN = "ORIGIN",
|
|
58
|
+
CONTACT = "CONTACT",
|
|
59
|
+
ORGANIZATION = "ORGANIZATION",
|
|
60
|
+
BRAND = "BRAND",
|
|
61
|
+
REQUEST_TYPE = "REQUEST_TYPE",
|
|
62
|
+
SLA_POLICY = "SLA_POLICY",
|
|
63
|
+
RESOLUTION_TYPE = "RESOLUTION_TYPE",
|
|
64
|
+
TAG = "TAG",
|
|
65
|
+
SKILL = "SKILL",
|
|
66
|
+
PUBLIC_STATUS = "PUBLIC_STATUS",
|
|
67
|
+
CUSTOM_FIELD = "CUSTOM_FIELD"
|
|
68
|
+
}
|
|
69
|
+
export declare enum TicketTimeGranularity {
|
|
70
|
+
MINUTE = "MINUTE",
|
|
71
|
+
HOUR = "HOUR",
|
|
72
|
+
DAY = "DAY",
|
|
73
|
+
WEEK = "WEEK",
|
|
74
|
+
MONTH = "MONTH",
|
|
75
|
+
QUARTER = "QUARTER",
|
|
76
|
+
YEAR = "YEAR"
|
|
77
|
+
}
|
|
78
|
+
export declare enum TicketComparisonMode {
|
|
79
|
+
NONE = "NONE",
|
|
80
|
+
PREVIOUS_PERIOD = "PREVIOUS_PERIOD",
|
|
81
|
+
PREVIOUS_YEAR = "PREVIOUS_YEAR",
|
|
82
|
+
CUSTOM = "CUSTOM",
|
|
83
|
+
TARGET = "TARGET"
|
|
84
|
+
}
|
|
85
|
+
export declare enum TicketMetricFormat {
|
|
86
|
+
NUMBER = "NUMBER",
|
|
87
|
+
PERCENTAGE = "PERCENTAGE",
|
|
88
|
+
DURATION = "DURATION",
|
|
89
|
+
DECIMAL = "DECIMAL",
|
|
90
|
+
CURRENCY = "CURRENCY",
|
|
91
|
+
SCORE = "SCORE"
|
|
92
|
+
}
|
|
93
|
+
export declare enum TicketWidgetRefreshMode {
|
|
94
|
+
MANUAL = "MANUAL",
|
|
95
|
+
INTERVAL = "INTERVAL",
|
|
96
|
+
REAL_TIME = "REAL_TIME"
|
|
97
|
+
}
|
|
98
|
+
export declare enum TicketDrilldownTarget {
|
|
99
|
+
TICKETS = "TICKETS",
|
|
100
|
+
AGENTS = "AGENTS",
|
|
101
|
+
GROUPS = "GROUPS",
|
|
102
|
+
CONVERSATIONS = "CONVERSATIONS",
|
|
103
|
+
SLA_CYCLES = "SLA_CYCLES",
|
|
104
|
+
TASKS = "TASKS",
|
|
105
|
+
APPROVALS = "APPROVALS",
|
|
106
|
+
DEFLECTION_EVENTS = "DEFLECTION_EVENTS"
|
|
107
|
+
}
|
|
108
|
+
/** Stable semantic metric identifiers. New visualizations should compose these instead of hard-coded endpoints. */
|
|
109
|
+
export declare enum TicketMetricCode {
|
|
110
|
+
TICKETS_CREATED = "TICKETS_CREATED",
|
|
111
|
+
TICKETS_RESOLVED = "TICKETS_RESOLVED",
|
|
112
|
+
TICKETS_CLOSED = "TICKETS_CLOSED",
|
|
113
|
+
TICKETS_CANCELLED = "TICKETS_CANCELLED",
|
|
114
|
+
BACKLOG = "BACKLOG",
|
|
115
|
+
BACKLOG_OVERDUE = "BACKLOG_OVERDUE",
|
|
116
|
+
BACKLOG_UNASSIGNED = "BACKLOG_UNASSIGNED",
|
|
117
|
+
BACKLOG_UNREPLIED = "BACKLOG_UNREPLIED",
|
|
118
|
+
BACKLOG_AGING = "BACKLOG_AGING",
|
|
119
|
+
NET_BACKLOG_CHANGE = "NET_BACKLOG_CHANGE",
|
|
120
|
+
FIRST_RESPONSE_TIME = "FIRST_RESPONSE_TIME",
|
|
121
|
+
NEXT_RESPONSE_TIME = "NEXT_RESPONSE_TIME",
|
|
122
|
+
RESOLUTION_TIME = "RESOLUTION_TIME",
|
|
123
|
+
ASSIGNMENT_TIME = "ASSIGNMENT_TIME",
|
|
124
|
+
ACCEPTANCE_TIME = "ACCEPTANCE_TIME",
|
|
125
|
+
HANDLE_TIME = "HANDLE_TIME",
|
|
126
|
+
WAITING_CUSTOMER_TIME = "WAITING_CUSTOMER_TIME",
|
|
127
|
+
WAITING_INTERNAL_TIME = "WAITING_INTERNAL_TIME",
|
|
128
|
+
TIME_IN_STATUS = "TIME_IN_STATUS",
|
|
129
|
+
FIRST_RESPONSE_SLA_RATE = "FIRST_RESPONSE_SLA_RATE",
|
|
130
|
+
NEXT_RESPONSE_SLA_RATE = "NEXT_RESPONSE_SLA_RATE",
|
|
131
|
+
RESOLUTION_SLA_RATE = "RESOLUTION_SLA_RATE",
|
|
132
|
+
SLA_BREACH_COUNT = "SLA_BREACH_COUNT",
|
|
133
|
+
SLA_AT_RISK_COUNT = "SLA_AT_RISK_COUNT",
|
|
134
|
+
OLA_COMPLIANCE_RATE = "OLA_COMPLIANCE_RATE",
|
|
135
|
+
UC_COMPLIANCE_RATE = "UC_COMPLIANCE_RATE",
|
|
136
|
+
FIRST_CONTACT_RESOLUTION_RATE = "FIRST_CONTACT_RESOLUTION_RATE",
|
|
137
|
+
REOPEN_COUNT = "REOPEN_COUNT",
|
|
138
|
+
REOPEN_RATE = "REOPEN_RATE",
|
|
139
|
+
TRANSFER_COUNT = "TRANSFER_COUNT",
|
|
140
|
+
TRANSFER_RATE = "TRANSFER_RATE",
|
|
141
|
+
ESCALATION_COUNT = "ESCALATION_COUNT",
|
|
142
|
+
TOUCHES_PER_TICKET = "TOUCHES_PER_TICKET",
|
|
143
|
+
COMMENTS_PER_TICKET = "COMMENTS_PER_TICKET",
|
|
144
|
+
AGENT_ASSIGNED_COUNT = "AGENT_ASSIGNED_COUNT",
|
|
145
|
+
AGENT_RESOLVED_COUNT = "AGENT_RESOLVED_COUNT",
|
|
146
|
+
AGENT_ACTIVE_LOAD = "AGENT_ACTIVE_LOAD",
|
|
147
|
+
AGENT_CAPACITY_UTILIZATION = "AGENT_CAPACITY_UTILIZATION",
|
|
148
|
+
AGENT_AVAILABILITY_TIME = "AGENT_AVAILABILITY_TIME",
|
|
149
|
+
AGENT_OCCUPANCY_RATE = "AGENT_OCCUPANCY_RATE",
|
|
150
|
+
AGENT_ACCEPTANCE_RATE = "AGENT_ACCEPTANCE_RATE",
|
|
151
|
+
AGENT_DECLINE_RATE = "AGENT_DECLINE_RATE",
|
|
152
|
+
AGENT_PRODUCTIVITY = "AGENT_PRODUCTIVITY",
|
|
153
|
+
QUEUE_SIZE = "QUEUE_SIZE",
|
|
154
|
+
QUEUE_WAIT_TIME = "QUEUE_WAIT_TIME",
|
|
155
|
+
QUEUE_ABANDONED_COUNT = "QUEUE_ABANDONED_COUNT",
|
|
156
|
+
ROUTING_ATTEMPTS = "ROUTING_ATTEMPTS",
|
|
157
|
+
AUTO_ASSIGNMENT_RATE = "AUTO_ASSIGNMENT_RATE",
|
|
158
|
+
SKILL_MATCH_RATE = "SKILL_MATCH_RATE",
|
|
159
|
+
FALLBACK_RATE = "FALLBACK_RATE",
|
|
160
|
+
CSAT_SCORE = "CSAT_SCORE",
|
|
161
|
+
CSAT_RESPONSE_RATE = "CSAT_RESPONSE_RATE",
|
|
162
|
+
NPS_SCORE = "NPS_SCORE",
|
|
163
|
+
NEGATIVE_SATISFACTION_COUNT = "NEGATIVE_SATISFACTION_COUNT",
|
|
164
|
+
INBOUND_MESSAGES = "INBOUND_MESSAGES",
|
|
165
|
+
OUTBOUND_MESSAGES = "OUTBOUND_MESSAGES",
|
|
166
|
+
MESSAGES_PER_TICKET = "MESSAGES_PER_TICKET",
|
|
167
|
+
CHANNEL_VOLUME = "CHANNEL_VOLUME",
|
|
168
|
+
CHANNEL_RESPONSE_TIME = "CHANNEL_RESPONSE_TIME",
|
|
169
|
+
CATEGORY_VOLUME = "CATEGORY_VOLUME",
|
|
170
|
+
REQUEST_TYPE_VOLUME = "REQUEST_TYPE_VOLUME",
|
|
171
|
+
RESOLUTION_TYPE_VOLUME = "RESOLUTION_TYPE_VOLUME",
|
|
172
|
+
CONTACT_VOLUME = "CONTACT_VOLUME",
|
|
173
|
+
ORGANIZATION_VOLUME = "ORGANIZATION_VOLUME",
|
|
174
|
+
AUTOMATION_EXECUTION_COUNT = "AUTOMATION_EXECUTION_COUNT",
|
|
175
|
+
AUTOMATION_SUCCESS_RATE = "AUTOMATION_SUCCESS_RATE",
|
|
176
|
+
AUTOMATION_FAILURE_COUNT = "AUTOMATION_FAILURE_COUNT",
|
|
177
|
+
AUTOMATED_RESOLUTION_RATE = "AUTOMATED_RESOLUTION_RATE",
|
|
178
|
+
MACRO_USAGE_COUNT = "MACRO_USAGE_COUNT",
|
|
179
|
+
DEFLECTION_RATE = "DEFLECTION_RATE",
|
|
180
|
+
DEFLECTED_SESSIONS = "DEFLECTED_SESSIONS",
|
|
181
|
+
ARTICLE_CLICK_RATE = "ARTICLE_CLICK_RATE",
|
|
182
|
+
PORTAL_REQUEST_COUNT = "PORTAL_REQUEST_COUNT",
|
|
183
|
+
SELF_SERVICE_RESOLUTION_RATE = "SELF_SERVICE_RESOLUTION_RATE",
|
|
184
|
+
APPROVAL_PENDING_COUNT = "APPROVAL_PENDING_COUNT",
|
|
185
|
+
APPROVAL_TIME = "APPROVAL_TIME",
|
|
186
|
+
APPROVAL_REJECTION_RATE = "APPROVAL_REJECTION_RATE",
|
|
187
|
+
APPROVAL_EXPIRED_COUNT = "APPROVAL_EXPIRED_COUNT",
|
|
188
|
+
TASK_PENDING_COUNT = "TASK_PENDING_COUNT",
|
|
189
|
+
TASK_COMPLETION_RATE = "TASK_COMPLETION_RATE",
|
|
190
|
+
TASK_OVERDUE_COUNT = "TASK_OVERDUE_COUNT",
|
|
191
|
+
TASK_BLOCKED_COUNT = "TASK_BLOCKED_COUNT",
|
|
192
|
+
EXPORT_COUNT = "EXPORT_COUNT",
|
|
193
|
+
SECURITY_DENIAL_COUNT = "SECURITY_DENIAL_COUNT",
|
|
194
|
+
PII_ACCESS_COUNT = "PII_ACCESS_COUNT"
|
|
195
|
+
}
|
|
196
|
+
export interface ITicketAnalyticsFilter extends ITicketFilter {
|
|
197
|
+
range: ITicketDateRange;
|
|
198
|
+
channelTypes?: ChannelType[];
|
|
199
|
+
queueIds?: string[];
|
|
200
|
+
organizationIds?: string[];
|
|
201
|
+
brandIds?: string[];
|
|
202
|
+
requestTypeIds?: string[];
|
|
203
|
+
slaPolicyIds?: string[];
|
|
204
|
+
resolutionTypeIds?: string[];
|
|
205
|
+
skillIds?: string[];
|
|
206
|
+
includeBots?: boolean;
|
|
207
|
+
businessHoursOnly?: boolean;
|
|
208
|
+
}
|
|
209
|
+
export interface ITicketMetricDefinition {
|
|
210
|
+
code: TicketMetricCode;
|
|
211
|
+
name: string;
|
|
212
|
+
description: string;
|
|
213
|
+
format: TicketMetricFormat;
|
|
214
|
+
defaultAggregation: TicketMetricAggregation;
|
|
215
|
+
supportedAggregations: TicketMetricAggregation[];
|
|
216
|
+
supportedDimensions: TicketAnalyticsDimension[];
|
|
217
|
+
supportedAudiences: TicketAnalyticsAudience[];
|
|
218
|
+
supportsPercentile?: boolean;
|
|
219
|
+
supportsRealTime?: boolean;
|
|
220
|
+
higherIsBetter?: boolean;
|
|
221
|
+
}
|
|
222
|
+
export interface ITicketMetricQuery {
|
|
223
|
+
metric: TicketMetricCode;
|
|
224
|
+
aggregation?: TicketMetricAggregation;
|
|
225
|
+
percentile?: number;
|
|
226
|
+
filter: ITicketAnalyticsFilter;
|
|
227
|
+
dimensions?: ITicketDimensionSpec[];
|
|
228
|
+
comparison?: ITicketComparison;
|
|
229
|
+
target?: number;
|
|
230
|
+
}
|
|
231
|
+
export interface ITicketDimensionSpec {
|
|
232
|
+
dimension: TicketAnalyticsDimension;
|
|
233
|
+
fieldNameKey?: string;
|
|
234
|
+
granularity?: TicketTimeGranularity;
|
|
235
|
+
limit?: number;
|
|
236
|
+
includeEmpty?: boolean;
|
|
237
|
+
}
|
|
238
|
+
export interface ITicketComparison {
|
|
239
|
+
mode: TicketComparisonMode;
|
|
240
|
+
range?: ITicketDateRange;
|
|
241
|
+
}
|
|
242
|
+
export interface ITicketMetricValue {
|
|
243
|
+
value: number;
|
|
244
|
+
formattedValue?: string;
|
|
245
|
+
numerator?: number;
|
|
246
|
+
denominator?: number;
|
|
247
|
+
previousValue?: number;
|
|
248
|
+
change?: number;
|
|
249
|
+
changePercentage?: number;
|
|
250
|
+
target?: number;
|
|
251
|
+
targetMet?: boolean;
|
|
252
|
+
}
|
|
253
|
+
export interface ITicketMetricSeries {
|
|
254
|
+
key: string;
|
|
255
|
+
label: string;
|
|
256
|
+
points: ITicketMetricPoint[];
|
|
257
|
+
}
|
|
258
|
+
export interface ITicketMetricResult {
|
|
259
|
+
query: ITicketMetricQuery;
|
|
260
|
+
value?: ITicketMetricValue;
|
|
261
|
+
groups?: ITicketMetricGroup[];
|
|
262
|
+
series?: ITicketMetricSeries[];
|
|
263
|
+
generatedAt: Date;
|
|
264
|
+
dataFrom: Date;
|
|
265
|
+
dataTo: Date;
|
|
266
|
+
isPartial?: boolean;
|
|
267
|
+
warnings?: string[];
|
|
268
|
+
}
|
|
269
|
+
export interface ITicketWidgetPosition {
|
|
270
|
+
x: number;
|
|
271
|
+
y: number;
|
|
272
|
+
width: number;
|
|
273
|
+
height: number;
|
|
274
|
+
minWidth?: number;
|
|
275
|
+
minHeight?: number;
|
|
276
|
+
}
|
|
277
|
+
export interface ITicketWidgetThreshold {
|
|
278
|
+
value: number;
|
|
279
|
+
color: string;
|
|
280
|
+
label?: string;
|
|
281
|
+
operator?: "GT" | "GTE" | "LT" | "LTE";
|
|
282
|
+
}
|
|
283
|
+
export interface ITicketWidgetDrilldown {
|
|
284
|
+
enabled: boolean;
|
|
285
|
+
target: TicketDrilldownTarget;
|
|
286
|
+
inheritFilters: boolean;
|
|
287
|
+
additionalFilter?: ITicketAnalyticsFilter;
|
|
288
|
+
}
|
|
289
|
+
export interface ITicketWidgetConfiguration {
|
|
290
|
+
id: string;
|
|
291
|
+
title: string;
|
|
292
|
+
subtitle?: string;
|
|
293
|
+
type: TicketWidgetType;
|
|
294
|
+
queries: ITicketMetricQuery[];
|
|
295
|
+
position: ITicketWidgetPosition;
|
|
296
|
+
thresholds?: ITicketWidgetThreshold[];
|
|
297
|
+
drilldown?: ITicketWidgetDrilldown;
|
|
298
|
+
showLegend?: boolean;
|
|
299
|
+
showComparison?: boolean;
|
|
300
|
+
showTarget?: boolean;
|
|
301
|
+
colorPalette?: string[];
|
|
302
|
+
customOptions?: {
|
|
303
|
+
[key: string]: TicketPropertyValue;
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
export interface ITicketDashboard {
|
|
307
|
+
id: string;
|
|
308
|
+
spaceId: string;
|
|
309
|
+
name: string;
|
|
310
|
+
description?: string;
|
|
311
|
+
ownerId: string;
|
|
312
|
+
audience: TicketAnalyticsAudience;
|
|
313
|
+
visibility: TicketDashboardVisibility;
|
|
314
|
+
sharedRoleIds?: string[];
|
|
315
|
+
sharedGroupIds?: string[];
|
|
316
|
+
defaultFilter?: ITicketAnalyticsFilter;
|
|
317
|
+
widgets: ITicketWidgetConfiguration[];
|
|
318
|
+
refreshMode: TicketWidgetRefreshMode;
|
|
319
|
+
refreshIntervalSeconds?: number;
|
|
320
|
+
isDefault?: boolean;
|
|
321
|
+
createdAt: Date;
|
|
322
|
+
createdBy: string;
|
|
323
|
+
updatedAt?: Date;
|
|
324
|
+
updatedBy?: string;
|
|
325
|
+
}
|
|
326
|
+
export interface ITicketDashboardTemplate {
|
|
327
|
+
id: string;
|
|
328
|
+
spaceId: string;
|
|
329
|
+
name: string;
|
|
330
|
+
description?: string;
|
|
331
|
+
audience: TicketAnalyticsAudience;
|
|
332
|
+
widgets: ITicketWidgetConfiguration[];
|
|
333
|
+
enabled: boolean;
|
|
334
|
+
}
|
|
335
|
+
export interface ITicketDashboardSnapshot {
|
|
336
|
+
id: string;
|
|
337
|
+
dashboardId: string;
|
|
338
|
+
generatedAt: Date;
|
|
339
|
+
filter: ITicketAnalyticsFilter;
|
|
340
|
+
widgetResults: {
|
|
341
|
+
widgetId: string;
|
|
342
|
+
results: ITicketMetricResult[];
|
|
343
|
+
}[];
|
|
344
|
+
expiresAt?: Date;
|
|
345
|
+
}
|
|
346
|
+
/** Used when clicking a widget to retrieve the exact underlying records behind a value. */
|
|
347
|
+
export interface ITicketDrilldownQuery {
|
|
348
|
+
metricQuery: ITicketMetricQuery;
|
|
349
|
+
target: TicketDrilldownTarget;
|
|
350
|
+
groupKey?: string;
|
|
351
|
+
cursor?: string;
|
|
352
|
+
limit?: number;
|
|
353
|
+
}
|
|
354
|
+
export interface ITicketDrilldownResult<T = unknown> {
|
|
355
|
+
items: T[];
|
|
356
|
+
nextCursor?: string;
|
|
357
|
+
hasMore: boolean;
|
|
358
|
+
total?: number;
|
|
359
|
+
}
|
|
360
|
+
/** Allows supervisors to define operational goals independently from widget presentation. */
|
|
361
|
+
export interface ITicketAnalyticsGoal {
|
|
362
|
+
id: string;
|
|
363
|
+
spaceId: string;
|
|
364
|
+
name: string;
|
|
365
|
+
metric: TicketMetricCode;
|
|
366
|
+
target: number;
|
|
367
|
+
filter: ITicketAnalyticsFilter;
|
|
368
|
+
validFrom: Date;
|
|
369
|
+
validUntil?: Date;
|
|
370
|
+
ownerGroupId?: string;
|
|
371
|
+
ownerUserId?: string;
|
|
372
|
+
createdAt: Date;
|
|
373
|
+
}
|
|
374
|
+
/** Reports freshness so users know whether a card is real-time, delayed or partial. */
|
|
375
|
+
export interface ITicketAnalyticsFreshness {
|
|
376
|
+
metric: TicketMetricCode;
|
|
377
|
+
lastEventAt?: Date;
|
|
378
|
+
lastProcessedAt: Date;
|
|
379
|
+
lagSeconds: number;
|
|
380
|
+
realTime: boolean;
|
|
381
|
+
healthy: boolean;
|
|
382
|
+
}
|
|
383
|
+
/** Compatibility aggregate for the original fixed dashboard endpoint. Prefer metric queries for configurable widgets. */
|
|
384
|
+
export interface ITicketDashboardFilter {
|
|
385
|
+
range: ITicketDateRange;
|
|
386
|
+
statusIds?: string[];
|
|
387
|
+
assigneeIds?: string[];
|
|
388
|
+
assignedGroupIds?: string[];
|
|
389
|
+
categoryIds?: string[];
|
|
390
|
+
channelTypes?: string[];
|
|
391
|
+
}
|
|
392
|
+
export interface ITicketDashboardMetrics {
|
|
393
|
+
range: ITicketDateRange;
|
|
394
|
+
backlog: number;
|
|
395
|
+
created: number;
|
|
396
|
+
resolved: number;
|
|
397
|
+
reopened: number;
|
|
398
|
+
firstResponseSlaMetPercentage: number;
|
|
399
|
+
resolutionSlaMetPercentage: number;
|
|
400
|
+
averageFirstResponseMinutes: number;
|
|
401
|
+
averageResolutionMinutes: number;
|
|
402
|
+
averageSatisfactionScore?: number;
|
|
403
|
+
createdSeries: ITicketMetricPoint[];
|
|
404
|
+
resolvedSeries: ITicketMetricPoint[];
|
|
405
|
+
byStatus: ITicketMetricGroup[];
|
|
406
|
+
byCategory: ITicketMetricGroup[];
|
|
407
|
+
byAssignee: ITicketMetricGroup[];
|
|
408
|
+
}
|