@d19n/youfibre-odin-sdk 2.0.321 → 2.0.322
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/README.md +7 -2
- package/dist/actions-v2/CompleteServiceWorkOrderFlowDto.d.ts +14 -14
- package/dist/actions-v2/CompleteServiceWorkOrderFlowDto.js +22 -22
- package/dist/actions-v2/DefaultServiceWorkOrderEditFormDto.d.ts +8 -1
- package/dist/actions-v2/UpdateCustomerDeviceBatteryDto.d.ts +3 -1
- package/dist/actions-v2/UpdateCustomerDeviceBatteryDto.js +3 -1
- package/dist/api-sdk-v2/CaseApi.d.ts +4 -0
- package/dist/api-sdk-v2/CaseApi.js +12 -0
- package/dist/api-sdk-v2/CoachingSessionApi.d.ts +50 -0
- package/dist/api-sdk-v2/CoachingSessionApi.js +161 -0
- package/dist/api-sdk-v2/QaEvaluationAnswerApi.d.ts +48 -0
- package/dist/api-sdk-v2/QaEvaluationAnswerApi.js +155 -0
- package/dist/api-sdk-v2/QaEvaluationApi.d.ts +54 -0
- package/dist/api-sdk-v2/QaEvaluationApi.js +173 -0
- package/dist/api-sdk-v2/QaScorecardQuestionApi.d.ts +48 -0
- package/dist/api-sdk-v2/QaScorecardQuestionApi.js +155 -0
- package/dist/api-sdk-v2/QaScorecardTemplateApi.d.ts +50 -0
- package/dist/api-sdk-v2/QaScorecardTemplateApi.js +161 -0
- package/dist/db-sdk-v2/CaseDb.d.ts +4 -0
- package/dist/db-sdk-v2/CaseDb.js +12 -0
- package/dist/db-sdk-v2/CoachingSessionDb.d.ts +122 -0
- package/dist/db-sdk-v2/CoachingSessionDb.js +210 -0
- package/dist/db-sdk-v2/QaEvaluationAnswerDb.d.ts +120 -0
- package/dist/db-sdk-v2/QaEvaluationAnswerDb.js +204 -0
- package/dist/db-sdk-v2/QaEvaluationDb.d.ts +126 -0
- package/dist/db-sdk-v2/QaEvaluationDb.js +222 -0
- package/dist/db-sdk-v2/QaScorecardQuestionDb.d.ts +120 -0
- package/dist/db-sdk-v2/QaScorecardQuestionDb.js +204 -0
- package/dist/db-sdk-v2/QaScorecardTemplateDb.d.ts +122 -0
- package/dist/db-sdk-v2/QaScorecardTemplateDb.js +210 -0
- package/dist/entities-v2/Case.d.ts +14 -0
- package/dist/entities-v2/Case.js +9 -1
- package/dist/entities-v2/CoachingSession.d.ts +247 -0
- package/dist/entities-v2/CoachingSession.js +145 -0
- package/dist/entities-v2/CustomerDeviceRouter.d.ts +258 -8
- package/dist/entities-v2/CustomerDeviceRouter.js +17 -9
- package/dist/entities-v2/QaEvaluation.d.ts +361 -0
- package/dist/entities-v2/QaEvaluation.js +217 -0
- package/dist/entities-v2/QaEvaluationAnswer.d.ts +127 -0
- package/dist/entities-v2/QaEvaluationAnswer.js +92 -0
- package/dist/entities-v2/QaScorecardQuestion.d.ts +155 -0
- package/dist/entities-v2/QaScorecardQuestion.js +96 -0
- package/dist/entities-v2/QaScorecardTemplate.d.ts +152 -0
- package/dist/entities-v2/QaScorecardTemplate.js +114 -0
- package/dist/entities-v2/WorkOrder.d.ts +210 -1
- package/dist/entities-v2/WorkOrder.js +22 -4
- package/dist/entities-v2/YfFieldVisitOutcomeForm.d.ts +4 -3
- package/dist/entities-v2/YfFieldVisitOutcomeForm.js +2 -1
- package/dist/records-v2/CustomerDeviceRouterRecord.d.ts +38 -2
- package/dist/records-v2/CustomerDeviceRouterRecord.js +37 -0
- package/dist/records-v2/WorkOrderRecord.d.ts +4 -4
- package/dist/records-v2/WorkOrderRecord.js +4 -4
- package/dist/records-v2/YfFieldVisitOutcomeFormRecord.d.ts +5 -4
- package/dist/records-v2/YfFieldVisitOutcomeFormRecord.js +5 -5
- package/package.json +1 -1
|
@@ -12,15 +12,17 @@
|
|
|
12
12
|
* Generated from Odin schema definition
|
|
13
13
|
*/
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.ROUTING_KEY_LINK_CUSTOMER_DEVICE_ROUTER_FIELD_SERVICE_DISPATCHED_PRODUCT_DELETED = exports.ROUTING_KEY_LINK_CUSTOMER_DEVICE_ROUTER_FIELD_SERVICE_DISPATCHED_PRODUCT_CREATED = exports.ROUTING_KEY_LINK_CUSTOMER_DEVICE_ROUTER_NOTE_DELETED = exports.ROUTING_KEY_LINK_CUSTOMER_DEVICE_ROUTER_NOTE_CREATED = exports.ROUTING_KEY_LINK_CUSTOMER_DEVICE_ROUTER_FILE_DELETED = exports.ROUTING_KEY_LINK_CUSTOMER_DEVICE_ROUTER_FILE_CREATED = exports.
|
|
15
|
+
exports.ROUTING_KEY_LINK_CUSTOMER_DEVICE_ROUTER_FIELD_SERVICE_DISPATCHED_PRODUCT_DELETED = exports.ROUTING_KEY_LINK_CUSTOMER_DEVICE_ROUTER_FIELD_SERVICE_DISPATCHED_PRODUCT_CREATED = exports.ROUTING_KEY_LINK_CUSTOMER_DEVICE_ROUTER_NOTE_DELETED = exports.ROUTING_KEY_LINK_CUSTOMER_DEVICE_ROUTER_NOTE_CREATED = exports.ROUTING_KEY_LINK_CUSTOMER_DEVICE_ROUTER_FILE_DELETED = exports.ROUTING_KEY_LINK_CUSTOMER_DEVICE_ROUTER_FILE_CREATED = exports.ROUTING_KEY_CUSTOMER_DEVICE_ROUTER_MESH_DELETED = exports.ROUTING_KEY_CUSTOMER_DEVICE_ROUTER_MESH_UPDATED = exports.ROUTING_KEY_CUSTOMER_DEVICE_ROUTER_MESH_CREATED = exports.ROUTING_KEY_CUSTOMER_DEVICE_ROUTER_CPE_ROUTER_DELETED = exports.ROUTING_KEY_CUSTOMER_DEVICE_ROUTER_CPE_ROUTER_UPDATED = exports.ROUTING_KEY_CUSTOMER_DEVICE_ROUTER_CPE_ROUTER_CREATED = exports.ROUTING_KEY_CUSTOMER_DEVICE_ROUTER_DELETED = exports.ROUTING_KEY_CUSTOMER_DEVICE_ROUTER_UPDATED = exports.ROUTING_KEY_CUSTOMER_DEVICE_ROUTER_CREATED = exports.CustomerDeviceRouter = exports.CustomerDeviceRouterPropertyKeys = exports.CustomerDeviceRouterModel = exports.CustomerDeviceRouterEntityTypes = void 0;
|
|
16
16
|
const core_1 = require("@d19n/odin-types/dist/core");
|
|
17
17
|
/**
|
|
18
18
|
* Available types for CustomerDeviceRouter records
|
|
19
19
|
*/
|
|
20
20
|
var CustomerDeviceRouterEntityTypes;
|
|
21
21
|
(function (CustomerDeviceRouterEntityTypes) {
|
|
22
|
-
/**
|
|
23
|
-
CustomerDeviceRouterEntityTypes["
|
|
22
|
+
/** CPE Router */
|
|
23
|
+
CustomerDeviceRouterEntityTypes["CPE_ROUTER"] = "CPE_ROUTER";
|
|
24
|
+
/** Mesh */
|
|
25
|
+
CustomerDeviceRouterEntityTypes["MESH"] = "MESH";
|
|
24
26
|
})(CustomerDeviceRouterEntityTypes = exports.CustomerDeviceRouterEntityTypes || (exports.CustomerDeviceRouterEntityTypes = {}));
|
|
25
27
|
/**
|
|
26
28
|
* Valid values for CustomerDeviceRouter.Model
|
|
@@ -129,12 +131,18 @@ exports.ROUTING_KEY_CUSTOMER_DEVICE_ROUTER_DELETED = 'ServiceModule.CustomerDevi
|
|
|
129
131
|
* Type-specific routing keys for CustomerDeviceRouter events
|
|
130
132
|
* Subscribe to these for events on specific entity types only
|
|
131
133
|
*/
|
|
132
|
-
/**
|
|
133
|
-
exports.
|
|
134
|
-
/**
|
|
135
|
-
exports.
|
|
136
|
-
/**
|
|
137
|
-
exports.
|
|
134
|
+
/** CPE Router created */
|
|
135
|
+
exports.ROUTING_KEY_CUSTOMER_DEVICE_ROUTER_CPE_ROUTER_CREATED = 'ServiceModule.CustomerDeviceRouter.CPE_ROUTER.SubDbRecordCreated';
|
|
136
|
+
/** CPE Router updated */
|
|
137
|
+
exports.ROUTING_KEY_CUSTOMER_DEVICE_ROUTER_CPE_ROUTER_UPDATED = 'ServiceModule.CustomerDeviceRouter.CPE_ROUTER.SubDbRecordUpdated';
|
|
138
|
+
/** CPE Router deleted */
|
|
139
|
+
exports.ROUTING_KEY_CUSTOMER_DEVICE_ROUTER_CPE_ROUTER_DELETED = 'ServiceModule.CustomerDeviceRouter.CPE_ROUTER.SubDbRecordDeleted';
|
|
140
|
+
/** Mesh created */
|
|
141
|
+
exports.ROUTING_KEY_CUSTOMER_DEVICE_ROUTER_MESH_CREATED = 'ServiceModule.CustomerDeviceRouter.MESH.SubDbRecordCreated';
|
|
142
|
+
/** Mesh updated */
|
|
143
|
+
exports.ROUTING_KEY_CUSTOMER_DEVICE_ROUTER_MESH_UPDATED = 'ServiceModule.CustomerDeviceRouter.MESH.SubDbRecordUpdated';
|
|
144
|
+
/** Mesh deleted */
|
|
145
|
+
exports.ROUTING_KEY_CUSTOMER_DEVICE_ROUTER_MESH_DELETED = 'ServiceModule.CustomerDeviceRouter.MESH.SubDbRecordDeleted';
|
|
138
146
|
/** Event: CustomerDeviceRouter__File link created */
|
|
139
147
|
exports.ROUTING_KEY_LINK_CUSTOMER_DEVICE_ROUTER_FILE_CREATED = 'ServiceModule.CustomerDeviceRouter.File.SubDbRecordAssociationCreated';
|
|
140
148
|
/** Event: CustomerDeviceRouter__File link deleted */
|
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* QaEvaluation Entity Definition
|
|
3
|
+
*
|
|
4
|
+
* One scoring of one closed Case against the channel scorecard, by a human evaluator or the AI scorer. Amendments supersede rather than mutate, so a correction moves the averages at once and the original stays readable.
|
|
5
|
+
*
|
|
6
|
+
* @module SupportModule
|
|
7
|
+
* @entity QaEvaluation
|
|
8
|
+
* @schemaId 11880071-fb9e-4270-b64f-3db750b97ea7
|
|
9
|
+
*
|
|
10
|
+
* AUTO-GENERATED - DO NOT EDIT DIRECTLY
|
|
11
|
+
* Generated from Odin schema definition
|
|
12
|
+
*/
|
|
13
|
+
import { OdinRecord, OdinLink, LinkedOdinRecord } from '@d19n/odin-types/dist/core';
|
|
14
|
+
import { CaseProperties } from './Case';
|
|
15
|
+
import { QaScorecardTemplateProperties } from './QaScorecardTemplate';
|
|
16
|
+
import { CoachingSessionProperties } from './CoachingSession';
|
|
17
|
+
import { QaEvaluationAnswerProperties } from './QaEvaluationAnswer';
|
|
18
|
+
/**
|
|
19
|
+
* Available types for QaEvaluation records
|
|
20
|
+
*/
|
|
21
|
+
export declare enum QaEvaluationEntityTypes {
|
|
22
|
+
/** This is the default record type */
|
|
23
|
+
DEFAULT = "DEFAULT"
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Pipeline stage names for DEFAULT QaEvaluation
|
|
27
|
+
* Pipeline: QA Evaluation Pipeline
|
|
28
|
+
* Draft → Submitted → Superseded. Only Submitted counts toward any average; an amendment creates a new Submitted record and moves the old one to Superseded.
|
|
29
|
+
*/
|
|
30
|
+
export declare enum DefaultQaEvaluationStageNames {
|
|
31
|
+
/** Started and saved without submitting. Private working state — excluded from every average and from the AI-variance comparison. (default) */
|
|
32
|
+
Draft = "Draft",
|
|
33
|
+
/** The evaluation counts. Score, Passed, AutoFail and any variance against the AI are pinned here. This is the only stage the aggregates read. (success) */
|
|
34
|
+
Submitted = "Submitted",
|
|
35
|
+
/** Replaced by an amendment. No longer counts toward any average, but stays readable as the record of what was originally scored and by whom. */
|
|
36
|
+
Superseded = "Superseded"
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Pipeline stage keys for DEFAULT QaEvaluation
|
|
40
|
+
* Use these keys when transitioning between stages
|
|
41
|
+
*/
|
|
42
|
+
export declare enum DefaultQaEvaluationStageKeys {
|
|
43
|
+
/** Started and saved without submitting. Private working state — excluded from every average and from the AI-variance comparison. */
|
|
44
|
+
QaEvaluationStageDraft = "QaEvaluationStageDraft",
|
|
45
|
+
/** The evaluation counts. Score, Passed, AutoFail and any variance against the AI are pinned here. This is the only stage the aggregates read. */
|
|
46
|
+
QaEvaluationStageSubmitted = "QaEvaluationStageSubmitted",
|
|
47
|
+
/** Replaced by an amendment. No longer counts toward any average, but stays readable as the record of what was originally scored and by whom. */
|
|
48
|
+
QaEvaluationStageSuperseded = "QaEvaluationStageSuperseded"
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Valid values for QaEvaluation.AutoFail
|
|
52
|
+
*
|
|
53
|
+
* An auto-fail rule was invoked, which zeroes the score whatever else was answered.
|
|
54
|
+
*
|
|
55
|
+
* @remarks Available options:
|
|
56
|
+
* - `NO` - No
|
|
57
|
+
* - `YES` - Yes
|
|
58
|
+
*/
|
|
59
|
+
export declare enum QaEvaluationAutoFail {
|
|
60
|
+
NO = "NO",
|
|
61
|
+
YES = "YES"
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Valid values for QaEvaluation.VarianceFlagged
|
|
65
|
+
*
|
|
66
|
+
* The gap between the human and AI scores exceeded the configured tolerance and is queued for review.
|
|
67
|
+
*
|
|
68
|
+
* @remarks Available options:
|
|
69
|
+
* - `NO` - No
|
|
70
|
+
* - `YES` - Yes
|
|
71
|
+
*/
|
|
72
|
+
export declare enum QaEvaluationVarianceFlagged {
|
|
73
|
+
NO = "NO",
|
|
74
|
+
YES = "YES"
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Valid values for QaEvaluation.Channel
|
|
78
|
+
*
|
|
79
|
+
* Which scorecard applied, copied from the template.
|
|
80
|
+
*
|
|
81
|
+
* @remarks Available options:
|
|
82
|
+
* - `CALL_INBOUND` - Call — inbound
|
|
83
|
+
* - `CALL_OUTBOUND` - Call — outbound
|
|
84
|
+
* - `CHAT` - Chat
|
|
85
|
+
* - `EMAIL` - Email
|
|
86
|
+
*/
|
|
87
|
+
export declare enum QaEvaluationChannel {
|
|
88
|
+
CALL_INBOUND = "CALL_INBOUND",
|
|
89
|
+
CALL_OUTBOUND = "CALL_OUTBOUND",
|
|
90
|
+
CHAT = "CHAT",
|
|
91
|
+
EMAIL = "EMAIL"
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Valid values for QaEvaluation.Source
|
|
95
|
+
*
|
|
96
|
+
* Who scored it. HUMAN is a QA evaluator; AI is the Databricks quality_assurance_report endpoint. Averages report the two separately.
|
|
97
|
+
*
|
|
98
|
+
* @remarks Available options:
|
|
99
|
+
* - `AI`
|
|
100
|
+
* - `HUMAN` - Human
|
|
101
|
+
*/
|
|
102
|
+
export declare enum QaEvaluationSource {
|
|
103
|
+
AI = "AI",
|
|
104
|
+
HUMAN = "HUMAN"
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Valid values for QaEvaluation.Passed
|
|
108
|
+
*
|
|
109
|
+
* Score at or above the template benchmark, and no auto-fail.
|
|
110
|
+
*
|
|
111
|
+
* @remarks Available options:
|
|
112
|
+
* - `NO` - No
|
|
113
|
+
* - `YES` - Yes
|
|
114
|
+
*/
|
|
115
|
+
export declare enum QaEvaluationPassed {
|
|
116
|
+
NO = "NO",
|
|
117
|
+
YES = "YES"
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Property keys for QaEvaluation
|
|
121
|
+
* Use these constants instead of string literals for type safety
|
|
122
|
+
*/
|
|
123
|
+
export declare enum QaEvaluationPropertyKeys {
|
|
124
|
+
/** The agent’s team at evaluation time, from Case.TeamId. Snapshotted because agents move teams and a historical average must not move with them. */
|
|
125
|
+
TeamId = "TeamId",
|
|
126
|
+
/** Who scored it — the principal on submit, or the AI bot user for Source=AI. Grouping on this is the calibration view. */
|
|
127
|
+
EvaluatorId = "EvaluatorId",
|
|
128
|
+
/** An auto-fail rule was invoked, which zeroes the score whatever else was answered. */
|
|
129
|
+
AutoFail = "AutoFail",
|
|
130
|
+
/** Id of the evaluation this one amends. Set only on an amendment; the record it names moves to the Superseded stage. This is the audit trail. */
|
|
131
|
+
SupersedesId = "SupersedesId",
|
|
132
|
+
/** Source=AI only: the SupportModule:QaReport generation these answers came from, so the HTML report and the structured score stay connected. */
|
|
133
|
+
QaReportId = "QaReportId",
|
|
134
|
+
/** Snapshotted at submit. Without it a later template edit would silently change what an old score meant. */
|
|
135
|
+
TemplateVersion = "TemplateVersion",
|
|
136
|
+
/** When it was submitted. The date every average and trend is bucketed by — not createdAt, so that an amendment lands on the date it was made. */
|
|
137
|
+
EvaluatedAt = "EvaluatedAt",
|
|
138
|
+
/** The gap between the human and AI scores exceeded the configured tolerance and is queued for review. */
|
|
139
|
+
VarianceFlagged = "VarianceFlagged",
|
|
140
|
+
/** The case this evaluation scores. The real link; holds a uuid so it is not shown in tables — the readable reference is the Case column below. */
|
|
141
|
+
CaseId = "CaseId",
|
|
142
|
+
/** Record number of the case this evaluation scores, e.g. SC6490. */
|
|
143
|
+
Case = "Case",
|
|
144
|
+
/** The scorecard template this was scored against. */
|
|
145
|
+
TemplateId = "TemplateId",
|
|
146
|
+
/** Which scorecard applied, copied from the template. */
|
|
147
|
+
Channel = "Channel",
|
|
148
|
+
/** Who scored it. HUMAN is a QA evaluator; AI is the Databricks quality_assurance_report endpoint. Averages report the two separately. */
|
|
149
|
+
Source = "Source",
|
|
150
|
+
/** Score at or above the template benchmark, and no auto-fail. */
|
|
151
|
+
Passed = "Passed",
|
|
152
|
+
/** Which rule, e.g. AF.3 for the GDPR rule. Empty unless AutoFail is YES. */
|
|
153
|
+
AutoFailRuleId = "AutoFailRuleId",
|
|
154
|
+
/** The evaluated agent, from Case.OwnerId at evaluation time. NOT R_AssignedOrgUserId: measured on production 2026-09-04, OwnerId is populated on 77% of classified cases and R_AssignedOrgUserId on none. */
|
|
155
|
+
AgentId = "AgentId",
|
|
156
|
+
/** Point-in-time name of the evaluated agent, so a report reads correctly after someone leaves. */
|
|
157
|
+
AgentName = "AgentName",
|
|
158
|
+
/** Point-in-time name of the evaluator. */
|
|
159
|
+
EvaluatorName = "EvaluatorName",
|
|
160
|
+
/** The evaluator’s overall comment to the agent. */
|
|
161
|
+
Feedback = "Feedback",
|
|
162
|
+
/** 0-100, one decimal place, computed by the scoring engine. N/A answers are excluded from both sides of the fraction rather than scored as zero. */
|
|
163
|
+
Score = "Score",
|
|
164
|
+
/** Human score minus the AI score for the same case, in percentage points. Set on a human submit when an AI evaluation exists. */
|
|
165
|
+
VarianceVsAi = "VarianceVsAi",
|
|
166
|
+
/** Sum of the weights actually scored, out of 100. Below 100 means questions were answered N/A and removed from both sides of the fraction — a score of 90 over 73 points is a different claim from 90 over 100. */
|
|
167
|
+
WeightConsidered = "WeightConsidered"
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Properties for QaEvaluation records
|
|
171
|
+
*
|
|
172
|
+
* @see SupportModule:QaEvaluation
|
|
173
|
+
*/
|
|
174
|
+
export interface QaEvaluationProperties {
|
|
175
|
+
/** The agent’s team at evaluation time, from Case.TeamId. Snapshotted because agents move teams and a historical average must not move with them.
|
|
176
|
+
*
|
|
177
|
+
* @type {TEXT}
|
|
178
|
+
* @default
|
|
179
|
+
*/
|
|
180
|
+
TeamId: string;
|
|
181
|
+
/** Who scored it — the principal on submit, or the AI bot user for Source=AI. Grouping on this is the calibration view.
|
|
182
|
+
*
|
|
183
|
+
* @type {TEXT}
|
|
184
|
+
* @default
|
|
185
|
+
*/
|
|
186
|
+
EvaluatorId: string;
|
|
187
|
+
/** An auto-fail rule was invoked, which zeroes the score whatever else was answered.
|
|
188
|
+
*
|
|
189
|
+
* @type {ENUM}
|
|
190
|
+
* @default
|
|
191
|
+
* @enum {QaEvaluationAutoFail}
|
|
192
|
+
*/
|
|
193
|
+
AutoFail: QaEvaluationAutoFail;
|
|
194
|
+
/** Id of the evaluation this one amends. Set only on an amendment; the record it names moves to the Superseded stage. This is the audit trail.
|
|
195
|
+
*
|
|
196
|
+
* @type {TEXT}
|
|
197
|
+
* @default
|
|
198
|
+
*/
|
|
199
|
+
SupersedesId: string;
|
|
200
|
+
/** Source=AI only: the SupportModule:QaReport generation these answers came from, so the HTML report and the structured score stay connected.
|
|
201
|
+
*
|
|
202
|
+
* @type {TEXT}
|
|
203
|
+
* @default
|
|
204
|
+
*/
|
|
205
|
+
QaReportId: string;
|
|
206
|
+
/** Snapshotted at submit. Without it a later template edit would silently change what an old score meant.
|
|
207
|
+
*
|
|
208
|
+
* @type {NUMBER}
|
|
209
|
+
* @default
|
|
210
|
+
*/
|
|
211
|
+
TemplateVersion: number;
|
|
212
|
+
/** When it was submitted. The date every average and trend is bucketed by — not createdAt, so that an amendment lands on the date it was made.
|
|
213
|
+
*
|
|
214
|
+
* @type {DATE_TIME}
|
|
215
|
+
* @default
|
|
216
|
+
*/
|
|
217
|
+
EvaluatedAt: string;
|
|
218
|
+
/** The gap between the human and AI scores exceeded the configured tolerance and is queued for review.
|
|
219
|
+
*
|
|
220
|
+
* @type {ENUM}
|
|
221
|
+
* @default
|
|
222
|
+
* @enum {QaEvaluationVarianceFlagged}
|
|
223
|
+
*/
|
|
224
|
+
VarianceFlagged: QaEvaluationVarianceFlagged;
|
|
225
|
+
/** The case this evaluation scores. The real link; holds a uuid so it is not shown in tables — the readable reference is the Case column below.
|
|
226
|
+
*
|
|
227
|
+
* @type {LOOKUP}
|
|
228
|
+
* @default
|
|
229
|
+
*/
|
|
230
|
+
CaseId: string;
|
|
231
|
+
/** Record number of the case this evaluation scores, e.g. SC6490.
|
|
232
|
+
*
|
|
233
|
+
* @type {TEXT}
|
|
234
|
+
* @default
|
|
235
|
+
*/
|
|
236
|
+
Case: string;
|
|
237
|
+
/** The scorecard template this was scored against.
|
|
238
|
+
*
|
|
239
|
+
* @type {LOOKUP}
|
|
240
|
+
* @default
|
|
241
|
+
*/
|
|
242
|
+
TemplateId: string;
|
|
243
|
+
/** Which scorecard applied, copied from the template.
|
|
244
|
+
*
|
|
245
|
+
* @type {ENUM}
|
|
246
|
+
* @default
|
|
247
|
+
* @enum {QaEvaluationChannel}
|
|
248
|
+
*/
|
|
249
|
+
Channel: QaEvaluationChannel;
|
|
250
|
+
/** Who scored it. HUMAN is a QA evaluator; AI is the Databricks quality_assurance_report endpoint. Averages report the two separately.
|
|
251
|
+
*
|
|
252
|
+
* @type {ENUM}
|
|
253
|
+
* @default
|
|
254
|
+
* @enum {QaEvaluationSource}
|
|
255
|
+
*/
|
|
256
|
+
Source: QaEvaluationSource;
|
|
257
|
+
/** Score at or above the template benchmark, and no auto-fail.
|
|
258
|
+
*
|
|
259
|
+
* @type {ENUM}
|
|
260
|
+
* @default
|
|
261
|
+
* @enum {QaEvaluationPassed}
|
|
262
|
+
*/
|
|
263
|
+
Passed: QaEvaluationPassed;
|
|
264
|
+
/** Which rule, e.g. AF.3 for the GDPR rule. Empty unless AutoFail is YES.
|
|
265
|
+
*
|
|
266
|
+
* @type {TEXT}
|
|
267
|
+
* @default
|
|
268
|
+
*/
|
|
269
|
+
AutoFailRuleId: string;
|
|
270
|
+
/** The evaluated agent, from Case.OwnerId at evaluation time. NOT R_AssignedOrgUserId: measured on production 2026-09-04, OwnerId is populated on 77% of classified cases and R_AssignedOrgUserId on none.
|
|
271
|
+
*
|
|
272
|
+
* @type {TEXT}
|
|
273
|
+
* @default
|
|
274
|
+
*/
|
|
275
|
+
AgentId: string;
|
|
276
|
+
/** Point-in-time name of the evaluated agent, so a report reads correctly after someone leaves.
|
|
277
|
+
*
|
|
278
|
+
* @type {TEXT}
|
|
279
|
+
* @default
|
|
280
|
+
*/
|
|
281
|
+
AgentName: string;
|
|
282
|
+
/** Point-in-time name of the evaluator.
|
|
283
|
+
*
|
|
284
|
+
* @type {TEXT}
|
|
285
|
+
* @default
|
|
286
|
+
*/
|
|
287
|
+
EvaluatorName: string;
|
|
288
|
+
/** The evaluator’s overall comment to the agent.
|
|
289
|
+
*
|
|
290
|
+
* @type {TEXT_LONG}
|
|
291
|
+
* @default
|
|
292
|
+
*/
|
|
293
|
+
Feedback: string;
|
|
294
|
+
/** 0-100, one decimal place, computed by the scoring engine. N/A answers are excluded from both sides of the fraction rather than scored as zero.
|
|
295
|
+
*
|
|
296
|
+
* @type {NUMBER}
|
|
297
|
+
* @default
|
|
298
|
+
*/
|
|
299
|
+
Score: number;
|
|
300
|
+
/** Human score minus the AI score for the same case, in percentage points. Set on a human submit when an AI evaluation exists.
|
|
301
|
+
*
|
|
302
|
+
* @type {NUMBER}
|
|
303
|
+
* @default
|
|
304
|
+
*/
|
|
305
|
+
VarianceVsAi: number;
|
|
306
|
+
/** Sum of the weights actually scored, out of 100. Below 100 means questions were answered N/A and removed from both sides of the fraction — a score of 90 over 73 points is a different claim from 90 over 100.
|
|
307
|
+
*
|
|
308
|
+
* @type {NUMBER}
|
|
309
|
+
* @default
|
|
310
|
+
*/
|
|
311
|
+
WeightConsidered: number;
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* QaEvaluation entity from SupportModule
|
|
315
|
+
*
|
|
316
|
+
* One scoring of one closed Case against the channel scorecard, by a human evaluator or the AI scorer. Amendments supersede rather than mutate, so a correction moves the averages at once and the original stays readable.
|
|
317
|
+
*
|
|
318
|
+
* @module SupportModule
|
|
319
|
+
* @entity QaEvaluation
|
|
320
|
+
* @schemaId 11880071-fb9e-4270-b64f-3db750b97ea7
|
|
321
|
+
* @recordPrefix QAE
|
|
322
|
+
* @capabilities searchable, updateable, undeletable, triggerable
|
|
323
|
+
*/
|
|
324
|
+
export declare class QaEvaluation extends OdinRecord<QaEvaluationProperties> {
|
|
325
|
+
entity: 'SupportModule:QaEvaluation';
|
|
326
|
+
type: QaEvaluationEntityTypes;
|
|
327
|
+
schemaId: '11880071-fb9e-4270-b64f-3db750b97ea7';
|
|
328
|
+
properties: QaEvaluationProperties;
|
|
329
|
+
/** Linked Case records (Case__QaEvaluation) */
|
|
330
|
+
Case: OdinLink<LinkedOdinRecord<CaseProperties>>;
|
|
331
|
+
/** Linked QaScorecardTemplate records (QaScorecardTemplate__QaEvaluation) */
|
|
332
|
+
QaScorecardTemplate: OdinLink<LinkedOdinRecord<QaScorecardTemplateProperties>>;
|
|
333
|
+
/** Linked CoachingSession records (QaEvaluation__CoachingSession) */
|
|
334
|
+
CoachingSession: OdinLink<LinkedOdinRecord<CoachingSessionProperties>>;
|
|
335
|
+
/** Linked QaEvaluationAnswer records (QaEvaluation__QaEvaluationAnswer) */
|
|
336
|
+
QaEvaluationAnswer: OdinLink<LinkedOdinRecord<QaEvaluationAnswerProperties>>;
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* RabbitMQ routing keys for QaEvaluation events
|
|
340
|
+
*/
|
|
341
|
+
export declare const ROUTING_KEY_QA_EVALUATION_CREATED = "SupportModule.QaEvaluation.SubDbRecordCreated";
|
|
342
|
+
export declare const ROUTING_KEY_QA_EVALUATION_UPDATED = "SupportModule.QaEvaluation.SubDbRecordUpdated";
|
|
343
|
+
export declare const ROUTING_KEY_QA_EVALUATION_DELETED = "SupportModule.QaEvaluation.SubDbRecordDeleted";
|
|
344
|
+
/**
|
|
345
|
+
* Type-specific routing keys for QaEvaluation events
|
|
346
|
+
* Subscribe to these for events on specific entity types only
|
|
347
|
+
*/
|
|
348
|
+
/** This is the default record type created */
|
|
349
|
+
export declare const ROUTING_KEY_QA_EVALUATION_DEFAULT_CREATED = "SupportModule.QaEvaluation.DEFAULT.SubDbRecordCreated";
|
|
350
|
+
/** This is the default record type updated */
|
|
351
|
+
export declare const ROUTING_KEY_QA_EVALUATION_DEFAULT_UPDATED = "SupportModule.QaEvaluation.DEFAULT.SubDbRecordUpdated";
|
|
352
|
+
/** This is the default record type deleted */
|
|
353
|
+
export declare const ROUTING_KEY_QA_EVALUATION_DEFAULT_DELETED = "SupportModule.QaEvaluation.DEFAULT.SubDbRecordDeleted";
|
|
354
|
+
/** Event: QaEvaluation__CoachingSession link created */
|
|
355
|
+
export declare const ROUTING_KEY_LINK_QA_EVALUATION_COACHING_SESSION_CREATED = "SupportModule.QaEvaluation.CoachingSession.SubDbRecordAssociationCreated";
|
|
356
|
+
/** Event: QaEvaluation__CoachingSession link deleted */
|
|
357
|
+
export declare const ROUTING_KEY_LINK_QA_EVALUATION_COACHING_SESSION_DELETED = "SupportModule.QaEvaluation.CoachingSession.SubDbRecordAssociationDeleted";
|
|
358
|
+
/** Event: QaEvaluation__QaEvaluationAnswer link created */
|
|
359
|
+
export declare const ROUTING_KEY_LINK_QA_EVALUATION_QA_EVALUATION_ANSWER_CREATED = "SupportModule.QaEvaluation.QaEvaluationAnswer.SubDbRecordAssociationCreated";
|
|
360
|
+
/** Event: QaEvaluation__QaEvaluationAnswer link deleted */
|
|
361
|
+
export declare const ROUTING_KEY_LINK_QA_EVALUATION_QA_EVALUATION_ANSWER_DELETED = "SupportModule.QaEvaluation.QaEvaluationAnswer.SubDbRecordAssociationDeleted";
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* QaEvaluation Entity Definition
|
|
4
|
+
*
|
|
5
|
+
* One scoring of one closed Case against the channel scorecard, by a human evaluator or the AI scorer. Amendments supersede rather than mutate, so a correction moves the averages at once and the original stays readable.
|
|
6
|
+
*
|
|
7
|
+
* @module SupportModule
|
|
8
|
+
* @entity QaEvaluation
|
|
9
|
+
* @schemaId 11880071-fb9e-4270-b64f-3db750b97ea7
|
|
10
|
+
*
|
|
11
|
+
* AUTO-GENERATED - DO NOT EDIT DIRECTLY
|
|
12
|
+
* Generated from Odin schema definition
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.ROUTING_KEY_LINK_QA_EVALUATION_QA_EVALUATION_ANSWER_DELETED = exports.ROUTING_KEY_LINK_QA_EVALUATION_QA_EVALUATION_ANSWER_CREATED = exports.ROUTING_KEY_LINK_QA_EVALUATION_COACHING_SESSION_DELETED = exports.ROUTING_KEY_LINK_QA_EVALUATION_COACHING_SESSION_CREATED = exports.ROUTING_KEY_QA_EVALUATION_DEFAULT_DELETED = exports.ROUTING_KEY_QA_EVALUATION_DEFAULT_UPDATED = exports.ROUTING_KEY_QA_EVALUATION_DEFAULT_CREATED = exports.ROUTING_KEY_QA_EVALUATION_DELETED = exports.ROUTING_KEY_QA_EVALUATION_UPDATED = exports.ROUTING_KEY_QA_EVALUATION_CREATED = exports.QaEvaluation = exports.QaEvaluationPropertyKeys = exports.QaEvaluationPassed = exports.QaEvaluationSource = exports.QaEvaluationChannel = exports.QaEvaluationVarianceFlagged = exports.QaEvaluationAutoFail = exports.DefaultQaEvaluationStageKeys = exports.DefaultQaEvaluationStageNames = exports.QaEvaluationEntityTypes = void 0;
|
|
16
|
+
const core_1 = require("@d19n/odin-types/dist/core");
|
|
17
|
+
/**
|
|
18
|
+
* Available types for QaEvaluation records
|
|
19
|
+
*/
|
|
20
|
+
var QaEvaluationEntityTypes;
|
|
21
|
+
(function (QaEvaluationEntityTypes) {
|
|
22
|
+
/** This is the default record type */
|
|
23
|
+
QaEvaluationEntityTypes["DEFAULT"] = "DEFAULT";
|
|
24
|
+
})(QaEvaluationEntityTypes = exports.QaEvaluationEntityTypes || (exports.QaEvaluationEntityTypes = {}));
|
|
25
|
+
/**
|
|
26
|
+
* Pipeline stage names for DEFAULT QaEvaluation
|
|
27
|
+
* Pipeline: QA Evaluation Pipeline
|
|
28
|
+
* Draft → Submitted → Superseded. Only Submitted counts toward any average; an amendment creates a new Submitted record and moves the old one to Superseded.
|
|
29
|
+
*/
|
|
30
|
+
var DefaultQaEvaluationStageNames;
|
|
31
|
+
(function (DefaultQaEvaluationStageNames) {
|
|
32
|
+
/** Started and saved without submitting. Private working state — excluded from every average and from the AI-variance comparison. (default) */
|
|
33
|
+
DefaultQaEvaluationStageNames["Draft"] = "Draft";
|
|
34
|
+
/** The evaluation counts. Score, Passed, AutoFail and any variance against the AI are pinned here. This is the only stage the aggregates read. (success) */
|
|
35
|
+
DefaultQaEvaluationStageNames["Submitted"] = "Submitted";
|
|
36
|
+
/** Replaced by an amendment. No longer counts toward any average, but stays readable as the record of what was originally scored and by whom. */
|
|
37
|
+
DefaultQaEvaluationStageNames["Superseded"] = "Superseded";
|
|
38
|
+
})(DefaultQaEvaluationStageNames = exports.DefaultQaEvaluationStageNames || (exports.DefaultQaEvaluationStageNames = {}));
|
|
39
|
+
/**
|
|
40
|
+
* Pipeline stage keys for DEFAULT QaEvaluation
|
|
41
|
+
* Use these keys when transitioning between stages
|
|
42
|
+
*/
|
|
43
|
+
var DefaultQaEvaluationStageKeys;
|
|
44
|
+
(function (DefaultQaEvaluationStageKeys) {
|
|
45
|
+
/** Started and saved without submitting. Private working state — excluded from every average and from the AI-variance comparison. */
|
|
46
|
+
DefaultQaEvaluationStageKeys["QaEvaluationStageDraft"] = "QaEvaluationStageDraft";
|
|
47
|
+
/** The evaluation counts. Score, Passed, AutoFail and any variance against the AI are pinned here. This is the only stage the aggregates read. */
|
|
48
|
+
DefaultQaEvaluationStageKeys["QaEvaluationStageSubmitted"] = "QaEvaluationStageSubmitted";
|
|
49
|
+
/** Replaced by an amendment. No longer counts toward any average, but stays readable as the record of what was originally scored and by whom. */
|
|
50
|
+
DefaultQaEvaluationStageKeys["QaEvaluationStageSuperseded"] = "QaEvaluationStageSuperseded";
|
|
51
|
+
})(DefaultQaEvaluationStageKeys = exports.DefaultQaEvaluationStageKeys || (exports.DefaultQaEvaluationStageKeys = {}));
|
|
52
|
+
/**
|
|
53
|
+
* Valid values for QaEvaluation.AutoFail
|
|
54
|
+
*
|
|
55
|
+
* An auto-fail rule was invoked, which zeroes the score whatever else was answered.
|
|
56
|
+
*
|
|
57
|
+
* @remarks Available options:
|
|
58
|
+
* - `NO` - No
|
|
59
|
+
* - `YES` - Yes
|
|
60
|
+
*/
|
|
61
|
+
var QaEvaluationAutoFail;
|
|
62
|
+
(function (QaEvaluationAutoFail) {
|
|
63
|
+
QaEvaluationAutoFail["NO"] = "NO";
|
|
64
|
+
QaEvaluationAutoFail["YES"] = "YES";
|
|
65
|
+
})(QaEvaluationAutoFail = exports.QaEvaluationAutoFail || (exports.QaEvaluationAutoFail = {}));
|
|
66
|
+
/**
|
|
67
|
+
* Valid values for QaEvaluation.VarianceFlagged
|
|
68
|
+
*
|
|
69
|
+
* The gap between the human and AI scores exceeded the configured tolerance and is queued for review.
|
|
70
|
+
*
|
|
71
|
+
* @remarks Available options:
|
|
72
|
+
* - `NO` - No
|
|
73
|
+
* - `YES` - Yes
|
|
74
|
+
*/
|
|
75
|
+
var QaEvaluationVarianceFlagged;
|
|
76
|
+
(function (QaEvaluationVarianceFlagged) {
|
|
77
|
+
QaEvaluationVarianceFlagged["NO"] = "NO";
|
|
78
|
+
QaEvaluationVarianceFlagged["YES"] = "YES";
|
|
79
|
+
})(QaEvaluationVarianceFlagged = exports.QaEvaluationVarianceFlagged || (exports.QaEvaluationVarianceFlagged = {}));
|
|
80
|
+
/**
|
|
81
|
+
* Valid values for QaEvaluation.Channel
|
|
82
|
+
*
|
|
83
|
+
* Which scorecard applied, copied from the template.
|
|
84
|
+
*
|
|
85
|
+
* @remarks Available options:
|
|
86
|
+
* - `CALL_INBOUND` - Call — inbound
|
|
87
|
+
* - `CALL_OUTBOUND` - Call — outbound
|
|
88
|
+
* - `CHAT` - Chat
|
|
89
|
+
* - `EMAIL` - Email
|
|
90
|
+
*/
|
|
91
|
+
var QaEvaluationChannel;
|
|
92
|
+
(function (QaEvaluationChannel) {
|
|
93
|
+
QaEvaluationChannel["CALL_INBOUND"] = "CALL_INBOUND";
|
|
94
|
+
QaEvaluationChannel["CALL_OUTBOUND"] = "CALL_OUTBOUND";
|
|
95
|
+
QaEvaluationChannel["CHAT"] = "CHAT";
|
|
96
|
+
QaEvaluationChannel["EMAIL"] = "EMAIL";
|
|
97
|
+
})(QaEvaluationChannel = exports.QaEvaluationChannel || (exports.QaEvaluationChannel = {}));
|
|
98
|
+
/**
|
|
99
|
+
* Valid values for QaEvaluation.Source
|
|
100
|
+
*
|
|
101
|
+
* Who scored it. HUMAN is a QA evaluator; AI is the Databricks quality_assurance_report endpoint. Averages report the two separately.
|
|
102
|
+
*
|
|
103
|
+
* @remarks Available options:
|
|
104
|
+
* - `AI`
|
|
105
|
+
* - `HUMAN` - Human
|
|
106
|
+
*/
|
|
107
|
+
var QaEvaluationSource;
|
|
108
|
+
(function (QaEvaluationSource) {
|
|
109
|
+
QaEvaluationSource["AI"] = "AI";
|
|
110
|
+
QaEvaluationSource["HUMAN"] = "HUMAN";
|
|
111
|
+
})(QaEvaluationSource = exports.QaEvaluationSource || (exports.QaEvaluationSource = {}));
|
|
112
|
+
/**
|
|
113
|
+
* Valid values for QaEvaluation.Passed
|
|
114
|
+
*
|
|
115
|
+
* Score at or above the template benchmark, and no auto-fail.
|
|
116
|
+
*
|
|
117
|
+
* @remarks Available options:
|
|
118
|
+
* - `NO` - No
|
|
119
|
+
* - `YES` - Yes
|
|
120
|
+
*/
|
|
121
|
+
var QaEvaluationPassed;
|
|
122
|
+
(function (QaEvaluationPassed) {
|
|
123
|
+
QaEvaluationPassed["NO"] = "NO";
|
|
124
|
+
QaEvaluationPassed["YES"] = "YES";
|
|
125
|
+
})(QaEvaluationPassed = exports.QaEvaluationPassed || (exports.QaEvaluationPassed = {}));
|
|
126
|
+
/**
|
|
127
|
+
* Property keys for QaEvaluation
|
|
128
|
+
* Use these constants instead of string literals for type safety
|
|
129
|
+
*/
|
|
130
|
+
var QaEvaluationPropertyKeys;
|
|
131
|
+
(function (QaEvaluationPropertyKeys) {
|
|
132
|
+
/** The agent’s team at evaluation time, from Case.TeamId. Snapshotted because agents move teams and a historical average must not move with them. */
|
|
133
|
+
QaEvaluationPropertyKeys["TeamId"] = "TeamId";
|
|
134
|
+
/** Who scored it — the principal on submit, or the AI bot user for Source=AI. Grouping on this is the calibration view. */
|
|
135
|
+
QaEvaluationPropertyKeys["EvaluatorId"] = "EvaluatorId";
|
|
136
|
+
/** An auto-fail rule was invoked, which zeroes the score whatever else was answered. */
|
|
137
|
+
QaEvaluationPropertyKeys["AutoFail"] = "AutoFail";
|
|
138
|
+
/** Id of the evaluation this one amends. Set only on an amendment; the record it names moves to the Superseded stage. This is the audit trail. */
|
|
139
|
+
QaEvaluationPropertyKeys["SupersedesId"] = "SupersedesId";
|
|
140
|
+
/** Source=AI only: the SupportModule:QaReport generation these answers came from, so the HTML report and the structured score stay connected. */
|
|
141
|
+
QaEvaluationPropertyKeys["QaReportId"] = "QaReportId";
|
|
142
|
+
/** Snapshotted at submit. Without it a later template edit would silently change what an old score meant. */
|
|
143
|
+
QaEvaluationPropertyKeys["TemplateVersion"] = "TemplateVersion";
|
|
144
|
+
/** When it was submitted. The date every average and trend is bucketed by — not createdAt, so that an amendment lands on the date it was made. */
|
|
145
|
+
QaEvaluationPropertyKeys["EvaluatedAt"] = "EvaluatedAt";
|
|
146
|
+
/** The gap between the human and AI scores exceeded the configured tolerance and is queued for review. */
|
|
147
|
+
QaEvaluationPropertyKeys["VarianceFlagged"] = "VarianceFlagged";
|
|
148
|
+
/** The case this evaluation scores. The real link; holds a uuid so it is not shown in tables — the readable reference is the Case column below. */
|
|
149
|
+
QaEvaluationPropertyKeys["CaseId"] = "CaseId";
|
|
150
|
+
/** Record number of the case this evaluation scores, e.g. SC6490. */
|
|
151
|
+
QaEvaluationPropertyKeys["Case"] = "Case";
|
|
152
|
+
/** The scorecard template this was scored against. */
|
|
153
|
+
QaEvaluationPropertyKeys["TemplateId"] = "TemplateId";
|
|
154
|
+
/** Which scorecard applied, copied from the template. */
|
|
155
|
+
QaEvaluationPropertyKeys["Channel"] = "Channel";
|
|
156
|
+
/** Who scored it. HUMAN is a QA evaluator; AI is the Databricks quality_assurance_report endpoint. Averages report the two separately. */
|
|
157
|
+
QaEvaluationPropertyKeys["Source"] = "Source";
|
|
158
|
+
/** Score at or above the template benchmark, and no auto-fail. */
|
|
159
|
+
QaEvaluationPropertyKeys["Passed"] = "Passed";
|
|
160
|
+
/** Which rule, e.g. AF.3 for the GDPR rule. Empty unless AutoFail is YES. */
|
|
161
|
+
QaEvaluationPropertyKeys["AutoFailRuleId"] = "AutoFailRuleId";
|
|
162
|
+
/** The evaluated agent, from Case.OwnerId at evaluation time. NOT R_AssignedOrgUserId: measured on production 2026-09-04, OwnerId is populated on 77% of classified cases and R_AssignedOrgUserId on none. */
|
|
163
|
+
QaEvaluationPropertyKeys["AgentId"] = "AgentId";
|
|
164
|
+
/** Point-in-time name of the evaluated agent, so a report reads correctly after someone leaves. */
|
|
165
|
+
QaEvaluationPropertyKeys["AgentName"] = "AgentName";
|
|
166
|
+
/** Point-in-time name of the evaluator. */
|
|
167
|
+
QaEvaluationPropertyKeys["EvaluatorName"] = "EvaluatorName";
|
|
168
|
+
/** The evaluator’s overall comment to the agent. */
|
|
169
|
+
QaEvaluationPropertyKeys["Feedback"] = "Feedback";
|
|
170
|
+
/** 0-100, one decimal place, computed by the scoring engine. N/A answers are excluded from both sides of the fraction rather than scored as zero. */
|
|
171
|
+
QaEvaluationPropertyKeys["Score"] = "Score";
|
|
172
|
+
/** Human score minus the AI score for the same case, in percentage points. Set on a human submit when an AI evaluation exists. */
|
|
173
|
+
QaEvaluationPropertyKeys["VarianceVsAi"] = "VarianceVsAi";
|
|
174
|
+
/** Sum of the weights actually scored, out of 100. Below 100 means questions were answered N/A and removed from both sides of the fraction — a score of 90 over 73 points is a different claim from 90 over 100. */
|
|
175
|
+
QaEvaluationPropertyKeys["WeightConsidered"] = "WeightConsidered";
|
|
176
|
+
})(QaEvaluationPropertyKeys = exports.QaEvaluationPropertyKeys || (exports.QaEvaluationPropertyKeys = {}));
|
|
177
|
+
/**
|
|
178
|
+
* QaEvaluation entity from SupportModule
|
|
179
|
+
*
|
|
180
|
+
* One scoring of one closed Case against the channel scorecard, by a human evaluator or the AI scorer. Amendments supersede rather than mutate, so a correction moves the averages at once and the original stays readable.
|
|
181
|
+
*
|
|
182
|
+
* @module SupportModule
|
|
183
|
+
* @entity QaEvaluation
|
|
184
|
+
* @schemaId 11880071-fb9e-4270-b64f-3db750b97ea7
|
|
185
|
+
* @recordPrefix QAE
|
|
186
|
+
* @capabilities searchable, updateable, undeletable, triggerable
|
|
187
|
+
*/
|
|
188
|
+
class QaEvaluation extends core_1.OdinRecord {
|
|
189
|
+
}
|
|
190
|
+
exports.QaEvaluation = QaEvaluation;
|
|
191
|
+
// ============================================
|
|
192
|
+
// RABBITMQ EVENT ROUTING KEYS
|
|
193
|
+
// ============================================
|
|
194
|
+
/**
|
|
195
|
+
* RabbitMQ routing keys for QaEvaluation events
|
|
196
|
+
*/
|
|
197
|
+
exports.ROUTING_KEY_QA_EVALUATION_CREATED = 'SupportModule.QaEvaluation.SubDbRecordCreated';
|
|
198
|
+
exports.ROUTING_KEY_QA_EVALUATION_UPDATED = 'SupportModule.QaEvaluation.SubDbRecordUpdated';
|
|
199
|
+
exports.ROUTING_KEY_QA_EVALUATION_DELETED = 'SupportModule.QaEvaluation.SubDbRecordDeleted';
|
|
200
|
+
/**
|
|
201
|
+
* Type-specific routing keys for QaEvaluation events
|
|
202
|
+
* Subscribe to these for events on specific entity types only
|
|
203
|
+
*/
|
|
204
|
+
/** This is the default record type created */
|
|
205
|
+
exports.ROUTING_KEY_QA_EVALUATION_DEFAULT_CREATED = 'SupportModule.QaEvaluation.DEFAULT.SubDbRecordCreated';
|
|
206
|
+
/** This is the default record type updated */
|
|
207
|
+
exports.ROUTING_KEY_QA_EVALUATION_DEFAULT_UPDATED = 'SupportModule.QaEvaluation.DEFAULT.SubDbRecordUpdated';
|
|
208
|
+
/** This is the default record type deleted */
|
|
209
|
+
exports.ROUTING_KEY_QA_EVALUATION_DEFAULT_DELETED = 'SupportModule.QaEvaluation.DEFAULT.SubDbRecordDeleted';
|
|
210
|
+
/** Event: QaEvaluation__CoachingSession link created */
|
|
211
|
+
exports.ROUTING_KEY_LINK_QA_EVALUATION_COACHING_SESSION_CREATED = 'SupportModule.QaEvaluation.CoachingSession.SubDbRecordAssociationCreated';
|
|
212
|
+
/** Event: QaEvaluation__CoachingSession link deleted */
|
|
213
|
+
exports.ROUTING_KEY_LINK_QA_EVALUATION_COACHING_SESSION_DELETED = 'SupportModule.QaEvaluation.CoachingSession.SubDbRecordAssociationDeleted';
|
|
214
|
+
/** Event: QaEvaluation__QaEvaluationAnswer link created */
|
|
215
|
+
exports.ROUTING_KEY_LINK_QA_EVALUATION_QA_EVALUATION_ANSWER_CREATED = 'SupportModule.QaEvaluation.QaEvaluationAnswer.SubDbRecordAssociationCreated';
|
|
216
|
+
/** Event: QaEvaluation__QaEvaluationAnswer link deleted */
|
|
217
|
+
exports.ROUTING_KEY_LINK_QA_EVALUATION_QA_EVALUATION_ANSWER_DELETED = 'SupportModule.QaEvaluation.QaEvaluationAnswer.SubDbRecordAssociationDeleted';
|