@roarkanalytics/sdk 3.10.0 → 3.12.0
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/CHANGELOG.md +36 -0
- package/client.d.mts +7 -4
- package/client.d.mts.map +1 -1
- package/client.d.ts +7 -4
- package/client.d.ts.map +1 -1
- package/client.js +3 -0
- package/client.js.map +1 -1
- package/client.mjs +3 -0
- package/client.mjs.map +1 -1
- package/package.json +1 -1
- package/resources/agent-prompt.d.mts +129 -0
- package/resources/agent-prompt.d.mts.map +1 -0
- package/resources/agent-prompt.d.ts +129 -0
- package/resources/agent-prompt.d.ts.map +1 -0
- package/resources/agent-prompt.js +58 -0
- package/resources/agent-prompt.js.map +1 -0
- package/resources/agent-prompt.mjs +54 -0
- package/resources/agent-prompt.mjs.map +1 -0
- package/resources/call.d.mts +1 -1
- package/resources/call.d.mts.map +1 -1
- package/resources/call.d.ts +1 -1
- package/resources/call.d.ts.map +1 -1
- package/resources/config.d.mts +166 -18
- package/resources/config.d.mts.map +1 -1
- package/resources/config.d.ts +166 -18
- package/resources/config.d.ts.map +1 -1
- package/resources/customer-flow-edge-case.d.mts +72 -9
- package/resources/customer-flow-edge-case.d.mts.map +1 -1
- package/resources/customer-flow-edge-case.d.ts +72 -9
- package/resources/customer-flow-edge-case.d.ts.map +1 -1
- package/resources/customer-flow.d.mts +2005 -78
- package/resources/customer-flow.d.mts.map +1 -1
- package/resources/customer-flow.d.ts +2005 -78
- package/resources/customer-flow.d.ts.map +1 -1
- package/resources/customer-flow.js +18 -0
- package/resources/customer-flow.js.map +1 -1
- package/resources/customer-flow.mjs +18 -0
- package/resources/customer-flow.mjs.map +1 -1
- package/resources/index.d.mts +3 -2
- package/resources/index.d.mts.map +1 -1
- package/resources/index.d.ts +3 -2
- package/resources/index.d.ts.map +1 -1
- package/resources/index.js +3 -1
- package/resources/index.js.map +1 -1
- package/resources/index.mjs +1 -0
- package/resources/index.mjs.map +1 -1
- package/resources/simulation-environment.d.mts +163 -1
- package/resources/simulation-environment.d.mts.map +1 -1
- package/resources/simulation-environment.d.ts +163 -1
- package/resources/simulation-environment.d.ts.map +1 -1
- package/resources/simulation-environment.js +51 -0
- package/resources/simulation-environment.js.map +1 -1
- package/resources/simulation-environment.mjs +51 -0
- package/resources/simulation-environment.mjs.map +1 -1
- package/resources/simulation-job.d.mts +62 -2
- package/resources/simulation-job.d.mts.map +1 -1
- package/resources/simulation-job.d.ts +62 -2
- package/resources/simulation-job.d.ts.map +1 -1
- package/resources/simulation-persona.d.mts +42 -6
- package/resources/simulation-persona.d.mts.map +1 -1
- package/resources/simulation-persona.d.ts +42 -6
- package/resources/simulation-persona.d.ts.map +1 -1
- package/resources/simulation-run-plan-job.d.mts +31 -1
- package/resources/simulation-run-plan-job.d.mts.map +1 -1
- package/resources/simulation-run-plan-job.d.ts +31 -1
- package/resources/simulation-run-plan-job.d.ts.map +1 -1
- package/resources/simulation-run-plan.d.mts +154 -12
- package/resources/simulation-run-plan.d.mts.map +1 -1
- package/resources/simulation-run-plan.d.ts +154 -12
- package/resources/simulation-run-plan.d.ts.map +1 -1
- package/resources/simulation-template.d.mts +10 -0
- package/resources/simulation-template.d.mts.map +1 -1
- package/resources/simulation-template.d.ts +10 -0
- package/resources/simulation-template.d.ts.map +1 -1
- package/resources/simulation.d.mts +221 -6
- package/resources/simulation.d.mts.map +1 -1
- package/resources/simulation.d.ts +221 -6
- package/resources/simulation.d.ts.map +1 -1
- package/resources/simulation.js +10 -3
- package/resources/simulation.js.map +1 -1
- package/resources/simulation.mjs +10 -3
- package/resources/simulation.mjs.map +1 -1
- package/src/client.ts +33 -0
- package/src/resources/agent-prompt.ts +183 -0
- package/src/resources/call.ts +1 -1
- package/src/resources/config.ts +310 -20
- package/src/resources/customer-flow-edge-case.ts +180 -9
- package/src/resources/customer-flow.ts +3091 -63
- package/src/resources/index.ts +15 -0
- package/src/resources/simulation-environment.ts +244 -0
- package/src/resources/simulation-job.ts +92 -2
- package/src/resources/simulation-persona.ts +108 -6
- package/src/resources/simulation-run-plan-job.ts +39 -1
- package/src/resources/simulation-run-plan.ts +176 -12
- package/src/resources/simulation-template.ts +11 -0
- package/src/resources/simulation.ts +247 -6
- package/src/version.ts +1 -1
- package/version.d.mts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
|
@@ -57,6 +57,22 @@ export declare class CustomerFlow extends APIResource {
|
|
|
57
57
|
* ```
|
|
58
58
|
*/
|
|
59
59
|
delete(flowID: string, options?: RequestOptions): APIPromise<CustomerFlowDeleteResponse>;
|
|
60
|
+
/**
|
|
61
|
+
* Deep-copies a flow into a new project-owned flow. The copy carries the source's
|
|
62
|
+
* description, branching mode, linked agents, flow-level expectations and
|
|
63
|
+
* flow-owned metrics. A scripted flow copies its whole step graph; an improv flow
|
|
64
|
+
* copies its variants (personas, briefs, expectations). Duplicating a
|
|
65
|
+
* Roark-managed flow is how you customise it. Voicemail flows are Roark-managed
|
|
66
|
+
* and cannot be duplicated.
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```ts
|
|
70
|
+
* const response = await client.customerFlow.duplicate(
|
|
71
|
+
* '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
|
|
72
|
+
* );
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
duplicate(flowID: string, body?: CustomerFlowDuplicateParams | null | undefined, options?: RequestOptions): APIPromise<CustomerFlowDuplicateResponse>;
|
|
60
76
|
/**
|
|
61
77
|
* Returns a customer flow with its happy path, edge cases, expectations and linked
|
|
62
78
|
* agents. Scripted flows also carry their step graph.
|
|
@@ -125,23 +141,44 @@ export declare class CustomerFlow extends APIResource {
|
|
|
125
141
|
* step is a root wired straight from the start of the flow, so a merge target
|
|
126
142
|
* parked there would also be reachable directly.
|
|
127
143
|
*
|
|
144
|
+
* A `CUSTOMER_TURN` describes what the simulated customer says and the persona
|
|
145
|
+
* phrases it; a `CUSTOMER_VERBATIM_TURN` is said word for word, and one placed as
|
|
146
|
+
* a top-level step opens the call the moment it connects, before the agent speaks.
|
|
147
|
+
* `CUSTOMER_FIRST_MESSAGE` is the retired name for that opening case: still
|
|
148
|
+
* accepted, stored and returned as `CUSTOMER_VERBATIM_TURN`.
|
|
149
|
+
*
|
|
128
150
|
* The two DTMF types are mirror images and both require `dtmfDigits`.
|
|
129
151
|
* `CUSTOMER_DTMF` is keys the simulated caller presses while navigating your
|
|
130
152
|
* agent. `AGENT_DTMF` is keys your agent under test is expected to press while
|
|
131
153
|
* navigating a menu the simulation is playing, so its digits are an assertion the
|
|
132
154
|
* run is graded against rather than an instruction, and it counts as an agent turn
|
|
133
155
|
* for role alternation.
|
|
156
|
+
*
|
|
157
|
+
* In a STRICT flow an `AGENT_TURN` may carry its own `offScriptPolicy`, which
|
|
158
|
+
* replaces the flow-level one at that step. Omit it (or send null) to follow the
|
|
159
|
+
* flow's policy. Use it where one missed step makes the rest of the call
|
|
160
|
+
* meaningless: an authentication menu, say, with `then: HANG_UP_INVALIDATE`.
|
|
134
161
|
*/
|
|
135
|
-
export type FlowStep = FlowStep.UnionMember0 | FlowStep.UnionMember1 | FlowStep.UnionMember2 | FlowStep.UnionMember3 | FlowStep.UnionMember4 | FlowStep.UnionMember5 | FlowStep.UnionMember6 | FlowStep.UnionMember7;
|
|
162
|
+
export type FlowStep = FlowStep.UnionMember0 | FlowStep.UnionMember1 | FlowStep.UnionMember2 | FlowStep.UnionMember3 | FlowStep.UnionMember4 | FlowStep.UnionMember5 | FlowStep.UnionMember6 | FlowStep.UnionMember7 | FlowStep.UnionMember8;
|
|
136
163
|
export declare namespace FlowStep {
|
|
137
164
|
interface UnionMember0 {
|
|
138
165
|
type: 'AGENT_TURN';
|
|
139
166
|
content?: string | null;
|
|
140
167
|
mergeIntoNodeIds?: Array<string>;
|
|
141
168
|
nodeId?: string;
|
|
169
|
+
offScriptPolicy?: UnionMember0.OffScriptPolicy | null;
|
|
142
170
|
ref?: string;
|
|
143
171
|
steps?: Array<CustomerFlowAPI.FlowStep>;
|
|
144
172
|
}
|
|
173
|
+
namespace UnionMember0 {
|
|
174
|
+
interface OffScriptPolicy {
|
|
175
|
+
maxAttempts: number;
|
|
176
|
+
reaction: 'STAY_SILENT' | 'REPEAT' | 'RESPOND' | 'SAY';
|
|
177
|
+
then: 'HANG_UP' | 'MOVE_ON' | 'ADAPT' | 'HANG_UP_INVALIDATE';
|
|
178
|
+
sayLine?: string | null;
|
|
179
|
+
waitSeconds?: number | null;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
145
182
|
interface UnionMember1 {
|
|
146
183
|
type: 'CUSTOMER_TURN';
|
|
147
184
|
content?: string | null;
|
|
@@ -159,6 +196,14 @@ export declare namespace FlowStep {
|
|
|
159
196
|
steps?: Array<CustomerFlowAPI.FlowStep>;
|
|
160
197
|
}
|
|
161
198
|
interface UnionMember3 {
|
|
199
|
+
type: 'CUSTOMER_VERBATIM_TURN';
|
|
200
|
+
content?: string | null;
|
|
201
|
+
mergeIntoNodeIds?: Array<string>;
|
|
202
|
+
nodeId?: string;
|
|
203
|
+
ref?: string;
|
|
204
|
+
steps?: Array<CustomerFlowAPI.FlowStep>;
|
|
205
|
+
}
|
|
206
|
+
interface UnionMember4 {
|
|
162
207
|
type: 'CUSTOMER_SILENCE';
|
|
163
208
|
mergeIntoNodeIds?: Array<string>;
|
|
164
209
|
nodeId?: string;
|
|
@@ -166,7 +211,7 @@ export declare namespace FlowStep {
|
|
|
166
211
|
silenceDurationSeconds?: number | null;
|
|
167
212
|
steps?: Array<CustomerFlowAPI.FlowStep>;
|
|
168
213
|
}
|
|
169
|
-
interface
|
|
214
|
+
interface UnionMember5 {
|
|
170
215
|
type: 'CUSTOMER_DTMF';
|
|
171
216
|
dtmfDigits?: string | null;
|
|
172
217
|
mergeIntoNodeIds?: Array<string>;
|
|
@@ -174,7 +219,7 @@ export declare namespace FlowStep {
|
|
|
174
219
|
ref?: string;
|
|
175
220
|
steps?: Array<CustomerFlowAPI.FlowStep>;
|
|
176
221
|
}
|
|
177
|
-
interface
|
|
222
|
+
interface UnionMember6 {
|
|
178
223
|
type: 'AGENT_DTMF';
|
|
179
224
|
dtmfDigits?: string | null;
|
|
180
225
|
mergeIntoNodeIds?: Array<string>;
|
|
@@ -182,14 +227,14 @@ export declare namespace FlowStep {
|
|
|
182
227
|
ref?: string;
|
|
183
228
|
steps?: Array<CustomerFlowAPI.FlowStep>;
|
|
184
229
|
}
|
|
185
|
-
interface
|
|
230
|
+
interface UnionMember7 {
|
|
186
231
|
type: 'VOICEMAIL';
|
|
187
232
|
mergeIntoNodeIds?: Array<string>;
|
|
188
233
|
nodeId?: string;
|
|
189
234
|
ref?: string;
|
|
190
235
|
steps?: Array<CustomerFlowAPI.FlowStep>;
|
|
191
236
|
}
|
|
192
|
-
interface
|
|
237
|
+
interface UnionMember8 {
|
|
193
238
|
type: 'SCENARIO_LINK';
|
|
194
239
|
linkedCustomerFlowId?: string | null;
|
|
195
240
|
linkedCustomerFlowVariantId?: string | null;
|
|
@@ -199,13 +244,1434 @@ export declare namespace FlowStep {
|
|
|
199
244
|
steps?: Array<CustomerFlowAPI.FlowStep>;
|
|
200
245
|
}
|
|
201
246
|
}
|
|
202
|
-
export interface CustomerFlowCreateResponse {
|
|
247
|
+
export interface CustomerFlowCreateResponse {
|
|
248
|
+
/**
|
|
249
|
+
* The conversation a simulated customer has with the agent under test.
|
|
250
|
+
*/
|
|
251
|
+
data: CustomerFlowCreateResponse.ScriptedCustomerFlow | CustomerFlowCreateResponse.ImprovCustomerFlow | CustomerFlowCreateResponse.VoicemailCustomerFlow;
|
|
252
|
+
}
|
|
253
|
+
export declare namespace CustomerFlowCreateResponse {
|
|
254
|
+
/**
|
|
255
|
+
* A flow whose conversation is written out as a graph of turns.
|
|
256
|
+
*/
|
|
257
|
+
interface ScriptedCustomerFlow {
|
|
258
|
+
id: string;
|
|
259
|
+
agentExpectations: Array<ScriptedCustomerFlow.AgentExpectation>;
|
|
260
|
+
/**
|
|
261
|
+
* The agents this flow is run against.
|
|
262
|
+
*/
|
|
263
|
+
agents: Array<ScriptedCustomerFlow.Agent>;
|
|
264
|
+
/**
|
|
265
|
+
* How a run walks the graph. DETERMINISTIC ("Simulate every path" in the app)
|
|
266
|
+
* places one call per variant, each following its path exactly whatever the agent
|
|
267
|
+
* says. ADAPTIVE ("Adapt to your agent") collapses the paths into one call PER
|
|
268
|
+
* PERSONA, on which the simulated customer picks a branch from what the agent
|
|
269
|
+
* actually said. Both modes speak the exact authored lines, and neither changes
|
|
270
|
+
* how metrics or expectations grade.
|
|
271
|
+
*/
|
|
272
|
+
branchingMode: 'DETERMINISTIC' | 'ADAPTIVE';
|
|
273
|
+
/**
|
|
274
|
+
* Creation timestamp in ISO 8601 format
|
|
275
|
+
*/
|
|
276
|
+
createdAt: string;
|
|
277
|
+
/**
|
|
278
|
+
* Every other way of running this flow.
|
|
279
|
+
*/
|
|
280
|
+
edgeCases: Array<ScriptedCustomerFlow.EdgeCase>;
|
|
281
|
+
/**
|
|
282
|
+
* One path through a scripted flow. The path engine owns which paths exist, so
|
|
283
|
+
* editing the graph is what creates and removes these.
|
|
284
|
+
*/
|
|
285
|
+
happyPath: ScriptedCustomerFlow.HappyPath | null;
|
|
286
|
+
/**
|
|
287
|
+
* STRICT only. What the simulated customer does when your agent does not say the
|
|
288
|
+
* expected line. Each unmatched agent utterance is an attempt: `reaction` runs per
|
|
289
|
+
* attempt (STAY_SILENT, REPEAT its last scripted line, RESPOND once in character
|
|
290
|
+
* without moving on, or SAY `sayLine`), and `then` runs when attempts reach
|
|
291
|
+
* `maxAttempts` or your agent stays silent for `waitSeconds` (HANG_UP ends the
|
|
292
|
+
* call with ended reason SCRIPT_DIVERGED, HANG_UP_INVALIDATE ends it the same way
|
|
293
|
+
* and invalidates the run so it is scored by nothing and counted nowhere, MOVE_ON
|
|
294
|
+
* advances anyway, ADAPT hands the rest of the call to loose behaviour). Null:
|
|
295
|
+
* stay silent, 3 attempts, hang up. The default for every agent step; an
|
|
296
|
+
* AGENT_TURN step can carry its own.
|
|
297
|
+
*/
|
|
298
|
+
offScriptPolicy: ScriptedCustomerFlow.OffScriptPolicy | null;
|
|
299
|
+
/**
|
|
300
|
+
* How closely a run follows the script. LOOSE (default) hands the whole script to
|
|
301
|
+
* the simulated customer as one prompt; it keeps the call moving whatever your
|
|
302
|
+
* agent says. STRICT runs the script as a state machine on the agent service: at
|
|
303
|
+
* every agent step the simulated customer waits, silent, until your agent has said
|
|
304
|
+
* the expected line, and only then moves on. Scripted flows only; STRICT needs the
|
|
305
|
+
* agent-service transport and is not available on realtime models.
|
|
306
|
+
*/
|
|
307
|
+
scriptAdherence: 'LOOSE' | 'STRICT';
|
|
308
|
+
source: 'SYSTEM' | 'CUSTOM';
|
|
309
|
+
title: string;
|
|
310
|
+
type: 'SCRIPTED';
|
|
311
|
+
/**
|
|
312
|
+
* Last update timestamp in ISO 8601 format
|
|
313
|
+
*/
|
|
314
|
+
updatedAt: string;
|
|
315
|
+
description?: string | null;
|
|
316
|
+
/**
|
|
317
|
+
* The conversation, as a graph of steps. Present on a single flow; omitted from
|
|
318
|
+
* the list, where reading it would mean walking the project step graph once per
|
|
319
|
+
* row.
|
|
320
|
+
*/
|
|
321
|
+
graph?: Array<CustomerFlowAPI.FlowStep>;
|
|
322
|
+
}
|
|
323
|
+
namespace ScriptedCustomerFlow {
|
|
324
|
+
/**
|
|
325
|
+
* One thing the agent under test is graded against.
|
|
326
|
+
*/
|
|
327
|
+
interface AgentExpectation {
|
|
328
|
+
id: string;
|
|
329
|
+
/**
|
|
330
|
+
* What the agent under test is graded against.
|
|
331
|
+
*/
|
|
332
|
+
prompt: string;
|
|
333
|
+
}
|
|
334
|
+
interface Agent {
|
|
335
|
+
/**
|
|
336
|
+
* Unique identifier of the agent
|
|
337
|
+
*/
|
|
338
|
+
id: string;
|
|
339
|
+
/**
|
|
340
|
+
* Creation timestamp in ISO 8601 format
|
|
341
|
+
*/
|
|
342
|
+
createdAt: string;
|
|
343
|
+
/**
|
|
344
|
+
* Custom identifier for the agent
|
|
345
|
+
*/
|
|
346
|
+
customId: string | null;
|
|
347
|
+
/**
|
|
348
|
+
* Description of the agent
|
|
349
|
+
*/
|
|
350
|
+
description: string | null;
|
|
351
|
+
/**
|
|
352
|
+
* Name of the agent
|
|
353
|
+
*/
|
|
354
|
+
name: string;
|
|
355
|
+
/**
|
|
356
|
+
* Last update timestamp in ISO 8601 format
|
|
357
|
+
*/
|
|
358
|
+
updatedAt: string;
|
|
359
|
+
}
|
|
360
|
+
/**
|
|
361
|
+
* One path through a scripted flow. The path engine owns which paths exist, so
|
|
362
|
+
* editing the graph is what creates and removes these.
|
|
363
|
+
*/
|
|
364
|
+
interface EdgeCase {
|
|
365
|
+
id: string;
|
|
366
|
+
/**
|
|
367
|
+
* Graded on top of the flow's own expectations, for this variant only.
|
|
368
|
+
*/
|
|
369
|
+
additionalExpectations: Array<EdgeCase.AdditionalExpectation>;
|
|
370
|
+
/**
|
|
371
|
+
* Creation timestamp in ISO 8601 format
|
|
372
|
+
*/
|
|
373
|
+
createdAt: string;
|
|
374
|
+
/**
|
|
375
|
+
* A simulation environment: the ambient conditions a customer flow variant runs
|
|
376
|
+
* under. The list includes both your own and the ones Roark curates for every
|
|
377
|
+
* project.
|
|
378
|
+
*/
|
|
379
|
+
environment: EdgeCase.Environment | null;
|
|
380
|
+
isGenerated: boolean;
|
|
381
|
+
/**
|
|
382
|
+
* The persona this runs as instead of the happy path's. Null means it inherits.
|
|
383
|
+
*/
|
|
384
|
+
personaOverride: EdgeCase.PersonaOverride | null;
|
|
385
|
+
precededByCustomerFlowId: string | null;
|
|
386
|
+
precededByCustomerFlowVariantId: string | null;
|
|
387
|
+
/**
|
|
388
|
+
* The one path through the graph this variant runs, in order. Linear by
|
|
389
|
+
* construction, so these steps never nest.
|
|
390
|
+
*/
|
|
391
|
+
steps: Array<CustomerFlowAPI.FlowStep>;
|
|
392
|
+
title: string;
|
|
393
|
+
type: 'SCRIPTED';
|
|
394
|
+
/**
|
|
395
|
+
* Last update timestamp in ISO 8601 format
|
|
396
|
+
*/
|
|
397
|
+
updatedAt: string;
|
|
398
|
+
systemKey?: string | null;
|
|
399
|
+
}
|
|
400
|
+
namespace EdgeCase {
|
|
401
|
+
/**
|
|
402
|
+
* One thing the agent under test is graded against.
|
|
403
|
+
*/
|
|
404
|
+
interface AdditionalExpectation {
|
|
405
|
+
id: string;
|
|
406
|
+
/**
|
|
407
|
+
* What the agent under test is graded against.
|
|
408
|
+
*/
|
|
409
|
+
prompt: string;
|
|
410
|
+
}
|
|
411
|
+
/**
|
|
412
|
+
* A simulation environment: the ambient conditions a customer flow variant runs
|
|
413
|
+
* under. The list includes both your own and the ones Roark curates for every
|
|
414
|
+
* project.
|
|
415
|
+
*/
|
|
416
|
+
interface Environment {
|
|
417
|
+
id: string;
|
|
418
|
+
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
419
|
+
backgroundNoiseVolume: number;
|
|
420
|
+
/**
|
|
421
|
+
* Creation timestamp in ISO 8601 format
|
|
422
|
+
*/
|
|
423
|
+
createdAt: string;
|
|
424
|
+
name: string;
|
|
425
|
+
/**
|
|
426
|
+
* Last update timestamp in ISO 8601 format
|
|
427
|
+
*/
|
|
428
|
+
updatedAt: string;
|
|
429
|
+
description?: string | null;
|
|
430
|
+
}
|
|
431
|
+
/**
|
|
432
|
+
* The persona this runs as instead of the happy path's. Null means it inherits.
|
|
433
|
+
*/
|
|
434
|
+
interface PersonaOverride {
|
|
435
|
+
/**
|
|
436
|
+
* Unique identifier of the persona
|
|
437
|
+
*/
|
|
438
|
+
id: string;
|
|
439
|
+
/**
|
|
440
|
+
* Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with
|
|
441
|
+
* optional variants
|
|
442
|
+
*/
|
|
443
|
+
accent: 'US' | 'US_X_SOUTH' | 'GB' | 'ES' | 'DE' | 'IN' | 'FR' | 'NL' | 'SA' | 'GR' | 'AU' | 'IT' | 'ID' | 'TH' | 'JP' | 'NZ' | 'PH' | 'SG' | 'MY' | 'HK' | 'TR' | 'PT' | 'IL';
|
|
444
|
+
/**
|
|
445
|
+
* How old the caller sounds and behaves. Only ages the persona's accent has a
|
|
446
|
+
* voice for are accepted; defaults to ADULT, which every accent supports.
|
|
447
|
+
*/
|
|
448
|
+
age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY';
|
|
449
|
+
/**
|
|
450
|
+
* Background noise setting
|
|
451
|
+
*/
|
|
452
|
+
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
453
|
+
/**
|
|
454
|
+
* Base emotional state of the persona
|
|
455
|
+
*/
|
|
456
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
457
|
+
/**
|
|
458
|
+
* How the persona confirms information
|
|
459
|
+
*/
|
|
460
|
+
confirmationStyle: 'EXPLICIT' | 'VAGUE';
|
|
461
|
+
/**
|
|
462
|
+
* Creation timestamp
|
|
463
|
+
*/
|
|
464
|
+
createdAt: string;
|
|
465
|
+
/**
|
|
466
|
+
* Gender of the persona
|
|
467
|
+
*/
|
|
468
|
+
gender: 'MALE' | 'FEMALE';
|
|
469
|
+
/**
|
|
470
|
+
* Whether the persona uses filler words like "um" and "uh"
|
|
471
|
+
*/
|
|
472
|
+
hasDisfluencies: boolean;
|
|
473
|
+
/**
|
|
474
|
+
* Maximum number of idle messages the persona will send before giving up
|
|
475
|
+
*/
|
|
476
|
+
idleMessageMaxSpokenCount: number;
|
|
477
|
+
/**
|
|
478
|
+
* Whether the idle message counter resets when the agent speaks
|
|
479
|
+
*/
|
|
480
|
+
idleMessageResetCountOnUserSpeechEnabled: boolean;
|
|
481
|
+
/**
|
|
482
|
+
* Messages the persona will say when the agent goes silent during a call. null =
|
|
483
|
+
* "Automatic": language-appropriate defaults are used at call time.
|
|
484
|
+
*/
|
|
485
|
+
idleMessages: Array<string> | null;
|
|
486
|
+
/**
|
|
487
|
+
* Seconds of silence before the persona sends an idle message
|
|
488
|
+
*/
|
|
489
|
+
idleTimeoutSeconds: number;
|
|
490
|
+
/**
|
|
491
|
+
* How clearly the persona expresses their intentions
|
|
492
|
+
*/
|
|
493
|
+
intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE';
|
|
494
|
+
/**
|
|
495
|
+
* Primary language ISO 639-1 code for the persona
|
|
496
|
+
*/
|
|
497
|
+
language: 'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE';
|
|
498
|
+
/**
|
|
499
|
+
* How reliable the persona's memory is
|
|
500
|
+
*/
|
|
501
|
+
memoryReliability: 'HIGH' | 'LOW';
|
|
502
|
+
/**
|
|
503
|
+
* The name the agent will identify as during conversations
|
|
504
|
+
*/
|
|
505
|
+
name: string;
|
|
506
|
+
/**
|
|
507
|
+
* Additional custom properties about the persona
|
|
508
|
+
*/
|
|
509
|
+
properties: {
|
|
510
|
+
[key: string]: unknown;
|
|
511
|
+
};
|
|
512
|
+
/**
|
|
513
|
+
* Controls how quickly the persona responds to pauses in conversation (QUICK,
|
|
514
|
+
* NORMAL, RELAXED)
|
|
515
|
+
*/
|
|
516
|
+
responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK';
|
|
517
|
+
/**
|
|
518
|
+
* Speech clarity of the persona
|
|
519
|
+
*/
|
|
520
|
+
speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING';
|
|
521
|
+
/**
|
|
522
|
+
* Speech pace of the persona
|
|
523
|
+
*/
|
|
524
|
+
speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST';
|
|
525
|
+
/**
|
|
526
|
+
* Languages the persona can understand. Multilingual combinations are limited by
|
|
527
|
+
* multilingual speech recognition support.
|
|
528
|
+
*/
|
|
529
|
+
understoodLanguages: Array<'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE'>;
|
|
530
|
+
/**
|
|
531
|
+
* Last update timestamp
|
|
532
|
+
*/
|
|
533
|
+
updatedAt: string;
|
|
534
|
+
/**
|
|
535
|
+
* Background story and behavioral patterns for the persona
|
|
536
|
+
*/
|
|
537
|
+
backstoryPrompt?: string | null;
|
|
538
|
+
/**
|
|
539
|
+
* Human-readable description of the persona
|
|
540
|
+
*/
|
|
541
|
+
description?: string | null;
|
|
542
|
+
/**
|
|
543
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
544
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
545
|
+
* or set null to display the name itself.
|
|
546
|
+
*/
|
|
547
|
+
displayName?: string | null;
|
|
548
|
+
/**
|
|
549
|
+
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
550
|
+
*/
|
|
551
|
+
secondaryLanguage?: 'EN' | null;
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
/**
|
|
555
|
+
* One path through a scripted flow. The path engine owns which paths exist, so
|
|
556
|
+
* editing the graph is what creates and removes these.
|
|
557
|
+
*/
|
|
558
|
+
interface HappyPath {
|
|
559
|
+
id: string;
|
|
560
|
+
/**
|
|
561
|
+
* Graded on top of the flow's own expectations, for this variant only.
|
|
562
|
+
*/
|
|
563
|
+
additionalExpectations: Array<HappyPath.AdditionalExpectation>;
|
|
564
|
+
/**
|
|
565
|
+
* Creation timestamp in ISO 8601 format
|
|
566
|
+
*/
|
|
567
|
+
createdAt: string;
|
|
568
|
+
/**
|
|
569
|
+
* A simulation environment: the ambient conditions a customer flow variant runs
|
|
570
|
+
* under. The list includes both your own and the ones Roark curates for every
|
|
571
|
+
* project.
|
|
572
|
+
*/
|
|
573
|
+
environment: HappyPath.Environment | null;
|
|
574
|
+
isGenerated: boolean;
|
|
575
|
+
/**
|
|
576
|
+
* The persona this runs as instead of the happy path's. Null means it inherits.
|
|
577
|
+
*/
|
|
578
|
+
personaOverride: HappyPath.PersonaOverride | null;
|
|
579
|
+
precededByCustomerFlowId: string | null;
|
|
580
|
+
precededByCustomerFlowVariantId: string | null;
|
|
581
|
+
/**
|
|
582
|
+
* The one path through the graph this variant runs, in order. Linear by
|
|
583
|
+
* construction, so these steps never nest.
|
|
584
|
+
*/
|
|
585
|
+
steps: Array<CustomerFlowAPI.FlowStep>;
|
|
586
|
+
title: string;
|
|
587
|
+
type: 'SCRIPTED';
|
|
588
|
+
/**
|
|
589
|
+
* Last update timestamp in ISO 8601 format
|
|
590
|
+
*/
|
|
591
|
+
updatedAt: string;
|
|
592
|
+
systemKey?: string | null;
|
|
593
|
+
}
|
|
594
|
+
namespace HappyPath {
|
|
595
|
+
/**
|
|
596
|
+
* One thing the agent under test is graded against.
|
|
597
|
+
*/
|
|
598
|
+
interface AdditionalExpectation {
|
|
599
|
+
id: string;
|
|
600
|
+
/**
|
|
601
|
+
* What the agent under test is graded against.
|
|
602
|
+
*/
|
|
603
|
+
prompt: string;
|
|
604
|
+
}
|
|
605
|
+
/**
|
|
606
|
+
* A simulation environment: the ambient conditions a customer flow variant runs
|
|
607
|
+
* under. The list includes both your own and the ones Roark curates for every
|
|
608
|
+
* project.
|
|
609
|
+
*/
|
|
610
|
+
interface Environment {
|
|
611
|
+
id: string;
|
|
612
|
+
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
613
|
+
backgroundNoiseVolume: number;
|
|
614
|
+
/**
|
|
615
|
+
* Creation timestamp in ISO 8601 format
|
|
616
|
+
*/
|
|
617
|
+
createdAt: string;
|
|
618
|
+
name: string;
|
|
619
|
+
/**
|
|
620
|
+
* Last update timestamp in ISO 8601 format
|
|
621
|
+
*/
|
|
622
|
+
updatedAt: string;
|
|
623
|
+
description?: string | null;
|
|
624
|
+
}
|
|
625
|
+
/**
|
|
626
|
+
* The persona this runs as instead of the happy path's. Null means it inherits.
|
|
627
|
+
*/
|
|
628
|
+
interface PersonaOverride {
|
|
629
|
+
/**
|
|
630
|
+
* Unique identifier of the persona
|
|
631
|
+
*/
|
|
632
|
+
id: string;
|
|
633
|
+
/**
|
|
634
|
+
* Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with
|
|
635
|
+
* optional variants
|
|
636
|
+
*/
|
|
637
|
+
accent: 'US' | 'US_X_SOUTH' | 'GB' | 'ES' | 'DE' | 'IN' | 'FR' | 'NL' | 'SA' | 'GR' | 'AU' | 'IT' | 'ID' | 'TH' | 'JP' | 'NZ' | 'PH' | 'SG' | 'MY' | 'HK' | 'TR' | 'PT' | 'IL';
|
|
638
|
+
/**
|
|
639
|
+
* How old the caller sounds and behaves. Only ages the persona's accent has a
|
|
640
|
+
* voice for are accepted; defaults to ADULT, which every accent supports.
|
|
641
|
+
*/
|
|
642
|
+
age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY';
|
|
643
|
+
/**
|
|
644
|
+
* Background noise setting
|
|
645
|
+
*/
|
|
646
|
+
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
647
|
+
/**
|
|
648
|
+
* Base emotional state of the persona
|
|
649
|
+
*/
|
|
650
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
651
|
+
/**
|
|
652
|
+
* How the persona confirms information
|
|
653
|
+
*/
|
|
654
|
+
confirmationStyle: 'EXPLICIT' | 'VAGUE';
|
|
655
|
+
/**
|
|
656
|
+
* Creation timestamp
|
|
657
|
+
*/
|
|
658
|
+
createdAt: string;
|
|
659
|
+
/**
|
|
660
|
+
* Gender of the persona
|
|
661
|
+
*/
|
|
662
|
+
gender: 'MALE' | 'FEMALE';
|
|
663
|
+
/**
|
|
664
|
+
* Whether the persona uses filler words like "um" and "uh"
|
|
665
|
+
*/
|
|
666
|
+
hasDisfluencies: boolean;
|
|
667
|
+
/**
|
|
668
|
+
* Maximum number of idle messages the persona will send before giving up
|
|
669
|
+
*/
|
|
670
|
+
idleMessageMaxSpokenCount: number;
|
|
671
|
+
/**
|
|
672
|
+
* Whether the idle message counter resets when the agent speaks
|
|
673
|
+
*/
|
|
674
|
+
idleMessageResetCountOnUserSpeechEnabled: boolean;
|
|
675
|
+
/**
|
|
676
|
+
* Messages the persona will say when the agent goes silent during a call. null =
|
|
677
|
+
* "Automatic": language-appropriate defaults are used at call time.
|
|
678
|
+
*/
|
|
679
|
+
idleMessages: Array<string> | null;
|
|
680
|
+
/**
|
|
681
|
+
* Seconds of silence before the persona sends an idle message
|
|
682
|
+
*/
|
|
683
|
+
idleTimeoutSeconds: number;
|
|
684
|
+
/**
|
|
685
|
+
* How clearly the persona expresses their intentions
|
|
686
|
+
*/
|
|
687
|
+
intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE';
|
|
688
|
+
/**
|
|
689
|
+
* Primary language ISO 639-1 code for the persona
|
|
690
|
+
*/
|
|
691
|
+
language: 'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE';
|
|
692
|
+
/**
|
|
693
|
+
* How reliable the persona's memory is
|
|
694
|
+
*/
|
|
695
|
+
memoryReliability: 'HIGH' | 'LOW';
|
|
696
|
+
/**
|
|
697
|
+
* The name the agent will identify as during conversations
|
|
698
|
+
*/
|
|
699
|
+
name: string;
|
|
700
|
+
/**
|
|
701
|
+
* Additional custom properties about the persona
|
|
702
|
+
*/
|
|
703
|
+
properties: {
|
|
704
|
+
[key: string]: unknown;
|
|
705
|
+
};
|
|
706
|
+
/**
|
|
707
|
+
* Controls how quickly the persona responds to pauses in conversation (QUICK,
|
|
708
|
+
* NORMAL, RELAXED)
|
|
709
|
+
*/
|
|
710
|
+
responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK';
|
|
711
|
+
/**
|
|
712
|
+
* Speech clarity of the persona
|
|
713
|
+
*/
|
|
714
|
+
speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING';
|
|
715
|
+
/**
|
|
716
|
+
* Speech pace of the persona
|
|
717
|
+
*/
|
|
718
|
+
speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST';
|
|
719
|
+
/**
|
|
720
|
+
* Languages the persona can understand. Multilingual combinations are limited by
|
|
721
|
+
* multilingual speech recognition support.
|
|
722
|
+
*/
|
|
723
|
+
understoodLanguages: Array<'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE'>;
|
|
724
|
+
/**
|
|
725
|
+
* Last update timestamp
|
|
726
|
+
*/
|
|
727
|
+
updatedAt: string;
|
|
728
|
+
/**
|
|
729
|
+
* Background story and behavioral patterns for the persona
|
|
730
|
+
*/
|
|
731
|
+
backstoryPrompt?: string | null;
|
|
732
|
+
/**
|
|
733
|
+
* Human-readable description of the persona
|
|
734
|
+
*/
|
|
735
|
+
description?: string | null;
|
|
736
|
+
/**
|
|
737
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
738
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
739
|
+
* or set null to display the name itself.
|
|
740
|
+
*/
|
|
741
|
+
displayName?: string | null;
|
|
742
|
+
/**
|
|
743
|
+
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
744
|
+
*/
|
|
745
|
+
secondaryLanguage?: 'EN' | null;
|
|
746
|
+
}
|
|
747
|
+
}
|
|
748
|
+
/**
|
|
749
|
+
* STRICT only. What the simulated customer does when your agent does not say the
|
|
750
|
+
* expected line. Each unmatched agent utterance is an attempt: `reaction` runs per
|
|
751
|
+
* attempt (STAY_SILENT, REPEAT its last scripted line, RESPOND once in character
|
|
752
|
+
* without moving on, or SAY `sayLine`), and `then` runs when attempts reach
|
|
753
|
+
* `maxAttempts` or your agent stays silent for `waitSeconds` (HANG_UP ends the
|
|
754
|
+
* call with ended reason SCRIPT_DIVERGED, HANG_UP_INVALIDATE ends it the same way
|
|
755
|
+
* and invalidates the run so it is scored by nothing and counted nowhere, MOVE_ON
|
|
756
|
+
* advances anyway, ADAPT hands the rest of the call to loose behaviour). Null:
|
|
757
|
+
* stay silent, 3 attempts, hang up. The default for every agent step; an
|
|
758
|
+
* AGENT_TURN step can carry its own.
|
|
759
|
+
*/
|
|
760
|
+
interface OffScriptPolicy {
|
|
761
|
+
maxAttempts: number;
|
|
762
|
+
reaction: 'STAY_SILENT' | 'REPEAT' | 'RESPOND' | 'SAY';
|
|
763
|
+
then: 'HANG_UP' | 'MOVE_ON' | 'ADAPT' | 'HANG_UP_INVALIDATE';
|
|
764
|
+
sayLine?: string | null;
|
|
765
|
+
waitSeconds?: number | null;
|
|
766
|
+
}
|
|
767
|
+
}
|
|
768
|
+
/**
|
|
769
|
+
* A flow whose conversation is not written out: each variant gives the simulated
|
|
770
|
+
* customer a brief and lets it improvise.
|
|
771
|
+
*/
|
|
772
|
+
interface ImprovCustomerFlow {
|
|
773
|
+
id: string;
|
|
774
|
+
agentExpectations: Array<ImprovCustomerFlow.AgentExpectation>;
|
|
775
|
+
/**
|
|
776
|
+
* The agents this flow is run against.
|
|
777
|
+
*/
|
|
778
|
+
agents: Array<ImprovCustomerFlow.Agent>;
|
|
779
|
+
/**
|
|
780
|
+
* Creation timestamp in ISO 8601 format
|
|
781
|
+
*/
|
|
782
|
+
createdAt: string;
|
|
783
|
+
/**
|
|
784
|
+
* Every other way of running this flow.
|
|
785
|
+
*/
|
|
786
|
+
edgeCases: Array<ImprovCustomerFlow.EdgeCase>;
|
|
787
|
+
/**
|
|
788
|
+
* One brief to run an improv flow with.
|
|
789
|
+
*/
|
|
790
|
+
happyPath: ImprovCustomerFlow.HappyPath | null;
|
|
791
|
+
source: 'SYSTEM' | 'CUSTOM';
|
|
792
|
+
title: string;
|
|
793
|
+
type: 'IMPROV';
|
|
794
|
+
/**
|
|
795
|
+
* Last update timestamp in ISO 8601 format
|
|
796
|
+
*/
|
|
797
|
+
updatedAt: string;
|
|
798
|
+
description?: string | null;
|
|
799
|
+
}
|
|
800
|
+
namespace ImprovCustomerFlow {
|
|
801
|
+
/**
|
|
802
|
+
* One thing the agent under test is graded against.
|
|
803
|
+
*/
|
|
804
|
+
interface AgentExpectation {
|
|
805
|
+
id: string;
|
|
806
|
+
/**
|
|
807
|
+
* What the agent under test is graded against.
|
|
808
|
+
*/
|
|
809
|
+
prompt: string;
|
|
810
|
+
}
|
|
811
|
+
interface Agent {
|
|
812
|
+
/**
|
|
813
|
+
* Unique identifier of the agent
|
|
814
|
+
*/
|
|
815
|
+
id: string;
|
|
816
|
+
/**
|
|
817
|
+
* Creation timestamp in ISO 8601 format
|
|
818
|
+
*/
|
|
819
|
+
createdAt: string;
|
|
820
|
+
/**
|
|
821
|
+
* Custom identifier for the agent
|
|
822
|
+
*/
|
|
823
|
+
customId: string | null;
|
|
824
|
+
/**
|
|
825
|
+
* Description of the agent
|
|
826
|
+
*/
|
|
827
|
+
description: string | null;
|
|
828
|
+
/**
|
|
829
|
+
* Name of the agent
|
|
830
|
+
*/
|
|
831
|
+
name: string;
|
|
832
|
+
/**
|
|
833
|
+
* Last update timestamp in ISO 8601 format
|
|
834
|
+
*/
|
|
835
|
+
updatedAt: string;
|
|
836
|
+
}
|
|
837
|
+
/**
|
|
838
|
+
* One brief to run an improv flow with.
|
|
839
|
+
*/
|
|
840
|
+
interface EdgeCase {
|
|
841
|
+
id: string;
|
|
842
|
+
/**
|
|
843
|
+
* Graded on top of the flow's own expectations, for this variant only.
|
|
844
|
+
*/
|
|
845
|
+
additionalExpectations: Array<EdgeCase.AdditionalExpectation>;
|
|
846
|
+
/**
|
|
847
|
+
* Creation timestamp in ISO 8601 format
|
|
848
|
+
*/
|
|
849
|
+
createdAt: string;
|
|
850
|
+
/**
|
|
851
|
+
* A simulation environment: the ambient conditions a customer flow variant runs
|
|
852
|
+
* under. The list includes both your own and the ones Roark curates for every
|
|
853
|
+
* project.
|
|
854
|
+
*/
|
|
855
|
+
environment: EdgeCase.Environment | null;
|
|
856
|
+
isGenerated: boolean;
|
|
857
|
+
/**
|
|
858
|
+
* The persona this runs as instead of the happy path's. Null means it inherits.
|
|
859
|
+
*/
|
|
860
|
+
personaOverride: EdgeCase.PersonaOverride | null;
|
|
861
|
+
precededByCustomerFlowId: string | null;
|
|
862
|
+
precededByCustomerFlowVariantId: string | null;
|
|
863
|
+
title: string;
|
|
864
|
+
type: 'IMPROV';
|
|
865
|
+
/**
|
|
866
|
+
* Last update timestamp in ISO 8601 format
|
|
867
|
+
*/
|
|
868
|
+
updatedAt: string;
|
|
869
|
+
/**
|
|
870
|
+
* The brief the simulated customer improvises from.
|
|
871
|
+
*/
|
|
872
|
+
prompt?: string | null;
|
|
873
|
+
systemKey?: string | null;
|
|
874
|
+
}
|
|
875
|
+
namespace EdgeCase {
|
|
876
|
+
/**
|
|
877
|
+
* One thing the agent under test is graded against.
|
|
878
|
+
*/
|
|
879
|
+
interface AdditionalExpectation {
|
|
880
|
+
id: string;
|
|
881
|
+
/**
|
|
882
|
+
* What the agent under test is graded against.
|
|
883
|
+
*/
|
|
884
|
+
prompt: string;
|
|
885
|
+
}
|
|
886
|
+
/**
|
|
887
|
+
* A simulation environment: the ambient conditions a customer flow variant runs
|
|
888
|
+
* under. The list includes both your own and the ones Roark curates for every
|
|
889
|
+
* project.
|
|
890
|
+
*/
|
|
891
|
+
interface Environment {
|
|
892
|
+
id: string;
|
|
893
|
+
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
894
|
+
backgroundNoiseVolume: number;
|
|
895
|
+
/**
|
|
896
|
+
* Creation timestamp in ISO 8601 format
|
|
897
|
+
*/
|
|
898
|
+
createdAt: string;
|
|
899
|
+
name: string;
|
|
900
|
+
/**
|
|
901
|
+
* Last update timestamp in ISO 8601 format
|
|
902
|
+
*/
|
|
903
|
+
updatedAt: string;
|
|
904
|
+
description?: string | null;
|
|
905
|
+
}
|
|
906
|
+
/**
|
|
907
|
+
* The persona this runs as instead of the happy path's. Null means it inherits.
|
|
908
|
+
*/
|
|
909
|
+
interface PersonaOverride {
|
|
910
|
+
/**
|
|
911
|
+
* Unique identifier of the persona
|
|
912
|
+
*/
|
|
913
|
+
id: string;
|
|
914
|
+
/**
|
|
915
|
+
* Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with
|
|
916
|
+
* optional variants
|
|
917
|
+
*/
|
|
918
|
+
accent: 'US' | 'US_X_SOUTH' | 'GB' | 'ES' | 'DE' | 'IN' | 'FR' | 'NL' | 'SA' | 'GR' | 'AU' | 'IT' | 'ID' | 'TH' | 'JP' | 'NZ' | 'PH' | 'SG' | 'MY' | 'HK' | 'TR' | 'PT' | 'IL';
|
|
919
|
+
/**
|
|
920
|
+
* How old the caller sounds and behaves. Only ages the persona's accent has a
|
|
921
|
+
* voice for are accepted; defaults to ADULT, which every accent supports.
|
|
922
|
+
*/
|
|
923
|
+
age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY';
|
|
924
|
+
/**
|
|
925
|
+
* Background noise setting
|
|
926
|
+
*/
|
|
927
|
+
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
928
|
+
/**
|
|
929
|
+
* Base emotional state of the persona
|
|
930
|
+
*/
|
|
931
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
932
|
+
/**
|
|
933
|
+
* How the persona confirms information
|
|
934
|
+
*/
|
|
935
|
+
confirmationStyle: 'EXPLICIT' | 'VAGUE';
|
|
936
|
+
/**
|
|
937
|
+
* Creation timestamp
|
|
938
|
+
*/
|
|
939
|
+
createdAt: string;
|
|
940
|
+
/**
|
|
941
|
+
* Gender of the persona
|
|
942
|
+
*/
|
|
943
|
+
gender: 'MALE' | 'FEMALE';
|
|
944
|
+
/**
|
|
945
|
+
* Whether the persona uses filler words like "um" and "uh"
|
|
946
|
+
*/
|
|
947
|
+
hasDisfluencies: boolean;
|
|
948
|
+
/**
|
|
949
|
+
* Maximum number of idle messages the persona will send before giving up
|
|
950
|
+
*/
|
|
951
|
+
idleMessageMaxSpokenCount: number;
|
|
952
|
+
/**
|
|
953
|
+
* Whether the idle message counter resets when the agent speaks
|
|
954
|
+
*/
|
|
955
|
+
idleMessageResetCountOnUserSpeechEnabled: boolean;
|
|
956
|
+
/**
|
|
957
|
+
* Messages the persona will say when the agent goes silent during a call. null =
|
|
958
|
+
* "Automatic": language-appropriate defaults are used at call time.
|
|
959
|
+
*/
|
|
960
|
+
idleMessages: Array<string> | null;
|
|
961
|
+
/**
|
|
962
|
+
* Seconds of silence before the persona sends an idle message
|
|
963
|
+
*/
|
|
964
|
+
idleTimeoutSeconds: number;
|
|
965
|
+
/**
|
|
966
|
+
* How clearly the persona expresses their intentions
|
|
967
|
+
*/
|
|
968
|
+
intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE';
|
|
969
|
+
/**
|
|
970
|
+
* Primary language ISO 639-1 code for the persona
|
|
971
|
+
*/
|
|
972
|
+
language: 'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE';
|
|
973
|
+
/**
|
|
974
|
+
* How reliable the persona's memory is
|
|
975
|
+
*/
|
|
976
|
+
memoryReliability: 'HIGH' | 'LOW';
|
|
977
|
+
/**
|
|
978
|
+
* The name the agent will identify as during conversations
|
|
979
|
+
*/
|
|
980
|
+
name: string;
|
|
981
|
+
/**
|
|
982
|
+
* Additional custom properties about the persona
|
|
983
|
+
*/
|
|
984
|
+
properties: {
|
|
985
|
+
[key: string]: unknown;
|
|
986
|
+
};
|
|
987
|
+
/**
|
|
988
|
+
* Controls how quickly the persona responds to pauses in conversation (QUICK,
|
|
989
|
+
* NORMAL, RELAXED)
|
|
990
|
+
*/
|
|
991
|
+
responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK';
|
|
992
|
+
/**
|
|
993
|
+
* Speech clarity of the persona
|
|
994
|
+
*/
|
|
995
|
+
speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING';
|
|
996
|
+
/**
|
|
997
|
+
* Speech pace of the persona
|
|
998
|
+
*/
|
|
999
|
+
speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST';
|
|
1000
|
+
/**
|
|
1001
|
+
* Languages the persona can understand. Multilingual combinations are limited by
|
|
1002
|
+
* multilingual speech recognition support.
|
|
1003
|
+
*/
|
|
1004
|
+
understoodLanguages: Array<'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE'>;
|
|
1005
|
+
/**
|
|
1006
|
+
* Last update timestamp
|
|
1007
|
+
*/
|
|
1008
|
+
updatedAt: string;
|
|
1009
|
+
/**
|
|
1010
|
+
* Background story and behavioral patterns for the persona
|
|
1011
|
+
*/
|
|
1012
|
+
backstoryPrompt?: string | null;
|
|
1013
|
+
/**
|
|
1014
|
+
* Human-readable description of the persona
|
|
1015
|
+
*/
|
|
1016
|
+
description?: string | null;
|
|
1017
|
+
/**
|
|
1018
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
1019
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
1020
|
+
* or set null to display the name itself.
|
|
1021
|
+
*/
|
|
1022
|
+
displayName?: string | null;
|
|
1023
|
+
/**
|
|
1024
|
+
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
1025
|
+
*/
|
|
1026
|
+
secondaryLanguage?: 'EN' | null;
|
|
1027
|
+
}
|
|
1028
|
+
}
|
|
1029
|
+
/**
|
|
1030
|
+
* One brief to run an improv flow with.
|
|
1031
|
+
*/
|
|
1032
|
+
interface HappyPath {
|
|
1033
|
+
id: string;
|
|
1034
|
+
/**
|
|
1035
|
+
* Graded on top of the flow's own expectations, for this variant only.
|
|
1036
|
+
*/
|
|
1037
|
+
additionalExpectations: Array<HappyPath.AdditionalExpectation>;
|
|
1038
|
+
/**
|
|
1039
|
+
* Creation timestamp in ISO 8601 format
|
|
1040
|
+
*/
|
|
1041
|
+
createdAt: string;
|
|
1042
|
+
/**
|
|
1043
|
+
* A simulation environment: the ambient conditions a customer flow variant runs
|
|
1044
|
+
* under. The list includes both your own and the ones Roark curates for every
|
|
1045
|
+
* project.
|
|
1046
|
+
*/
|
|
1047
|
+
environment: HappyPath.Environment | null;
|
|
1048
|
+
isGenerated: boolean;
|
|
1049
|
+
/**
|
|
1050
|
+
* The persona this runs as instead of the happy path's. Null means it inherits.
|
|
1051
|
+
*/
|
|
1052
|
+
personaOverride: HappyPath.PersonaOverride | null;
|
|
1053
|
+
precededByCustomerFlowId: string | null;
|
|
1054
|
+
precededByCustomerFlowVariantId: string | null;
|
|
1055
|
+
title: string;
|
|
1056
|
+
type: 'IMPROV';
|
|
1057
|
+
/**
|
|
1058
|
+
* Last update timestamp in ISO 8601 format
|
|
1059
|
+
*/
|
|
1060
|
+
updatedAt: string;
|
|
1061
|
+
/**
|
|
1062
|
+
* The brief the simulated customer improvises from.
|
|
1063
|
+
*/
|
|
1064
|
+
prompt?: string | null;
|
|
1065
|
+
systemKey?: string | null;
|
|
1066
|
+
}
|
|
1067
|
+
namespace HappyPath {
|
|
1068
|
+
/**
|
|
1069
|
+
* One thing the agent under test is graded against.
|
|
1070
|
+
*/
|
|
1071
|
+
interface AdditionalExpectation {
|
|
1072
|
+
id: string;
|
|
1073
|
+
/**
|
|
1074
|
+
* What the agent under test is graded against.
|
|
1075
|
+
*/
|
|
1076
|
+
prompt: string;
|
|
1077
|
+
}
|
|
1078
|
+
/**
|
|
1079
|
+
* A simulation environment: the ambient conditions a customer flow variant runs
|
|
1080
|
+
* under. The list includes both your own and the ones Roark curates for every
|
|
1081
|
+
* project.
|
|
1082
|
+
*/
|
|
1083
|
+
interface Environment {
|
|
1084
|
+
id: string;
|
|
1085
|
+
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
1086
|
+
backgroundNoiseVolume: number;
|
|
1087
|
+
/**
|
|
1088
|
+
* Creation timestamp in ISO 8601 format
|
|
1089
|
+
*/
|
|
1090
|
+
createdAt: string;
|
|
1091
|
+
name: string;
|
|
1092
|
+
/**
|
|
1093
|
+
* Last update timestamp in ISO 8601 format
|
|
1094
|
+
*/
|
|
1095
|
+
updatedAt: string;
|
|
1096
|
+
description?: string | null;
|
|
1097
|
+
}
|
|
1098
|
+
/**
|
|
1099
|
+
* The persona this runs as instead of the happy path's. Null means it inherits.
|
|
1100
|
+
*/
|
|
1101
|
+
interface PersonaOverride {
|
|
1102
|
+
/**
|
|
1103
|
+
* Unique identifier of the persona
|
|
1104
|
+
*/
|
|
1105
|
+
id: string;
|
|
1106
|
+
/**
|
|
1107
|
+
* Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with
|
|
1108
|
+
* optional variants
|
|
1109
|
+
*/
|
|
1110
|
+
accent: 'US' | 'US_X_SOUTH' | 'GB' | 'ES' | 'DE' | 'IN' | 'FR' | 'NL' | 'SA' | 'GR' | 'AU' | 'IT' | 'ID' | 'TH' | 'JP' | 'NZ' | 'PH' | 'SG' | 'MY' | 'HK' | 'TR' | 'PT' | 'IL';
|
|
1111
|
+
/**
|
|
1112
|
+
* How old the caller sounds and behaves. Only ages the persona's accent has a
|
|
1113
|
+
* voice for are accepted; defaults to ADULT, which every accent supports.
|
|
1114
|
+
*/
|
|
1115
|
+
age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY';
|
|
1116
|
+
/**
|
|
1117
|
+
* Background noise setting
|
|
1118
|
+
*/
|
|
1119
|
+
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
1120
|
+
/**
|
|
1121
|
+
* Base emotional state of the persona
|
|
1122
|
+
*/
|
|
1123
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
1124
|
+
/**
|
|
1125
|
+
* How the persona confirms information
|
|
1126
|
+
*/
|
|
1127
|
+
confirmationStyle: 'EXPLICIT' | 'VAGUE';
|
|
1128
|
+
/**
|
|
1129
|
+
* Creation timestamp
|
|
1130
|
+
*/
|
|
1131
|
+
createdAt: string;
|
|
1132
|
+
/**
|
|
1133
|
+
* Gender of the persona
|
|
1134
|
+
*/
|
|
1135
|
+
gender: 'MALE' | 'FEMALE';
|
|
1136
|
+
/**
|
|
1137
|
+
* Whether the persona uses filler words like "um" and "uh"
|
|
1138
|
+
*/
|
|
1139
|
+
hasDisfluencies: boolean;
|
|
1140
|
+
/**
|
|
1141
|
+
* Maximum number of idle messages the persona will send before giving up
|
|
1142
|
+
*/
|
|
1143
|
+
idleMessageMaxSpokenCount: number;
|
|
1144
|
+
/**
|
|
1145
|
+
* Whether the idle message counter resets when the agent speaks
|
|
1146
|
+
*/
|
|
1147
|
+
idleMessageResetCountOnUserSpeechEnabled: boolean;
|
|
1148
|
+
/**
|
|
1149
|
+
* Messages the persona will say when the agent goes silent during a call. null =
|
|
1150
|
+
* "Automatic": language-appropriate defaults are used at call time.
|
|
1151
|
+
*/
|
|
1152
|
+
idleMessages: Array<string> | null;
|
|
1153
|
+
/**
|
|
1154
|
+
* Seconds of silence before the persona sends an idle message
|
|
1155
|
+
*/
|
|
1156
|
+
idleTimeoutSeconds: number;
|
|
1157
|
+
/**
|
|
1158
|
+
* How clearly the persona expresses their intentions
|
|
1159
|
+
*/
|
|
1160
|
+
intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE';
|
|
1161
|
+
/**
|
|
1162
|
+
* Primary language ISO 639-1 code for the persona
|
|
1163
|
+
*/
|
|
1164
|
+
language: 'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE';
|
|
1165
|
+
/**
|
|
1166
|
+
* How reliable the persona's memory is
|
|
1167
|
+
*/
|
|
1168
|
+
memoryReliability: 'HIGH' | 'LOW';
|
|
1169
|
+
/**
|
|
1170
|
+
* The name the agent will identify as during conversations
|
|
1171
|
+
*/
|
|
1172
|
+
name: string;
|
|
1173
|
+
/**
|
|
1174
|
+
* Additional custom properties about the persona
|
|
1175
|
+
*/
|
|
1176
|
+
properties: {
|
|
1177
|
+
[key: string]: unknown;
|
|
1178
|
+
};
|
|
1179
|
+
/**
|
|
1180
|
+
* Controls how quickly the persona responds to pauses in conversation (QUICK,
|
|
1181
|
+
* NORMAL, RELAXED)
|
|
1182
|
+
*/
|
|
1183
|
+
responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK';
|
|
1184
|
+
/**
|
|
1185
|
+
* Speech clarity of the persona
|
|
1186
|
+
*/
|
|
1187
|
+
speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING';
|
|
1188
|
+
/**
|
|
1189
|
+
* Speech pace of the persona
|
|
1190
|
+
*/
|
|
1191
|
+
speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST';
|
|
1192
|
+
/**
|
|
1193
|
+
* Languages the persona can understand. Multilingual combinations are limited by
|
|
1194
|
+
* multilingual speech recognition support.
|
|
1195
|
+
*/
|
|
1196
|
+
understoodLanguages: Array<'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE'>;
|
|
1197
|
+
/**
|
|
1198
|
+
* Last update timestamp
|
|
1199
|
+
*/
|
|
1200
|
+
updatedAt: string;
|
|
1201
|
+
/**
|
|
1202
|
+
* Background story and behavioral patterns for the persona
|
|
1203
|
+
*/
|
|
1204
|
+
backstoryPrompt?: string | null;
|
|
1205
|
+
/**
|
|
1206
|
+
* Human-readable description of the persona
|
|
1207
|
+
*/
|
|
1208
|
+
description?: string | null;
|
|
1209
|
+
/**
|
|
1210
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
1211
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
1212
|
+
* or set null to display the name itself.
|
|
1213
|
+
*/
|
|
1214
|
+
displayName?: string | null;
|
|
1215
|
+
/**
|
|
1216
|
+
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
1217
|
+
*/
|
|
1218
|
+
secondaryLanguage?: 'EN' | null;
|
|
1219
|
+
}
|
|
1220
|
+
}
|
|
1221
|
+
}
|
|
1222
|
+
/**
|
|
1223
|
+
* A flow that leaves a voicemail. Curated by Roark, read-only.
|
|
1224
|
+
*/
|
|
1225
|
+
interface VoicemailCustomerFlow {
|
|
1226
|
+
id: string;
|
|
1227
|
+
agentExpectations: Array<VoicemailCustomerFlow.AgentExpectation>;
|
|
1228
|
+
/**
|
|
1229
|
+
* The agents this flow is run against.
|
|
1230
|
+
*/
|
|
1231
|
+
agents: Array<VoicemailCustomerFlow.Agent>;
|
|
1232
|
+
/**
|
|
1233
|
+
* Creation timestamp in ISO 8601 format
|
|
1234
|
+
*/
|
|
1235
|
+
createdAt: string;
|
|
1236
|
+
/**
|
|
1237
|
+
* Every other way of running this flow.
|
|
1238
|
+
*/
|
|
1239
|
+
edgeCases: Array<VoicemailCustomerFlow.EdgeCase>;
|
|
1240
|
+
/**
|
|
1241
|
+
* One voicemail greeting.
|
|
1242
|
+
*/
|
|
1243
|
+
happyPath: VoicemailCustomerFlow.HappyPath | null;
|
|
1244
|
+
source: 'SYSTEM' | 'CUSTOM';
|
|
1245
|
+
title: string;
|
|
1246
|
+
type: 'VOICEMAIL';
|
|
1247
|
+
/**
|
|
1248
|
+
* Last update timestamp in ISO 8601 format
|
|
1249
|
+
*/
|
|
1250
|
+
updatedAt: string;
|
|
1251
|
+
description?: string | null;
|
|
1252
|
+
}
|
|
1253
|
+
namespace VoicemailCustomerFlow {
|
|
1254
|
+
/**
|
|
1255
|
+
* One thing the agent under test is graded against.
|
|
1256
|
+
*/
|
|
1257
|
+
interface AgentExpectation {
|
|
1258
|
+
id: string;
|
|
1259
|
+
/**
|
|
1260
|
+
* What the agent under test is graded against.
|
|
1261
|
+
*/
|
|
1262
|
+
prompt: string;
|
|
1263
|
+
}
|
|
1264
|
+
interface Agent {
|
|
1265
|
+
/**
|
|
1266
|
+
* Unique identifier of the agent
|
|
1267
|
+
*/
|
|
1268
|
+
id: string;
|
|
1269
|
+
/**
|
|
1270
|
+
* Creation timestamp in ISO 8601 format
|
|
1271
|
+
*/
|
|
1272
|
+
createdAt: string;
|
|
1273
|
+
/**
|
|
1274
|
+
* Custom identifier for the agent
|
|
1275
|
+
*/
|
|
1276
|
+
customId: string | null;
|
|
1277
|
+
/**
|
|
1278
|
+
* Description of the agent
|
|
1279
|
+
*/
|
|
1280
|
+
description: string | null;
|
|
1281
|
+
/**
|
|
1282
|
+
* Name of the agent
|
|
1283
|
+
*/
|
|
1284
|
+
name: string;
|
|
1285
|
+
/**
|
|
1286
|
+
* Last update timestamp in ISO 8601 format
|
|
1287
|
+
*/
|
|
1288
|
+
updatedAt: string;
|
|
1289
|
+
}
|
|
1290
|
+
/**
|
|
1291
|
+
* One voicemail greeting.
|
|
1292
|
+
*/
|
|
1293
|
+
interface EdgeCase {
|
|
1294
|
+
id: string;
|
|
1295
|
+
/**
|
|
1296
|
+
* Graded on top of the flow's own expectations, for this variant only.
|
|
1297
|
+
*/
|
|
1298
|
+
additionalExpectations: Array<EdgeCase.AdditionalExpectation>;
|
|
1299
|
+
/**
|
|
1300
|
+
* Creation timestamp in ISO 8601 format
|
|
1301
|
+
*/
|
|
1302
|
+
createdAt: string;
|
|
1303
|
+
/**
|
|
1304
|
+
* A simulation environment: the ambient conditions a customer flow variant runs
|
|
1305
|
+
* under. The list includes both your own and the ones Roark curates for every
|
|
1306
|
+
* project.
|
|
1307
|
+
*/
|
|
1308
|
+
environment: EdgeCase.Environment | null;
|
|
1309
|
+
isGenerated: boolean;
|
|
1310
|
+
/**
|
|
1311
|
+
* The persona this runs as instead of the happy path's. Null means it inherits.
|
|
1312
|
+
*/
|
|
1313
|
+
personaOverride: EdgeCase.PersonaOverride | null;
|
|
1314
|
+
precededByCustomerFlowId: string | null;
|
|
1315
|
+
precededByCustomerFlowVariantId: string | null;
|
|
1316
|
+
title: string;
|
|
1317
|
+
type: 'VOICEMAIL';
|
|
1318
|
+
/**
|
|
1319
|
+
* Last update timestamp in ISO 8601 format
|
|
1320
|
+
*/
|
|
1321
|
+
updatedAt: string;
|
|
1322
|
+
systemKey?: string | null;
|
|
1323
|
+
}
|
|
1324
|
+
namespace EdgeCase {
|
|
1325
|
+
/**
|
|
1326
|
+
* One thing the agent under test is graded against.
|
|
1327
|
+
*/
|
|
1328
|
+
interface AdditionalExpectation {
|
|
1329
|
+
id: string;
|
|
1330
|
+
/**
|
|
1331
|
+
* What the agent under test is graded against.
|
|
1332
|
+
*/
|
|
1333
|
+
prompt: string;
|
|
1334
|
+
}
|
|
1335
|
+
/**
|
|
1336
|
+
* A simulation environment: the ambient conditions a customer flow variant runs
|
|
1337
|
+
* under. The list includes both your own and the ones Roark curates for every
|
|
1338
|
+
* project.
|
|
1339
|
+
*/
|
|
1340
|
+
interface Environment {
|
|
1341
|
+
id: string;
|
|
1342
|
+
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
1343
|
+
backgroundNoiseVolume: number;
|
|
1344
|
+
/**
|
|
1345
|
+
* Creation timestamp in ISO 8601 format
|
|
1346
|
+
*/
|
|
1347
|
+
createdAt: string;
|
|
1348
|
+
name: string;
|
|
1349
|
+
/**
|
|
1350
|
+
* Last update timestamp in ISO 8601 format
|
|
1351
|
+
*/
|
|
1352
|
+
updatedAt: string;
|
|
1353
|
+
description?: string | null;
|
|
1354
|
+
}
|
|
1355
|
+
/**
|
|
1356
|
+
* The persona this runs as instead of the happy path's. Null means it inherits.
|
|
1357
|
+
*/
|
|
1358
|
+
interface PersonaOverride {
|
|
1359
|
+
/**
|
|
1360
|
+
* Unique identifier of the persona
|
|
1361
|
+
*/
|
|
1362
|
+
id: string;
|
|
1363
|
+
/**
|
|
1364
|
+
* Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with
|
|
1365
|
+
* optional variants
|
|
1366
|
+
*/
|
|
1367
|
+
accent: 'US' | 'US_X_SOUTH' | 'GB' | 'ES' | 'DE' | 'IN' | 'FR' | 'NL' | 'SA' | 'GR' | 'AU' | 'IT' | 'ID' | 'TH' | 'JP' | 'NZ' | 'PH' | 'SG' | 'MY' | 'HK' | 'TR' | 'PT' | 'IL';
|
|
1368
|
+
/**
|
|
1369
|
+
* How old the caller sounds and behaves. Only ages the persona's accent has a
|
|
1370
|
+
* voice for are accepted; defaults to ADULT, which every accent supports.
|
|
1371
|
+
*/
|
|
1372
|
+
age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY';
|
|
1373
|
+
/**
|
|
1374
|
+
* Background noise setting
|
|
1375
|
+
*/
|
|
1376
|
+
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
1377
|
+
/**
|
|
1378
|
+
* Base emotional state of the persona
|
|
1379
|
+
*/
|
|
1380
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
1381
|
+
/**
|
|
1382
|
+
* How the persona confirms information
|
|
1383
|
+
*/
|
|
1384
|
+
confirmationStyle: 'EXPLICIT' | 'VAGUE';
|
|
1385
|
+
/**
|
|
1386
|
+
* Creation timestamp
|
|
1387
|
+
*/
|
|
1388
|
+
createdAt: string;
|
|
1389
|
+
/**
|
|
1390
|
+
* Gender of the persona
|
|
1391
|
+
*/
|
|
1392
|
+
gender: 'MALE' | 'FEMALE';
|
|
1393
|
+
/**
|
|
1394
|
+
* Whether the persona uses filler words like "um" and "uh"
|
|
1395
|
+
*/
|
|
1396
|
+
hasDisfluencies: boolean;
|
|
1397
|
+
/**
|
|
1398
|
+
* Maximum number of idle messages the persona will send before giving up
|
|
1399
|
+
*/
|
|
1400
|
+
idleMessageMaxSpokenCount: number;
|
|
1401
|
+
/**
|
|
1402
|
+
* Whether the idle message counter resets when the agent speaks
|
|
1403
|
+
*/
|
|
1404
|
+
idleMessageResetCountOnUserSpeechEnabled: boolean;
|
|
1405
|
+
/**
|
|
1406
|
+
* Messages the persona will say when the agent goes silent during a call. null =
|
|
1407
|
+
* "Automatic": language-appropriate defaults are used at call time.
|
|
1408
|
+
*/
|
|
1409
|
+
idleMessages: Array<string> | null;
|
|
1410
|
+
/**
|
|
1411
|
+
* Seconds of silence before the persona sends an idle message
|
|
1412
|
+
*/
|
|
1413
|
+
idleTimeoutSeconds: number;
|
|
1414
|
+
/**
|
|
1415
|
+
* How clearly the persona expresses their intentions
|
|
1416
|
+
*/
|
|
1417
|
+
intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE';
|
|
1418
|
+
/**
|
|
1419
|
+
* Primary language ISO 639-1 code for the persona
|
|
1420
|
+
*/
|
|
1421
|
+
language: 'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE';
|
|
1422
|
+
/**
|
|
1423
|
+
* How reliable the persona's memory is
|
|
1424
|
+
*/
|
|
1425
|
+
memoryReliability: 'HIGH' | 'LOW';
|
|
1426
|
+
/**
|
|
1427
|
+
* The name the agent will identify as during conversations
|
|
1428
|
+
*/
|
|
1429
|
+
name: string;
|
|
1430
|
+
/**
|
|
1431
|
+
* Additional custom properties about the persona
|
|
1432
|
+
*/
|
|
1433
|
+
properties: {
|
|
1434
|
+
[key: string]: unknown;
|
|
1435
|
+
};
|
|
1436
|
+
/**
|
|
1437
|
+
* Controls how quickly the persona responds to pauses in conversation (QUICK,
|
|
1438
|
+
* NORMAL, RELAXED)
|
|
1439
|
+
*/
|
|
1440
|
+
responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK';
|
|
1441
|
+
/**
|
|
1442
|
+
* Speech clarity of the persona
|
|
1443
|
+
*/
|
|
1444
|
+
speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING';
|
|
1445
|
+
/**
|
|
1446
|
+
* Speech pace of the persona
|
|
1447
|
+
*/
|
|
1448
|
+
speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST';
|
|
1449
|
+
/**
|
|
1450
|
+
* Languages the persona can understand. Multilingual combinations are limited by
|
|
1451
|
+
* multilingual speech recognition support.
|
|
1452
|
+
*/
|
|
1453
|
+
understoodLanguages: Array<'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE'>;
|
|
1454
|
+
/**
|
|
1455
|
+
* Last update timestamp
|
|
1456
|
+
*/
|
|
1457
|
+
updatedAt: string;
|
|
1458
|
+
/**
|
|
1459
|
+
* Background story and behavioral patterns for the persona
|
|
1460
|
+
*/
|
|
1461
|
+
backstoryPrompt?: string | null;
|
|
1462
|
+
/**
|
|
1463
|
+
* Human-readable description of the persona
|
|
1464
|
+
*/
|
|
1465
|
+
description?: string | null;
|
|
1466
|
+
/**
|
|
1467
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
1468
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
1469
|
+
* or set null to display the name itself.
|
|
1470
|
+
*/
|
|
1471
|
+
displayName?: string | null;
|
|
1472
|
+
/**
|
|
1473
|
+
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
1474
|
+
*/
|
|
1475
|
+
secondaryLanguage?: 'EN' | null;
|
|
1476
|
+
}
|
|
1477
|
+
}
|
|
1478
|
+
/**
|
|
1479
|
+
* One voicemail greeting.
|
|
1480
|
+
*/
|
|
1481
|
+
interface HappyPath {
|
|
1482
|
+
id: string;
|
|
1483
|
+
/**
|
|
1484
|
+
* Graded on top of the flow's own expectations, for this variant only.
|
|
1485
|
+
*/
|
|
1486
|
+
additionalExpectations: Array<HappyPath.AdditionalExpectation>;
|
|
1487
|
+
/**
|
|
1488
|
+
* Creation timestamp in ISO 8601 format
|
|
1489
|
+
*/
|
|
1490
|
+
createdAt: string;
|
|
1491
|
+
/**
|
|
1492
|
+
* A simulation environment: the ambient conditions a customer flow variant runs
|
|
1493
|
+
* under. The list includes both your own and the ones Roark curates for every
|
|
1494
|
+
* project.
|
|
1495
|
+
*/
|
|
1496
|
+
environment: HappyPath.Environment | null;
|
|
1497
|
+
isGenerated: boolean;
|
|
1498
|
+
/**
|
|
1499
|
+
* The persona this runs as instead of the happy path's. Null means it inherits.
|
|
1500
|
+
*/
|
|
1501
|
+
personaOverride: HappyPath.PersonaOverride | null;
|
|
1502
|
+
precededByCustomerFlowId: string | null;
|
|
1503
|
+
precededByCustomerFlowVariantId: string | null;
|
|
1504
|
+
title: string;
|
|
1505
|
+
type: 'VOICEMAIL';
|
|
1506
|
+
/**
|
|
1507
|
+
* Last update timestamp in ISO 8601 format
|
|
1508
|
+
*/
|
|
1509
|
+
updatedAt: string;
|
|
1510
|
+
systemKey?: string | null;
|
|
1511
|
+
}
|
|
1512
|
+
namespace HappyPath {
|
|
1513
|
+
/**
|
|
1514
|
+
* One thing the agent under test is graded against.
|
|
1515
|
+
*/
|
|
1516
|
+
interface AdditionalExpectation {
|
|
1517
|
+
id: string;
|
|
1518
|
+
/**
|
|
1519
|
+
* What the agent under test is graded against.
|
|
1520
|
+
*/
|
|
1521
|
+
prompt: string;
|
|
1522
|
+
}
|
|
1523
|
+
/**
|
|
1524
|
+
* A simulation environment: the ambient conditions a customer flow variant runs
|
|
1525
|
+
* under. The list includes both your own and the ones Roark curates for every
|
|
1526
|
+
* project.
|
|
1527
|
+
*/
|
|
1528
|
+
interface Environment {
|
|
1529
|
+
id: string;
|
|
1530
|
+
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
1531
|
+
backgroundNoiseVolume: number;
|
|
1532
|
+
/**
|
|
1533
|
+
* Creation timestamp in ISO 8601 format
|
|
1534
|
+
*/
|
|
1535
|
+
createdAt: string;
|
|
1536
|
+
name: string;
|
|
1537
|
+
/**
|
|
1538
|
+
* Last update timestamp in ISO 8601 format
|
|
1539
|
+
*/
|
|
1540
|
+
updatedAt: string;
|
|
1541
|
+
description?: string | null;
|
|
1542
|
+
}
|
|
1543
|
+
/**
|
|
1544
|
+
* The persona this runs as instead of the happy path's. Null means it inherits.
|
|
1545
|
+
*/
|
|
1546
|
+
interface PersonaOverride {
|
|
1547
|
+
/**
|
|
1548
|
+
* Unique identifier of the persona
|
|
1549
|
+
*/
|
|
1550
|
+
id: string;
|
|
1551
|
+
/**
|
|
1552
|
+
* Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with
|
|
1553
|
+
* optional variants
|
|
1554
|
+
*/
|
|
1555
|
+
accent: 'US' | 'US_X_SOUTH' | 'GB' | 'ES' | 'DE' | 'IN' | 'FR' | 'NL' | 'SA' | 'GR' | 'AU' | 'IT' | 'ID' | 'TH' | 'JP' | 'NZ' | 'PH' | 'SG' | 'MY' | 'HK' | 'TR' | 'PT' | 'IL';
|
|
1556
|
+
/**
|
|
1557
|
+
* How old the caller sounds and behaves. Only ages the persona's accent has a
|
|
1558
|
+
* voice for are accepted; defaults to ADULT, which every accent supports.
|
|
1559
|
+
*/
|
|
1560
|
+
age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY';
|
|
1561
|
+
/**
|
|
1562
|
+
* Background noise setting
|
|
1563
|
+
*/
|
|
1564
|
+
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
1565
|
+
/**
|
|
1566
|
+
* Base emotional state of the persona
|
|
1567
|
+
*/
|
|
1568
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
1569
|
+
/**
|
|
1570
|
+
* How the persona confirms information
|
|
1571
|
+
*/
|
|
1572
|
+
confirmationStyle: 'EXPLICIT' | 'VAGUE';
|
|
1573
|
+
/**
|
|
1574
|
+
* Creation timestamp
|
|
1575
|
+
*/
|
|
1576
|
+
createdAt: string;
|
|
1577
|
+
/**
|
|
1578
|
+
* Gender of the persona
|
|
1579
|
+
*/
|
|
1580
|
+
gender: 'MALE' | 'FEMALE';
|
|
1581
|
+
/**
|
|
1582
|
+
* Whether the persona uses filler words like "um" and "uh"
|
|
1583
|
+
*/
|
|
1584
|
+
hasDisfluencies: boolean;
|
|
1585
|
+
/**
|
|
1586
|
+
* Maximum number of idle messages the persona will send before giving up
|
|
1587
|
+
*/
|
|
1588
|
+
idleMessageMaxSpokenCount: number;
|
|
1589
|
+
/**
|
|
1590
|
+
* Whether the idle message counter resets when the agent speaks
|
|
1591
|
+
*/
|
|
1592
|
+
idleMessageResetCountOnUserSpeechEnabled: boolean;
|
|
1593
|
+
/**
|
|
1594
|
+
* Messages the persona will say when the agent goes silent during a call. null =
|
|
1595
|
+
* "Automatic": language-appropriate defaults are used at call time.
|
|
1596
|
+
*/
|
|
1597
|
+
idleMessages: Array<string> | null;
|
|
1598
|
+
/**
|
|
1599
|
+
* Seconds of silence before the persona sends an idle message
|
|
1600
|
+
*/
|
|
1601
|
+
idleTimeoutSeconds: number;
|
|
1602
|
+
/**
|
|
1603
|
+
* How clearly the persona expresses their intentions
|
|
1604
|
+
*/
|
|
1605
|
+
intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE';
|
|
1606
|
+
/**
|
|
1607
|
+
* Primary language ISO 639-1 code for the persona
|
|
1608
|
+
*/
|
|
1609
|
+
language: 'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE';
|
|
1610
|
+
/**
|
|
1611
|
+
* How reliable the persona's memory is
|
|
1612
|
+
*/
|
|
1613
|
+
memoryReliability: 'HIGH' | 'LOW';
|
|
1614
|
+
/**
|
|
1615
|
+
* The name the agent will identify as during conversations
|
|
1616
|
+
*/
|
|
1617
|
+
name: string;
|
|
1618
|
+
/**
|
|
1619
|
+
* Additional custom properties about the persona
|
|
1620
|
+
*/
|
|
1621
|
+
properties: {
|
|
1622
|
+
[key: string]: unknown;
|
|
1623
|
+
};
|
|
1624
|
+
/**
|
|
1625
|
+
* Controls how quickly the persona responds to pauses in conversation (QUICK,
|
|
1626
|
+
* NORMAL, RELAXED)
|
|
1627
|
+
*/
|
|
1628
|
+
responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK';
|
|
1629
|
+
/**
|
|
1630
|
+
* Speech clarity of the persona
|
|
1631
|
+
*/
|
|
1632
|
+
speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING';
|
|
1633
|
+
/**
|
|
1634
|
+
* Speech pace of the persona
|
|
1635
|
+
*/
|
|
1636
|
+
speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST';
|
|
1637
|
+
/**
|
|
1638
|
+
* Languages the persona can understand. Multilingual combinations are limited by
|
|
1639
|
+
* multilingual speech recognition support.
|
|
1640
|
+
*/
|
|
1641
|
+
understoodLanguages: Array<'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT' | 'HE'>;
|
|
1642
|
+
/**
|
|
1643
|
+
* Last update timestamp
|
|
1644
|
+
*/
|
|
1645
|
+
updatedAt: string;
|
|
1646
|
+
/**
|
|
1647
|
+
* Background story and behavioral patterns for the persona
|
|
1648
|
+
*/
|
|
1649
|
+
backstoryPrompt?: string | null;
|
|
1650
|
+
/**
|
|
1651
|
+
* Human-readable description of the persona
|
|
1652
|
+
*/
|
|
1653
|
+
description?: string | null;
|
|
1654
|
+
/**
|
|
1655
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
1656
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
1657
|
+
* or set null to display the name itself.
|
|
1658
|
+
*/
|
|
1659
|
+
displayName?: string | null;
|
|
1660
|
+
/**
|
|
1661
|
+
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
1662
|
+
*/
|
|
1663
|
+
secondaryLanguage?: 'EN' | null;
|
|
1664
|
+
}
|
|
1665
|
+
}
|
|
1666
|
+
}
|
|
1667
|
+
}
|
|
1668
|
+
export interface CustomerFlowUpdateResponse {
|
|
203
1669
|
/**
|
|
204
1670
|
* The conversation a simulated customer has with the agent under test.
|
|
205
1671
|
*/
|
|
206
|
-
data:
|
|
1672
|
+
data: CustomerFlowUpdateResponse.ScriptedCustomerFlow | CustomerFlowUpdateResponse.ImprovCustomerFlow | CustomerFlowUpdateResponse.VoicemailCustomerFlow;
|
|
207
1673
|
}
|
|
208
|
-
export declare namespace
|
|
1674
|
+
export declare namespace CustomerFlowUpdateResponse {
|
|
209
1675
|
/**
|
|
210
1676
|
* A flow whose conversation is written out as a graph of turns.
|
|
211
1677
|
*/
|
|
@@ -238,6 +1704,28 @@ export declare namespace CustomerFlowCreateResponse {
|
|
|
238
1704
|
* editing the graph is what creates and removes these.
|
|
239
1705
|
*/
|
|
240
1706
|
happyPath: ScriptedCustomerFlow.HappyPath | null;
|
|
1707
|
+
/**
|
|
1708
|
+
* STRICT only. What the simulated customer does when your agent does not say the
|
|
1709
|
+
* expected line. Each unmatched agent utterance is an attempt: `reaction` runs per
|
|
1710
|
+
* attempt (STAY_SILENT, REPEAT its last scripted line, RESPOND once in character
|
|
1711
|
+
* without moving on, or SAY `sayLine`), and `then` runs when attempts reach
|
|
1712
|
+
* `maxAttempts` or your agent stays silent for `waitSeconds` (HANG_UP ends the
|
|
1713
|
+
* call with ended reason SCRIPT_DIVERGED, HANG_UP_INVALIDATE ends it the same way
|
|
1714
|
+
* and invalidates the run so it is scored by nothing and counted nowhere, MOVE_ON
|
|
1715
|
+
* advances anyway, ADAPT hands the rest of the call to loose behaviour). Null:
|
|
1716
|
+
* stay silent, 3 attempts, hang up. The default for every agent step; an
|
|
1717
|
+
* AGENT_TURN step can carry its own.
|
|
1718
|
+
*/
|
|
1719
|
+
offScriptPolicy: ScriptedCustomerFlow.OffScriptPolicy | null;
|
|
1720
|
+
/**
|
|
1721
|
+
* How closely a run follows the script. LOOSE (default) hands the whole script to
|
|
1722
|
+
* the simulated customer as one prompt; it keeps the call moving whatever your
|
|
1723
|
+
* agent says. STRICT runs the script as a state machine on the agent service: at
|
|
1724
|
+
* every agent step the simulated customer waits, silent, until your agent has said
|
|
1725
|
+
* the expected line, and only then moves on. Scripted flows only; STRICT needs the
|
|
1726
|
+
* agent-service transport and is not available on realtime models.
|
|
1727
|
+
*/
|
|
1728
|
+
scriptAdherence: 'LOOSE' | 'STRICT';
|
|
241
1729
|
source: 'SYSTEM' | 'CUSTOM';
|
|
242
1730
|
title: string;
|
|
243
1731
|
type: 'SCRIPTED';
|
|
@@ -349,6 +1837,7 @@ export declare namespace CustomerFlowCreateResponse {
|
|
|
349
1837
|
interface Environment {
|
|
350
1838
|
id: string;
|
|
351
1839
|
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
1840
|
+
backgroundNoiseVolume: number;
|
|
352
1841
|
/**
|
|
353
1842
|
* Creation timestamp in ISO 8601 format
|
|
354
1843
|
*/
|
|
@@ -385,7 +1874,7 @@ export declare namespace CustomerFlowCreateResponse {
|
|
|
385
1874
|
/**
|
|
386
1875
|
* Base emotional state of the persona
|
|
387
1876
|
*/
|
|
388
|
-
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
1877
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
389
1878
|
/**
|
|
390
1879
|
* How the persona confirms information
|
|
391
1880
|
*/
|
|
@@ -471,6 +1960,12 @@ export declare namespace CustomerFlowCreateResponse {
|
|
|
471
1960
|
* Human-readable description of the persona
|
|
472
1961
|
*/
|
|
473
1962
|
description?: string | null;
|
|
1963
|
+
/**
|
|
1964
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
1965
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
1966
|
+
* or set null to display the name itself.
|
|
1967
|
+
*/
|
|
1968
|
+
displayName?: string | null;
|
|
474
1969
|
/**
|
|
475
1970
|
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
476
1971
|
*/
|
|
@@ -536,6 +2031,7 @@ export declare namespace CustomerFlowCreateResponse {
|
|
|
536
2031
|
interface Environment {
|
|
537
2032
|
id: string;
|
|
538
2033
|
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
2034
|
+
backgroundNoiseVolume: number;
|
|
539
2035
|
/**
|
|
540
2036
|
* Creation timestamp in ISO 8601 format
|
|
541
2037
|
*/
|
|
@@ -572,7 +2068,7 @@ export declare namespace CustomerFlowCreateResponse {
|
|
|
572
2068
|
/**
|
|
573
2069
|
* Base emotional state of the persona
|
|
574
2070
|
*/
|
|
575
|
-
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
2071
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
576
2072
|
/**
|
|
577
2073
|
* How the persona confirms information
|
|
578
2074
|
*/
|
|
@@ -658,12 +2154,37 @@ export declare namespace CustomerFlowCreateResponse {
|
|
|
658
2154
|
* Human-readable description of the persona
|
|
659
2155
|
*/
|
|
660
2156
|
description?: string | null;
|
|
2157
|
+
/**
|
|
2158
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
2159
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
2160
|
+
* or set null to display the name itself.
|
|
2161
|
+
*/
|
|
2162
|
+
displayName?: string | null;
|
|
661
2163
|
/**
|
|
662
2164
|
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
663
2165
|
*/
|
|
664
2166
|
secondaryLanguage?: 'EN' | null;
|
|
665
2167
|
}
|
|
666
2168
|
}
|
|
2169
|
+
/**
|
|
2170
|
+
* STRICT only. What the simulated customer does when your agent does not say the
|
|
2171
|
+
* expected line. Each unmatched agent utterance is an attempt: `reaction` runs per
|
|
2172
|
+
* attempt (STAY_SILENT, REPEAT its last scripted line, RESPOND once in character
|
|
2173
|
+
* without moving on, or SAY `sayLine`), and `then` runs when attempts reach
|
|
2174
|
+
* `maxAttempts` or your agent stays silent for `waitSeconds` (HANG_UP ends the
|
|
2175
|
+
* call with ended reason SCRIPT_DIVERGED, HANG_UP_INVALIDATE ends it the same way
|
|
2176
|
+
* and invalidates the run so it is scored by nothing and counted nowhere, MOVE_ON
|
|
2177
|
+
* advances anyway, ADAPT hands the rest of the call to loose behaviour). Null:
|
|
2178
|
+
* stay silent, 3 attempts, hang up. The default for every agent step; an
|
|
2179
|
+
* AGENT_TURN step can carry its own.
|
|
2180
|
+
*/
|
|
2181
|
+
interface OffScriptPolicy {
|
|
2182
|
+
maxAttempts: number;
|
|
2183
|
+
reaction: 'STAY_SILENT' | 'REPEAT' | 'RESPOND' | 'SAY';
|
|
2184
|
+
then: 'HANG_UP' | 'MOVE_ON' | 'ADAPT' | 'HANG_UP_INVALIDATE';
|
|
2185
|
+
sayLine?: string | null;
|
|
2186
|
+
waitSeconds?: number | null;
|
|
2187
|
+
}
|
|
667
2188
|
}
|
|
668
2189
|
/**
|
|
669
2190
|
* A flow whose conversation is not written out: each variant gives the simulated
|
|
@@ -791,6 +2312,7 @@ export declare namespace CustomerFlowCreateResponse {
|
|
|
791
2312
|
interface Environment {
|
|
792
2313
|
id: string;
|
|
793
2314
|
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
2315
|
+
backgroundNoiseVolume: number;
|
|
794
2316
|
/**
|
|
795
2317
|
* Creation timestamp in ISO 8601 format
|
|
796
2318
|
*/
|
|
@@ -827,7 +2349,7 @@ export declare namespace CustomerFlowCreateResponse {
|
|
|
827
2349
|
/**
|
|
828
2350
|
* Base emotional state of the persona
|
|
829
2351
|
*/
|
|
830
|
-
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
2352
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
831
2353
|
/**
|
|
832
2354
|
* How the persona confirms information
|
|
833
2355
|
*/
|
|
@@ -913,6 +2435,12 @@ export declare namespace CustomerFlowCreateResponse {
|
|
|
913
2435
|
* Human-readable description of the persona
|
|
914
2436
|
*/
|
|
915
2437
|
description?: string | null;
|
|
2438
|
+
/**
|
|
2439
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
2440
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
2441
|
+
* or set null to display the name itself.
|
|
2442
|
+
*/
|
|
2443
|
+
displayName?: string | null;
|
|
916
2444
|
/**
|
|
917
2445
|
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
918
2446
|
*/
|
|
@@ -976,6 +2504,7 @@ export declare namespace CustomerFlowCreateResponse {
|
|
|
976
2504
|
interface Environment {
|
|
977
2505
|
id: string;
|
|
978
2506
|
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
2507
|
+
backgroundNoiseVolume: number;
|
|
979
2508
|
/**
|
|
980
2509
|
* Creation timestamp in ISO 8601 format
|
|
981
2510
|
*/
|
|
@@ -1012,7 +2541,7 @@ export declare namespace CustomerFlowCreateResponse {
|
|
|
1012
2541
|
/**
|
|
1013
2542
|
* Base emotional state of the persona
|
|
1014
2543
|
*/
|
|
1015
|
-
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
2544
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
1016
2545
|
/**
|
|
1017
2546
|
* How the persona confirms information
|
|
1018
2547
|
*/
|
|
@@ -1098,6 +2627,12 @@ export declare namespace CustomerFlowCreateResponse {
|
|
|
1098
2627
|
* Human-readable description of the persona
|
|
1099
2628
|
*/
|
|
1100
2629
|
description?: string | null;
|
|
2630
|
+
/**
|
|
2631
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
2632
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
2633
|
+
* or set null to display the name itself.
|
|
2634
|
+
*/
|
|
2635
|
+
displayName?: string | null;
|
|
1101
2636
|
/**
|
|
1102
2637
|
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
1103
2638
|
*/
|
|
@@ -1226,6 +2761,7 @@ export declare namespace CustomerFlowCreateResponse {
|
|
|
1226
2761
|
interface Environment {
|
|
1227
2762
|
id: string;
|
|
1228
2763
|
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
2764
|
+
backgroundNoiseVolume: number;
|
|
1229
2765
|
/**
|
|
1230
2766
|
* Creation timestamp in ISO 8601 format
|
|
1231
2767
|
*/
|
|
@@ -1262,7 +2798,7 @@ export declare namespace CustomerFlowCreateResponse {
|
|
|
1262
2798
|
/**
|
|
1263
2799
|
* Base emotional state of the persona
|
|
1264
2800
|
*/
|
|
1265
|
-
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
2801
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
1266
2802
|
/**
|
|
1267
2803
|
* How the persona confirms information
|
|
1268
2804
|
*/
|
|
@@ -1348,6 +2884,12 @@ export declare namespace CustomerFlowCreateResponse {
|
|
|
1348
2884
|
* Human-readable description of the persona
|
|
1349
2885
|
*/
|
|
1350
2886
|
description?: string | null;
|
|
2887
|
+
/**
|
|
2888
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
2889
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
2890
|
+
* or set null to display the name itself.
|
|
2891
|
+
*/
|
|
2892
|
+
displayName?: string | null;
|
|
1351
2893
|
/**
|
|
1352
2894
|
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
1353
2895
|
*/
|
|
@@ -1407,6 +2949,7 @@ export declare namespace CustomerFlowCreateResponse {
|
|
|
1407
2949
|
interface Environment {
|
|
1408
2950
|
id: string;
|
|
1409
2951
|
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
2952
|
+
backgroundNoiseVolume: number;
|
|
1410
2953
|
/**
|
|
1411
2954
|
* Creation timestamp in ISO 8601 format
|
|
1412
2955
|
*/
|
|
@@ -1443,7 +2986,7 @@ export declare namespace CustomerFlowCreateResponse {
|
|
|
1443
2986
|
/**
|
|
1444
2987
|
* Base emotional state of the persona
|
|
1445
2988
|
*/
|
|
1446
|
-
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
2989
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
1447
2990
|
/**
|
|
1448
2991
|
* How the persona confirms information
|
|
1449
2992
|
*/
|
|
@@ -1529,6 +3072,12 @@ export declare namespace CustomerFlowCreateResponse {
|
|
|
1529
3072
|
* Human-readable description of the persona
|
|
1530
3073
|
*/
|
|
1531
3074
|
description?: string | null;
|
|
3075
|
+
/**
|
|
3076
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
3077
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
3078
|
+
* or set null to display the name itself.
|
|
3079
|
+
*/
|
|
3080
|
+
displayName?: string | null;
|
|
1532
3081
|
/**
|
|
1533
3082
|
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
1534
3083
|
*/
|
|
@@ -1537,13 +3086,14 @@ export declare namespace CustomerFlowCreateResponse {
|
|
|
1537
3086
|
}
|
|
1538
3087
|
}
|
|
1539
3088
|
}
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
data:
|
|
3089
|
+
/**
|
|
3090
|
+
* Paginated list of customer flows
|
|
3091
|
+
*/
|
|
3092
|
+
export interface CustomerFlowListResponse {
|
|
3093
|
+
data: Array<CustomerFlowListResponse.ScriptedCustomerFlow | CustomerFlowListResponse.ImprovCustomerFlow | CustomerFlowListResponse.VoicemailCustomerFlow>;
|
|
3094
|
+
pagination: CustomerFlowListResponse.Pagination;
|
|
1545
3095
|
}
|
|
1546
|
-
export declare namespace
|
|
3096
|
+
export declare namespace CustomerFlowListResponse {
|
|
1547
3097
|
/**
|
|
1548
3098
|
* A flow whose conversation is written out as a graph of turns.
|
|
1549
3099
|
*/
|
|
@@ -1576,6 +3126,28 @@ export declare namespace CustomerFlowUpdateResponse {
|
|
|
1576
3126
|
* editing the graph is what creates and removes these.
|
|
1577
3127
|
*/
|
|
1578
3128
|
happyPath: ScriptedCustomerFlow.HappyPath | null;
|
|
3129
|
+
/**
|
|
3130
|
+
* STRICT only. What the simulated customer does when your agent does not say the
|
|
3131
|
+
* expected line. Each unmatched agent utterance is an attempt: `reaction` runs per
|
|
3132
|
+
* attempt (STAY_SILENT, REPEAT its last scripted line, RESPOND once in character
|
|
3133
|
+
* without moving on, or SAY `sayLine`), and `then` runs when attempts reach
|
|
3134
|
+
* `maxAttempts` or your agent stays silent for `waitSeconds` (HANG_UP ends the
|
|
3135
|
+
* call with ended reason SCRIPT_DIVERGED, HANG_UP_INVALIDATE ends it the same way
|
|
3136
|
+
* and invalidates the run so it is scored by nothing and counted nowhere, MOVE_ON
|
|
3137
|
+
* advances anyway, ADAPT hands the rest of the call to loose behaviour). Null:
|
|
3138
|
+
* stay silent, 3 attempts, hang up. The default for every agent step; an
|
|
3139
|
+
* AGENT_TURN step can carry its own.
|
|
3140
|
+
*/
|
|
3141
|
+
offScriptPolicy: ScriptedCustomerFlow.OffScriptPolicy | null;
|
|
3142
|
+
/**
|
|
3143
|
+
* How closely a run follows the script. LOOSE (default) hands the whole script to
|
|
3144
|
+
* the simulated customer as one prompt; it keeps the call moving whatever your
|
|
3145
|
+
* agent says. STRICT runs the script as a state machine on the agent service: at
|
|
3146
|
+
* every agent step the simulated customer waits, silent, until your agent has said
|
|
3147
|
+
* the expected line, and only then moves on. Scripted flows only; STRICT needs the
|
|
3148
|
+
* agent-service transport and is not available on realtime models.
|
|
3149
|
+
*/
|
|
3150
|
+
scriptAdherence: 'LOOSE' | 'STRICT';
|
|
1579
3151
|
source: 'SYSTEM' | 'CUSTOM';
|
|
1580
3152
|
title: string;
|
|
1581
3153
|
type: 'SCRIPTED';
|
|
@@ -1687,6 +3259,7 @@ export declare namespace CustomerFlowUpdateResponse {
|
|
|
1687
3259
|
interface Environment {
|
|
1688
3260
|
id: string;
|
|
1689
3261
|
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
3262
|
+
backgroundNoiseVolume: number;
|
|
1690
3263
|
/**
|
|
1691
3264
|
* Creation timestamp in ISO 8601 format
|
|
1692
3265
|
*/
|
|
@@ -1723,7 +3296,7 @@ export declare namespace CustomerFlowUpdateResponse {
|
|
|
1723
3296
|
/**
|
|
1724
3297
|
* Base emotional state of the persona
|
|
1725
3298
|
*/
|
|
1726
|
-
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
3299
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
1727
3300
|
/**
|
|
1728
3301
|
* How the persona confirms information
|
|
1729
3302
|
*/
|
|
@@ -1809,6 +3382,12 @@ export declare namespace CustomerFlowUpdateResponse {
|
|
|
1809
3382
|
* Human-readable description of the persona
|
|
1810
3383
|
*/
|
|
1811
3384
|
description?: string | null;
|
|
3385
|
+
/**
|
|
3386
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
3387
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
3388
|
+
* or set null to display the name itself.
|
|
3389
|
+
*/
|
|
3390
|
+
displayName?: string | null;
|
|
1812
3391
|
/**
|
|
1813
3392
|
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
1814
3393
|
*/
|
|
@@ -1874,6 +3453,7 @@ export declare namespace CustomerFlowUpdateResponse {
|
|
|
1874
3453
|
interface Environment {
|
|
1875
3454
|
id: string;
|
|
1876
3455
|
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
3456
|
+
backgroundNoiseVolume: number;
|
|
1877
3457
|
/**
|
|
1878
3458
|
* Creation timestamp in ISO 8601 format
|
|
1879
3459
|
*/
|
|
@@ -1910,7 +3490,7 @@ export declare namespace CustomerFlowUpdateResponse {
|
|
|
1910
3490
|
/**
|
|
1911
3491
|
* Base emotional state of the persona
|
|
1912
3492
|
*/
|
|
1913
|
-
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
3493
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
1914
3494
|
/**
|
|
1915
3495
|
* How the persona confirms information
|
|
1916
3496
|
*/
|
|
@@ -1996,12 +3576,37 @@ export declare namespace CustomerFlowUpdateResponse {
|
|
|
1996
3576
|
* Human-readable description of the persona
|
|
1997
3577
|
*/
|
|
1998
3578
|
description?: string | null;
|
|
3579
|
+
/**
|
|
3580
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
3581
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
3582
|
+
* or set null to display the name itself.
|
|
3583
|
+
*/
|
|
3584
|
+
displayName?: string | null;
|
|
1999
3585
|
/**
|
|
2000
3586
|
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
2001
3587
|
*/
|
|
2002
3588
|
secondaryLanguage?: 'EN' | null;
|
|
2003
3589
|
}
|
|
2004
3590
|
}
|
|
3591
|
+
/**
|
|
3592
|
+
* STRICT only. What the simulated customer does when your agent does not say the
|
|
3593
|
+
* expected line. Each unmatched agent utterance is an attempt: `reaction` runs per
|
|
3594
|
+
* attempt (STAY_SILENT, REPEAT its last scripted line, RESPOND once in character
|
|
3595
|
+
* without moving on, or SAY `sayLine`), and `then` runs when attempts reach
|
|
3596
|
+
* `maxAttempts` or your agent stays silent for `waitSeconds` (HANG_UP ends the
|
|
3597
|
+
* call with ended reason SCRIPT_DIVERGED, HANG_UP_INVALIDATE ends it the same way
|
|
3598
|
+
* and invalidates the run so it is scored by nothing and counted nowhere, MOVE_ON
|
|
3599
|
+
* advances anyway, ADAPT hands the rest of the call to loose behaviour). Null:
|
|
3600
|
+
* stay silent, 3 attempts, hang up. The default for every agent step; an
|
|
3601
|
+
* AGENT_TURN step can carry its own.
|
|
3602
|
+
*/
|
|
3603
|
+
interface OffScriptPolicy {
|
|
3604
|
+
maxAttempts: number;
|
|
3605
|
+
reaction: 'STAY_SILENT' | 'REPEAT' | 'RESPOND' | 'SAY';
|
|
3606
|
+
then: 'HANG_UP' | 'MOVE_ON' | 'ADAPT' | 'HANG_UP_INVALIDATE';
|
|
3607
|
+
sayLine?: string | null;
|
|
3608
|
+
waitSeconds?: number | null;
|
|
3609
|
+
}
|
|
2005
3610
|
}
|
|
2006
3611
|
/**
|
|
2007
3612
|
* A flow whose conversation is not written out: each variant gives the simulated
|
|
@@ -2129,6 +3734,7 @@ export declare namespace CustomerFlowUpdateResponse {
|
|
|
2129
3734
|
interface Environment {
|
|
2130
3735
|
id: string;
|
|
2131
3736
|
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
3737
|
+
backgroundNoiseVolume: number;
|
|
2132
3738
|
/**
|
|
2133
3739
|
* Creation timestamp in ISO 8601 format
|
|
2134
3740
|
*/
|
|
@@ -2165,7 +3771,7 @@ export declare namespace CustomerFlowUpdateResponse {
|
|
|
2165
3771
|
/**
|
|
2166
3772
|
* Base emotional state of the persona
|
|
2167
3773
|
*/
|
|
2168
|
-
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
3774
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
2169
3775
|
/**
|
|
2170
3776
|
* How the persona confirms information
|
|
2171
3777
|
*/
|
|
@@ -2251,6 +3857,12 @@ export declare namespace CustomerFlowUpdateResponse {
|
|
|
2251
3857
|
* Human-readable description of the persona
|
|
2252
3858
|
*/
|
|
2253
3859
|
description?: string | null;
|
|
3860
|
+
/**
|
|
3861
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
3862
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
3863
|
+
* or set null to display the name itself.
|
|
3864
|
+
*/
|
|
3865
|
+
displayName?: string | null;
|
|
2254
3866
|
/**
|
|
2255
3867
|
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
2256
3868
|
*/
|
|
@@ -2314,6 +3926,7 @@ export declare namespace CustomerFlowUpdateResponse {
|
|
|
2314
3926
|
interface Environment {
|
|
2315
3927
|
id: string;
|
|
2316
3928
|
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
3929
|
+
backgroundNoiseVolume: number;
|
|
2317
3930
|
/**
|
|
2318
3931
|
* Creation timestamp in ISO 8601 format
|
|
2319
3932
|
*/
|
|
@@ -2350,7 +3963,7 @@ export declare namespace CustomerFlowUpdateResponse {
|
|
|
2350
3963
|
/**
|
|
2351
3964
|
* Base emotional state of the persona
|
|
2352
3965
|
*/
|
|
2353
|
-
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
3966
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
2354
3967
|
/**
|
|
2355
3968
|
* How the persona confirms information
|
|
2356
3969
|
*/
|
|
@@ -2436,6 +4049,12 @@ export declare namespace CustomerFlowUpdateResponse {
|
|
|
2436
4049
|
* Human-readable description of the persona
|
|
2437
4050
|
*/
|
|
2438
4051
|
description?: string | null;
|
|
4052
|
+
/**
|
|
4053
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
4054
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
4055
|
+
* or set null to display the name itself.
|
|
4056
|
+
*/
|
|
4057
|
+
displayName?: string | null;
|
|
2439
4058
|
/**
|
|
2440
4059
|
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
2441
4060
|
*/
|
|
@@ -2564,6 +4183,7 @@ export declare namespace CustomerFlowUpdateResponse {
|
|
|
2564
4183
|
interface Environment {
|
|
2565
4184
|
id: string;
|
|
2566
4185
|
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
4186
|
+
backgroundNoiseVolume: number;
|
|
2567
4187
|
/**
|
|
2568
4188
|
* Creation timestamp in ISO 8601 format
|
|
2569
4189
|
*/
|
|
@@ -2600,7 +4220,7 @@ export declare namespace CustomerFlowUpdateResponse {
|
|
|
2600
4220
|
/**
|
|
2601
4221
|
* Base emotional state of the persona
|
|
2602
4222
|
*/
|
|
2603
|
-
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
4223
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
2604
4224
|
/**
|
|
2605
4225
|
* How the persona confirms information
|
|
2606
4226
|
*/
|
|
@@ -2686,6 +4306,12 @@ export declare namespace CustomerFlowUpdateResponse {
|
|
|
2686
4306
|
* Human-readable description of the persona
|
|
2687
4307
|
*/
|
|
2688
4308
|
description?: string | null;
|
|
4309
|
+
/**
|
|
4310
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
4311
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
4312
|
+
* or set null to display the name itself.
|
|
4313
|
+
*/
|
|
4314
|
+
displayName?: string | null;
|
|
2689
4315
|
/**
|
|
2690
4316
|
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
2691
4317
|
*/
|
|
@@ -2745,6 +4371,7 @@ export declare namespace CustomerFlowUpdateResponse {
|
|
|
2745
4371
|
interface Environment {
|
|
2746
4372
|
id: string;
|
|
2747
4373
|
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
4374
|
+
backgroundNoiseVolume: number;
|
|
2748
4375
|
/**
|
|
2749
4376
|
* Creation timestamp in ISO 8601 format
|
|
2750
4377
|
*/
|
|
@@ -2781,7 +4408,7 @@ export declare namespace CustomerFlowUpdateResponse {
|
|
|
2781
4408
|
/**
|
|
2782
4409
|
* Base emotional state of the persona
|
|
2783
4410
|
*/
|
|
2784
|
-
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
4411
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
2785
4412
|
/**
|
|
2786
4413
|
* How the persona confirms information
|
|
2787
4414
|
*/
|
|
@@ -2867,6 +4494,12 @@ export declare namespace CustomerFlowUpdateResponse {
|
|
|
2867
4494
|
* Human-readable description of the persona
|
|
2868
4495
|
*/
|
|
2869
4496
|
description?: string | null;
|
|
4497
|
+
/**
|
|
4498
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
4499
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
4500
|
+
* or set null to display the name itself.
|
|
4501
|
+
*/
|
|
4502
|
+
displayName?: string | null;
|
|
2870
4503
|
/**
|
|
2871
4504
|
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
2872
4505
|
*/
|
|
@@ -2874,15 +4507,39 @@ export declare namespace CustomerFlowUpdateResponse {
|
|
|
2874
4507
|
}
|
|
2875
4508
|
}
|
|
2876
4509
|
}
|
|
4510
|
+
interface Pagination {
|
|
4511
|
+
/**
|
|
4512
|
+
* Whether there are more items to fetch
|
|
4513
|
+
*/
|
|
4514
|
+
hasMore: boolean;
|
|
4515
|
+
/**
|
|
4516
|
+
* Cursor for the next page of items
|
|
4517
|
+
*/
|
|
4518
|
+
nextCursor: string | null;
|
|
4519
|
+
/**
|
|
4520
|
+
* Total number of items
|
|
4521
|
+
*/
|
|
4522
|
+
total: number;
|
|
4523
|
+
}
|
|
2877
4524
|
}
|
|
2878
|
-
|
|
2879
|
-
|
|
2880
|
-
*/
|
|
2881
|
-
export interface CustomerFlowListResponse {
|
|
2882
|
-
data: Array<CustomerFlowListResponse.ScriptedCustomerFlow | CustomerFlowListResponse.ImprovCustomerFlow | CustomerFlowListResponse.VoicemailCustomerFlow>;
|
|
2883
|
-
pagination: CustomerFlowListResponse.Pagination;
|
|
4525
|
+
export interface CustomerFlowDeleteResponse {
|
|
4526
|
+
data: CustomerFlowDeleteResponse.Data;
|
|
2884
4527
|
}
|
|
2885
|
-
export declare namespace
|
|
4528
|
+
export declare namespace CustomerFlowDeleteResponse {
|
|
4529
|
+
interface Data {
|
|
4530
|
+
/**
|
|
4531
|
+
* Whether the flow was deleted
|
|
4532
|
+
*/
|
|
4533
|
+
deleted: boolean;
|
|
4534
|
+
}
|
|
4535
|
+
}
|
|
4536
|
+
export interface CustomerFlowDuplicateResponse {
|
|
4537
|
+
/**
|
|
4538
|
+
* The conversation a simulated customer has with the agent under test.
|
|
4539
|
+
*/
|
|
4540
|
+
data: CustomerFlowDuplicateResponse.ScriptedCustomerFlow | CustomerFlowDuplicateResponse.ImprovCustomerFlow | CustomerFlowDuplicateResponse.VoicemailCustomerFlow;
|
|
4541
|
+
}
|
|
4542
|
+
export declare namespace CustomerFlowDuplicateResponse {
|
|
2886
4543
|
/**
|
|
2887
4544
|
* A flow whose conversation is written out as a graph of turns.
|
|
2888
4545
|
*/
|
|
@@ -2915,6 +4572,28 @@ export declare namespace CustomerFlowListResponse {
|
|
|
2915
4572
|
* editing the graph is what creates and removes these.
|
|
2916
4573
|
*/
|
|
2917
4574
|
happyPath: ScriptedCustomerFlow.HappyPath | null;
|
|
4575
|
+
/**
|
|
4576
|
+
* STRICT only. What the simulated customer does when your agent does not say the
|
|
4577
|
+
* expected line. Each unmatched agent utterance is an attempt: `reaction` runs per
|
|
4578
|
+
* attempt (STAY_SILENT, REPEAT its last scripted line, RESPOND once in character
|
|
4579
|
+
* without moving on, or SAY `sayLine`), and `then` runs when attempts reach
|
|
4580
|
+
* `maxAttempts` or your agent stays silent for `waitSeconds` (HANG_UP ends the
|
|
4581
|
+
* call with ended reason SCRIPT_DIVERGED, HANG_UP_INVALIDATE ends it the same way
|
|
4582
|
+
* and invalidates the run so it is scored by nothing and counted nowhere, MOVE_ON
|
|
4583
|
+
* advances anyway, ADAPT hands the rest of the call to loose behaviour). Null:
|
|
4584
|
+
* stay silent, 3 attempts, hang up. The default for every agent step; an
|
|
4585
|
+
* AGENT_TURN step can carry its own.
|
|
4586
|
+
*/
|
|
4587
|
+
offScriptPolicy: ScriptedCustomerFlow.OffScriptPolicy | null;
|
|
4588
|
+
/**
|
|
4589
|
+
* How closely a run follows the script. LOOSE (default) hands the whole script to
|
|
4590
|
+
* the simulated customer as one prompt; it keeps the call moving whatever your
|
|
4591
|
+
* agent says. STRICT runs the script as a state machine on the agent service: at
|
|
4592
|
+
* every agent step the simulated customer waits, silent, until your agent has said
|
|
4593
|
+
* the expected line, and only then moves on. Scripted flows only; STRICT needs the
|
|
4594
|
+
* agent-service transport and is not available on realtime models.
|
|
4595
|
+
*/
|
|
4596
|
+
scriptAdherence: 'LOOSE' | 'STRICT';
|
|
2918
4597
|
source: 'SYSTEM' | 'CUSTOM';
|
|
2919
4598
|
title: string;
|
|
2920
4599
|
type: 'SCRIPTED';
|
|
@@ -3026,6 +4705,7 @@ export declare namespace CustomerFlowListResponse {
|
|
|
3026
4705
|
interface Environment {
|
|
3027
4706
|
id: string;
|
|
3028
4707
|
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
4708
|
+
backgroundNoiseVolume: number;
|
|
3029
4709
|
/**
|
|
3030
4710
|
* Creation timestamp in ISO 8601 format
|
|
3031
4711
|
*/
|
|
@@ -3062,7 +4742,7 @@ export declare namespace CustomerFlowListResponse {
|
|
|
3062
4742
|
/**
|
|
3063
4743
|
* Base emotional state of the persona
|
|
3064
4744
|
*/
|
|
3065
|
-
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
4745
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
3066
4746
|
/**
|
|
3067
4747
|
* How the persona confirms information
|
|
3068
4748
|
*/
|
|
@@ -3148,6 +4828,12 @@ export declare namespace CustomerFlowListResponse {
|
|
|
3148
4828
|
* Human-readable description of the persona
|
|
3149
4829
|
*/
|
|
3150
4830
|
description?: string | null;
|
|
4831
|
+
/**
|
|
4832
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
4833
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
4834
|
+
* or set null to display the name itself.
|
|
4835
|
+
*/
|
|
4836
|
+
displayName?: string | null;
|
|
3151
4837
|
/**
|
|
3152
4838
|
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
3153
4839
|
*/
|
|
@@ -3213,6 +4899,7 @@ export declare namespace CustomerFlowListResponse {
|
|
|
3213
4899
|
interface Environment {
|
|
3214
4900
|
id: string;
|
|
3215
4901
|
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
4902
|
+
backgroundNoiseVolume: number;
|
|
3216
4903
|
/**
|
|
3217
4904
|
* Creation timestamp in ISO 8601 format
|
|
3218
4905
|
*/
|
|
@@ -3249,7 +4936,7 @@ export declare namespace CustomerFlowListResponse {
|
|
|
3249
4936
|
/**
|
|
3250
4937
|
* Base emotional state of the persona
|
|
3251
4938
|
*/
|
|
3252
|
-
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
4939
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
3253
4940
|
/**
|
|
3254
4941
|
* How the persona confirms information
|
|
3255
4942
|
*/
|
|
@@ -3335,12 +5022,37 @@ export declare namespace CustomerFlowListResponse {
|
|
|
3335
5022
|
* Human-readable description of the persona
|
|
3336
5023
|
*/
|
|
3337
5024
|
description?: string | null;
|
|
5025
|
+
/**
|
|
5026
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
5027
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
5028
|
+
* or set null to display the name itself.
|
|
5029
|
+
*/
|
|
5030
|
+
displayName?: string | null;
|
|
3338
5031
|
/**
|
|
3339
5032
|
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
3340
5033
|
*/
|
|
3341
5034
|
secondaryLanguage?: 'EN' | null;
|
|
3342
5035
|
}
|
|
3343
5036
|
}
|
|
5037
|
+
/**
|
|
5038
|
+
* STRICT only. What the simulated customer does when your agent does not say the
|
|
5039
|
+
* expected line. Each unmatched agent utterance is an attempt: `reaction` runs per
|
|
5040
|
+
* attempt (STAY_SILENT, REPEAT its last scripted line, RESPOND once in character
|
|
5041
|
+
* without moving on, or SAY `sayLine`), and `then` runs when attempts reach
|
|
5042
|
+
* `maxAttempts` or your agent stays silent for `waitSeconds` (HANG_UP ends the
|
|
5043
|
+
* call with ended reason SCRIPT_DIVERGED, HANG_UP_INVALIDATE ends it the same way
|
|
5044
|
+
* and invalidates the run so it is scored by nothing and counted nowhere, MOVE_ON
|
|
5045
|
+
* advances anyway, ADAPT hands the rest of the call to loose behaviour). Null:
|
|
5046
|
+
* stay silent, 3 attempts, hang up. The default for every agent step; an
|
|
5047
|
+
* AGENT_TURN step can carry its own.
|
|
5048
|
+
*/
|
|
5049
|
+
interface OffScriptPolicy {
|
|
5050
|
+
maxAttempts: number;
|
|
5051
|
+
reaction: 'STAY_SILENT' | 'REPEAT' | 'RESPOND' | 'SAY';
|
|
5052
|
+
then: 'HANG_UP' | 'MOVE_ON' | 'ADAPT' | 'HANG_UP_INVALIDATE';
|
|
5053
|
+
sayLine?: string | null;
|
|
5054
|
+
waitSeconds?: number | null;
|
|
5055
|
+
}
|
|
3344
5056
|
}
|
|
3345
5057
|
/**
|
|
3346
5058
|
* A flow whose conversation is not written out: each variant gives the simulated
|
|
@@ -3468,6 +5180,7 @@ export declare namespace CustomerFlowListResponse {
|
|
|
3468
5180
|
interface Environment {
|
|
3469
5181
|
id: string;
|
|
3470
5182
|
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
5183
|
+
backgroundNoiseVolume: number;
|
|
3471
5184
|
/**
|
|
3472
5185
|
* Creation timestamp in ISO 8601 format
|
|
3473
5186
|
*/
|
|
@@ -3504,7 +5217,7 @@ export declare namespace CustomerFlowListResponse {
|
|
|
3504
5217
|
/**
|
|
3505
5218
|
* Base emotional state of the persona
|
|
3506
5219
|
*/
|
|
3507
|
-
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
5220
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
3508
5221
|
/**
|
|
3509
5222
|
* How the persona confirms information
|
|
3510
5223
|
*/
|
|
@@ -3590,6 +5303,12 @@ export declare namespace CustomerFlowListResponse {
|
|
|
3590
5303
|
* Human-readable description of the persona
|
|
3591
5304
|
*/
|
|
3592
5305
|
description?: string | null;
|
|
5306
|
+
/**
|
|
5307
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
5308
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
5309
|
+
* or set null to display the name itself.
|
|
5310
|
+
*/
|
|
5311
|
+
displayName?: string | null;
|
|
3593
5312
|
/**
|
|
3594
5313
|
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
3595
5314
|
*/
|
|
@@ -3653,6 +5372,7 @@ export declare namespace CustomerFlowListResponse {
|
|
|
3653
5372
|
interface Environment {
|
|
3654
5373
|
id: string;
|
|
3655
5374
|
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
5375
|
+
backgroundNoiseVolume: number;
|
|
3656
5376
|
/**
|
|
3657
5377
|
* Creation timestamp in ISO 8601 format
|
|
3658
5378
|
*/
|
|
@@ -3689,7 +5409,7 @@ export declare namespace CustomerFlowListResponse {
|
|
|
3689
5409
|
/**
|
|
3690
5410
|
* Base emotional state of the persona
|
|
3691
5411
|
*/
|
|
3692
|
-
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
5412
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
3693
5413
|
/**
|
|
3694
5414
|
* How the persona confirms information
|
|
3695
5415
|
*/
|
|
@@ -3775,6 +5495,12 @@ export declare namespace CustomerFlowListResponse {
|
|
|
3775
5495
|
* Human-readable description of the persona
|
|
3776
5496
|
*/
|
|
3777
5497
|
description?: string | null;
|
|
5498
|
+
/**
|
|
5499
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
5500
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
5501
|
+
* or set null to display the name itself.
|
|
5502
|
+
*/
|
|
5503
|
+
displayName?: string | null;
|
|
3778
5504
|
/**
|
|
3779
5505
|
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
3780
5506
|
*/
|
|
@@ -3903,6 +5629,7 @@ export declare namespace CustomerFlowListResponse {
|
|
|
3903
5629
|
interface Environment {
|
|
3904
5630
|
id: string;
|
|
3905
5631
|
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
5632
|
+
backgroundNoiseVolume: number;
|
|
3906
5633
|
/**
|
|
3907
5634
|
* Creation timestamp in ISO 8601 format
|
|
3908
5635
|
*/
|
|
@@ -3939,7 +5666,7 @@ export declare namespace CustomerFlowListResponse {
|
|
|
3939
5666
|
/**
|
|
3940
5667
|
* Base emotional state of the persona
|
|
3941
5668
|
*/
|
|
3942
|
-
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
5669
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
3943
5670
|
/**
|
|
3944
5671
|
* How the persona confirms information
|
|
3945
5672
|
*/
|
|
@@ -4025,6 +5752,12 @@ export declare namespace CustomerFlowListResponse {
|
|
|
4025
5752
|
* Human-readable description of the persona
|
|
4026
5753
|
*/
|
|
4027
5754
|
description?: string | null;
|
|
5755
|
+
/**
|
|
5756
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
5757
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
5758
|
+
* or set null to display the name itself.
|
|
5759
|
+
*/
|
|
5760
|
+
displayName?: string | null;
|
|
4028
5761
|
/**
|
|
4029
5762
|
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
4030
5763
|
*/
|
|
@@ -4084,6 +5817,7 @@ export declare namespace CustomerFlowListResponse {
|
|
|
4084
5817
|
interface Environment {
|
|
4085
5818
|
id: string;
|
|
4086
5819
|
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
5820
|
+
backgroundNoiseVolume: number;
|
|
4087
5821
|
/**
|
|
4088
5822
|
* Creation timestamp in ISO 8601 format
|
|
4089
5823
|
*/
|
|
@@ -4120,7 +5854,7 @@ export declare namespace CustomerFlowListResponse {
|
|
|
4120
5854
|
/**
|
|
4121
5855
|
* Base emotional state of the persona
|
|
4122
5856
|
*/
|
|
4123
|
-
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
5857
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
4124
5858
|
/**
|
|
4125
5859
|
* How the persona confirms information
|
|
4126
5860
|
*/
|
|
@@ -4206,6 +5940,12 @@ export declare namespace CustomerFlowListResponse {
|
|
|
4206
5940
|
* Human-readable description of the persona
|
|
4207
5941
|
*/
|
|
4208
5942
|
description?: string | null;
|
|
5943
|
+
/**
|
|
5944
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
5945
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
5946
|
+
* or set null to display the name itself.
|
|
5947
|
+
*/
|
|
5948
|
+
displayName?: string | null;
|
|
4209
5949
|
/**
|
|
4210
5950
|
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
4211
5951
|
*/
|
|
@@ -4213,31 +5953,6 @@ export declare namespace CustomerFlowListResponse {
|
|
|
4213
5953
|
}
|
|
4214
5954
|
}
|
|
4215
5955
|
}
|
|
4216
|
-
interface Pagination {
|
|
4217
|
-
/**
|
|
4218
|
-
* Whether there are more items to fetch
|
|
4219
|
-
*/
|
|
4220
|
-
hasMore: boolean;
|
|
4221
|
-
/**
|
|
4222
|
-
* Cursor for the next page of items
|
|
4223
|
-
*/
|
|
4224
|
-
nextCursor: string | null;
|
|
4225
|
-
/**
|
|
4226
|
-
* Total number of items
|
|
4227
|
-
*/
|
|
4228
|
-
total: number;
|
|
4229
|
-
}
|
|
4230
|
-
}
|
|
4231
|
-
export interface CustomerFlowDeleteResponse {
|
|
4232
|
-
data: CustomerFlowDeleteResponse.Data;
|
|
4233
|
-
}
|
|
4234
|
-
export declare namespace CustomerFlowDeleteResponse {
|
|
4235
|
-
interface Data {
|
|
4236
|
-
/**
|
|
4237
|
-
* Whether the flow was deleted
|
|
4238
|
-
*/
|
|
4239
|
-
deleted: boolean;
|
|
4240
|
-
}
|
|
4241
5956
|
}
|
|
4242
5957
|
export interface CustomerFlowGetByIDResponse {
|
|
4243
5958
|
/**
|
|
@@ -4278,6 +5993,28 @@ export declare namespace CustomerFlowGetByIDResponse {
|
|
|
4278
5993
|
* editing the graph is what creates and removes these.
|
|
4279
5994
|
*/
|
|
4280
5995
|
happyPath: ScriptedCustomerFlow.HappyPath | null;
|
|
5996
|
+
/**
|
|
5997
|
+
* STRICT only. What the simulated customer does when your agent does not say the
|
|
5998
|
+
* expected line. Each unmatched agent utterance is an attempt: `reaction` runs per
|
|
5999
|
+
* attempt (STAY_SILENT, REPEAT its last scripted line, RESPOND once in character
|
|
6000
|
+
* without moving on, or SAY `sayLine`), and `then` runs when attempts reach
|
|
6001
|
+
* `maxAttempts` or your agent stays silent for `waitSeconds` (HANG_UP ends the
|
|
6002
|
+
* call with ended reason SCRIPT_DIVERGED, HANG_UP_INVALIDATE ends it the same way
|
|
6003
|
+
* and invalidates the run so it is scored by nothing and counted nowhere, MOVE_ON
|
|
6004
|
+
* advances anyway, ADAPT hands the rest of the call to loose behaviour). Null:
|
|
6005
|
+
* stay silent, 3 attempts, hang up. The default for every agent step; an
|
|
6006
|
+
* AGENT_TURN step can carry its own.
|
|
6007
|
+
*/
|
|
6008
|
+
offScriptPolicy: ScriptedCustomerFlow.OffScriptPolicy | null;
|
|
6009
|
+
/**
|
|
6010
|
+
* How closely a run follows the script. LOOSE (default) hands the whole script to
|
|
6011
|
+
* the simulated customer as one prompt; it keeps the call moving whatever your
|
|
6012
|
+
* agent says. STRICT runs the script as a state machine on the agent service: at
|
|
6013
|
+
* every agent step the simulated customer waits, silent, until your agent has said
|
|
6014
|
+
* the expected line, and only then moves on. Scripted flows only; STRICT needs the
|
|
6015
|
+
* agent-service transport and is not available on realtime models.
|
|
6016
|
+
*/
|
|
6017
|
+
scriptAdherence: 'LOOSE' | 'STRICT';
|
|
4281
6018
|
source: 'SYSTEM' | 'CUSTOM';
|
|
4282
6019
|
title: string;
|
|
4283
6020
|
type: 'SCRIPTED';
|
|
@@ -4389,6 +6126,7 @@ export declare namespace CustomerFlowGetByIDResponse {
|
|
|
4389
6126
|
interface Environment {
|
|
4390
6127
|
id: string;
|
|
4391
6128
|
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
6129
|
+
backgroundNoiseVolume: number;
|
|
4392
6130
|
/**
|
|
4393
6131
|
* Creation timestamp in ISO 8601 format
|
|
4394
6132
|
*/
|
|
@@ -4425,7 +6163,7 @@ export declare namespace CustomerFlowGetByIDResponse {
|
|
|
4425
6163
|
/**
|
|
4426
6164
|
* Base emotional state of the persona
|
|
4427
6165
|
*/
|
|
4428
|
-
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
6166
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
4429
6167
|
/**
|
|
4430
6168
|
* How the persona confirms information
|
|
4431
6169
|
*/
|
|
@@ -4511,6 +6249,12 @@ export declare namespace CustomerFlowGetByIDResponse {
|
|
|
4511
6249
|
* Human-readable description of the persona
|
|
4512
6250
|
*/
|
|
4513
6251
|
description?: string | null;
|
|
6252
|
+
/**
|
|
6253
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
6254
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
6255
|
+
* or set null to display the name itself.
|
|
6256
|
+
*/
|
|
6257
|
+
displayName?: string | null;
|
|
4514
6258
|
/**
|
|
4515
6259
|
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
4516
6260
|
*/
|
|
@@ -4576,6 +6320,7 @@ export declare namespace CustomerFlowGetByIDResponse {
|
|
|
4576
6320
|
interface Environment {
|
|
4577
6321
|
id: string;
|
|
4578
6322
|
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
6323
|
+
backgroundNoiseVolume: number;
|
|
4579
6324
|
/**
|
|
4580
6325
|
* Creation timestamp in ISO 8601 format
|
|
4581
6326
|
*/
|
|
@@ -4612,7 +6357,7 @@ export declare namespace CustomerFlowGetByIDResponse {
|
|
|
4612
6357
|
/**
|
|
4613
6358
|
* Base emotional state of the persona
|
|
4614
6359
|
*/
|
|
4615
|
-
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
6360
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
4616
6361
|
/**
|
|
4617
6362
|
* How the persona confirms information
|
|
4618
6363
|
*/
|
|
@@ -4698,12 +6443,37 @@ export declare namespace CustomerFlowGetByIDResponse {
|
|
|
4698
6443
|
* Human-readable description of the persona
|
|
4699
6444
|
*/
|
|
4700
6445
|
description?: string | null;
|
|
6446
|
+
/**
|
|
6447
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
6448
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
6449
|
+
* or set null to display the name itself.
|
|
6450
|
+
*/
|
|
6451
|
+
displayName?: string | null;
|
|
4701
6452
|
/**
|
|
4702
6453
|
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
4703
6454
|
*/
|
|
4704
6455
|
secondaryLanguage?: 'EN' | null;
|
|
4705
6456
|
}
|
|
4706
6457
|
}
|
|
6458
|
+
/**
|
|
6459
|
+
* STRICT only. What the simulated customer does when your agent does not say the
|
|
6460
|
+
* expected line. Each unmatched agent utterance is an attempt: `reaction` runs per
|
|
6461
|
+
* attempt (STAY_SILENT, REPEAT its last scripted line, RESPOND once in character
|
|
6462
|
+
* without moving on, or SAY `sayLine`), and `then` runs when attempts reach
|
|
6463
|
+
* `maxAttempts` or your agent stays silent for `waitSeconds` (HANG_UP ends the
|
|
6464
|
+
* call with ended reason SCRIPT_DIVERGED, HANG_UP_INVALIDATE ends it the same way
|
|
6465
|
+
* and invalidates the run so it is scored by nothing and counted nowhere, MOVE_ON
|
|
6466
|
+
* advances anyway, ADAPT hands the rest of the call to loose behaviour). Null:
|
|
6467
|
+
* stay silent, 3 attempts, hang up. The default for every agent step; an
|
|
6468
|
+
* AGENT_TURN step can carry its own.
|
|
6469
|
+
*/
|
|
6470
|
+
interface OffScriptPolicy {
|
|
6471
|
+
maxAttempts: number;
|
|
6472
|
+
reaction: 'STAY_SILENT' | 'REPEAT' | 'RESPOND' | 'SAY';
|
|
6473
|
+
then: 'HANG_UP' | 'MOVE_ON' | 'ADAPT' | 'HANG_UP_INVALIDATE';
|
|
6474
|
+
sayLine?: string | null;
|
|
6475
|
+
waitSeconds?: number | null;
|
|
6476
|
+
}
|
|
4707
6477
|
}
|
|
4708
6478
|
/**
|
|
4709
6479
|
* A flow whose conversation is not written out: each variant gives the simulated
|
|
@@ -4831,6 +6601,7 @@ export declare namespace CustomerFlowGetByIDResponse {
|
|
|
4831
6601
|
interface Environment {
|
|
4832
6602
|
id: string;
|
|
4833
6603
|
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
6604
|
+
backgroundNoiseVolume: number;
|
|
4834
6605
|
/**
|
|
4835
6606
|
* Creation timestamp in ISO 8601 format
|
|
4836
6607
|
*/
|
|
@@ -4867,7 +6638,7 @@ export declare namespace CustomerFlowGetByIDResponse {
|
|
|
4867
6638
|
/**
|
|
4868
6639
|
* Base emotional state of the persona
|
|
4869
6640
|
*/
|
|
4870
|
-
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
6641
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
4871
6642
|
/**
|
|
4872
6643
|
* How the persona confirms information
|
|
4873
6644
|
*/
|
|
@@ -4953,6 +6724,12 @@ export declare namespace CustomerFlowGetByIDResponse {
|
|
|
4953
6724
|
* Human-readable description of the persona
|
|
4954
6725
|
*/
|
|
4955
6726
|
description?: string | null;
|
|
6727
|
+
/**
|
|
6728
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
6729
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
6730
|
+
* or set null to display the name itself.
|
|
6731
|
+
*/
|
|
6732
|
+
displayName?: string | null;
|
|
4956
6733
|
/**
|
|
4957
6734
|
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
4958
6735
|
*/
|
|
@@ -5016,6 +6793,7 @@ export declare namespace CustomerFlowGetByIDResponse {
|
|
|
5016
6793
|
interface Environment {
|
|
5017
6794
|
id: string;
|
|
5018
6795
|
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
6796
|
+
backgroundNoiseVolume: number;
|
|
5019
6797
|
/**
|
|
5020
6798
|
* Creation timestamp in ISO 8601 format
|
|
5021
6799
|
*/
|
|
@@ -5052,7 +6830,7 @@ export declare namespace CustomerFlowGetByIDResponse {
|
|
|
5052
6830
|
/**
|
|
5053
6831
|
* Base emotional state of the persona
|
|
5054
6832
|
*/
|
|
5055
|
-
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
6833
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
5056
6834
|
/**
|
|
5057
6835
|
* How the persona confirms information
|
|
5058
6836
|
*/
|
|
@@ -5138,6 +6916,12 @@ export declare namespace CustomerFlowGetByIDResponse {
|
|
|
5138
6916
|
* Human-readable description of the persona
|
|
5139
6917
|
*/
|
|
5140
6918
|
description?: string | null;
|
|
6919
|
+
/**
|
|
6920
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
6921
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
6922
|
+
* or set null to display the name itself.
|
|
6923
|
+
*/
|
|
6924
|
+
displayName?: string | null;
|
|
5141
6925
|
/**
|
|
5142
6926
|
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
5143
6927
|
*/
|
|
@@ -5266,6 +7050,7 @@ export declare namespace CustomerFlowGetByIDResponse {
|
|
|
5266
7050
|
interface Environment {
|
|
5267
7051
|
id: string;
|
|
5268
7052
|
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
7053
|
+
backgroundNoiseVolume: number;
|
|
5269
7054
|
/**
|
|
5270
7055
|
* Creation timestamp in ISO 8601 format
|
|
5271
7056
|
*/
|
|
@@ -5302,7 +7087,7 @@ export declare namespace CustomerFlowGetByIDResponse {
|
|
|
5302
7087
|
/**
|
|
5303
7088
|
* Base emotional state of the persona
|
|
5304
7089
|
*/
|
|
5305
|
-
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
7090
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
5306
7091
|
/**
|
|
5307
7092
|
* How the persona confirms information
|
|
5308
7093
|
*/
|
|
@@ -5388,6 +7173,12 @@ export declare namespace CustomerFlowGetByIDResponse {
|
|
|
5388
7173
|
* Human-readable description of the persona
|
|
5389
7174
|
*/
|
|
5390
7175
|
description?: string | null;
|
|
7176
|
+
/**
|
|
7177
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
7178
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
7179
|
+
* or set null to display the name itself.
|
|
7180
|
+
*/
|
|
7181
|
+
displayName?: string | null;
|
|
5391
7182
|
/**
|
|
5392
7183
|
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
5393
7184
|
*/
|
|
@@ -5447,6 +7238,7 @@ export declare namespace CustomerFlowGetByIDResponse {
|
|
|
5447
7238
|
interface Environment {
|
|
5448
7239
|
id: string;
|
|
5449
7240
|
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
7241
|
+
backgroundNoiseVolume: number;
|
|
5450
7242
|
/**
|
|
5451
7243
|
* Creation timestamp in ISO 8601 format
|
|
5452
7244
|
*/
|
|
@@ -5483,7 +7275,7 @@ export declare namespace CustomerFlowGetByIDResponse {
|
|
|
5483
7275
|
/**
|
|
5484
7276
|
* Base emotional state of the persona
|
|
5485
7277
|
*/
|
|
5486
|
-
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
7278
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
5487
7279
|
/**
|
|
5488
7280
|
* How the persona confirms information
|
|
5489
7281
|
*/
|
|
@@ -5569,6 +7361,12 @@ export declare namespace CustomerFlowGetByIDResponse {
|
|
|
5569
7361
|
* Human-readable description of the persona
|
|
5570
7362
|
*/
|
|
5571
7363
|
description?: string | null;
|
|
7364
|
+
/**
|
|
7365
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
7366
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
7367
|
+
* or set null to display the name itself.
|
|
7368
|
+
*/
|
|
7369
|
+
displayName?: string | null;
|
|
5572
7370
|
/**
|
|
5573
7371
|
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
5574
7372
|
*/
|
|
@@ -5658,6 +7456,7 @@ export declare namespace CustomerFlowReplaceGraphResponse {
|
|
|
5658
7456
|
interface Environment {
|
|
5659
7457
|
id: string;
|
|
5660
7458
|
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
7459
|
+
backgroundNoiseVolume: number;
|
|
5661
7460
|
/**
|
|
5662
7461
|
* Creation timestamp in ISO 8601 format
|
|
5663
7462
|
*/
|
|
@@ -5694,7 +7493,7 @@ export declare namespace CustomerFlowReplaceGraphResponse {
|
|
|
5694
7493
|
/**
|
|
5695
7494
|
* Base emotional state of the persona
|
|
5696
7495
|
*/
|
|
5697
|
-
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
7496
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
5698
7497
|
/**
|
|
5699
7498
|
* How the persona confirms information
|
|
5700
7499
|
*/
|
|
@@ -5780,6 +7579,12 @@ export declare namespace CustomerFlowReplaceGraphResponse {
|
|
|
5780
7579
|
* Human-readable description of the persona
|
|
5781
7580
|
*/
|
|
5782
7581
|
description?: string | null;
|
|
7582
|
+
/**
|
|
7583
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
7584
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
7585
|
+
* or set null to display the name itself.
|
|
7586
|
+
*/
|
|
7587
|
+
displayName?: string | null;
|
|
5783
7588
|
/**
|
|
5784
7589
|
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
5785
7590
|
*/
|
|
@@ -5843,6 +7648,7 @@ export declare namespace CustomerFlowReplaceGraphResponse {
|
|
|
5843
7648
|
interface Environment {
|
|
5844
7649
|
id: string;
|
|
5845
7650
|
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
7651
|
+
backgroundNoiseVolume: number;
|
|
5846
7652
|
/**
|
|
5847
7653
|
* Creation timestamp in ISO 8601 format
|
|
5848
7654
|
*/
|
|
@@ -5879,7 +7685,7 @@ export declare namespace CustomerFlowReplaceGraphResponse {
|
|
|
5879
7685
|
/**
|
|
5880
7686
|
* Base emotional state of the persona
|
|
5881
7687
|
*/
|
|
5882
|
-
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
7688
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
5883
7689
|
/**
|
|
5884
7690
|
* How the persona confirms information
|
|
5885
7691
|
*/
|
|
@@ -5965,6 +7771,12 @@ export declare namespace CustomerFlowReplaceGraphResponse {
|
|
|
5965
7771
|
* Human-readable description of the persona
|
|
5966
7772
|
*/
|
|
5967
7773
|
description?: string | null;
|
|
7774
|
+
/**
|
|
7775
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
7776
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
7777
|
+
* or set null to display the name itself.
|
|
7778
|
+
*/
|
|
7779
|
+
displayName?: string | null;
|
|
5968
7780
|
/**
|
|
5969
7781
|
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
5970
7782
|
*/
|
|
@@ -6024,6 +7836,7 @@ export declare namespace CustomerFlowReplaceGraphResponse {
|
|
|
6024
7836
|
interface Environment {
|
|
6025
7837
|
id: string;
|
|
6026
7838
|
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
7839
|
+
backgroundNoiseVolume: number;
|
|
6027
7840
|
/**
|
|
6028
7841
|
* Creation timestamp in ISO 8601 format
|
|
6029
7842
|
*/
|
|
@@ -6060,7 +7873,7 @@ export declare namespace CustomerFlowReplaceGraphResponse {
|
|
|
6060
7873
|
/**
|
|
6061
7874
|
* Base emotional state of the persona
|
|
6062
7875
|
*/
|
|
6063
|
-
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
7876
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
6064
7877
|
/**
|
|
6065
7878
|
* How the persona confirms information
|
|
6066
7879
|
*/
|
|
@@ -6146,6 +7959,12 @@ export declare namespace CustomerFlowReplaceGraphResponse {
|
|
|
6146
7959
|
* Human-readable description of the persona
|
|
6147
7960
|
*/
|
|
6148
7961
|
description?: string | null;
|
|
7962
|
+
/**
|
|
7963
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
7964
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
7965
|
+
* or set null to display the name itself.
|
|
7966
|
+
*/
|
|
7967
|
+
displayName?: string | null;
|
|
6149
7968
|
/**
|
|
6150
7969
|
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
6151
7970
|
*/
|
|
@@ -6220,6 +8039,7 @@ export declare namespace CustomerFlowUpdateHappyPathResponse {
|
|
|
6220
8039
|
interface Environment {
|
|
6221
8040
|
id: string;
|
|
6222
8041
|
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
8042
|
+
backgroundNoiseVolume: number;
|
|
6223
8043
|
/**
|
|
6224
8044
|
* Creation timestamp in ISO 8601 format
|
|
6225
8045
|
*/
|
|
@@ -6256,7 +8076,7 @@ export declare namespace CustomerFlowUpdateHappyPathResponse {
|
|
|
6256
8076
|
/**
|
|
6257
8077
|
* Base emotional state of the persona
|
|
6258
8078
|
*/
|
|
6259
|
-
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
8079
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
6260
8080
|
/**
|
|
6261
8081
|
* How the persona confirms information
|
|
6262
8082
|
*/
|
|
@@ -6342,6 +8162,12 @@ export declare namespace CustomerFlowUpdateHappyPathResponse {
|
|
|
6342
8162
|
* Human-readable description of the persona
|
|
6343
8163
|
*/
|
|
6344
8164
|
description?: string | null;
|
|
8165
|
+
/**
|
|
8166
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
8167
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
8168
|
+
* or set null to display the name itself.
|
|
8169
|
+
*/
|
|
8170
|
+
displayName?: string | null;
|
|
6345
8171
|
/**
|
|
6346
8172
|
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
6347
8173
|
*/
|
|
@@ -6405,6 +8231,7 @@ export declare namespace CustomerFlowUpdateHappyPathResponse {
|
|
|
6405
8231
|
interface Environment {
|
|
6406
8232
|
id: string;
|
|
6407
8233
|
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
8234
|
+
backgroundNoiseVolume: number;
|
|
6408
8235
|
/**
|
|
6409
8236
|
* Creation timestamp in ISO 8601 format
|
|
6410
8237
|
*/
|
|
@@ -6441,7 +8268,7 @@ export declare namespace CustomerFlowUpdateHappyPathResponse {
|
|
|
6441
8268
|
/**
|
|
6442
8269
|
* Base emotional state of the persona
|
|
6443
8270
|
*/
|
|
6444
|
-
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
8271
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
6445
8272
|
/**
|
|
6446
8273
|
* How the persona confirms information
|
|
6447
8274
|
*/
|
|
@@ -6527,6 +8354,12 @@ export declare namespace CustomerFlowUpdateHappyPathResponse {
|
|
|
6527
8354
|
* Human-readable description of the persona
|
|
6528
8355
|
*/
|
|
6529
8356
|
description?: string | null;
|
|
8357
|
+
/**
|
|
8358
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
8359
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
8360
|
+
* or set null to display the name itself.
|
|
8361
|
+
*/
|
|
8362
|
+
displayName?: string | null;
|
|
6530
8363
|
/**
|
|
6531
8364
|
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
6532
8365
|
*/
|
|
@@ -6586,6 +8419,7 @@ export declare namespace CustomerFlowUpdateHappyPathResponse {
|
|
|
6586
8419
|
interface Environment {
|
|
6587
8420
|
id: string;
|
|
6588
8421
|
backgroundNoise: 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM';
|
|
8422
|
+
backgroundNoiseVolume: number;
|
|
6589
8423
|
/**
|
|
6590
8424
|
* Creation timestamp in ISO 8601 format
|
|
6591
8425
|
*/
|
|
@@ -6622,7 +8456,7 @@ export declare namespace CustomerFlowUpdateHappyPathResponse {
|
|
|
6622
8456
|
/**
|
|
6623
8457
|
* Base emotional state of the persona
|
|
6624
8458
|
*/
|
|
6625
|
-
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
8459
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' | 'ANGRY' | 'ANXIOUS' | 'SAD';
|
|
6626
8460
|
/**
|
|
6627
8461
|
* How the persona confirms information
|
|
6628
8462
|
*/
|
|
@@ -6708,6 +8542,12 @@ export declare namespace CustomerFlowUpdateHappyPathResponse {
|
|
|
6708
8542
|
* Human-readable description of the persona
|
|
6709
8543
|
*/
|
|
6710
8544
|
description?: string | null;
|
|
8545
|
+
/**
|
|
8546
|
+
* Label shown in place of the name across the dashboard (e.g. a short descriptor
|
|
8547
|
+
* like "Irate Escalator"). The persona still identifies as `name` on calls. Omit
|
|
8548
|
+
* or set null to display the name itself.
|
|
8549
|
+
*/
|
|
8550
|
+
displayName?: string | null;
|
|
6711
8551
|
/**
|
|
6712
8552
|
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
6713
8553
|
*/
|
|
@@ -6721,7 +8561,8 @@ export declare namespace CustomerFlowCreateParams {
|
|
|
6721
8561
|
/**
|
|
6722
8562
|
* The conversation, as a graph of steps. At most 100 steps across at most 25
|
|
6723
8563
|
* paths. The variants come from the graph: one per path, so they are not sent
|
|
6724
|
-
* here.
|
|
8564
|
+
* here. A CUSTOMER_TURN describes what the simulated customer says and the persona
|
|
8565
|
+
* phrases it; a CUSTOMER_VERBATIM_TURN is said word for word.
|
|
6725
8566
|
*/
|
|
6726
8567
|
graph: Array<FlowStep>;
|
|
6727
8568
|
title: string;
|
|
@@ -6741,6 +8582,29 @@ export declare namespace CustomerFlowCreateParams {
|
|
|
6741
8582
|
*/
|
|
6742
8583
|
branchingMode?: 'DETERMINISTIC' | 'ADAPTIVE';
|
|
6743
8584
|
description?: string | null;
|
|
8585
|
+
/**
|
|
8586
|
+
* STRICT only. What the simulated customer does when your agent does not say the
|
|
8587
|
+
* expected line. Each unmatched agent utterance is an attempt: `reaction` runs per
|
|
8588
|
+
* attempt (STAY_SILENT, REPEAT its last scripted line, RESPOND once in character
|
|
8589
|
+
* without moving on, or SAY `sayLine`), and `then` runs when attempts reach
|
|
8590
|
+
* `maxAttempts` or your agent stays silent for `waitSeconds` (HANG_UP ends the
|
|
8591
|
+
* call with ended reason SCRIPT_DIVERGED, HANG_UP_INVALIDATE ends it the same way
|
|
8592
|
+
* and invalidates the run so it is scored by nothing and counted nowhere, MOVE_ON
|
|
8593
|
+
* advances anyway, ADAPT hands the rest of the call to loose behaviour). Null:
|
|
8594
|
+
* stay silent, 3 attempts, hang up. The default for every agent step; an
|
|
8595
|
+
* AGENT_TURN step can carry its own.
|
|
8596
|
+
*/
|
|
8597
|
+
offScriptPolicy?: CreateScriptedCustomerFlowInput.OffScriptPolicy | null;
|
|
8598
|
+
/**
|
|
8599
|
+
* How closely a run follows the script. LOOSE (default) hands the whole script to
|
|
8600
|
+
* the simulated customer as one prompt; it keeps the call moving whatever your
|
|
8601
|
+
* agent says. STRICT runs the script as a state machine on the agent service: at
|
|
8602
|
+
* every agent step the simulated customer waits, silent, until your agent has said
|
|
8603
|
+
* the expected line, and only then moves on. Scripted flows only; STRICT needs the
|
|
8604
|
+
* agent-service transport and is not available on realtime models. (LOOSE is the
|
|
8605
|
+
* default.)
|
|
8606
|
+
*/
|
|
8607
|
+
scriptAdherence?: 'LOOSE' | 'STRICT';
|
|
6744
8608
|
}
|
|
6745
8609
|
namespace CreateScriptedCustomerFlowInput {
|
|
6746
8610
|
interface AgentExpectation {
|
|
@@ -6749,6 +8613,25 @@ export declare namespace CustomerFlowCreateParams {
|
|
|
6749
8613
|
*/
|
|
6750
8614
|
prompt: string;
|
|
6751
8615
|
}
|
|
8616
|
+
/**
|
|
8617
|
+
* STRICT only. What the simulated customer does when your agent does not say the
|
|
8618
|
+
* expected line. Each unmatched agent utterance is an attempt: `reaction` runs per
|
|
8619
|
+
* attempt (STAY_SILENT, REPEAT its last scripted line, RESPOND once in character
|
|
8620
|
+
* without moving on, or SAY `sayLine`), and `then` runs when attempts reach
|
|
8621
|
+
* `maxAttempts` or your agent stays silent for `waitSeconds` (HANG_UP ends the
|
|
8622
|
+
* call with ended reason SCRIPT_DIVERGED, HANG_UP_INVALIDATE ends it the same way
|
|
8623
|
+
* and invalidates the run so it is scored by nothing and counted nowhere, MOVE_ON
|
|
8624
|
+
* advances anyway, ADAPT hands the rest of the call to loose behaviour). Null:
|
|
8625
|
+
* stay silent, 3 attempts, hang up. The default for every agent step; an
|
|
8626
|
+
* AGENT_TURN step can carry its own.
|
|
8627
|
+
*/
|
|
8628
|
+
interface OffScriptPolicy {
|
|
8629
|
+
maxAttempts: number;
|
|
8630
|
+
reaction: 'STAY_SILENT' | 'REPEAT' | 'RESPOND' | 'SAY';
|
|
8631
|
+
then: 'HANG_UP' | 'MOVE_ON' | 'ADAPT' | 'HANG_UP_INVALIDATE';
|
|
8632
|
+
sayLine?: string | null;
|
|
8633
|
+
waitSeconds?: number | null;
|
|
8634
|
+
}
|
|
6752
8635
|
}
|
|
6753
8636
|
interface CreateImprovCustomerFlowInput {
|
|
6754
8637
|
/**
|
|
@@ -6827,6 +8710,29 @@ export interface CustomerFlowUpdateParams {
|
|
|
6827
8710
|
*/
|
|
6828
8711
|
branchingMode?: 'DETERMINISTIC' | 'ADAPTIVE';
|
|
6829
8712
|
description?: string | null;
|
|
8713
|
+
/**
|
|
8714
|
+
* STRICT only. What the simulated customer does when your agent does not say the
|
|
8715
|
+
* expected line. Each unmatched agent utterance is an attempt: `reaction` runs per
|
|
8716
|
+
* attempt (STAY_SILENT, REPEAT its last scripted line, RESPOND once in character
|
|
8717
|
+
* without moving on, or SAY `sayLine`), and `then` runs when attempts reach
|
|
8718
|
+
* `maxAttempts` or your agent stays silent for `waitSeconds` (HANG_UP ends the
|
|
8719
|
+
* call with ended reason SCRIPT_DIVERGED, HANG_UP_INVALIDATE ends it the same way
|
|
8720
|
+
* and invalidates the run so it is scored by nothing and counted nowhere, MOVE_ON
|
|
8721
|
+
* advances anyway, ADAPT hands the rest of the call to loose behaviour). Null:
|
|
8722
|
+
* stay silent, 3 attempts, hang up. The default for every agent step; an
|
|
8723
|
+
* AGENT_TURN step can carry its own.
|
|
8724
|
+
*/
|
|
8725
|
+
offScriptPolicy?: CustomerFlowUpdateParams.OffScriptPolicy | null;
|
|
8726
|
+
/**
|
|
8727
|
+
* Scripted flows only. How closely a run follows the script. LOOSE (default) hands
|
|
8728
|
+
* the whole script to the simulated customer as one prompt; it keeps the call
|
|
8729
|
+
* moving whatever your agent says. STRICT runs the script as a state machine on
|
|
8730
|
+
* the agent service: at every agent step the simulated customer waits, silent,
|
|
8731
|
+
* until your agent has said the expected line, and only then moves on. Scripted
|
|
8732
|
+
* flows only; STRICT needs the agent-service transport and is not available on
|
|
8733
|
+
* realtime models.
|
|
8734
|
+
*/
|
|
8735
|
+
scriptAdherence?: 'LOOSE' | 'STRICT';
|
|
6830
8736
|
title?: string;
|
|
6831
8737
|
}
|
|
6832
8738
|
export declare namespace CustomerFlowUpdateParams {
|
|
@@ -6836,6 +8742,25 @@ export declare namespace CustomerFlowUpdateParams {
|
|
|
6836
8742
|
*/
|
|
6837
8743
|
prompt: string;
|
|
6838
8744
|
}
|
|
8745
|
+
/**
|
|
8746
|
+
* STRICT only. What the simulated customer does when your agent does not say the
|
|
8747
|
+
* expected line. Each unmatched agent utterance is an attempt: `reaction` runs per
|
|
8748
|
+
* attempt (STAY_SILENT, REPEAT its last scripted line, RESPOND once in character
|
|
8749
|
+
* without moving on, or SAY `sayLine`), and `then` runs when attempts reach
|
|
8750
|
+
* `maxAttempts` or your agent stays silent for `waitSeconds` (HANG_UP ends the
|
|
8751
|
+
* call with ended reason SCRIPT_DIVERGED, HANG_UP_INVALIDATE ends it the same way
|
|
8752
|
+
* and invalidates the run so it is scored by nothing and counted nowhere, MOVE_ON
|
|
8753
|
+
* advances anyway, ADAPT hands the rest of the call to loose behaviour). Null:
|
|
8754
|
+
* stay silent, 3 attempts, hang up. The default for every agent step; an
|
|
8755
|
+
* AGENT_TURN step can carry its own.
|
|
8756
|
+
*/
|
|
8757
|
+
interface OffScriptPolicy {
|
|
8758
|
+
maxAttempts: number;
|
|
8759
|
+
reaction: 'STAY_SILENT' | 'REPEAT' | 'RESPOND' | 'SAY';
|
|
8760
|
+
then: 'HANG_UP' | 'MOVE_ON' | 'ADAPT' | 'HANG_UP_INVALIDATE';
|
|
8761
|
+
sayLine?: string | null;
|
|
8762
|
+
waitSeconds?: number | null;
|
|
8763
|
+
}
|
|
6839
8764
|
}
|
|
6840
8765
|
export interface CustomerFlowListParams {
|
|
6841
8766
|
after?: string;
|
|
@@ -6844,6 +8769,8 @@ export interface CustomerFlowListParams {
|
|
|
6844
8769
|
searchText?: string;
|
|
6845
8770
|
type?: 'SCRIPTED' | 'IMPROV' | 'VOICEMAIL';
|
|
6846
8771
|
}
|
|
8772
|
+
export interface CustomerFlowDuplicateParams {
|
|
8773
|
+
}
|
|
6847
8774
|
export interface CustomerFlowReplaceGraphParams {
|
|
6848
8775
|
/**
|
|
6849
8776
|
* The complete graph. This replaces the flow's existing steps rather than merging
|
|
@@ -6884,6 +8811,6 @@ export declare namespace CustomerFlowUpdateHappyPathParams {
|
|
|
6884
8811
|
}
|
|
6885
8812
|
}
|
|
6886
8813
|
export declare namespace CustomerFlow {
|
|
6887
|
-
export { type FlowStep as FlowStep, type CustomerFlowCreateResponse as CustomerFlowCreateResponse, type CustomerFlowUpdateResponse as CustomerFlowUpdateResponse, type CustomerFlowListResponse as CustomerFlowListResponse, type CustomerFlowDeleteResponse as CustomerFlowDeleteResponse, type CustomerFlowGetByIDResponse as CustomerFlowGetByIDResponse, type CustomerFlowReplaceGraphResponse as CustomerFlowReplaceGraphResponse, type CustomerFlowUpdateHappyPathResponse as CustomerFlowUpdateHappyPathResponse, type CustomerFlowCreateParams as CustomerFlowCreateParams, type CustomerFlowUpdateParams as CustomerFlowUpdateParams, type CustomerFlowListParams as CustomerFlowListParams, type CustomerFlowReplaceGraphParams as CustomerFlowReplaceGraphParams, type CustomerFlowUpdateHappyPathParams as CustomerFlowUpdateHappyPathParams, };
|
|
8814
|
+
export { type FlowStep as FlowStep, type CustomerFlowCreateResponse as CustomerFlowCreateResponse, type CustomerFlowUpdateResponse as CustomerFlowUpdateResponse, type CustomerFlowListResponse as CustomerFlowListResponse, type CustomerFlowDeleteResponse as CustomerFlowDeleteResponse, type CustomerFlowDuplicateResponse as CustomerFlowDuplicateResponse, type CustomerFlowGetByIDResponse as CustomerFlowGetByIDResponse, type CustomerFlowReplaceGraphResponse as CustomerFlowReplaceGraphResponse, type CustomerFlowUpdateHappyPathResponse as CustomerFlowUpdateHappyPathResponse, type CustomerFlowCreateParams as CustomerFlowCreateParams, type CustomerFlowUpdateParams as CustomerFlowUpdateParams, type CustomerFlowListParams as CustomerFlowListParams, type CustomerFlowDuplicateParams as CustomerFlowDuplicateParams, type CustomerFlowReplaceGraphParams as CustomerFlowReplaceGraphParams, type CustomerFlowUpdateHappyPathParams as CustomerFlowUpdateHappyPathParams, };
|
|
6888
8815
|
}
|
|
6889
8816
|
//# sourceMappingURL=customer-flow.d.mts.map
|