retell-sdk 5.31.1 → 5.32.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.
Files changed (128) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/client.d.mts +9 -11
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +9 -11
  5. package/client.d.ts.map +1 -1
  6. package/client.js +0 -3
  7. package/client.js.map +1 -1
  8. package/client.mjs +0 -3
  9. package/client.mjs.map +1 -1
  10. package/index.d.mts +0 -1
  11. package/index.d.mts.map +1 -1
  12. package/index.d.ts +0 -1
  13. package/index.d.ts.map +1 -1
  14. package/index.js +1 -4
  15. package/index.js.map +1 -1
  16. package/index.mjs +0 -1
  17. package/index.mjs.map +1 -1
  18. package/internal/uploads.js +2 -12
  19. package/internal/uploads.js.map +1 -1
  20. package/internal/uploads.mjs +2 -12
  21. package/internal/uploads.mjs.map +1 -1
  22. package/package.json +1 -11
  23. package/resources/agent.d.mts +44 -44
  24. package/resources/agent.d.mts.map +1 -1
  25. package/resources/agent.d.ts +44 -44
  26. package/resources/agent.d.ts.map +1 -1
  27. package/resources/agent.js +25 -25
  28. package/resources/agent.js.map +1 -1
  29. package/resources/agent.mjs +25 -25
  30. package/resources/agent.mjs.map +1 -1
  31. package/resources/call.d.mts +1367 -1367
  32. package/resources/call.d.mts.map +1 -1
  33. package/resources/call.d.ts +1367 -1367
  34. package/resources/call.d.ts.map +1 -1
  35. package/resources/call.js +60 -60
  36. package/resources/call.js.map +1 -1
  37. package/resources/call.mjs +60 -60
  38. package/resources/call.mjs.map +1 -1
  39. package/resources/chat-agent.d.mts +46 -46
  40. package/resources/chat-agent.d.mts.map +1 -1
  41. package/resources/chat-agent.d.ts +46 -46
  42. package/resources/chat-agent.d.ts.map +1 -1
  43. package/resources/chat-agent.js +27 -27
  44. package/resources/chat-agent.js.map +1 -1
  45. package/resources/chat-agent.mjs +27 -27
  46. package/resources/chat-agent.mjs.map +1 -1
  47. package/resources/chat.d.mts +92 -92
  48. package/resources/chat.d.mts.map +1 -1
  49. package/resources/chat.d.ts +92 -92
  50. package/resources/chat.d.ts.map +1 -1
  51. package/resources/chat.js +55 -55
  52. package/resources/chat.js.map +1 -1
  53. package/resources/chat.mjs +55 -55
  54. package/resources/chat.mjs.map +1 -1
  55. package/resources/conversation-flow-component.d.mts +25 -25
  56. package/resources/conversation-flow-component.d.mts.map +1 -1
  57. package/resources/conversation-flow-component.d.ts +25 -25
  58. package/resources/conversation-flow-component.d.ts.map +1 -1
  59. package/resources/conversation-flow-component.js +12 -12
  60. package/resources/conversation-flow-component.js.map +1 -1
  61. package/resources/conversation-flow-component.mjs +12 -12
  62. package/resources/conversation-flow-component.mjs.map +1 -1
  63. package/resources/conversation-flow.d.mts +26 -26
  64. package/resources/conversation-flow.d.mts.map +1 -1
  65. package/resources/conversation-flow.d.ts +26 -26
  66. package/resources/conversation-flow.d.ts.map +1 -1
  67. package/resources/conversation-flow.js +12 -12
  68. package/resources/conversation-flow.js.map +1 -1
  69. package/resources/conversation-flow.mjs +12 -12
  70. package/resources/conversation-flow.mjs.map +1 -1
  71. package/resources/index.d.mts +9 -9
  72. package/resources/index.d.mts.map +1 -1
  73. package/resources/index.d.ts +9 -9
  74. package/resources/index.d.ts.map +1 -1
  75. package/resources/llm.d.mts +24 -24
  76. package/resources/llm.d.mts.map +1 -1
  77. package/resources/llm.d.ts +24 -24
  78. package/resources/llm.d.ts.map +1 -1
  79. package/resources/llm.js +11 -11
  80. package/resources/llm.js.map +1 -1
  81. package/resources/llm.mjs +11 -11
  82. package/resources/llm.mjs.map +1 -1
  83. package/resources/phone-number.d.mts +8 -8
  84. package/resources/phone-number.d.ts +8 -8
  85. package/resources/tests.d.mts +95 -95
  86. package/resources/tests.d.mts.map +1 -1
  87. package/resources/tests.d.ts +95 -95
  88. package/resources/tests.d.ts.map +1 -1
  89. package/resources/tests.js +27 -27
  90. package/resources/tests.js.map +1 -1
  91. package/resources/tests.mjs +27 -27
  92. package/resources/tests.mjs.map +1 -1
  93. package/resources/voice.d.mts +8 -8
  94. package/resources/voice.d.mts.map +1 -1
  95. package/resources/voice.d.ts +8 -8
  96. package/resources/voice.d.ts.map +1 -1
  97. package/resources/voice.js +12 -12
  98. package/resources/voice.js.map +1 -1
  99. package/resources/voice.mjs +12 -12
  100. package/resources/voice.mjs.map +1 -1
  101. package/src/client.ts +18 -22
  102. package/src/index.ts +0 -1
  103. package/src/internal/uploads.ts +4 -12
  104. package/src/resources/agent.ts +61 -61
  105. package/src/resources/call.ts +2364 -2364
  106. package/src/resources/chat-agent.ts +63 -63
  107. package/src/resources/chat.ts +107 -107
  108. package/src/resources/conversation-flow-component.ts +34 -34
  109. package/src/resources/conversation-flow.ts +35 -35
  110. package/src/resources/index.ts +18 -18
  111. package/src/resources/llm.ts +30 -30
  112. package/src/resources/phone-number.ts +8 -8
  113. package/src/resources/tests.ts +136 -136
  114. package/src/resources/voice.ts +12 -12
  115. package/src/version.ts +1 -1
  116. package/version.d.mts +1 -1
  117. package/version.d.ts +1 -1
  118. package/version.js +1 -1
  119. package/version.mjs +1 -1
  120. package/lib/webhook_auth.d.mts +0 -11
  121. package/lib/webhook_auth.d.mts.map +0 -1
  122. package/lib/webhook_auth.d.ts +0 -11
  123. package/lib/webhook_auth.d.ts.map +0 -1
  124. package/lib/webhook_auth.js +0 -48
  125. package/lib/webhook_auth.js.map +0 -1
  126. package/lib/webhook_auth.mjs +0 -43
  127. package/lib/webhook_auth.mjs.map +0 -1
  128. package/src/lib/webhook_auth.ts +0 -76
@@ -3,100 +3,100 @@ import { APIPromise } from "../core/api-promise.js";
3
3
  import { RequestOptions } from "../internal/request-options.js";
4
4
  export declare class Call extends APIResource {
5
5
  /**
6
- * Retrieve details of a specific call
6
+ * Create a new outbound phone call
7
7
  *
8
8
  * @example
9
9
  * ```ts
10
- * const callResponse = await client.call.retrieve(
11
- * '119c3f8e47135a29e65947eeb34cf12d',
10
+ * const phoneCallResponse = await client.call.createPhoneCall(
11
+ * {
12
+ * from_number: '+14157774444',
13
+ * to_number: '+12137774445',
14
+ * },
12
15
  * );
13
16
  * ```
14
17
  */
15
- retrieve(callID: string, options?: RequestOptions): APIPromise<CallResponse>;
18
+ createPhoneCall(body: CallCreatePhoneCallParams, options?: RequestOptions): APIPromise<PhoneCallResponse>;
16
19
  /**
17
- * Update metadata and sensitive data storage settings for an existing call.
20
+ * Register a new phone call for custom telephony
18
21
  *
19
22
  * @example
20
23
  * ```ts
21
- * const callResponse = await client.call.update(
22
- * 'call_a4441234567890777c4a4a123e6',
23
- * {
24
- * data_storage_setting: 'everything_except_pii',
25
- * metadata: {
26
- * customer_id: 'cust_123',
27
- * notes: 'Follow-up required',
28
- * },
29
- * },
30
- * );
24
+ * const phoneCallResponse =
25
+ * await client.call.registerPhoneCall({
26
+ * agent_id: 'oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD',
27
+ * });
31
28
  * ```
32
29
  */
33
- update(callID: string, body: CallUpdateParams, options?: RequestOptions): APIPromise<CallResponse>;
30
+ registerPhoneCall(body: CallRegisterPhoneCallParams, options?: RequestOptions): APIPromise<PhoneCallResponse>;
34
31
  /**
35
- * List calls with unified cursor pagination response.
32
+ * Create a new web call
36
33
  *
37
34
  * @example
38
35
  * ```ts
39
- * const calls = await client.call.list();
36
+ * const webCallResponse = await client.call.createWebCall({
37
+ * agent_id: 'oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD',
38
+ * });
40
39
  * ```
41
40
  */
42
- list(body?: CallListParams | null | undefined, options?: RequestOptions): APIPromise<CallListResponse>;
41
+ createWebCall(body: CallCreateWebCallParams, options?: RequestOptions): APIPromise<WebCallResponse>;
43
42
  /**
44
- * Delete a specific call and its associated data
43
+ * Retrieve details of a specific call
45
44
  *
46
45
  * @example
47
46
  * ```ts
48
- * await client.call.delete(
47
+ * const callResponse = await client.call.retrieve(
49
48
  * '119c3f8e47135a29e65947eeb34cf12d',
50
49
  * );
51
50
  * ```
52
51
  */
53
- delete(callID: string, options?: RequestOptions): APIPromise<void>;
52
+ retrieve(callID: string, options?: RequestOptions): APIPromise<CallResponse>;
54
53
  /**
55
- * Create a new outbound phone call
54
+ * List calls with unified cursor pagination response.
56
55
  *
57
56
  * @example
58
57
  * ```ts
59
- * const phoneCallResponse = await client.call.createPhoneCall(
60
- * {
61
- * from_number: '+14157774444',
62
- * to_number: '+12137774445',
63
- * },
64
- * );
58
+ * const calls = await client.call.list();
65
59
  * ```
66
60
  */
67
- createPhoneCall(body: CallCreatePhoneCallParams, options?: RequestOptions): APIPromise<PhoneCallResponse>;
61
+ list(body?: CallListParams | null | undefined, options?: RequestOptions): APIPromise<CallListResponse>;
68
62
  /**
69
- * Create a new web call
63
+ * Update metadata and sensitive data storage settings for an existing call.
70
64
  *
71
65
  * @example
72
66
  * ```ts
73
- * const webCallResponse = await client.call.createWebCall({
74
- * agent_id: 'oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD',
75
- * });
67
+ * const callResponse = await client.call.update(
68
+ * 'call_a4441234567890777c4a4a123e6',
69
+ * {
70
+ * data_storage_setting: 'everything_except_pii',
71
+ * metadata: {
72
+ * customer_id: 'cust_123',
73
+ * notes: 'Follow-up required',
74
+ * },
75
+ * },
76
+ * );
76
77
  * ```
77
78
  */
78
- createWebCall(body: CallCreateWebCallParams, options?: RequestOptions): APIPromise<WebCallResponse>;
79
+ update(callID: string, body: CallUpdateParams, options?: RequestOptions): APIPromise<CallResponse>;
79
80
  /**
80
- * Register a new phone call for custom telephony
81
+ * Stop an ongoing call.
81
82
  *
82
83
  * @example
83
84
  * ```ts
84
- * const phoneCallResponse =
85
- * await client.call.registerPhoneCall({
86
- * agent_id: 'oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD',
87
- * });
85
+ * await client.call.stop('call_a4441234567890777c4a4a123e6');
88
86
  * ```
89
87
  */
90
- registerPhoneCall(body: CallRegisterPhoneCallParams, options?: RequestOptions): APIPromise<PhoneCallResponse>;
88
+ stop(callID: string, options?: RequestOptions): APIPromise<void>;
91
89
  /**
92
- * Stop an ongoing call.
90
+ * Delete a specific call and its associated data
93
91
  *
94
92
  * @example
95
93
  * ```ts
96
- * await client.call.stop('call_a4441234567890777c4a4a123e6');
94
+ * await client.call.delete(
95
+ * '119c3f8e47135a29e65947eeb34cf12d',
96
+ * );
97
97
  * ```
98
98
  */
99
- stop(callID: string, options?: RequestOptions): APIPromise<void>;
99
+ delete(callID: string, options?: RequestOptions): APIPromise<void>;
100
100
  }
101
101
  export type CallResponse = WebCallResponse | PhoneCallResponse;
102
102
  export interface PhoneCallResponse {
@@ -3195,722 +3195,1034 @@ export declare namespace CallListResponse {
3195
3195
  }
3196
3196
  }
3197
3197
  }
3198
- export interface CallUpdateParams {
3198
+ export interface CallCreatePhoneCallParams {
3199
3199
  /**
3200
- * Custom attributes for the call
3200
+ * The number you own in E.164 format. Must be a number purchased from Retell or
3201
+ * imported to Retell.
3201
3202
  */
3202
- custom_attributes?: {
3203
- [key: string]: string | number | boolean;
3204
- };
3203
+ from_number: string;
3205
3204
  /**
3206
- * Data storage setting for this call. Overrides the agent's default setting.
3207
- * "everything" stores all data, "everything_except_pii" excludes PII when
3208
- * possible, "basic_attributes_only" stores only metadata. Cannot be downgraded
3209
- * from more restrictive to less restrictive settings.
3205
+ * The number you want to call, in E.164 format. If using a number purchased from
3206
+ * Retell, only US numbers are supported as destination.
3210
3207
  */
3211
- data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only';
3208
+ to_number: string;
3212
3209
  /**
3213
- * An arbitrary object for storage purpose only. You can put anything here like
3214
- * your internal customer id associated with the call. Not used for processing. You
3215
- * can later get this field from the call object. Size limited to 50kB max.
3210
+ * For this particular call, override agent configuration with these settings. This
3211
+ * allows you to customize agent behavior for individual calls without modifying
3212
+ * the base agent.
3216
3213
  */
3217
- metadata?: unknown;
3214
+ agent_override?: CallCreatePhoneCallParams.AgentOverride;
3218
3215
  /**
3219
- * Override dynamic variables represented as key-value pairs of strings. Setting
3220
- * this will override or add the dynamic variables set in the agent during the
3221
- * call. Only need to set the delta where you want to override, no need to set the
3222
- * entire dynamic variables object. Setting this to null will remove any existing
3223
- * override.
3216
+ * Add optional custom SIP headers to the call.
3224
3217
  */
3225
- override_dynamic_variables?: {
3218
+ custom_sip_headers?: {
3226
3219
  [key: string]: string;
3227
- } | null;
3228
- }
3229
- export interface CallListParams {
3230
- /**
3231
- * Filter criteria for calls. All conditions are implicitly connected with AND.
3232
- */
3233
- filter_criteria?: CallListParams.FilterCriteria;
3220
+ };
3234
3221
  /**
3235
- * Whether to include `total` (count of all calls matching `filter_criteria`,
3236
- * ignoring `limit`/`skip`/`pagination_key`) in the response. Defaults to false.
3237
- * Each enabled request triggers an additional aggregate query, so opt in only when
3238
- * the total is needed.
3222
+ * If true, the e.164 validation will be ignored for the from_number. This can be
3223
+ * useful when you want to dial to internal pseudo numbers. This only applies when
3224
+ * you are using custom telephony and does not apply when you are using Retell
3225
+ * Telephony. If omitted, the default value is false.
3239
3226
  */
3240
- include_total?: boolean;
3227
+ ignore_e164_validation?: boolean;
3241
3228
  /**
3242
- * Maximum number of calls to return.
3229
+ * An arbitrary object for storage purpose only. You can put anything here like
3230
+ * your internal customer id associated with the call. Not used for processing. You
3231
+ * can later get this field from the call object.
3243
3232
  */
3244
- limit?: number;
3233
+ metadata?: unknown;
3245
3234
  /**
3246
- * Opaque pagination cursor from a previous response.
3235
+ * For this particular call, override the agent used with this agent id. This does
3236
+ * not bind the agent to this number, this is for one time override.
3247
3237
  */
3248
- pagination_key?: string;
3238
+ override_agent_id?: string;
3249
3239
  /**
3250
- * Number of records to skip for pagination.
3240
+ * For this particular call, override the agent version used with this version.
3241
+ * This does not bind the agent version to this number, this is for one time
3242
+ * override.
3251
3243
  */
3252
- skip?: number;
3244
+ override_agent_version?: number | string;
3253
3245
  /**
3254
- * Sort calls by `start_timestamp` in ascending or descending order.
3246
+ * Add optional dynamic variables in key value pairs of string that injects into
3247
+ * your Response Engine prompt and tool description. Only applicable for Response
3248
+ * Engine.
3255
3249
  */
3256
- sort_order?: 'ascending' | 'descending';
3250
+ retell_llm_dynamic_variables?: {
3251
+ [key: string]: string;
3252
+ };
3257
3253
  }
3258
- export declare namespace CallListParams {
3254
+ export declare namespace CallCreatePhoneCallParams {
3259
3255
  /**
3260
- * Filter criteria for calls. All conditions are implicitly connected with AND.
3256
+ * For this particular call, override agent configuration with these settings. This
3257
+ * allows you to customize agent behavior for individual calls without modifying
3258
+ * the base agent.
3261
3259
  */
3262
- interface FilterCriteria {
3263
- /**
3264
- * Filter by agent(s). Agent filters are connected by OR.
3265
- */
3266
- agent?: Array<FilterCriteria.Agent>;
3267
- /**
3268
- * Filter by batch call ID.
3269
- */
3270
- batch_call_id?: FilterCriteria.BatchCallID;
3271
- /**
3272
- * Filter by call ID.
3273
- */
3274
- call_id?: FilterCriteria.CallID;
3275
- call_status?: FilterCriteria.CallStatus;
3276
- /**
3277
- * Filter by whether the call was successful.
3278
- */
3279
- call_successful?: FilterCriteria.CallSuccessful;
3280
- call_type?: FilterCriteria.CallType;
3281
- /**
3282
- * Filter by combined cost of the call.
3283
- */
3284
- combined_cost?: FilterCriteria.NumberFilter | FilterCriteria.RangeFilter;
3285
- /**
3286
- * Filter by custom analysis data fields.
3287
- */
3288
- custom_analysis_data?: Array<FilterCriteria.StringFilter | FilterCriteria.NumberFilter | FilterCriteria.BooleanFilter | FilterCriteria.RangeFilter | FilterCriteria.EnumFilter | FilterCriteria.PresentFilter>;
3289
- /**
3290
- * Filter by custom attributes fields.
3291
- */
3292
- custom_attributes?: Array<FilterCriteria.StringFilter | FilterCriteria.NumberFilter | FilterCriteria.BooleanFilter | FilterCriteria.RangeFilter | FilterCriteria.EnumFilter | FilterCriteria.PresentFilter>;
3293
- data_storage_setting?: FilterCriteria.DataStorageSetting;
3294
- direction?: FilterCriteria.Direction;
3295
- disconnection_reason?: FilterCriteria.DisconnectionReason;
3296
- /**
3297
- * Filter by call duration in milliseconds.
3298
- */
3299
- duration_ms?: FilterCriteria.NumberFilter | FilterCriteria.RangeFilter;
3300
- /**
3301
- * Filter by dynamic variables.
3302
- */
3303
- dynamic_variables?: Array<FilterCriteria.DynamicVariable>;
3304
- /**
3305
- * Filter by end-to-end latency p50.
3306
- */
3307
- e2e_latency_p50?: FilterCriteria.NumberFilter | FilterCriteria.RangeFilter;
3308
- /**
3309
- * Filter by call end timestamp (epoch ms).
3310
- */
3311
- end_timestamp?: FilterCriteria.NumberFilter | FilterCriteria.RangeFilter;
3312
- /**
3313
- * Filter by from number.
3314
- */
3315
- from_number?: FilterCriteria.FromNumber;
3316
- /**
3317
- * Filter by whether the call is in voicemail.
3318
- */
3319
- in_voicemail?: FilterCriteria.InVoicemail;
3260
+ interface AgentOverride {
3320
3261
  /**
3321
- * Filter by metadata fields.
3262
+ * Override agent configuration settings. Any properties specified here will
3263
+ * override the base agent configuration for this call.
3322
3264
  */
3323
- metadata?: Array<FilterCriteria.StringFilter | FilterCriteria.NumberFilter | FilterCriteria.BooleanFilter | FilterCriteria.RangeFilter | FilterCriteria.EnumFilter | FilterCriteria.PresentFilter>;
3265
+ agent?: AgentOverride.Agent;
3324
3266
  /**
3325
- * Filter by call start timestamp (epoch ms).
3267
+ * Override conversation flow configuration settings. Only applicable when using
3268
+ * conversation flow as the response engine. Supported attributes - model_choice,
3269
+ * model_temperature, tool_call_strict_mode, knowledge_base_ids, kb_config,
3270
+ * start_speaker, begin_after_user_silence_ms.
3326
3271
  */
3327
- start_timestamp?: FilterCriteria.NumberFilter | FilterCriteria.RangeFilter;
3272
+ conversation_flow?: AgentOverride.ConversationFlow;
3328
3273
  /**
3329
- * Filter by to number.
3274
+ * Override Retell LLM configuration settings. Only applicable when using Retell
3275
+ * LLM as the response engine. Supported attributes - model, s2s_model,
3276
+ * model_temperature, model_high_priority, tool_call_strict_mode,
3277
+ * knowledge_base_ids, kb_config, start_speaker, begin_after_user_silence_ms,
3278
+ * begin_message.
3330
3279
  */
3331
- to_number?: FilterCriteria.ToNumber;
3280
+ retell_llm?: AgentOverride.RetellLlm;
3281
+ }
3282
+ namespace AgentOverride {
3332
3283
  /**
3333
- * Filter by tool call criteria. Tool call filters are connected by AND.
3284
+ * Override agent configuration settings. Any properties specified here will
3285
+ * override the base agent configuration for this call.
3334
3286
  */
3335
- tool_calls?: Array<FilterCriteria.ToolCall>;
3336
- user_sentiment?: FilterCriteria.UserSentiment;
3337
- }
3338
- namespace FilterCriteria {
3339
3287
  interface Agent {
3340
3288
  /**
3341
- * The agent ID to filter on.
3289
+ * The name of the agent. Only used for your own reference.
3342
3290
  */
3343
- agent_id: string;
3291
+ agent_name?: string | null;
3344
3292
  /**
3345
- * Specific versions to filter on. If not provided, all versions are included.
3293
+ * If set to true, DTMF input will interrupt the agent even when
3294
+ * interruption_sensitivity is 0. Can be overridden per conversation or subagent
3295
+ * node. Default to false.
3346
3296
  */
3347
- version?: Array<number>;
3348
- }
3349
- /**
3350
- * Filter by batch call ID.
3351
- */
3352
- interface BatchCallID {
3297
+ allow_dtmf_interruption?: boolean;
3353
3298
  /**
3354
- * eq: equal, ne: not equal, sw: starts with, ew: ends with, co: contains
3299
+ * If set to true, DTMF input will be accepted and processed. If false, any DTMF
3300
+ * input will be ignored. Default to true.
3355
3301
  */
3356
- op: 'eq' | 'ne' | 'sw' | 'ew' | 'co';
3357
- type: 'string';
3358
- value: string;
3359
- }
3360
- /**
3361
- * Filter by call ID.
3362
- */
3363
- interface CallID {
3302
+ allow_user_dtmf?: boolean;
3364
3303
  /**
3365
- * eq: equal, ne: not equal, sw: starts with, ew: ends with, co: contains
3304
+ * If set, will add ambient environment sound to the call to make experience more
3305
+ * realistic. Currently supports the following options:
3306
+ *
3307
+ * - `coffee-shop`: Coffee shop ambience with people chatting in background.
3308
+ * [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/coffee-shop.wav)
3309
+ * - `convention-hall`: Convention hall ambience, with some echo and people
3310
+ * chatting in background.
3311
+ * [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/convention-hall.wav)
3312
+ * - `summer-outdoor`: Summer outdoor ambience with cicada chirping.
3313
+ * [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/summer-outdoor.wav)
3314
+ * - `mountain-outdoor`: Mountain outdoor ambience with birds singing.
3315
+ * [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/mountain-outdoor.wav)
3316
+ * - `static-noise`: Constant static noise.
3317
+ * [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/static-noise.wav)
3318
+ * - `call-center`: Call center work noise.
3319
+ * [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/call-center.wav)
3320
+ * Set to `null` to remove ambient sound from this agent.
3366
3321
  */
3367
- op: 'eq' | 'ne' | 'sw' | 'ew' | 'co';
3368
- type: 'string';
3369
- value: string;
3370
- }
3371
- interface CallStatus {
3322
+ ambient_sound?: 'coffee-shop' | 'convention-hall' | 'summer-outdoor' | 'mountain-outdoor' | 'static-noise' | 'call-center' | null;
3372
3323
  /**
3373
- * in: value is one of the listed values
3324
+ * If set, will control the volume of the ambient sound. Value ranging from [0,2].
3325
+ * Lower value means quieter ambient sound, while higher value means louder ambient
3326
+ * sound. If unset, default value 1 will apply.
3374
3327
  */
3375
- op: 'in';
3376
- type: 'enum';
3377
- value: Array<'not_connected' | 'ongoing' | 'ended' | 'error'>;
3378
- }
3379
- /**
3380
- * Filter by whether the call was successful.
3381
- */
3382
- interface CallSuccessful {
3383
- op: 'eq';
3384
- type: 'boolean';
3385
- value: boolean;
3386
- }
3387
- interface CallType {
3328
+ ambient_sound_volume?: number;
3388
3329
  /**
3389
- * in: value is one of the listed values
3330
+ * Prompt to determine whether the post call or chat analysis should mark the
3331
+ * interaction as successful. Set to null to use the default prompt.
3390
3332
  */
3391
- op: 'in';
3392
- type: 'enum';
3393
- value: Array<'web_call' | 'phone_call'>;
3394
- }
3395
- interface NumberFilter {
3333
+ analysis_successful_prompt?: string | null;
3396
3334
  /**
3397
- * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
3398
- * than, le: less than or equal
3335
+ * Prompt to guide how the post call or chat analysis summary should be generated.
3336
+ * When unset, the default system prompt is used. Set to null to use the default
3337
+ * prompt.
3399
3338
  */
3400
- op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
3401
- type: 'number';
3402
- value: number;
3403
- }
3404
- interface RangeFilter {
3339
+ analysis_summary_prompt?: string | null;
3405
3340
  /**
3406
- * bt: between
3341
+ * Prompt to guide how the post call or chat analysis should evaluate user
3342
+ * sentiment. When unset, the default system prompt is used. Set to null to use the
3343
+ * default prompt.
3407
3344
  */
3408
- op: 'bt';
3409
- type: 'range';
3345
+ analysis_user_sentiment_prompt?: string | null;
3410
3346
  /**
3411
- * [lower_bound, upper_bound]
3347
+ * Only applicable when enable_backchannel is true. Controls how often the agent
3348
+ * would backchannel when a backchannel is possible. Value ranging from [0,1].
3349
+ * Lower value means less frequent backchannel, while higher value means more
3350
+ * frequent backchannel. If unset, default value 0.8 will apply.
3412
3351
  */
3413
- value: Array<number>;
3414
- }
3415
- interface StringFilter {
3352
+ backchannel_frequency?: number;
3416
3353
  /**
3417
- * eq: equal, ne: not equal, sw: starts with, ew: ends with, co: contains
3354
+ * Only applicable when enable_backchannel is true. A list of words that the agent
3355
+ * would use as backchannel. If not set, default backchannel words will apply.
3356
+ * Check out
3357
+ * [backchannel default words](/agent/interaction-configuration#backchannel) for
3358
+ * more details. Note that certain voices do not work too well with certain words,
3359
+ * so it's recommended to experiment before adding any words.
3418
3360
  */
3419
- op: 'eq' | 'ne' | 'sw' | 'ew' | 'co';
3420
- type: 'string';
3421
- value: string;
3361
+ backchannel_words?: Array<string> | null;
3422
3362
  /**
3423
- * The field name to filter on.
3363
+ * If set, will delay the first message by the specified amount of milliseconds, so
3364
+ * that it gives user more time to prepare to take the call. Valid range is [0,
3365
+ * 5000]. If not set or set to 0, agent will speak immediately. Only applicable
3366
+ * when agent speaks first.
3424
3367
  */
3425
- key?: string;
3426
- }
3427
- interface NumberFilter {
3368
+ begin_message_delay_ms?: number;
3428
3369
  /**
3429
- * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
3430
- * than, le: less than or equal
3370
+ * Provide a customized list of keywords to bias the transcriber model, so that
3371
+ * these words are more likely to get transcribed. Commonly used for names, brands,
3372
+ * street, etc. Entries may reference dynamic variables with `{{variable}}` syntax.
3431
3373
  */
3432
- op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
3433
- type: 'number';
3434
- value: number;
3374
+ boosted_keywords?: Array<string> | null;
3435
3375
  /**
3436
- * The field name to filter on.
3376
+ * If this option is set, the agent prompt will include call screen handling
3377
+ * instructions for identity and call purpose questions. Set this to null to
3378
+ * disable call screen prompt instructions.
3437
3379
  */
3438
- key?: string;
3439
- }
3440
- interface BooleanFilter {
3441
- op: 'eq';
3442
- type: 'boolean';
3443
- value: boolean;
3380
+ call_screening_option?: Agent.CallScreeningOption | null;
3444
3381
  /**
3445
- * The field name to filter on.
3382
+ * Custom STT configuration. Only used when stt_mode is set to custom.
3446
3383
  */
3447
- key?: string;
3448
- }
3449
- interface RangeFilter {
3384
+ custom_stt_config?: Agent.CustomSttConfig | null;
3450
3385
  /**
3451
- * bt: between
3386
+ * Number of days to retain call/chat data before automatic deletion. Must be
3387
+ * between 1 and 730 days. If not set, data is retained forever (no automatic
3388
+ * deletion).
3452
3389
  */
3453
- op: 'bt';
3454
- type: 'range';
3390
+ data_storage_retention_days?: number | null;
3455
3391
  /**
3456
- * [lower_bound, upper_bound]
3392
+ * Granular setting to manage how Retell stores sensitive data (transcripts,
3393
+ * recordings, logs, etc.). This replaces the deprecated
3394
+ * `opt_out_sensitive_data_storage` field.
3395
+ *
3396
+ * - `everything`: Store all data including transcripts, recordings, and logs.
3397
+ * - `everything_except_pii`: Store data without PII when PII is detected.
3398
+ * - `basic_attributes_only`: Store only basic attributes; no
3399
+ * transcripts/recordings/logs. If not set, default value of "everything" will
3400
+ * apply.
3457
3401
  */
3458
- value: Array<number>;
3402
+ data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only';
3459
3403
  /**
3460
- * The field name to filter on.
3404
+ * If set, determines what denoising mode to use. Use "no-denoise" to bypass all
3405
+ * audio denoising. Default to noise-cancellation.
3461
3406
  */
3462
- key?: string;
3463
- }
3464
- interface EnumFilter {
3407
+ denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation';
3465
3408
  /**
3466
- * in: value is one of the listed values
3409
+ * Controls whether the agent would backchannel (agent interjects the speaker with
3410
+ * phrases like "yeah", "uh-huh" to signify interest and engagement). Backchannel
3411
+ * when enabled tends to show up more in longer user utterances. If not set, agent
3412
+ * will not backchannel.
3467
3413
  */
3468
- op: 'in';
3469
- type: 'enum';
3470
- value: Array<string>;
3414
+ enable_backchannel?: boolean;
3471
3415
  /**
3472
- * The field name to filter on.
3416
+ * If set to true, the agent will dynamically adjust how quickly it responds based
3417
+ * on the user's speech rate and past turn-taking behavior in the call. If unset,
3418
+ * default value false will apply.
3473
3419
  */
3474
- key?: string;
3475
- }
3476
- interface PresentFilter {
3420
+ enable_dynamic_responsiveness?: boolean;
3477
3421
  /**
3478
- * pr: present (has value), np: not present
3422
+ * If set to true, will enable dynamic voice speed adjustment based on the user's
3423
+ * speech rate and conversation context. If unset, default value false will apply.
3479
3424
  */
3480
- op: 'pr' | 'np';
3481
- type: 'present';
3425
+ enable_dynamic_voice_speed?: boolean;
3482
3426
  /**
3483
- * The field name to filter on.
3427
+ * If users stay silent for a period after agent speech, end the call. The minimum
3428
+ * value allowed is 10,000 ms (10 s). By default, this is set to 600000 (10 min).
3484
3429
  */
3485
- key?: string;
3486
- }
3487
- interface StringFilter {
3430
+ end_call_after_silence_ms?: number;
3488
3431
  /**
3489
- * eq: equal, ne: not equal, sw: starts with, ew: ends with, co: contains
3432
+ * When TTS provider for the selected voice is experiencing outages, we would use
3433
+ * fallback voices listed here for the agent. Voice id and the fallback voice ids
3434
+ * must be from different TTS providers. The system would go through the list in
3435
+ * order, if the first one in the list is also having outage, it would use the next
3436
+ * one. Set to null to remove voice fallback for the agent.
3490
3437
  */
3491
- op: 'eq' | 'ne' | 'sw' | 'ew' | 'co';
3492
- type: 'string';
3493
- value: string;
3438
+ fallback_voice_ids?: Array<string> | null;
3494
3439
  /**
3495
- * The field name to filter on.
3440
+ * Configuration for guardrail checks to detect and prevent prohibited topics in
3441
+ * agent output and user input.
3496
3442
  */
3497
- key?: string;
3498
- }
3499
- interface NumberFilter {
3443
+ guardrail_config?: Agent.GuardrailConfig;
3500
3444
  /**
3501
- * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
3502
- * than, le: less than or equal
3445
+ * Toggle behavior presets on/off to influence agent response style and behaviors.
3503
3446
  */
3504
- op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
3505
- type: 'number';
3506
- value: number;
3447
+ handbook_config?: Agent.HandbookConfig;
3507
3448
  /**
3508
- * The field name to filter on.
3449
+ * Controls how sensitive the agent is to user interruptions. Value ranging from
3450
+ * [0,1]. Lower value means it will take longer / more words for user to interrupt
3451
+ * agent, while higher value means it's easier for user to interrupt agent. If
3452
+ * unset, default value 1 will apply. When this is set to 0, agent would never be
3453
+ * interrupted.
3509
3454
  */
3510
- key?: string;
3511
- }
3512
- interface BooleanFilter {
3513
- op: 'eq';
3514
- type: 'boolean';
3515
- value: boolean;
3455
+ interruption_sensitivity?: number;
3516
3456
  /**
3517
- * The field name to filter on.
3457
+ * If this option is set, the call will try to detect IVR in the first 3 minutes of
3458
+ * the call. Actions defined will be applied when the IVR is detected. Set this to
3459
+ * null to disable IVR detection.
3518
3460
  */
3519
- key?: string;
3520
- }
3521
- interface RangeFilter {
3461
+ ivr_option?: Agent.IvrOption | null;
3522
3462
  /**
3523
- * bt: between
3524
- */
3525
- op: 'bt';
3526
- type: 'range';
3527
- /**
3528
- * [lower_bound, upper_bound]
3463
+ * Specifies what language(s) the agent will operate in. Accepts either a single
3464
+ * scalar locale (e.g. `en-US`), the legacy scalar value `multi` for multilingual
3465
+ * support, or an array of concrete locale codes for explicit multi-locale
3466
+ * selection (e.g. `["en-US","es-ES"]`). The array form must contain concrete
3467
+ * locale codes only — the `multi` value is valid only as the scalar legacy form
3468
+ * and must not appear inside an array. Single-element arrays are normalized to the
3469
+ * equivalent scalar on output. If unset, defaults to `en-US`.
3529
3470
  */
3530
- value: Array<number>;
3471
+ language?: 'en-US' | 'en-IN' | 'en-GB' | 'en-AU' | 'en-NZ' | 'de-DE' | 'es-ES' | 'es-419' | 'hi-IN' | 'fr-FR' | 'fr-CA' | 'ja-JP' | 'pt-PT' | 'pt-BR' | 'zh-CN' | 'ru-RU' | 'it-IT' | 'ko-KR' | 'nl-NL' | 'nl-BE' | 'pl-PL' | 'tr-TR' | 'vi-VN' | 'ro-RO' | 'bg-BG' | 'ca-ES' | 'th-TH' | 'da-DK' | 'fi-FI' | 'el-GR' | 'hu-HU' | 'id-ID' | 'no-NO' | 'sk-SK' | 'sv-SE' | 'lt-LT' | 'lv-LV' | 'cs-CZ' | 'ms-MY' | 'af-ZA' | 'ar-SA' | 'az-AZ' | 'bs-BA' | 'cy-GB' | 'fa-IR' | 'fil-PH' | 'gl-ES' | 'he-IL' | 'hr-HR' | 'hy-AM' | 'is-IS' | 'kk-KZ' | 'kn-IN' | 'mk-MK' | 'mr-IN' | 'ne-NP' | 'sl-SI' | 'sr-RS' | 'sw-KE' | 'ta-IN' | 'ur-IN' | 'yue-CN' | 'uk-UA' | 'multi' | Array<'en-US' | 'en-IN' | 'en-GB' | 'en-AU' | 'en-NZ' | 'de-DE' | 'es-ES' | 'es-419' | 'hi-IN' | 'fr-FR' | 'fr-CA' | 'ja-JP' | 'pt-PT' | 'pt-BR' | 'zh-CN' | 'ru-RU' | 'it-IT' | 'ko-KR' | 'nl-NL' | 'nl-BE' | 'pl-PL' | 'tr-TR' | 'vi-VN' | 'ro-RO' | 'bg-BG' | 'ca-ES' | 'th-TH' | 'da-DK' | 'fi-FI' | 'el-GR' | 'hu-HU' | 'id-ID' | 'no-NO' | 'sk-SK' | 'sv-SE' | 'lt-LT' | 'lv-LV' | 'cs-CZ' | 'ms-MY' | 'af-ZA' | 'ar-SA' | 'az-AZ' | 'bs-BA' | 'cy-GB' | 'fa-IR' | 'fil-PH' | 'gl-ES' | 'he-IL' | 'hr-HR' | 'hy-AM' | 'is-IS' | 'kk-KZ' | 'kn-IN' | 'mk-MK' | 'mr-IN' | 'ne-NP' | 'sl-SI' | 'sr-RS' | 'sw-KE' | 'ta-IN' | 'ur-IN' | 'yue-CN' | 'uk-UA'>;
3531
3472
  /**
3532
- * The field name to filter on.
3473
+ * Maximum allowed length for the call, will force end the call if reached. The
3474
+ * minimum value allowed is 60,000 ms (1 min), and maximum value allowed is
3475
+ * 7,200,000 (2 hours). By default, this is set to 3,600,000 (1 hour).
3533
3476
  */
3534
- key?: string;
3535
- }
3536
- interface EnumFilter {
3477
+ max_call_duration_ms?: number;
3537
3478
  /**
3538
- * in: value is one of the listed values
3479
+ * Whether this agent opts in for signed URLs for public logs and recordings. When
3480
+ * enabled, the generated URLs will include security signatures that restrict
3481
+ * access and automatically expire after 24 hours.
3539
3482
  */
3540
- op: 'in';
3541
- type: 'enum';
3542
- value: Array<string>;
3483
+ opt_in_signed_url?: boolean;
3543
3484
  /**
3544
- * The field name to filter on.
3485
+ * Configuration for PII scrubbing from transcripts and recordings.
3545
3486
  */
3546
- key?: string;
3547
- }
3548
- interface PresentFilter {
3487
+ pii_config?: Agent.PiiConfig;
3549
3488
  /**
3550
- * pr: present (has value), np: not present
3489
+ * Post call analysis data to extract from the call. This data will augment the
3490
+ * pre-defined variables extracted in the call analysis. This will be available
3491
+ * after the call ends.
3551
3492
  */
3552
- op: 'pr' | 'np';
3553
- type: 'present';
3493
+ post_call_analysis_data?: Array<Agent.StringAnalysisData | Agent.EnumAnalysisData | Agent.BooleanAnalysisData | Agent.NumberAnalysisData | Agent.CallPresetAnalysisData> | null;
3554
3494
  /**
3555
- * The field name to filter on.
3495
+ * The model to use for post call analysis. Default to gpt-4.1.
3556
3496
  */
3557
- key?: string;
3558
- }
3559
- interface DataStorageSetting {
3497
+ post_call_analysis_model?: 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-5' | 'gpt-5-mini' | 'gpt-5-nano' | 'gpt-5.1' | 'gpt-5.2' | 'gpt-5.4' | 'gpt-5.4-mini' | 'gpt-5.4-nano' | 'gpt-5.5' | 'claude-4.5-sonnet' | 'claude-4.6-sonnet' | 'claude-4.5-haiku' | 'gemini-2.5-flash-lite' | 'gemini-3.0-flash' | 'gemini-3.1-flash-lite' | null;
3560
3498
  /**
3561
- * in: value is one of the listed values
3499
+ * A list of words / phrases and their pronunciation to be used to guide the audio
3500
+ * synthesize for consistent pronunciation. Check the dashboard to see what
3501
+ * provider supports this feature. Set to null to remove pronunciation dictionary
3502
+ * from this agent.
3562
3503
  */
3563
- op: 'in';
3564
- type: 'enum';
3565
- value: Array<'everything' | 'everything_except_pii' | 'basic_attributes_only'>;
3566
- }
3567
- interface Direction {
3504
+ pronunciation_dictionary?: Array<Agent.PronunciationDictionary> | null;
3568
3505
  /**
3569
- * in: value is one of the listed values
3506
+ * If set, controls how many times agent would remind user when user is
3507
+ * unresponsive. Must be a non negative integer. If unset, default value of 1 will
3508
+ * apply (remind once). Set to 0 to disable agent from reminding.
3570
3509
  */
3571
- op: 'in';
3572
- type: 'enum';
3573
- value: Array<'inbound' | 'outbound'>;
3574
- }
3575
- interface DisconnectionReason {
3510
+ reminder_max_count?: number;
3576
3511
  /**
3577
- * in: value is one of the listed values
3512
+ * If set (in milliseconds), will trigger a reminder to the agent to speak if the
3513
+ * user has been silent for the specified duration after some agent speech. Must be
3514
+ * a positive number. If unset, default value of 10000 ms (10 s) will apply.
3578
3515
  */
3579
- op: 'in';
3580
- type: 'enum';
3581
- value: Array<'user_hangup' | 'agent_hangup' | 'call_transfer' | 'voicemail_reached' | 'ivr_reached' | 'inactivity' | 'max_duration_reached' | 'concurrency_limit_reached' | 'no_concurrency_fallback' | 'no_valid_payment' | 'scam_detected' | 'dial_busy' | 'dial_failed' | 'dial_no_answer' | 'invalid_destination' | 'telephony_provider_permission_denied' | 'telephony_provider_unavailable' | 'sip_routing_error' | 'marked_as_spam' | 'user_declined' | 'error_llm_websocket_open' | 'error_llm_websocket_lost_connection' | 'error_llm_websocket_runtime' | 'error_llm_websocket_corrupt_payload' | 'error_no_audio_received' | 'error_asr' | 'error_retell' | 'error_unknown' | 'error_user_not_joined' | 'registered_call_timeout' | 'transfer_bridged' | 'transfer_cancelled' | 'manual_stopped'>;
3582
- }
3583
- interface NumberFilter {
3516
+ reminder_trigger_ms?: number;
3584
3517
  /**
3585
- * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
3586
- * than, le: less than or equal
3518
+ * The Response Engine to attach to the agent. It is used to generate responses for
3519
+ * the agent. You need to create a Response Engine first before attaching it to an
3520
+ * agent.
3587
3521
  */
3588
- op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
3589
- type: 'number';
3590
- value: number;
3591
- }
3592
- interface RangeFilter {
3522
+ response_engine?: Agent.ResponseEngineRetellLm | Agent.ResponseEngineCustomLm | Agent.ResponseEngineConversationFlow;
3593
3523
  /**
3594
- * bt: between
3524
+ * Controls how responsive is the agent. Value ranging from [0,1]. Lower value
3525
+ * means less responsive agent (wait more, respond slower), while higher value
3526
+ * means faster exchanges (respond when it can). If unset, default value 1 will
3527
+ * apply.
3595
3528
  */
3596
- op: 'bt';
3597
- type: 'range';
3529
+ responsiveness?: number;
3598
3530
  /**
3599
- * [lower_bound, upper_bound]
3531
+ * If set, the phone ringing will last for the specified amount of milliseconds.
3532
+ * This applies for both outbound call ringtime, and call transfer ringtime.
3533
+ * Default to 30000 (30 s). Valid range is [5000, 300000].
3600
3534
  */
3601
- value: Array<number>;
3602
- }
3603
- interface DynamicVariable {
3535
+ ring_duration_ms?: number;
3604
3536
  /**
3605
- * The dynamic variable name to filter on.
3537
+ * The expiration time for the signed url in milliseconds. Only applicable when
3538
+ * opt_in_signed_url is true. If not set, default value of 86400000 (24 hours) will
3539
+ * apply.
3606
3540
  */
3607
- key: string;
3541
+ signed_url_expiration_ms?: number | null;
3608
3542
  /**
3609
- * eq: equal, ne: not equal, sw: starts with, ew: ends with, co: contains
3543
+ * If set, determines whether speech to text should focus on latency or accuracy.
3544
+ * Default to fast mode. When set to custom, custom_stt_config must be provided.
3610
3545
  */
3611
- op: 'eq' | 'ne' | 'sw' | 'ew' | 'co';
3612
- type: 'string';
3613
- value: string;
3614
- }
3615
- interface NumberFilter {
3546
+ stt_mode?: 'fast' | 'accurate' | 'custom';
3616
3547
  /**
3617
- * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
3618
- * than, le: less than or equal
3548
+ * IANA timezone for the agent (e.g. America/New_York). Defaults to
3549
+ * America/Los_Angeles if not set.
3619
3550
  */
3620
- op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
3621
- type: 'number';
3622
- value: number;
3623
- }
3624
- interface RangeFilter {
3551
+ timezone?: string | null;
3552
+ user_dtmf_options?: Agent.UserDtmfOptions | null;
3625
3553
  /**
3626
- * bt: between
3554
+ * Optional description of the agent version. Used for your own reference and
3555
+ * documentation.
3627
3556
  */
3628
- op: 'bt';
3629
- type: 'range';
3557
+ version_description?: string | null;
3630
3558
  /**
3631
- * [lower_bound, upper_bound]
3559
+ * If set, determines the vocabulary set to use for transcription. This setting
3560
+ * only applies for English agents, for non English agent, this setting is a no-op.
3561
+ * Default to general.
3632
3562
  */
3633
- value: Array<number>;
3634
- }
3635
- interface NumberFilter {
3563
+ vocab_specialization?: 'general' | 'medical';
3636
3564
  /**
3637
- * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
3638
- * than, le: less than or equal
3565
+ * Controls the emotional tone of the agent's voice. Currently supported for
3566
+ * Cartesia and Minimax TTS providers. If unset, no emotion will be used.
3639
3567
  */
3640
- op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
3641
- type: 'number';
3642
- value: number;
3643
- }
3644
- interface RangeFilter {
3568
+ voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised' | null;
3645
3569
  /**
3646
- * bt: between
3570
+ * Unique voice id used for the agent. Find list of available voices and their
3571
+ * preview in Dashboard.
3647
3572
  */
3648
- op: 'bt';
3649
- type: 'range';
3573
+ voice_id?: string;
3650
3574
  /**
3651
- * [lower_bound, upper_bound]
3575
+ * Select the voice model used for the selected voice. Each provider has a set of
3576
+ * available voice models. Set to null to remove voice model selection, and default
3577
+ * ones will apply. Check out dashboard for more details of each voice model.
3652
3578
  */
3653
- value: Array<number>;
3654
- }
3655
- /**
3656
- * Filter by from number.
3657
- */
3658
- interface FromNumber {
3579
+ voice_model?: 'eleven_turbo_v2' | 'eleven_flash_v2' | 'eleven_turbo_v2_5' | 'eleven_flash_v2_5' | 'eleven_multilingual_v2' | 'eleven_v3' | 'sonic-3' | 'sonic-3-latest' | 'sonic-3.5' | 'tts-1' | 'gpt-4o-mini-tts' | 'speech-02-turbo' | 'speech-2.8-turbo' | 's1' | 's2-pro' | 's2.1-pro' | null;
3659
3580
  /**
3660
- * eq: equal, ne: not equal, sw: starts with, ew: ends with, co: contains
3581
+ * Controls speed of voice. Value ranging from [0.5,2]. Lower value means slower
3582
+ * speech, while higher value means faster speech rate. If unset, default value 1
3583
+ * will apply.
3661
3584
  */
3662
- op: 'eq' | 'ne' | 'sw' | 'ew' | 'co';
3663
- type: 'string';
3664
- value: string;
3665
- }
3666
- /**
3667
- * Filter by whether the call is in voicemail.
3668
- */
3669
- interface InVoicemail {
3670
- op: 'eq';
3671
- type: 'boolean';
3672
- value: boolean;
3673
- }
3674
- interface StringFilter {
3585
+ voice_speed?: number;
3675
3586
  /**
3676
- * eq: equal, ne: not equal, sw: starts with, ew: ends with, co: contains
3587
+ * Controls how stable the voice is. Value ranging from [0,2]. Lower value means
3588
+ * more stable, and higher value means more variant speech generation. Check the
3589
+ * dashboard to see what provider supports this feature. If unset, default value 1
3590
+ * will apply.
3677
3591
  */
3678
- op: 'eq' | 'ne' | 'sw' | 'ew' | 'co';
3679
- type: 'string';
3680
- value: string;
3592
+ voice_temperature?: number;
3681
3593
  /**
3682
- * The field name to filter on.
3594
+ * Configures when to stop running voicemail detection, as it becomes unlikely to
3595
+ * hit voicemail after a couple minutes, and keep running it will only have
3596
+ * negative impact. The minimum value allowed is 5,000 ms (5 s), and maximum value
3597
+ * allowed is 180,000 (3 minutes). By default, this is set to 30,000 (30 s).
3683
3598
  */
3684
- key?: string;
3685
- }
3686
- interface NumberFilter {
3599
+ voicemail_detection_timeout_ms?: number;
3687
3600
  /**
3688
- * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
3689
- * than, le: less than or equal
3601
+ * The message to be played when the call enters a voicemail. Note that this
3602
+ * feature is only available for phone calls. If you want to hangup after hitting
3603
+ * voicemail, set this to empty string.
3690
3604
  */
3691
- op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
3692
- type: 'number';
3693
- value: number;
3605
+ voicemail_message?: string;
3694
3606
  /**
3695
- * The field name to filter on.
3607
+ * If this option is set, the call will try to detect voicemail in the first 3
3608
+ * minutes of the call. Actions defined (hangup, or leave a message) will be
3609
+ * applied when the voicemail is detected. Set this to null to disable voicemail
3610
+ * detection.
3696
3611
  */
3697
- key?: string;
3698
- }
3699
- interface BooleanFilter {
3700
- op: 'eq';
3701
- type: 'boolean';
3702
- value: boolean;
3612
+ voicemail_option?: Agent.VoicemailOption | null;
3703
3613
  /**
3704
- * The field name to filter on.
3614
+ * If set, will control the volume of the agent. Value ranging from [0,2]. Lower
3615
+ * value means quieter agent speech, while higher value means louder agent speech.
3616
+ * If unset, default value 1 will apply.
3705
3617
  */
3706
- key?: string;
3707
- }
3708
- interface RangeFilter {
3618
+ volume?: number;
3709
3619
  /**
3710
- * bt: between
3620
+ * Which webhook events this agent should receive. If not set, defaults to
3621
+ * call_started, call_ended, call_analyzed.
3711
3622
  */
3712
- op: 'bt';
3713
- type: 'range';
3623
+ webhook_events?: Array<'call_started' | 'call_ended' | 'call_analyzed' | 'transcript_updated' | 'transfer_started' | 'transfer_bridged' | 'transfer_cancelled' | 'transfer_ended'> | null;
3714
3624
  /**
3715
- * [lower_bound, upper_bound]
3625
+ * The timeout for the webhook in milliseconds. If not set, default value of 10000
3626
+ * will apply.
3716
3627
  */
3717
- value: Array<number>;
3628
+ webhook_timeout_ms?: number;
3718
3629
  /**
3719
- * The field name to filter on.
3630
+ * The webhook for agent to listen to call events. See what events it would get at
3631
+ * [webhook doc](/features/webhook). If set, will binds webhook events for this
3632
+ * agent to the specified url, and will ignore the account level webhook for this
3633
+ * agent. Set to `null` to remove webhook url from this agent.
3720
3634
  */
3721
- key?: string;
3635
+ webhook_url?: string | null;
3722
3636
  }
3723
- interface EnumFilter {
3724
- /**
3725
- * in: value is one of the listed values
3726
- */
3727
- op: 'in';
3728
- type: 'enum';
3729
- value: Array<string>;
3730
- /**
3731
- * The field name to filter on.
3732
- */
3733
- key?: string;
3734
- }
3735
- interface PresentFilter {
3736
- /**
3737
- * pr: present (has value), np: not present
3738
- */
3739
- op: 'pr' | 'np';
3740
- type: 'present';
3741
- /**
3742
- * The field name to filter on.
3743
- */
3744
- key?: string;
3745
- }
3746
- interface NumberFilter {
3747
- /**
3748
- * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
3749
- * than, le: less than or equal
3750
- */
3751
- op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
3752
- type: 'number';
3753
- value: number;
3754
- }
3755
- interface RangeFilter {
3637
+ namespace Agent {
3756
3638
  /**
3757
- * bt: between
3639
+ * If this option is set, the agent prompt will include call screen handling
3640
+ * instructions for identity and call purpose questions. Set this to null to
3641
+ * disable call screen prompt instructions.
3758
3642
  */
3759
- op: 'bt';
3760
- type: 'range';
3643
+ interface CallScreeningOption {
3644
+ /**
3645
+ * Identity the agent should provide when a call screen asks who is calling.
3646
+ * Dynamic variables are supported.
3647
+ */
3648
+ agent_identity: string;
3649
+ /**
3650
+ * Purpose the agent should provide when a call screen asks why it is calling.
3651
+ * Dynamic variables are supported.
3652
+ */
3653
+ call_purpose: string;
3654
+ }
3761
3655
  /**
3762
- * [lower_bound, upper_bound]
3656
+ * Custom STT configuration. Only used when stt_mode is set to custom.
3763
3657
  */
3764
- value: Array<number>;
3765
- }
3766
- /**
3767
- * Filter by to number.
3768
- */
3769
- interface ToNumber {
3658
+ interface CustomSttConfig {
3659
+ /**
3660
+ * Endpointing timeout in milliseconds. Minimum is 100 for Azure, 10 for Deepgram,
3661
+ * 500 for Soniox
3662
+ */
3663
+ endpointing_ms: number;
3664
+ /**
3665
+ * ASR provider name.
3666
+ */
3667
+ provider: 'azure' | 'deepgram' | 'soniox';
3668
+ }
3770
3669
  /**
3771
- * eq: equal, ne: not equal, sw: starts with, ew: ends with, co: contains
3670
+ * Configuration for guardrail checks to detect and prevent prohibited topics in
3671
+ * agent output and user input.
3772
3672
  */
3773
- op: 'eq' | 'ne' | 'sw' | 'ew' | 'co';
3774
- type: 'string';
3775
- value: string;
3776
- }
3777
- interface ToolCall {
3673
+ interface GuardrailConfig {
3674
+ /**
3675
+ * Selected prohibited user topic categories to check. When user messages contain
3676
+ * these topics, the agent will respond with a placeholder message instead of
3677
+ * processing the request.
3678
+ */
3679
+ input_topics?: Array<'platform_integrity_jailbreaking'> | null;
3680
+ /**
3681
+ * Selected prohibited agent topic categories to check. When agent messages contain
3682
+ * these topics, they will be replaced with a placeholder message.
3683
+ */
3684
+ output_topics?: Array<'harassment' | 'self_harm' | 'sexual_exploitation' | 'violence' | 'defense_and_national_security' | 'illicit_and_harmful_activity' | 'gambling' | 'regulated_professional_advice' | 'child_safety_and_exploitation'> | null;
3685
+ }
3778
3686
  /**
3779
- * The tool call name to filter on.
3687
+ * Toggle behavior presets on/off to influence agent response style and behaviors.
3780
3688
  */
3781
- name: string;
3689
+ interface HandbookConfig {
3690
+ /**
3691
+ * When asked, acknowledge being a virtual assistant.
3692
+ */
3693
+ ai_disclosure?: boolean;
3694
+ /**
3695
+ * Professional call center rep baseline.
3696
+ */
3697
+ default_personality?: boolean;
3698
+ /**
3699
+ * Repeat back and confirm important details (voice only).
3700
+ */
3701
+ echo_verification?: boolean;
3702
+ /**
3703
+ * Warm acknowledgment of caller concerns.
3704
+ */
3705
+ high_empathy?: boolean;
3706
+ /**
3707
+ * Spell using NATO phonetic alphabet style (voice only).
3708
+ */
3709
+ nato_phonetic_alphabet?: boolean;
3710
+ /**
3711
+ * Sprinkle natural speech fillers like "um", "you know" for a more human,
3712
+ * conversational tone.
3713
+ */
3714
+ natural_filler_words?: boolean;
3715
+ /**
3716
+ * Stay within prompt/context scope, don't invent details.
3717
+ */
3718
+ scope_boundaries?: boolean;
3719
+ /**
3720
+ * Treat near-match similar words as same entity to reduce impact of transcription
3721
+ * error (voice only).
3722
+ */
3723
+ smart_matching?: boolean;
3724
+ /**
3725
+ * Convert numbers/dates/currency to spoken forms (voice only).
3726
+ */
3727
+ speech_normalization?: boolean;
3728
+ }
3782
3729
  /**
3783
- * Filter by tool call latency in milliseconds.
3730
+ * If this option is set, the call will try to detect IVR in the first 3 minutes of
3731
+ * the call. Actions defined will be applied when the IVR is detected. Set this to
3732
+ * null to disable IVR detection.
3784
3733
  */
3785
- latency_ms?: ToolCall.NumberFilter | ToolCall.RangeFilter;
3734
+ interface IvrOption {
3735
+ action: IvrOption.Action;
3736
+ /**
3737
+ * Optionally describe what should be treated as an IVR. Leave as null to use the
3738
+ * default definition.
3739
+ */
3740
+ detection_prompt?: string | null;
3741
+ }
3742
+ namespace IvrOption {
3743
+ interface Action {
3744
+ type: 'hangup';
3745
+ }
3746
+ }
3786
3747
  /**
3787
- * Filter by tool call success status.
3748
+ * Configuration for PII scrubbing from transcripts and recordings.
3788
3749
  */
3789
- success?: ToolCall.Success;
3790
- }
3791
- namespace ToolCall {
3792
- interface NumberFilter {
3750
+ interface PiiConfig {
3793
3751
  /**
3794
- * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
3795
- * than, le: less than or equal
3752
+ * List of PII categories to scrub from transcripts and recordings. PII redaction
3753
+ * is only active when this list is non-empty; an empty array means no PII
3754
+ * scrubbing is performed.
3796
3755
  */
3797
- op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
3798
- type: 'number';
3799
- value: number;
3756
+ categories: Array<'person_name' | 'address' | 'email' | 'phone_number' | 'ssn' | 'passport' | 'driver_license' | 'credit_card' | 'bank_account' | 'password' | 'pin' | 'medical_id' | 'date_of_birth' | 'customer_account_number'>;
3757
+ /**
3758
+ * The processing mode for PII scrubbing. Currently only post-call is supported.
3759
+ */
3760
+ mode: 'post_call';
3800
3761
  }
3801
- interface RangeFilter {
3762
+ interface StringAnalysisData {
3802
3763
  /**
3803
- * bt: between
3764
+ * Description of the variable.
3804
3765
  */
3805
- op: 'bt';
3806
- type: 'range';
3766
+ description: string;
3807
3767
  /**
3808
- * [lower_bound, upper_bound]
3768
+ * Name of the variable.
3809
3769
  */
3810
- value: Array<number>;
3770
+ name: string;
3771
+ /**
3772
+ * Type of the variable to extract.
3773
+ */
3774
+ type: 'string';
3775
+ /**
3776
+ * Optional instruction to help decide whether this field needs to be populated in
3777
+ * the analysis. If not set, the field is always included. If required is true,
3778
+ * this is ignored.
3779
+ */
3780
+ conditional_prompt?: string;
3781
+ /**
3782
+ * Examples of the variable value to teach model the style and syntax.
3783
+ */
3784
+ examples?: Array<string>;
3785
+ /**
3786
+ * Whether this data is required. If true and the data is not extracted, the call
3787
+ * will be marked as unsuccessful.
3788
+ */
3789
+ required?: boolean;
3811
3790
  }
3812
- /**
3813
- * Filter by tool call success status.
3814
- */
3815
- interface Success {
3816
- op: 'eq';
3817
- type: 'boolean';
3818
- value: boolean;
3791
+ interface EnumAnalysisData {
3792
+ /**
3793
+ * The possible values of the variable, must be non empty array.
3794
+ */
3795
+ choices: Array<string>;
3796
+ /**
3797
+ * Description of the variable.
3798
+ */
3799
+ description: string;
3800
+ /**
3801
+ * Name of the variable.
3802
+ */
3803
+ name: string;
3804
+ /**
3805
+ * Type of the variable to extract.
3806
+ */
3807
+ type: 'enum';
3808
+ /**
3809
+ * Optional instruction to help decide whether this field needs to be populated in
3810
+ * the analysis. If not set, the field is always included. If required is true,
3811
+ * this is ignored.
3812
+ */
3813
+ conditional_prompt?: string;
3814
+ /**
3815
+ * Whether this data is required. If true and the data is not extracted, the call
3816
+ * will be marked as unsuccessful.
3817
+ */
3818
+ required?: boolean;
3819
3819
  }
3820
- }
3821
- interface UserSentiment {
3822
- /**
3823
- * in: value is one of the listed values
3824
- */
3825
- op: 'in';
3826
- type: 'enum';
3827
- value: Array<'Negative' | 'Positive' | 'Neutral' | 'Unknown'>;
3828
- }
3829
- }
3830
- }
3831
- export interface CallCreatePhoneCallParams {
3832
- /**
3833
- * The number you own in E.164 format. Must be a number purchased from Retell or
3834
- * imported to Retell.
3835
- */
3836
- from_number: string;
3837
- /**
3838
- * The number you want to call, in E.164 format. If using a number purchased from
3839
- * Retell, only US numbers are supported as destination.
3840
- */
3841
- to_number: string;
3842
- /**
3843
- * For this particular call, override agent configuration with these settings. This
3844
- * allows you to customize agent behavior for individual calls without modifying
3845
- * the base agent.
3846
- */
3847
- agent_override?: CallCreatePhoneCallParams.AgentOverride;
3848
- /**
3849
- * Add optional custom SIP headers to the call.
3850
- */
3851
- custom_sip_headers?: {
3852
- [key: string]: string;
3853
- };
3854
- /**
3855
- * If true, the e.164 validation will be ignored for the from_number. This can be
3856
- * useful when you want to dial to internal pseudo numbers. This only applies when
3857
- * you are using custom telephony and does not apply when you are using Retell
3858
- * Telephony. If omitted, the default value is false.
3859
- */
3860
- ignore_e164_validation?: boolean;
3861
- /**
3862
- * An arbitrary object for storage purpose only. You can put anything here like
3863
- * your internal customer id associated with the call. Not used for processing. You
3864
- * can later get this field from the call object.
3865
- */
3866
- metadata?: unknown;
3867
- /**
3868
- * For this particular call, override the agent used with this agent id. This does
3869
- * not bind the agent to this number, this is for one time override.
3870
- */
3871
- override_agent_id?: string;
3872
- /**
3873
- * For this particular call, override the agent version used with this version.
3874
- * This does not bind the agent version to this number, this is for one time
3875
- * override.
3876
- */
3877
- override_agent_version?: number | string;
3878
- /**
3879
- * Add optional dynamic variables in key value pairs of string that injects into
3880
- * your Response Engine prompt and tool description. Only applicable for Response
3881
- * Engine.
3882
- */
3883
- retell_llm_dynamic_variables?: {
3884
- [key: string]: string;
3885
- };
3886
- }
3887
- export declare namespace CallCreatePhoneCallParams {
3888
- /**
3889
- * For this particular call, override agent configuration with these settings. This
3890
- * allows you to customize agent behavior for individual calls without modifying
3891
- * the base agent.
3892
- */
3893
- interface AgentOverride {
3894
- /**
3895
- * Override agent configuration settings. Any properties specified here will
3896
- * override the base agent configuration for this call.
3897
- */
3898
- agent?: AgentOverride.Agent;
3820
+ interface BooleanAnalysisData {
3821
+ /**
3822
+ * Description of the variable.
3823
+ */
3824
+ description: string;
3825
+ /**
3826
+ * Name of the variable.
3827
+ */
3828
+ name: string;
3829
+ /**
3830
+ * Type of the variable to extract.
3831
+ */
3832
+ type: 'boolean';
3833
+ /**
3834
+ * Optional instruction to help decide whether this field needs to be populated in
3835
+ * the analysis. If not set, the field is always included. If required is true,
3836
+ * this is ignored.
3837
+ */
3838
+ conditional_prompt?: string;
3839
+ /**
3840
+ * Whether this data is required. If true and the data is not extracted, the call
3841
+ * will be marked as unsuccessful.
3842
+ */
3843
+ required?: boolean;
3844
+ }
3845
+ interface NumberAnalysisData {
3846
+ /**
3847
+ * Description of the variable.
3848
+ */
3849
+ description: string;
3850
+ /**
3851
+ * Name of the variable.
3852
+ */
3853
+ name: string;
3854
+ /**
3855
+ * Type of the variable to extract.
3856
+ */
3857
+ type: 'number';
3858
+ /**
3859
+ * Optional instruction to help decide whether this field needs to be populated in
3860
+ * the analysis. If not set, the field is always included. If required is true,
3861
+ * this is ignored.
3862
+ */
3863
+ conditional_prompt?: string;
3864
+ /**
3865
+ * Whether this data is required. If true and the data is not extracted, the call
3866
+ * will be marked as unsuccessful.
3867
+ */
3868
+ required?: boolean;
3869
+ }
3870
+ /**
3871
+ * System preset for post-call analysis (voice agents). Use in
3872
+ * post_call_analysis_data to override prompts or mark fields optional.
3873
+ */
3874
+ interface CallPresetAnalysisData {
3875
+ /**
3876
+ * Preset identifier for voice agent analysis.
3877
+ */
3878
+ name: 'call_summary' | 'call_successful' | 'user_sentiment';
3879
+ /**
3880
+ * Identifies this item as a system preset.
3881
+ */
3882
+ type: 'system-presets';
3883
+ /**
3884
+ * Optional instruction to help decide whether this field needs to be populated. If
3885
+ * not set, the field is always included.
3886
+ */
3887
+ conditional_prompt?: string;
3888
+ /**
3889
+ * Prompt or description for this preset.
3890
+ */
3891
+ description?: string;
3892
+ /**
3893
+ * If false, this field is optional in the analysis. If true or unset, the field is
3894
+ * required.
3895
+ */
3896
+ required?: boolean;
3897
+ }
3898
+ interface PronunciationDictionary {
3899
+ /**
3900
+ * The phonetic alphabet to be used for pronunciation.
3901
+ */
3902
+ alphabet: 'ipa' | 'cmu';
3903
+ /**
3904
+ * Pronunciation of the word in the format of a IPA / CMU pronunciation.
3905
+ */
3906
+ phoneme: string;
3907
+ /**
3908
+ * The string of word / phrase to be annotated with pronunciation.
3909
+ */
3910
+ word: string;
3911
+ }
3912
+ interface ResponseEngineRetellLm {
3913
+ /**
3914
+ * id of the Retell LLM Response Engine.
3915
+ */
3916
+ llm_id: string;
3917
+ /**
3918
+ * type of the Response Engine.
3919
+ */
3920
+ type: 'retell-llm';
3921
+ /**
3922
+ * Version of the Retell LLM Response Engine.
3923
+ */
3924
+ version?: number | null;
3925
+ }
3926
+ interface ResponseEngineCustomLm {
3927
+ /**
3928
+ * LLM websocket url of the custom LLM.
3929
+ */
3930
+ llm_websocket_url: string;
3931
+ /**
3932
+ * type of the Response Engine.
3933
+ */
3934
+ type: 'custom-llm';
3935
+ }
3936
+ interface ResponseEngineConversationFlow {
3937
+ /**
3938
+ * ID of the Conversation Flow Response Engine.
3939
+ */
3940
+ conversation_flow_id: string;
3941
+ /**
3942
+ * type of the Response Engine.
3943
+ */
3944
+ type: 'conversation-flow';
3945
+ /**
3946
+ * Version of the Conversation Flow Response Engine.
3947
+ */
3948
+ version?: number | null;
3949
+ }
3950
+ interface UserDtmfOptions {
3951
+ /**
3952
+ * The maximum number of digits allowed in the user's DTMF (Dual-Tone
3953
+ * Multi-Frequency) input per turn. Once this limit is reached, the input is
3954
+ * considered complete and a response will be generated immediately.
3955
+ */
3956
+ digit_limit?: number | null;
3957
+ /**
3958
+ * A single key that signals the end of DTMF input. Acceptable values include any
3959
+ * digit (0-9), the pound/hash symbol (#), or the asterisk (\*).
3960
+ */
3961
+ termination_key?: string | null;
3962
+ /**
3963
+ * The time (in milliseconds) to wait for user DTMF input before timing out. The
3964
+ * timer resets with each digit received.
3965
+ */
3966
+ timeout_ms?: number;
3967
+ }
3968
+ /**
3969
+ * If this option is set, the call will try to detect voicemail in the first 3
3970
+ * minutes of the call. Actions defined (hangup, or leave a message) will be
3971
+ * applied when the voicemail is detected. Set this to null to disable voicemail
3972
+ * detection.
3973
+ */
3974
+ interface VoicemailOption {
3975
+ action: VoicemailOption.VoicemailActionPrompt | VoicemailOption.VoicemailActionStaticText | VoicemailOption.VoicemailActionHangup | VoicemailOption.VoicemailActionBridgeTransfer;
3976
+ /**
3977
+ * Optionally describe what should be treated as voicemail. Leave as null to use
3978
+ * the default definition.
3979
+ */
3980
+ detection_prompt?: string | null;
3981
+ }
3982
+ namespace VoicemailOption {
3983
+ interface VoicemailActionPrompt {
3984
+ /**
3985
+ * The prompt used to generate the text to be spoken when the call is detected to
3986
+ * be in voicemail.
3987
+ */
3988
+ text: string;
3989
+ type: 'prompt';
3990
+ }
3991
+ interface VoicemailActionStaticText {
3992
+ /**
3993
+ * The text to be spoken when the call is detected to be in voicemail.
3994
+ */
3995
+ text: string;
3996
+ type: 'static_text';
3997
+ }
3998
+ interface VoicemailActionHangup {
3999
+ type: 'hangup';
4000
+ }
4001
+ interface VoicemailActionBridgeTransfer {
4002
+ type: 'bridge_transfer';
4003
+ }
4004
+ }
4005
+ }
3899
4006
  /**
3900
4007
  * Override conversation flow configuration settings. Only applicable when using
3901
4008
  * conversation flow as the response engine. Supported attributes - model_choice,
3902
4009
  * model_temperature, tool_call_strict_mode, knowledge_base_ids, kb_config,
3903
4010
  * start_speaker, begin_after_user_silence_ms.
3904
4011
  */
3905
- conversation_flow?: AgentOverride.ConversationFlow;
3906
- /**
3907
- * Override Retell LLM configuration settings. Only applicable when using Retell
3908
- * LLM as the response engine. Supported attributes - model, s2s_model,
3909
- * model_temperature, model_high_priority, tool_call_strict_mode,
3910
- * knowledge_base_ids, kb_config, start_speaker, begin_after_user_silence_ms,
3911
- * begin_message.
3912
- */
3913
- retell_llm?: AgentOverride.RetellLlm;
4012
+ interface ConversationFlow {
4013
+ /**
4014
+ * If set, the AI will begin the conversation after waiting for the user for the
4015
+ * duration (in milliseconds) specified by this attribute. This only applies if the
4016
+ * agent is configured to wait for the user to speak first. If not set, the agent
4017
+ * will wait indefinitely for the user to speak.
4018
+ */
4019
+ begin_after_user_silence_ms?: number | null;
4020
+ /**
4021
+ * Knowledge base configuration for RAG retrieval.
4022
+ */
4023
+ kb_config?: ConversationFlow.KBConfig;
4024
+ /**
4025
+ * Knowledge base IDs for RAG (Retrieval-Augmented Generation).
4026
+ */
4027
+ knowledge_base_ids?: Array<string> | null;
4028
+ /**
4029
+ * The model choice for the conversation flow.
4030
+ */
4031
+ model_choice?: ConversationFlow.ModelChoice;
4032
+ /**
4033
+ * Controls the randomness of the model's responses. Lower values make responses
4034
+ * more deterministic.
4035
+ */
4036
+ model_temperature?: number | null;
4037
+ /**
4038
+ * Who starts the conversation - user or agent.
4039
+ */
4040
+ start_speaker?: 'user' | 'agent';
4041
+ /**
4042
+ * Whether to use strict mode for tool calls. Only applicable when using certain
4043
+ * supported models.
4044
+ */
4045
+ tool_call_strict_mode?: boolean | null;
4046
+ }
4047
+ namespace ConversationFlow {
4048
+ /**
4049
+ * Knowledge base configuration for RAG retrieval.
4050
+ */
4051
+ interface KBConfig {
4052
+ /**
4053
+ * Similarity threshold for filtering search results
4054
+ */
4055
+ filter_score?: number;
4056
+ /**
4057
+ * Max number of knowledge base chunks to retrieve
4058
+ */
4059
+ top_k?: number;
4060
+ }
4061
+ /**
4062
+ * The model choice for the conversation flow.
4063
+ */
4064
+ interface ModelChoice {
4065
+ /**
4066
+ * The LLM model to use
4067
+ */
4068
+ model: 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-5' | 'gpt-5-mini' | 'gpt-5-nano' | 'gpt-5.1' | 'gpt-5.2' | 'gpt-5.4' | 'gpt-5.4-mini' | 'gpt-5.4-nano' | 'gpt-5.5' | 'claude-4.5-sonnet' | 'claude-4.6-sonnet' | 'claude-4.5-haiku' | 'gemini-2.5-flash-lite' | 'gemini-3.0-flash' | 'gemini-3.1-flash-lite';
4069
+ /**
4070
+ * Type of model choice
4071
+ */
4072
+ type: 'cascading';
4073
+ /**
4074
+ * Whether to use high priority pool with more dedicated resource, default false
4075
+ */
4076
+ high_priority?: boolean;
4077
+ }
4078
+ }
4079
+ /**
4080
+ * Override Retell LLM configuration settings. Only applicable when using Retell
4081
+ * LLM as the response engine. Supported attributes - model, s2s_model,
4082
+ * model_temperature, model_high_priority, tool_call_strict_mode,
4083
+ * knowledge_base_ids, kb_config, start_speaker, begin_after_user_silence_ms,
4084
+ * begin_message.
4085
+ */
4086
+ interface RetellLlm {
4087
+ /**
4088
+ * If set, the AI will begin the conversation after waiting for the user for the
4089
+ * duration (in milliseconds) specified by this attribute. This only applies if the
4090
+ * agent is configured to wait for the user to speak first. If not set, the agent
4091
+ * will wait indefinitely for the user to speak.
4092
+ */
4093
+ begin_after_user_silence_ms?: number | null;
4094
+ /**
4095
+ * First utterance said by the agent in the call. If not set, LLM will dynamically
4096
+ * generate a message. If set to "", agent will wait for user to speak first.
4097
+ */
4098
+ begin_message?: string | null;
4099
+ /**
4100
+ * Knowledge base configuration for RAG retrieval.
4101
+ */
4102
+ kb_config?: RetellLlm.KBConfig | null;
4103
+ /**
4104
+ * A list of knowledge base ids to use for this resource.
4105
+ */
4106
+ knowledge_base_ids?: Array<string> | null;
4107
+ /**
4108
+ * Select the underlying text LLM. If not set, would default to gpt-4.1.
4109
+ */
4110
+ model?: 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-5' | 'gpt-5-mini' | 'gpt-5-nano' | 'gpt-5.1' | 'gpt-5.2' | 'gpt-5.4' | 'gpt-5.4-mini' | 'gpt-5.4-nano' | 'gpt-5.5' | 'claude-4.5-sonnet' | 'claude-4.6-sonnet' | 'claude-4.5-haiku' | 'gemini-2.5-flash-lite' | 'gemini-3.0-flash' | 'gemini-3.1-flash-lite' | null;
4111
+ /**
4112
+ * If set to true, will use high priority pool with more dedicated resource to
4113
+ * ensure lower and more consistent latency, default to false. This feature usually
4114
+ * comes with a higher cost.
4115
+ */
4116
+ model_high_priority?: boolean | null;
4117
+ /**
4118
+ * If set, will control the randomness of the response. Value ranging from [0,1].
4119
+ * Lower value means more deterministic, while higher value means more random. If
4120
+ * unset, default value 0 will apply. Note that for tool calling, a lower value is
4121
+ * recommended.
4122
+ */
4123
+ model_temperature?: number;
4124
+ /**
4125
+ * Select the underlying speech to speech model. Can only set this or model, not
4126
+ * both.
4127
+ */
4128
+ s2s_model?: 'gpt-realtime-2' | 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini' | null;
4129
+ /**
4130
+ * The speaker who starts the conversation. Required. Must be either 'user' or
4131
+ * 'agent'.
4132
+ */
4133
+ start_speaker?: 'user' | 'agent';
4134
+ /**
4135
+ * Whether to use strict mode for tool calls. Only applicable when using certain
4136
+ * supported models.
4137
+ */
4138
+ tool_call_strict_mode?: boolean | null;
4139
+ }
4140
+ namespace RetellLlm {
4141
+ /**
4142
+ * Knowledge base configuration for RAG retrieval.
4143
+ */
4144
+ interface KBConfig {
4145
+ /**
4146
+ * Similarity threshold for filtering search results
4147
+ */
4148
+ filter_score?: number;
4149
+ /**
4150
+ * Max number of knowledge base chunks to retrieve
4151
+ */
4152
+ top_k?: number;
4153
+ }
4154
+ }
4155
+ }
4156
+ }
4157
+ export interface CallRegisterPhoneCallParams {
4158
+ /**
4159
+ * The agent to use for the call.
4160
+ */
4161
+ agent_id: string;
4162
+ /**
4163
+ * For this particular call, override agent configuration with these settings. This
4164
+ * allows you to customize agent behavior for individual calls without modifying
4165
+ * the base agent.
4166
+ */
4167
+ agent_override?: CallRegisterPhoneCallParams.AgentOverride;
4168
+ /**
4169
+ * The version of the agent to use for the call.
4170
+ */
4171
+ agent_version?: number | string;
4172
+ /**
4173
+ * Direction of the phone call. Stored for tracking purpose.
4174
+ */
4175
+ direction?: 'inbound' | 'outbound';
4176
+ /**
4177
+ * The number you own in E.164 format. Stored for tracking purpose.
4178
+ */
4179
+ from_number?: string;
4180
+ /**
4181
+ * An arbitrary object for storage purpose only. You can put anything here like
4182
+ * your internal customer id associated with the call. Not used for processing. You
4183
+ * can later get this field from the call object.
4184
+ */
4185
+ metadata?: unknown;
4186
+ /**
4187
+ * Add optional dynamic variables in key value pairs of string that injects into
4188
+ * your Response Engine prompt and tool description. Only applicable for Response
4189
+ * Engine.
4190
+ */
4191
+ retell_llm_dynamic_variables?: {
4192
+ [key: string]: string;
4193
+ };
4194
+ /**
4195
+ * The number you want to call, in E.164 format. Stored for tracking purpose.
4196
+ */
4197
+ to_number?: string;
4198
+ }
4199
+ export declare namespace CallRegisterPhoneCallParams {
4200
+ /**
4201
+ * For this particular call, override agent configuration with these settings. This
4202
+ * allows you to customize agent behavior for individual calls without modifying
4203
+ * the base agent.
4204
+ */
4205
+ interface AgentOverride {
4206
+ /**
4207
+ * Override agent configuration settings. Any properties specified here will
4208
+ * override the base agent configuration for this call.
4209
+ */
4210
+ agent?: AgentOverride.Agent;
4211
+ /**
4212
+ * Override conversation flow configuration settings. Only applicable when using
4213
+ * conversation flow as the response engine. Supported attributes - model_choice,
4214
+ * model_temperature, tool_call_strict_mode, knowledge_base_ids, kb_config,
4215
+ * start_speaker, begin_after_user_silence_ms.
4216
+ */
4217
+ conversation_flow?: AgentOverride.ConversationFlow;
4218
+ /**
4219
+ * Override Retell LLM configuration settings. Only applicable when using Retell
4220
+ * LLM as the response engine. Supported attributes - model, s2s_model,
4221
+ * model_temperature, model_high_priority, tool_call_strict_mode,
4222
+ * knowledge_base_ids, kb_config, start_speaker, begin_after_user_silence_ms,
4223
+ * begin_message.
4224
+ */
4225
+ retell_llm?: AgentOverride.RetellLlm;
3914
4226
  }
3915
4227
  namespace AgentOverride {
3916
4228
  /**
@@ -5733,952 +6045,640 @@ export declare namespace CallCreateWebCallParams {
5733
6045
  }
5734
6046
  }
5735
6047
  }
5736
- export interface CallRegisterPhoneCallParams {
6048
+ export interface CallListParams {
5737
6049
  /**
5738
- * The agent to use for the call.
6050
+ * Filter criteria for calls. All conditions are implicitly connected with AND.
5739
6051
  */
5740
- agent_id: string;
6052
+ filter_criteria?: CallListParams.FilterCriteria;
5741
6053
  /**
5742
- * For this particular call, override agent configuration with these settings. This
5743
- * allows you to customize agent behavior for individual calls without modifying
5744
- * the base agent.
6054
+ * Whether to include `total` (count of all calls matching `filter_criteria`,
6055
+ * ignoring `limit`/`skip`/`pagination_key`) in the response. Defaults to false.
6056
+ * Each enabled request triggers an additional aggregate query, so opt in only when
6057
+ * the total is needed.
5745
6058
  */
5746
- agent_override?: CallRegisterPhoneCallParams.AgentOverride;
6059
+ include_total?: boolean;
5747
6060
  /**
5748
- * The version of the agent to use for the call.
6061
+ * Maximum number of calls to return.
5749
6062
  */
5750
- agent_version?: number | string;
6063
+ limit?: number;
5751
6064
  /**
5752
- * Direction of the phone call. Stored for tracking purpose.
6065
+ * Opaque pagination cursor from a previous response.
5753
6066
  */
5754
- direction?: 'inbound' | 'outbound';
6067
+ pagination_key?: string;
5755
6068
  /**
5756
- * The number you own in E.164 format. Stored for tracking purpose.
6069
+ * Number of records to skip for pagination.
5757
6070
  */
5758
- from_number?: string;
6071
+ skip?: number;
5759
6072
  /**
5760
- * An arbitrary object for storage purpose only. You can put anything here like
5761
- * your internal customer id associated with the call. Not used for processing. You
5762
- * can later get this field from the call object.
6073
+ * Sort calls by `start_timestamp` in ascending or descending order.
5763
6074
  */
5764
- metadata?: unknown;
6075
+ sort_order?: 'ascending' | 'descending';
6076
+ }
6077
+ export declare namespace CallListParams {
5765
6078
  /**
5766
- * Add optional dynamic variables in key value pairs of string that injects into
5767
- * your Response Engine prompt and tool description. Only applicable for Response
5768
- * Engine.
6079
+ * Filter criteria for calls. All conditions are implicitly connected with AND.
5769
6080
  */
5770
- retell_llm_dynamic_variables?: {
5771
- [key: string]: string;
5772
- };
5773
- /**
5774
- * The number you want to call, in E.164 format. Stored for tracking purpose.
5775
- */
5776
- to_number?: string;
5777
- }
5778
- export declare namespace CallRegisterPhoneCallParams {
5779
- /**
5780
- * For this particular call, override agent configuration with these settings. This
5781
- * allows you to customize agent behavior for individual calls without modifying
5782
- * the base agent.
5783
- */
5784
- interface AgentOverride {
6081
+ interface FilterCriteria {
5785
6082
  /**
5786
- * Override agent configuration settings. Any properties specified here will
5787
- * override the base agent configuration for this call.
6083
+ * Filter by agent(s). Agent filters are connected by OR.
5788
6084
  */
5789
- agent?: AgentOverride.Agent;
6085
+ agent?: Array<FilterCriteria.Agent>;
5790
6086
  /**
5791
- * Override conversation flow configuration settings. Only applicable when using
5792
- * conversation flow as the response engine. Supported attributes - model_choice,
5793
- * model_temperature, tool_call_strict_mode, knowledge_base_ids, kb_config,
5794
- * start_speaker, begin_after_user_silence_ms.
6087
+ * Filter by batch call ID.
5795
6088
  */
5796
- conversation_flow?: AgentOverride.ConversationFlow;
6089
+ batch_call_id?: FilterCriteria.BatchCallID;
5797
6090
  /**
5798
- * Override Retell LLM configuration settings. Only applicable when using Retell
5799
- * LLM as the response engine. Supported attributes - model, s2s_model,
5800
- * model_temperature, model_high_priority, tool_call_strict_mode,
5801
- * knowledge_base_ids, kb_config, start_speaker, begin_after_user_silence_ms,
5802
- * begin_message.
6091
+ * Filter by call ID.
5803
6092
  */
5804
- retell_llm?: AgentOverride.RetellLlm;
5805
- }
5806
- namespace AgentOverride {
6093
+ call_id?: FilterCriteria.CallID;
6094
+ call_status?: FilterCriteria.CallStatus;
5807
6095
  /**
5808
- * Override agent configuration settings. Any properties specified here will
5809
- * override the base agent configuration for this call.
6096
+ * Filter by whether the call was successful.
6097
+ */
6098
+ call_successful?: FilterCriteria.CallSuccessful;
6099
+ call_type?: FilterCriteria.CallType;
6100
+ /**
6101
+ * Filter by combined cost of the call.
6102
+ */
6103
+ combined_cost?: FilterCriteria.NumberFilter | FilterCriteria.RangeFilter;
6104
+ /**
6105
+ * Filter by custom analysis data fields.
6106
+ */
6107
+ custom_analysis_data?: Array<FilterCriteria.StringFilter | FilterCriteria.NumberFilter | FilterCriteria.BooleanFilter | FilterCriteria.RangeFilter | FilterCriteria.EnumFilter | FilterCriteria.PresentFilter>;
6108
+ /**
6109
+ * Filter by custom attributes fields.
6110
+ */
6111
+ custom_attributes?: Array<FilterCriteria.StringFilter | FilterCriteria.NumberFilter | FilterCriteria.BooleanFilter | FilterCriteria.RangeFilter | FilterCriteria.EnumFilter | FilterCriteria.PresentFilter>;
6112
+ data_storage_setting?: FilterCriteria.DataStorageSetting;
6113
+ direction?: FilterCriteria.Direction;
6114
+ disconnection_reason?: FilterCriteria.DisconnectionReason;
6115
+ /**
6116
+ * Filter by call duration in milliseconds.
6117
+ */
6118
+ duration_ms?: FilterCriteria.NumberFilter | FilterCriteria.RangeFilter;
6119
+ /**
6120
+ * Filter by dynamic variables.
6121
+ */
6122
+ dynamic_variables?: Array<FilterCriteria.DynamicVariable>;
6123
+ /**
6124
+ * Filter by end-to-end latency p50.
6125
+ */
6126
+ e2e_latency_p50?: FilterCriteria.NumberFilter | FilterCriteria.RangeFilter;
6127
+ /**
6128
+ * Filter by call end timestamp (epoch ms).
6129
+ */
6130
+ end_timestamp?: FilterCriteria.NumberFilter | FilterCriteria.RangeFilter;
6131
+ /**
6132
+ * Filter by from number.
6133
+ */
6134
+ from_number?: FilterCriteria.FromNumber;
6135
+ /**
6136
+ * Filter by whether the call is in voicemail.
6137
+ */
6138
+ in_voicemail?: FilterCriteria.InVoicemail;
6139
+ /**
6140
+ * Filter by metadata fields.
6141
+ */
6142
+ metadata?: Array<FilterCriteria.StringFilter | FilterCriteria.NumberFilter | FilterCriteria.BooleanFilter | FilterCriteria.RangeFilter | FilterCriteria.EnumFilter | FilterCriteria.PresentFilter>;
6143
+ /**
6144
+ * Filter by call start timestamp (epoch ms).
6145
+ */
6146
+ start_timestamp?: FilterCriteria.NumberFilter | FilterCriteria.RangeFilter;
6147
+ /**
6148
+ * Filter by to number.
6149
+ */
6150
+ to_number?: FilterCriteria.ToNumber;
6151
+ /**
6152
+ * Filter by tool call criteria. Tool call filters are connected by AND.
5810
6153
  */
6154
+ tool_calls?: Array<FilterCriteria.ToolCall>;
6155
+ user_sentiment?: FilterCriteria.UserSentiment;
6156
+ }
6157
+ namespace FilterCriteria {
5811
6158
  interface Agent {
5812
6159
  /**
5813
- * The name of the agent. Only used for your own reference.
6160
+ * The agent ID to filter on.
5814
6161
  */
5815
- agent_name?: string | null;
6162
+ agent_id: string;
5816
6163
  /**
5817
- * If set to true, DTMF input will interrupt the agent even when
5818
- * interruption_sensitivity is 0. Can be overridden per conversation or subagent
5819
- * node. Default to false.
6164
+ * Specific versions to filter on. If not provided, all versions are included.
5820
6165
  */
5821
- allow_dtmf_interruption?: boolean;
6166
+ version?: Array<number>;
6167
+ }
6168
+ /**
6169
+ * Filter by batch call ID.
6170
+ */
6171
+ interface BatchCallID {
5822
6172
  /**
5823
- * If set to true, DTMF input will be accepted and processed. If false, any DTMF
5824
- * input will be ignored. Default to true.
6173
+ * eq: equal, ne: not equal, sw: starts with, ew: ends with, co: contains
5825
6174
  */
5826
- allow_user_dtmf?: boolean;
6175
+ op: 'eq' | 'ne' | 'sw' | 'ew' | 'co';
6176
+ type: 'string';
6177
+ value: string;
6178
+ }
6179
+ /**
6180
+ * Filter by call ID.
6181
+ */
6182
+ interface CallID {
5827
6183
  /**
5828
- * If set, will add ambient environment sound to the call to make experience more
5829
- * realistic. Currently supports the following options:
5830
- *
5831
- * - `coffee-shop`: Coffee shop ambience with people chatting in background.
5832
- * [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/coffee-shop.wav)
5833
- * - `convention-hall`: Convention hall ambience, with some echo and people
5834
- * chatting in background.
5835
- * [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/convention-hall.wav)
5836
- * - `summer-outdoor`: Summer outdoor ambience with cicada chirping.
5837
- * [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/summer-outdoor.wav)
5838
- * - `mountain-outdoor`: Mountain outdoor ambience with birds singing.
5839
- * [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/mountain-outdoor.wav)
5840
- * - `static-noise`: Constant static noise.
5841
- * [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/static-noise.wav)
5842
- * - `call-center`: Call center work noise.
5843
- * [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/call-center.wav)
5844
- * Set to `null` to remove ambient sound from this agent.
6184
+ * eq: equal, ne: not equal, sw: starts with, ew: ends with, co: contains
5845
6185
  */
5846
- ambient_sound?: 'coffee-shop' | 'convention-hall' | 'summer-outdoor' | 'mountain-outdoor' | 'static-noise' | 'call-center' | null;
6186
+ op: 'eq' | 'ne' | 'sw' | 'ew' | 'co';
6187
+ type: 'string';
6188
+ value: string;
6189
+ }
6190
+ interface CallStatus {
5847
6191
  /**
5848
- * If set, will control the volume of the ambient sound. Value ranging from [0,2].
5849
- * Lower value means quieter ambient sound, while higher value means louder ambient
5850
- * sound. If unset, default value 1 will apply.
6192
+ * in: value is one of the listed values
5851
6193
  */
5852
- ambient_sound_volume?: number;
6194
+ op: 'in';
6195
+ type: 'enum';
6196
+ value: Array<'not_connected' | 'ongoing' | 'ended' | 'error'>;
6197
+ }
6198
+ /**
6199
+ * Filter by whether the call was successful.
6200
+ */
6201
+ interface CallSuccessful {
6202
+ op: 'eq';
6203
+ type: 'boolean';
6204
+ value: boolean;
6205
+ }
6206
+ interface CallType {
5853
6207
  /**
5854
- * Prompt to determine whether the post call or chat analysis should mark the
5855
- * interaction as successful. Set to null to use the default prompt.
6208
+ * in: value is one of the listed values
5856
6209
  */
5857
- analysis_successful_prompt?: string | null;
6210
+ op: 'in';
6211
+ type: 'enum';
6212
+ value: Array<'web_call' | 'phone_call'>;
6213
+ }
6214
+ interface NumberFilter {
5858
6215
  /**
5859
- * Prompt to guide how the post call or chat analysis summary should be generated.
5860
- * When unset, the default system prompt is used. Set to null to use the default
5861
- * prompt.
6216
+ * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
6217
+ * than, le: less than or equal
5862
6218
  */
5863
- analysis_summary_prompt?: string | null;
6219
+ op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
6220
+ type: 'number';
6221
+ value: number;
6222
+ }
6223
+ interface RangeFilter {
5864
6224
  /**
5865
- * Prompt to guide how the post call or chat analysis should evaluate user
5866
- * sentiment. When unset, the default system prompt is used. Set to null to use the
5867
- * default prompt.
6225
+ * bt: between
5868
6226
  */
5869
- analysis_user_sentiment_prompt?: string | null;
6227
+ op: 'bt';
6228
+ type: 'range';
5870
6229
  /**
5871
- * Only applicable when enable_backchannel is true. Controls how often the agent
5872
- * would backchannel when a backchannel is possible. Value ranging from [0,1].
5873
- * Lower value means less frequent backchannel, while higher value means more
5874
- * frequent backchannel. If unset, default value 0.8 will apply.
6230
+ * [lower_bound, upper_bound]
5875
6231
  */
5876
- backchannel_frequency?: number;
6232
+ value: Array<number>;
6233
+ }
6234
+ interface StringFilter {
5877
6235
  /**
5878
- * Only applicable when enable_backchannel is true. A list of words that the agent
5879
- * would use as backchannel. If not set, default backchannel words will apply.
5880
- * Check out
5881
- * [backchannel default words](/agent/interaction-configuration#backchannel) for
5882
- * more details. Note that certain voices do not work too well with certain words,
5883
- * so it's recommended to experiment before adding any words.
6236
+ * eq: equal, ne: not equal, sw: starts with, ew: ends with, co: contains
5884
6237
  */
5885
- backchannel_words?: Array<string> | null;
6238
+ op: 'eq' | 'ne' | 'sw' | 'ew' | 'co';
6239
+ type: 'string';
6240
+ value: string;
5886
6241
  /**
5887
- * If set, will delay the first message by the specified amount of milliseconds, so
5888
- * that it gives user more time to prepare to take the call. Valid range is [0,
5889
- * 5000]. If not set or set to 0, agent will speak immediately. Only applicable
5890
- * when agent speaks first.
6242
+ * The field name to filter on.
5891
6243
  */
5892
- begin_message_delay_ms?: number;
6244
+ key?: string;
6245
+ }
6246
+ interface NumberFilter {
5893
6247
  /**
5894
- * Provide a customized list of keywords to bias the transcriber model, so that
5895
- * these words are more likely to get transcribed. Commonly used for names, brands,
5896
- * street, etc. Entries may reference dynamic variables with `{{variable}}` syntax.
6248
+ * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
6249
+ * than, le: less than or equal
5897
6250
  */
5898
- boosted_keywords?: Array<string> | null;
6251
+ op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
6252
+ type: 'number';
6253
+ value: number;
5899
6254
  /**
5900
- * If this option is set, the agent prompt will include call screen handling
5901
- * instructions for identity and call purpose questions. Set this to null to
5902
- * disable call screen prompt instructions.
6255
+ * The field name to filter on.
5903
6256
  */
5904
- call_screening_option?: Agent.CallScreeningOption | null;
6257
+ key?: string;
6258
+ }
6259
+ interface BooleanFilter {
6260
+ op: 'eq';
6261
+ type: 'boolean';
6262
+ value: boolean;
5905
6263
  /**
5906
- * Custom STT configuration. Only used when stt_mode is set to custom.
6264
+ * The field name to filter on.
5907
6265
  */
5908
- custom_stt_config?: Agent.CustomSttConfig | null;
6266
+ key?: string;
6267
+ }
6268
+ interface RangeFilter {
5909
6269
  /**
5910
- * Number of days to retain call/chat data before automatic deletion. Must be
5911
- * between 1 and 730 days. If not set, data is retained forever (no automatic
5912
- * deletion).
6270
+ * bt: between
5913
6271
  */
5914
- data_storage_retention_days?: number | null;
5915
- /**
5916
- * Granular setting to manage how Retell stores sensitive data (transcripts,
5917
- * recordings, logs, etc.). This replaces the deprecated
5918
- * `opt_out_sensitive_data_storage` field.
5919
- *
5920
- * - `everything`: Store all data including transcripts, recordings, and logs.
5921
- * - `everything_except_pii`: Store data without PII when PII is detected.
5922
- * - `basic_attributes_only`: Store only basic attributes; no
5923
- * transcripts/recordings/logs. If not set, default value of "everything" will
5924
- * apply.
5925
- */
5926
- data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only';
6272
+ op: 'bt';
6273
+ type: 'range';
5927
6274
  /**
5928
- * If set, determines what denoising mode to use. Use "no-denoise" to bypass all
5929
- * audio denoising. Default to noise-cancellation.
6275
+ * [lower_bound, upper_bound]
5930
6276
  */
5931
- denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation';
6277
+ value: Array<number>;
5932
6278
  /**
5933
- * Controls whether the agent would backchannel (agent interjects the speaker with
5934
- * phrases like "yeah", "uh-huh" to signify interest and engagement). Backchannel
5935
- * when enabled tends to show up more in longer user utterances. If not set, agent
5936
- * will not backchannel.
6279
+ * The field name to filter on.
5937
6280
  */
5938
- enable_backchannel?: boolean;
6281
+ key?: string;
6282
+ }
6283
+ interface EnumFilter {
5939
6284
  /**
5940
- * If set to true, the agent will dynamically adjust how quickly it responds based
5941
- * on the user's speech rate and past turn-taking behavior in the call. If unset,
5942
- * default value false will apply.
6285
+ * in: value is one of the listed values
5943
6286
  */
5944
- enable_dynamic_responsiveness?: boolean;
6287
+ op: 'in';
6288
+ type: 'enum';
6289
+ value: Array<string>;
5945
6290
  /**
5946
- * If set to true, will enable dynamic voice speed adjustment based on the user's
5947
- * speech rate and conversation context. If unset, default value false will apply.
6291
+ * The field name to filter on.
5948
6292
  */
5949
- enable_dynamic_voice_speed?: boolean;
6293
+ key?: string;
6294
+ }
6295
+ interface PresentFilter {
5950
6296
  /**
5951
- * If users stay silent for a period after agent speech, end the call. The minimum
5952
- * value allowed is 10,000 ms (10 s). By default, this is set to 600000 (10 min).
6297
+ * pr: present (has value), np: not present
5953
6298
  */
5954
- end_call_after_silence_ms?: number;
6299
+ op: 'pr' | 'np';
6300
+ type: 'present';
5955
6301
  /**
5956
- * When TTS provider for the selected voice is experiencing outages, we would use
5957
- * fallback voices listed here for the agent. Voice id and the fallback voice ids
5958
- * must be from different TTS providers. The system would go through the list in
5959
- * order, if the first one in the list is also having outage, it would use the next
5960
- * one. Set to null to remove voice fallback for the agent.
6302
+ * The field name to filter on.
5961
6303
  */
5962
- fallback_voice_ids?: Array<string> | null;
6304
+ key?: string;
6305
+ }
6306
+ interface StringFilter {
5963
6307
  /**
5964
- * Configuration for guardrail checks to detect and prevent prohibited topics in
5965
- * agent output and user input.
6308
+ * eq: equal, ne: not equal, sw: starts with, ew: ends with, co: contains
5966
6309
  */
5967
- guardrail_config?: Agent.GuardrailConfig;
6310
+ op: 'eq' | 'ne' | 'sw' | 'ew' | 'co';
6311
+ type: 'string';
6312
+ value: string;
5968
6313
  /**
5969
- * Toggle behavior presets on/off to influence agent response style and behaviors.
6314
+ * The field name to filter on.
5970
6315
  */
5971
- handbook_config?: Agent.HandbookConfig;
6316
+ key?: string;
6317
+ }
6318
+ interface NumberFilter {
5972
6319
  /**
5973
- * Controls how sensitive the agent is to user interruptions. Value ranging from
5974
- * [0,1]. Lower value means it will take longer / more words for user to interrupt
5975
- * agent, while higher value means it's easier for user to interrupt agent. If
5976
- * unset, default value 1 will apply. When this is set to 0, agent would never be
5977
- * interrupted.
6320
+ * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
6321
+ * than, le: less than or equal
5978
6322
  */
5979
- interruption_sensitivity?: number;
6323
+ op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
6324
+ type: 'number';
6325
+ value: number;
5980
6326
  /**
5981
- * If this option is set, the call will try to detect IVR in the first 3 minutes of
5982
- * the call. Actions defined will be applied when the IVR is detected. Set this to
5983
- * null to disable IVR detection.
6327
+ * The field name to filter on.
5984
6328
  */
5985
- ivr_option?: Agent.IvrOption | null;
6329
+ key?: string;
6330
+ }
6331
+ interface BooleanFilter {
6332
+ op: 'eq';
6333
+ type: 'boolean';
6334
+ value: boolean;
5986
6335
  /**
5987
- * Specifies what language(s) the agent will operate in. Accepts either a single
5988
- * scalar locale (e.g. `en-US`), the legacy scalar value `multi` for multilingual
5989
- * support, or an array of concrete locale codes for explicit multi-locale
5990
- * selection (e.g. `["en-US","es-ES"]`). The array form must contain concrete
5991
- * locale codes only — the `multi` value is valid only as the scalar legacy form
5992
- * and must not appear inside an array. Single-element arrays are normalized to the
5993
- * equivalent scalar on output. If unset, defaults to `en-US`.
6336
+ * The field name to filter on.
5994
6337
  */
5995
- language?: 'en-US' | 'en-IN' | 'en-GB' | 'en-AU' | 'en-NZ' | 'de-DE' | 'es-ES' | 'es-419' | 'hi-IN' | 'fr-FR' | 'fr-CA' | 'ja-JP' | 'pt-PT' | 'pt-BR' | 'zh-CN' | 'ru-RU' | 'it-IT' | 'ko-KR' | 'nl-NL' | 'nl-BE' | 'pl-PL' | 'tr-TR' | 'vi-VN' | 'ro-RO' | 'bg-BG' | 'ca-ES' | 'th-TH' | 'da-DK' | 'fi-FI' | 'el-GR' | 'hu-HU' | 'id-ID' | 'no-NO' | 'sk-SK' | 'sv-SE' | 'lt-LT' | 'lv-LV' | 'cs-CZ' | 'ms-MY' | 'af-ZA' | 'ar-SA' | 'az-AZ' | 'bs-BA' | 'cy-GB' | 'fa-IR' | 'fil-PH' | 'gl-ES' | 'he-IL' | 'hr-HR' | 'hy-AM' | 'is-IS' | 'kk-KZ' | 'kn-IN' | 'mk-MK' | 'mr-IN' | 'ne-NP' | 'sl-SI' | 'sr-RS' | 'sw-KE' | 'ta-IN' | 'ur-IN' | 'yue-CN' | 'uk-UA' | 'multi' | Array<'en-US' | 'en-IN' | 'en-GB' | 'en-AU' | 'en-NZ' | 'de-DE' | 'es-ES' | 'es-419' | 'hi-IN' | 'fr-FR' | 'fr-CA' | 'ja-JP' | 'pt-PT' | 'pt-BR' | 'zh-CN' | 'ru-RU' | 'it-IT' | 'ko-KR' | 'nl-NL' | 'nl-BE' | 'pl-PL' | 'tr-TR' | 'vi-VN' | 'ro-RO' | 'bg-BG' | 'ca-ES' | 'th-TH' | 'da-DK' | 'fi-FI' | 'el-GR' | 'hu-HU' | 'id-ID' | 'no-NO' | 'sk-SK' | 'sv-SE' | 'lt-LT' | 'lv-LV' | 'cs-CZ' | 'ms-MY' | 'af-ZA' | 'ar-SA' | 'az-AZ' | 'bs-BA' | 'cy-GB' | 'fa-IR' | 'fil-PH' | 'gl-ES' | 'he-IL' | 'hr-HR' | 'hy-AM' | 'is-IS' | 'kk-KZ' | 'kn-IN' | 'mk-MK' | 'mr-IN' | 'ne-NP' | 'sl-SI' | 'sr-RS' | 'sw-KE' | 'ta-IN' | 'ur-IN' | 'yue-CN' | 'uk-UA'>;
6338
+ key?: string;
6339
+ }
6340
+ interface RangeFilter {
5996
6341
  /**
5997
- * Maximum allowed length for the call, will force end the call if reached. The
5998
- * minimum value allowed is 60,000 ms (1 min), and maximum value allowed is
5999
- * 7,200,000 (2 hours). By default, this is set to 3,600,000 (1 hour).
6342
+ * bt: between
6000
6343
  */
6001
- max_call_duration_ms?: number;
6344
+ op: 'bt';
6345
+ type: 'range';
6002
6346
  /**
6003
- * Whether this agent opts in for signed URLs for public logs and recordings. When
6004
- * enabled, the generated URLs will include security signatures that restrict
6005
- * access and automatically expire after 24 hours.
6347
+ * [lower_bound, upper_bound]
6006
6348
  */
6007
- opt_in_signed_url?: boolean;
6349
+ value: Array<number>;
6008
6350
  /**
6009
- * Configuration for PII scrubbing from transcripts and recordings.
6351
+ * The field name to filter on.
6010
6352
  */
6011
- pii_config?: Agent.PiiConfig;
6353
+ key?: string;
6354
+ }
6355
+ interface EnumFilter {
6012
6356
  /**
6013
- * Post call analysis data to extract from the call. This data will augment the
6014
- * pre-defined variables extracted in the call analysis. This will be available
6015
- * after the call ends.
6357
+ * in: value is one of the listed values
6016
6358
  */
6017
- post_call_analysis_data?: Array<Agent.StringAnalysisData | Agent.EnumAnalysisData | Agent.BooleanAnalysisData | Agent.NumberAnalysisData | Agent.CallPresetAnalysisData> | null;
6359
+ op: 'in';
6360
+ type: 'enum';
6361
+ value: Array<string>;
6018
6362
  /**
6019
- * The model to use for post call analysis. Default to gpt-4.1.
6363
+ * The field name to filter on.
6020
6364
  */
6021
- post_call_analysis_model?: 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-5' | 'gpt-5-mini' | 'gpt-5-nano' | 'gpt-5.1' | 'gpt-5.2' | 'gpt-5.4' | 'gpt-5.4-mini' | 'gpt-5.4-nano' | 'gpt-5.5' | 'claude-4.5-sonnet' | 'claude-4.6-sonnet' | 'claude-4.5-haiku' | 'gemini-2.5-flash-lite' | 'gemini-3.0-flash' | 'gemini-3.1-flash-lite' | null;
6365
+ key?: string;
6366
+ }
6367
+ interface PresentFilter {
6022
6368
  /**
6023
- * A list of words / phrases and their pronunciation to be used to guide the audio
6024
- * synthesize for consistent pronunciation. Check the dashboard to see what
6025
- * provider supports this feature. Set to null to remove pronunciation dictionary
6026
- * from this agent.
6369
+ * pr: present (has value), np: not present
6027
6370
  */
6028
- pronunciation_dictionary?: Array<Agent.PronunciationDictionary> | null;
6371
+ op: 'pr' | 'np';
6372
+ type: 'present';
6029
6373
  /**
6030
- * If set, controls how many times agent would remind user when user is
6031
- * unresponsive. Must be a non negative integer. If unset, default value of 1 will
6032
- * apply (remind once). Set to 0 to disable agent from reminding.
6374
+ * The field name to filter on.
6033
6375
  */
6034
- reminder_max_count?: number;
6376
+ key?: string;
6377
+ }
6378
+ interface DataStorageSetting {
6035
6379
  /**
6036
- * If set (in milliseconds), will trigger a reminder to the agent to speak if the
6037
- * user has been silent for the specified duration after some agent speech. Must be
6038
- * a positive number. If unset, default value of 10000 ms (10 s) will apply.
6380
+ * in: value is one of the listed values
6039
6381
  */
6040
- reminder_trigger_ms?: number;
6382
+ op: 'in';
6383
+ type: 'enum';
6384
+ value: Array<'everything' | 'everything_except_pii' | 'basic_attributes_only'>;
6385
+ }
6386
+ interface Direction {
6041
6387
  /**
6042
- * The Response Engine to attach to the agent. It is used to generate responses for
6043
- * the agent. You need to create a Response Engine first before attaching it to an
6044
- * agent.
6388
+ * in: value is one of the listed values
6045
6389
  */
6046
- response_engine?: Agent.ResponseEngineRetellLm | Agent.ResponseEngineCustomLm | Agent.ResponseEngineConversationFlow;
6390
+ op: 'in';
6391
+ type: 'enum';
6392
+ value: Array<'inbound' | 'outbound'>;
6393
+ }
6394
+ interface DisconnectionReason {
6047
6395
  /**
6048
- * Controls how responsive is the agent. Value ranging from [0,1]. Lower value
6049
- * means less responsive agent (wait more, respond slower), while higher value
6050
- * means faster exchanges (respond when it can). If unset, default value 1 will
6051
- * apply.
6396
+ * in: value is one of the listed values
6052
6397
  */
6053
- responsiveness?: number;
6398
+ op: 'in';
6399
+ type: 'enum';
6400
+ value: Array<'user_hangup' | 'agent_hangup' | 'call_transfer' | 'voicemail_reached' | 'ivr_reached' | 'inactivity' | 'max_duration_reached' | 'concurrency_limit_reached' | 'no_concurrency_fallback' | 'no_valid_payment' | 'scam_detected' | 'dial_busy' | 'dial_failed' | 'dial_no_answer' | 'invalid_destination' | 'telephony_provider_permission_denied' | 'telephony_provider_unavailable' | 'sip_routing_error' | 'marked_as_spam' | 'user_declined' | 'error_llm_websocket_open' | 'error_llm_websocket_lost_connection' | 'error_llm_websocket_runtime' | 'error_llm_websocket_corrupt_payload' | 'error_no_audio_received' | 'error_asr' | 'error_retell' | 'error_unknown' | 'error_user_not_joined' | 'registered_call_timeout' | 'transfer_bridged' | 'transfer_cancelled' | 'manual_stopped'>;
6401
+ }
6402
+ interface NumberFilter {
6054
6403
  /**
6055
- * If set, the phone ringing will last for the specified amount of milliseconds.
6056
- * This applies for both outbound call ringtime, and call transfer ringtime.
6057
- * Default to 30000 (30 s). Valid range is [5000, 300000].
6404
+ * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
6405
+ * than, le: less than or equal
6058
6406
  */
6059
- ring_duration_ms?: number;
6407
+ op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
6408
+ type: 'number';
6409
+ value: number;
6410
+ }
6411
+ interface RangeFilter {
6060
6412
  /**
6061
- * The expiration time for the signed url in milliseconds. Only applicable when
6062
- * opt_in_signed_url is true. If not set, default value of 86400000 (24 hours) will
6063
- * apply.
6413
+ * bt: between
6064
6414
  */
6065
- signed_url_expiration_ms?: number | null;
6415
+ op: 'bt';
6416
+ type: 'range';
6066
6417
  /**
6067
- * If set, determines whether speech to text should focus on latency or accuracy.
6068
- * Default to fast mode. When set to custom, custom_stt_config must be provided.
6418
+ * [lower_bound, upper_bound]
6069
6419
  */
6070
- stt_mode?: 'fast' | 'accurate' | 'custom';
6420
+ value: Array<number>;
6421
+ }
6422
+ interface DynamicVariable {
6071
6423
  /**
6072
- * IANA timezone for the agent (e.g. America/New_York). Defaults to
6073
- * America/Los_Angeles if not set.
6424
+ * The dynamic variable name to filter on.
6074
6425
  */
6075
- timezone?: string | null;
6076
- user_dtmf_options?: Agent.UserDtmfOptions | null;
6426
+ key: string;
6077
6427
  /**
6078
- * Optional description of the agent version. Used for your own reference and
6079
- * documentation.
6428
+ * eq: equal, ne: not equal, sw: starts with, ew: ends with, co: contains
6080
6429
  */
6081
- version_description?: string | null;
6430
+ op: 'eq' | 'ne' | 'sw' | 'ew' | 'co';
6431
+ type: 'string';
6432
+ value: string;
6433
+ }
6434
+ interface NumberFilter {
6082
6435
  /**
6083
- * If set, determines the vocabulary set to use for transcription. This setting
6084
- * only applies for English agents, for non English agent, this setting is a no-op.
6085
- * Default to general.
6436
+ * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
6437
+ * than, le: less than or equal
6086
6438
  */
6087
- vocab_specialization?: 'general' | 'medical';
6439
+ op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
6440
+ type: 'number';
6441
+ value: number;
6442
+ }
6443
+ interface RangeFilter {
6088
6444
  /**
6089
- * Controls the emotional tone of the agent's voice. Currently supported for
6090
- * Cartesia and Minimax TTS providers. If unset, no emotion will be used.
6445
+ * bt: between
6091
6446
  */
6092
- voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised' | null;
6447
+ op: 'bt';
6448
+ type: 'range';
6093
6449
  /**
6094
- * Unique voice id used for the agent. Find list of available voices and their
6095
- * preview in Dashboard.
6450
+ * [lower_bound, upper_bound]
6096
6451
  */
6097
- voice_id?: string;
6452
+ value: Array<number>;
6453
+ }
6454
+ interface NumberFilter {
6098
6455
  /**
6099
- * Select the voice model used for the selected voice. Each provider has a set of
6100
- * available voice models. Set to null to remove voice model selection, and default
6101
- * ones will apply. Check out dashboard for more details of each voice model.
6456
+ * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
6457
+ * than, le: less than or equal
6102
6458
  */
6103
- voice_model?: 'eleven_turbo_v2' | 'eleven_flash_v2' | 'eleven_turbo_v2_5' | 'eleven_flash_v2_5' | 'eleven_multilingual_v2' | 'eleven_v3' | 'sonic-3' | 'sonic-3-latest' | 'sonic-3.5' | 'tts-1' | 'gpt-4o-mini-tts' | 'speech-02-turbo' | 'speech-2.8-turbo' | 's1' | 's2-pro' | 's2.1-pro' | null;
6104
- /**
6105
- * Controls speed of voice. Value ranging from [0.5,2]. Lower value means slower
6106
- * speech, while higher value means faster speech rate. If unset, default value 1
6107
- * will apply.
6108
- */
6109
- voice_speed?: number;
6110
- /**
6111
- * Controls how stable the voice is. Value ranging from [0,2]. Lower value means
6112
- * more stable, and higher value means more variant speech generation. Check the
6113
- * dashboard to see what provider supports this feature. If unset, default value 1
6114
- * will apply.
6115
- */
6116
- voice_temperature?: number;
6117
- /**
6118
- * Configures when to stop running voicemail detection, as it becomes unlikely to
6119
- * hit voicemail after a couple minutes, and keep running it will only have
6120
- * negative impact. The minimum value allowed is 5,000 ms (5 s), and maximum value
6121
- * allowed is 180,000 (3 minutes). By default, this is set to 30,000 (30 s).
6122
- */
6123
- voicemail_detection_timeout_ms?: number;
6124
- /**
6125
- * The message to be played when the call enters a voicemail. Note that this
6126
- * feature is only available for phone calls. If you want to hangup after hitting
6127
- * voicemail, set this to empty string.
6128
- */
6129
- voicemail_message?: string;
6130
- /**
6131
- * If this option is set, the call will try to detect voicemail in the first 3
6132
- * minutes of the call. Actions defined (hangup, or leave a message) will be
6133
- * applied when the voicemail is detected. Set this to null to disable voicemail
6134
- * detection.
6135
- */
6136
- voicemail_option?: Agent.VoicemailOption | null;
6137
- /**
6138
- * If set, will control the volume of the agent. Value ranging from [0,2]. Lower
6139
- * value means quieter agent speech, while higher value means louder agent speech.
6140
- * If unset, default value 1 will apply.
6141
- */
6142
- volume?: number;
6143
- /**
6144
- * Which webhook events this agent should receive. If not set, defaults to
6145
- * call_started, call_ended, call_analyzed.
6146
- */
6147
- webhook_events?: Array<'call_started' | 'call_ended' | 'call_analyzed' | 'transcript_updated' | 'transfer_started' | 'transfer_bridged' | 'transfer_cancelled' | 'transfer_ended'> | null;
6148
- /**
6149
- * The timeout for the webhook in milliseconds. If not set, default value of 10000
6150
- * will apply.
6151
- */
6152
- webhook_timeout_ms?: number;
6153
- /**
6154
- * The webhook for agent to listen to call events. See what events it would get at
6155
- * [webhook doc](/features/webhook). If set, will binds webhook events for this
6156
- * agent to the specified url, and will ignore the account level webhook for this
6157
- * agent. Set to `null` to remove webhook url from this agent.
6158
- */
6159
- webhook_url?: string | null;
6459
+ op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
6460
+ type: 'number';
6461
+ value: number;
6160
6462
  }
6161
- namespace Agent {
6162
- /**
6163
- * If this option is set, the agent prompt will include call screen handling
6164
- * instructions for identity and call purpose questions. Set this to null to
6165
- * disable call screen prompt instructions.
6166
- */
6167
- interface CallScreeningOption {
6168
- /**
6169
- * Identity the agent should provide when a call screen asks who is calling.
6170
- * Dynamic variables are supported.
6171
- */
6172
- agent_identity: string;
6173
- /**
6174
- * Purpose the agent should provide when a call screen asks why it is calling.
6175
- * Dynamic variables are supported.
6176
- */
6177
- call_purpose: string;
6178
- }
6179
- /**
6180
- * Custom STT configuration. Only used when stt_mode is set to custom.
6181
- */
6182
- interface CustomSttConfig {
6183
- /**
6184
- * Endpointing timeout in milliseconds. Minimum is 100 for Azure, 10 for Deepgram,
6185
- * 500 for Soniox
6186
- */
6187
- endpointing_ms: number;
6188
- /**
6189
- * ASR provider name.
6190
- */
6191
- provider: 'azure' | 'deepgram' | 'soniox';
6192
- }
6193
- /**
6194
- * Configuration for guardrail checks to detect and prevent prohibited topics in
6195
- * agent output and user input.
6196
- */
6197
- interface GuardrailConfig {
6198
- /**
6199
- * Selected prohibited user topic categories to check. When user messages contain
6200
- * these topics, the agent will respond with a placeholder message instead of
6201
- * processing the request.
6202
- */
6203
- input_topics?: Array<'platform_integrity_jailbreaking'> | null;
6204
- /**
6205
- * Selected prohibited agent topic categories to check. When agent messages contain
6206
- * these topics, they will be replaced with a placeholder message.
6207
- */
6208
- output_topics?: Array<'harassment' | 'self_harm' | 'sexual_exploitation' | 'violence' | 'defense_and_national_security' | 'illicit_and_harmful_activity' | 'gambling' | 'regulated_professional_advice' | 'child_safety_and_exploitation'> | null;
6209
- }
6210
- /**
6211
- * Toggle behavior presets on/off to influence agent response style and behaviors.
6212
- */
6213
- interface HandbookConfig {
6214
- /**
6215
- * When asked, acknowledge being a virtual assistant.
6216
- */
6217
- ai_disclosure?: boolean;
6218
- /**
6219
- * Professional call center rep baseline.
6220
- */
6221
- default_personality?: boolean;
6222
- /**
6223
- * Repeat back and confirm important details (voice only).
6224
- */
6225
- echo_verification?: boolean;
6226
- /**
6227
- * Warm acknowledgment of caller concerns.
6228
- */
6229
- high_empathy?: boolean;
6230
- /**
6231
- * Spell using NATO phonetic alphabet style (voice only).
6232
- */
6233
- nato_phonetic_alphabet?: boolean;
6234
- /**
6235
- * Sprinkle natural speech fillers like "um", "you know" for a more human,
6236
- * conversational tone.
6237
- */
6238
- natural_filler_words?: boolean;
6239
- /**
6240
- * Stay within prompt/context scope, don't invent details.
6241
- */
6242
- scope_boundaries?: boolean;
6243
- /**
6244
- * Treat near-match similar words as same entity to reduce impact of transcription
6245
- * error (voice only).
6246
- */
6247
- smart_matching?: boolean;
6248
- /**
6249
- * Convert numbers/dates/currency to spoken forms (voice only).
6250
- */
6251
- speech_normalization?: boolean;
6252
- }
6253
- /**
6254
- * If this option is set, the call will try to detect IVR in the first 3 minutes of
6255
- * the call. Actions defined will be applied when the IVR is detected. Set this to
6256
- * null to disable IVR detection.
6257
- */
6258
- interface IvrOption {
6259
- action: IvrOption.Action;
6260
- /**
6261
- * Optionally describe what should be treated as an IVR. Leave as null to use the
6262
- * default definition.
6263
- */
6264
- detection_prompt?: string | null;
6265
- }
6266
- namespace IvrOption {
6267
- interface Action {
6268
- type: 'hangup';
6269
- }
6270
- }
6271
- /**
6272
- * Configuration for PII scrubbing from transcripts and recordings.
6273
- */
6274
- interface PiiConfig {
6275
- /**
6276
- * List of PII categories to scrub from transcripts and recordings. PII redaction
6277
- * is only active when this list is non-empty; an empty array means no PII
6278
- * scrubbing is performed.
6279
- */
6280
- categories: Array<'person_name' | 'address' | 'email' | 'phone_number' | 'ssn' | 'passport' | 'driver_license' | 'credit_card' | 'bank_account' | 'password' | 'pin' | 'medical_id' | 'date_of_birth' | 'customer_account_number'>;
6281
- /**
6282
- * The processing mode for PII scrubbing. Currently only post-call is supported.
6283
- */
6284
- mode: 'post_call';
6285
- }
6286
- interface StringAnalysisData {
6287
- /**
6288
- * Description of the variable.
6289
- */
6290
- description: string;
6291
- /**
6292
- * Name of the variable.
6293
- */
6294
- name: string;
6295
- /**
6296
- * Type of the variable to extract.
6297
- */
6298
- type: 'string';
6299
- /**
6300
- * Optional instruction to help decide whether this field needs to be populated in
6301
- * the analysis. If not set, the field is always included. If required is true,
6302
- * this is ignored.
6303
- */
6304
- conditional_prompt?: string;
6305
- /**
6306
- * Examples of the variable value to teach model the style and syntax.
6307
- */
6308
- examples?: Array<string>;
6309
- /**
6310
- * Whether this data is required. If true and the data is not extracted, the call
6311
- * will be marked as unsuccessful.
6312
- */
6313
- required?: boolean;
6314
- }
6315
- interface EnumAnalysisData {
6316
- /**
6317
- * The possible values of the variable, must be non empty array.
6318
- */
6319
- choices: Array<string>;
6320
- /**
6321
- * Description of the variable.
6322
- */
6323
- description: string;
6324
- /**
6325
- * Name of the variable.
6326
- */
6327
- name: string;
6328
- /**
6329
- * Type of the variable to extract.
6330
- */
6331
- type: 'enum';
6332
- /**
6333
- * Optional instruction to help decide whether this field needs to be populated in
6334
- * the analysis. If not set, the field is always included. If required is true,
6335
- * this is ignored.
6336
- */
6337
- conditional_prompt?: string;
6338
- /**
6339
- * Whether this data is required. If true and the data is not extracted, the call
6340
- * will be marked as unsuccessful.
6341
- */
6342
- required?: boolean;
6343
- }
6344
- interface BooleanAnalysisData {
6345
- /**
6346
- * Description of the variable.
6347
- */
6348
- description: string;
6349
- /**
6350
- * Name of the variable.
6351
- */
6352
- name: string;
6353
- /**
6354
- * Type of the variable to extract.
6355
- */
6356
- type: 'boolean';
6357
- /**
6358
- * Optional instruction to help decide whether this field needs to be populated in
6359
- * the analysis. If not set, the field is always included. If required is true,
6360
- * this is ignored.
6361
- */
6362
- conditional_prompt?: string;
6363
- /**
6364
- * Whether this data is required. If true and the data is not extracted, the call
6365
- * will be marked as unsuccessful.
6366
- */
6367
- required?: boolean;
6368
- }
6369
- interface NumberAnalysisData {
6370
- /**
6371
- * Description of the variable.
6372
- */
6373
- description: string;
6374
- /**
6375
- * Name of the variable.
6376
- */
6377
- name: string;
6378
- /**
6379
- * Type of the variable to extract.
6380
- */
6381
- type: 'number';
6382
- /**
6383
- * Optional instruction to help decide whether this field needs to be populated in
6384
- * the analysis. If not set, the field is always included. If required is true,
6385
- * this is ignored.
6386
- */
6387
- conditional_prompt?: string;
6388
- /**
6389
- * Whether this data is required. If true and the data is not extracted, the call
6390
- * will be marked as unsuccessful.
6391
- */
6392
- required?: boolean;
6393
- }
6463
+ interface RangeFilter {
6394
6464
  /**
6395
- * System preset for post-call analysis (voice agents). Use in
6396
- * post_call_analysis_data to override prompts or mark fields optional.
6465
+ * bt: between
6397
6466
  */
6398
- interface CallPresetAnalysisData {
6399
- /**
6400
- * Preset identifier for voice agent analysis.
6401
- */
6402
- name: 'call_summary' | 'call_successful' | 'user_sentiment';
6403
- /**
6404
- * Identifies this item as a system preset.
6405
- */
6406
- type: 'system-presets';
6407
- /**
6408
- * Optional instruction to help decide whether this field needs to be populated. If
6409
- * not set, the field is always included.
6410
- */
6411
- conditional_prompt?: string;
6412
- /**
6413
- * Prompt or description for this preset.
6414
- */
6415
- description?: string;
6416
- /**
6417
- * If false, this field is optional in the analysis. If true or unset, the field is
6418
- * required.
6419
- */
6420
- required?: boolean;
6421
- }
6422
- interface PronunciationDictionary {
6423
- /**
6424
- * The phonetic alphabet to be used for pronunciation.
6425
- */
6426
- alphabet: 'ipa' | 'cmu';
6427
- /**
6428
- * Pronunciation of the word in the format of a IPA / CMU pronunciation.
6429
- */
6430
- phoneme: string;
6431
- /**
6432
- * The string of word / phrase to be annotated with pronunciation.
6433
- */
6434
- word: string;
6435
- }
6436
- interface ResponseEngineRetellLm {
6437
- /**
6438
- * id of the Retell LLM Response Engine.
6439
- */
6440
- llm_id: string;
6441
- /**
6442
- * type of the Response Engine.
6443
- */
6444
- type: 'retell-llm';
6445
- /**
6446
- * Version of the Retell LLM Response Engine.
6447
- */
6448
- version?: number | null;
6449
- }
6450
- interface ResponseEngineCustomLm {
6451
- /**
6452
- * LLM websocket url of the custom LLM.
6453
- */
6454
- llm_websocket_url: string;
6455
- /**
6456
- * type of the Response Engine.
6457
- */
6458
- type: 'custom-llm';
6459
- }
6460
- interface ResponseEngineConversationFlow {
6461
- /**
6462
- * ID of the Conversation Flow Response Engine.
6463
- */
6464
- conversation_flow_id: string;
6465
- /**
6466
- * type of the Response Engine.
6467
- */
6468
- type: 'conversation-flow';
6469
- /**
6470
- * Version of the Conversation Flow Response Engine.
6471
- */
6472
- version?: number | null;
6473
- }
6474
- interface UserDtmfOptions {
6475
- /**
6476
- * The maximum number of digits allowed in the user's DTMF (Dual-Tone
6477
- * Multi-Frequency) input per turn. Once this limit is reached, the input is
6478
- * considered complete and a response will be generated immediately.
6479
- */
6480
- digit_limit?: number | null;
6481
- /**
6482
- * A single key that signals the end of DTMF input. Acceptable values include any
6483
- * digit (0-9), the pound/hash symbol (#), or the asterisk (\*).
6484
- */
6485
- termination_key?: string | null;
6486
- /**
6487
- * The time (in milliseconds) to wait for user DTMF input before timing out. The
6488
- * timer resets with each digit received.
6489
- */
6490
- timeout_ms?: number;
6491
- }
6467
+ op: 'bt';
6468
+ type: 'range';
6492
6469
  /**
6493
- * If this option is set, the call will try to detect voicemail in the first 3
6494
- * minutes of the call. Actions defined (hangup, or leave a message) will be
6495
- * applied when the voicemail is detected. Set this to null to disable voicemail
6496
- * detection.
6470
+ * [lower_bound, upper_bound]
6497
6471
  */
6498
- interface VoicemailOption {
6499
- action: VoicemailOption.VoicemailActionPrompt | VoicemailOption.VoicemailActionStaticText | VoicemailOption.VoicemailActionHangup | VoicemailOption.VoicemailActionBridgeTransfer;
6500
- /**
6501
- * Optionally describe what should be treated as voicemail. Leave as null to use
6502
- * the default definition.
6503
- */
6504
- detection_prompt?: string | null;
6505
- }
6506
- namespace VoicemailOption {
6507
- interface VoicemailActionPrompt {
6508
- /**
6509
- * The prompt used to generate the text to be spoken when the call is detected to
6510
- * be in voicemail.
6511
- */
6512
- text: string;
6513
- type: 'prompt';
6514
- }
6515
- interface VoicemailActionStaticText {
6516
- /**
6517
- * The text to be spoken when the call is detected to be in voicemail.
6518
- */
6519
- text: string;
6520
- type: 'static_text';
6521
- }
6522
- interface VoicemailActionHangup {
6523
- type: 'hangup';
6524
- }
6525
- interface VoicemailActionBridgeTransfer {
6526
- type: 'bridge_transfer';
6527
- }
6528
- }
6472
+ value: Array<number>;
6529
6473
  }
6530
6474
  /**
6531
- * Override conversation flow configuration settings. Only applicable when using
6532
- * conversation flow as the response engine. Supported attributes - model_choice,
6533
- * model_temperature, tool_call_strict_mode, knowledge_base_ids, kb_config,
6534
- * start_speaker, begin_after_user_silence_ms.
6475
+ * Filter by from number.
6535
6476
  */
6536
- interface ConversationFlow {
6477
+ interface FromNumber {
6537
6478
  /**
6538
- * If set, the AI will begin the conversation after waiting for the user for the
6539
- * duration (in milliseconds) specified by this attribute. This only applies if the
6540
- * agent is configured to wait for the user to speak first. If not set, the agent
6541
- * will wait indefinitely for the user to speak.
6479
+ * eq: equal, ne: not equal, sw: starts with, ew: ends with, co: contains
6542
6480
  */
6543
- begin_after_user_silence_ms?: number | null;
6481
+ op: 'eq' | 'ne' | 'sw' | 'ew' | 'co';
6482
+ type: 'string';
6483
+ value: string;
6484
+ }
6485
+ /**
6486
+ * Filter by whether the call is in voicemail.
6487
+ */
6488
+ interface InVoicemail {
6489
+ op: 'eq';
6490
+ type: 'boolean';
6491
+ value: boolean;
6492
+ }
6493
+ interface StringFilter {
6544
6494
  /**
6545
- * Knowledge base configuration for RAG retrieval.
6495
+ * eq: equal, ne: not equal, sw: starts with, ew: ends with, co: contains
6546
6496
  */
6547
- kb_config?: ConversationFlow.KBConfig;
6497
+ op: 'eq' | 'ne' | 'sw' | 'ew' | 'co';
6498
+ type: 'string';
6499
+ value: string;
6548
6500
  /**
6549
- * Knowledge base IDs for RAG (Retrieval-Augmented Generation).
6501
+ * The field name to filter on.
6550
6502
  */
6551
- knowledge_base_ids?: Array<string> | null;
6503
+ key?: string;
6504
+ }
6505
+ interface NumberFilter {
6552
6506
  /**
6553
- * The model choice for the conversation flow.
6507
+ * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
6508
+ * than, le: less than or equal
6554
6509
  */
6555
- model_choice?: ConversationFlow.ModelChoice;
6510
+ op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
6511
+ type: 'number';
6512
+ value: number;
6556
6513
  /**
6557
- * Controls the randomness of the model's responses. Lower values make responses
6558
- * more deterministic.
6514
+ * The field name to filter on.
6559
6515
  */
6560
- model_temperature?: number | null;
6516
+ key?: string;
6517
+ }
6518
+ interface BooleanFilter {
6519
+ op: 'eq';
6520
+ type: 'boolean';
6521
+ value: boolean;
6561
6522
  /**
6562
- * Who starts the conversation - user or agent.
6523
+ * The field name to filter on.
6563
6524
  */
6564
- start_speaker?: 'user' | 'agent';
6525
+ key?: string;
6526
+ }
6527
+ interface RangeFilter {
6565
6528
  /**
6566
- * Whether to use strict mode for tool calls. Only applicable when using certain
6567
- * supported models.
6529
+ * bt: between
6568
6530
  */
6569
- tool_call_strict_mode?: boolean | null;
6570
- }
6571
- namespace ConversationFlow {
6531
+ op: 'bt';
6532
+ type: 'range';
6572
6533
  /**
6573
- * Knowledge base configuration for RAG retrieval.
6534
+ * [lower_bound, upper_bound]
6574
6535
  */
6575
- interface KBConfig {
6576
- /**
6577
- * Similarity threshold for filtering search results
6578
- */
6579
- filter_score?: number;
6580
- /**
6581
- * Max number of knowledge base chunks to retrieve
6582
- */
6583
- top_k?: number;
6584
- }
6536
+ value: Array<number>;
6585
6537
  /**
6586
- * The model choice for the conversation flow.
6538
+ * The field name to filter on.
6587
6539
  */
6588
- interface ModelChoice {
6589
- /**
6590
- * The LLM model to use
6591
- */
6592
- model: 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-5' | 'gpt-5-mini' | 'gpt-5-nano' | 'gpt-5.1' | 'gpt-5.2' | 'gpt-5.4' | 'gpt-5.4-mini' | 'gpt-5.4-nano' | 'gpt-5.5' | 'claude-4.5-sonnet' | 'claude-4.6-sonnet' | 'claude-4.5-haiku' | 'gemini-2.5-flash-lite' | 'gemini-3.0-flash' | 'gemini-3.1-flash-lite';
6593
- /**
6594
- * Type of model choice
6595
- */
6596
- type: 'cascading';
6597
- /**
6598
- * Whether to use high priority pool with more dedicated resource, default false
6599
- */
6600
- high_priority?: boolean;
6601
- }
6540
+ key?: string;
6602
6541
  }
6603
- /**
6604
- * Override Retell LLM configuration settings. Only applicable when using Retell
6605
- * LLM as the response engine. Supported attributes - model, s2s_model,
6606
- * model_temperature, model_high_priority, tool_call_strict_mode,
6607
- * knowledge_base_ids, kb_config, start_speaker, begin_after_user_silence_ms,
6608
- * begin_message.
6609
- */
6610
- interface RetellLlm {
6542
+ interface EnumFilter {
6611
6543
  /**
6612
- * If set, the AI will begin the conversation after waiting for the user for the
6613
- * duration (in milliseconds) specified by this attribute. This only applies if the
6614
- * agent is configured to wait for the user to speak first. If not set, the agent
6615
- * will wait indefinitely for the user to speak.
6544
+ * in: value is one of the listed values
6616
6545
  */
6617
- begin_after_user_silence_ms?: number | null;
6546
+ op: 'in';
6547
+ type: 'enum';
6548
+ value: Array<string>;
6618
6549
  /**
6619
- * First utterance said by the agent in the call. If not set, LLM will dynamically
6620
- * generate a message. If set to "", agent will wait for user to speak first.
6550
+ * The field name to filter on.
6621
6551
  */
6622
- begin_message?: string | null;
6552
+ key?: string;
6553
+ }
6554
+ interface PresentFilter {
6623
6555
  /**
6624
- * Knowledge base configuration for RAG retrieval.
6556
+ * pr: present (has value), np: not present
6625
6557
  */
6626
- kb_config?: RetellLlm.KBConfig | null;
6558
+ op: 'pr' | 'np';
6559
+ type: 'present';
6627
6560
  /**
6628
- * A list of knowledge base ids to use for this resource.
6561
+ * The field name to filter on.
6629
6562
  */
6630
- knowledge_base_ids?: Array<string> | null;
6563
+ key?: string;
6564
+ }
6565
+ interface NumberFilter {
6631
6566
  /**
6632
- * Select the underlying text LLM. If not set, would default to gpt-4.1.
6567
+ * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
6568
+ * than, le: less than or equal
6633
6569
  */
6634
- model?: 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-5' | 'gpt-5-mini' | 'gpt-5-nano' | 'gpt-5.1' | 'gpt-5.2' | 'gpt-5.4' | 'gpt-5.4-mini' | 'gpt-5.4-nano' | 'gpt-5.5' | 'claude-4.5-sonnet' | 'claude-4.6-sonnet' | 'claude-4.5-haiku' | 'gemini-2.5-flash-lite' | 'gemini-3.0-flash' | 'gemini-3.1-flash-lite' | null;
6570
+ op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
6571
+ type: 'number';
6572
+ value: number;
6573
+ }
6574
+ interface RangeFilter {
6635
6575
  /**
6636
- * If set to true, will use high priority pool with more dedicated resource to
6637
- * ensure lower and more consistent latency, default to false. This feature usually
6638
- * comes with a higher cost.
6576
+ * bt: between
6639
6577
  */
6640
- model_high_priority?: boolean | null;
6578
+ op: 'bt';
6579
+ type: 'range';
6641
6580
  /**
6642
- * If set, will control the randomness of the response. Value ranging from [0,1].
6643
- * Lower value means more deterministic, while higher value means more random. If
6644
- * unset, default value 0 will apply. Note that for tool calling, a lower value is
6645
- * recommended.
6581
+ * [lower_bound, upper_bound]
6646
6582
  */
6647
- model_temperature?: number;
6583
+ value: Array<number>;
6584
+ }
6585
+ /**
6586
+ * Filter by to number.
6587
+ */
6588
+ interface ToNumber {
6648
6589
  /**
6649
- * Select the underlying speech to speech model. Can only set this or model, not
6650
- * both.
6590
+ * eq: equal, ne: not equal, sw: starts with, ew: ends with, co: contains
6651
6591
  */
6652
- s2s_model?: 'gpt-realtime-2' | 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini' | null;
6592
+ op: 'eq' | 'ne' | 'sw' | 'ew' | 'co';
6593
+ type: 'string';
6594
+ value: string;
6595
+ }
6596
+ interface ToolCall {
6653
6597
  /**
6654
- * The speaker who starts the conversation. Required. Must be either 'user' or
6655
- * 'agent'.
6598
+ * The tool call name to filter on.
6656
6599
  */
6657
- start_speaker?: 'user' | 'agent';
6600
+ name: string;
6658
6601
  /**
6659
- * Whether to use strict mode for tool calls. Only applicable when using certain
6660
- * supported models.
6602
+ * Filter by tool call latency in milliseconds.
6661
6603
  */
6662
- tool_call_strict_mode?: boolean | null;
6663
- }
6664
- namespace RetellLlm {
6604
+ latency_ms?: ToolCall.NumberFilter | ToolCall.RangeFilter;
6665
6605
  /**
6666
- * Knowledge base configuration for RAG retrieval.
6606
+ * Filter by tool call success status.
6667
6607
  */
6668
- interface KBConfig {
6608
+ success?: ToolCall.Success;
6609
+ }
6610
+ namespace ToolCall {
6611
+ interface NumberFilter {
6669
6612
  /**
6670
- * Similarity threshold for filtering search results
6613
+ * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
6614
+ * than, le: less than or equal
6671
6615
  */
6672
- filter_score?: number;
6616
+ op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
6617
+ type: 'number';
6618
+ value: number;
6619
+ }
6620
+ interface RangeFilter {
6673
6621
  /**
6674
- * Max number of knowledge base chunks to retrieve
6622
+ * bt: between
6675
6623
  */
6676
- top_k?: number;
6624
+ op: 'bt';
6625
+ type: 'range';
6626
+ /**
6627
+ * [lower_bound, upper_bound]
6628
+ */
6629
+ value: Array<number>;
6630
+ }
6631
+ /**
6632
+ * Filter by tool call success status.
6633
+ */
6634
+ interface Success {
6635
+ op: 'eq';
6636
+ type: 'boolean';
6637
+ value: boolean;
6677
6638
  }
6678
6639
  }
6640
+ interface UserSentiment {
6641
+ /**
6642
+ * in: value is one of the listed values
6643
+ */
6644
+ op: 'in';
6645
+ type: 'enum';
6646
+ value: Array<'Negative' | 'Positive' | 'Neutral' | 'Unknown'>;
6647
+ }
6679
6648
  }
6680
6649
  }
6650
+ export interface CallUpdateParams {
6651
+ /**
6652
+ * Custom attributes for the call
6653
+ */
6654
+ custom_attributes?: {
6655
+ [key: string]: string | number | boolean;
6656
+ };
6657
+ /**
6658
+ * Data storage setting for this call. Overrides the agent's default setting.
6659
+ * "everything" stores all data, "everything_except_pii" excludes PII when
6660
+ * possible, "basic_attributes_only" stores only metadata. Cannot be downgraded
6661
+ * from more restrictive to less restrictive settings.
6662
+ */
6663
+ data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only';
6664
+ /**
6665
+ * An arbitrary object for storage purpose only. You can put anything here like
6666
+ * your internal customer id associated with the call. Not used for processing. You
6667
+ * can later get this field from the call object. Size limited to 50kB max.
6668
+ */
6669
+ metadata?: unknown;
6670
+ /**
6671
+ * Override dynamic variables represented as key-value pairs of strings. Setting
6672
+ * this will override or add the dynamic variables set in the agent during the
6673
+ * call. Only need to set the delta where you want to override, no need to set the
6674
+ * entire dynamic variables object. Setting this to null will remove any existing
6675
+ * override.
6676
+ */
6677
+ override_dynamic_variables?: {
6678
+ [key: string]: string;
6679
+ } | null;
6680
+ }
6681
6681
  export declare namespace Call {
6682
- export { type CallResponse as CallResponse, type PhoneCallResponse as PhoneCallResponse, type WebCallResponse as WebCallResponse, type CallListResponse as CallListResponse, type CallUpdateParams as CallUpdateParams, type CallListParams as CallListParams, type CallCreatePhoneCallParams as CallCreatePhoneCallParams, type CallCreateWebCallParams as CallCreateWebCallParams, type CallRegisterPhoneCallParams as CallRegisterPhoneCallParams, };
6682
+ export { type CallResponse as CallResponse, type PhoneCallResponse as PhoneCallResponse, type WebCallResponse as WebCallResponse, type CallListResponse as CallListResponse, type CallCreatePhoneCallParams as CallCreatePhoneCallParams, type CallRegisterPhoneCallParams as CallRegisterPhoneCallParams, type CallCreateWebCallParams as CallCreateWebCallParams, type CallListParams as CallListParams, type CallUpdateParams as CallUpdateParams, };
6683
6683
  }
6684
6684
  //# sourceMappingURL=call.d.ts.map