revox 0.1.0 → 0.2.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +71 -0
- data/README.md +39 -14
- data/lib/revox/client.rb +15 -1
- data/lib/revox/internal/transport/base_client.rb +5 -0
- data/lib/revox/internal/util.rb +22 -7
- data/lib/revox/models/assistant_create_params.rb +1038 -13
- data/lib/revox/models/assistant_create_response.rb +1071 -11
- data/lib/revox/models/assistant_list_response.rb +1070 -11
- data/lib/revox/models/assistant_retrieve_response.rb +1066 -11
- data/lib/revox/models/assistant_update_params.rb +1038 -13
- data/lib/revox/models/assistant_update_response.rb +1097 -12
- data/lib/revox/models/call_create_params.rb +1065 -13
- data/lib/revox/models/call_create_response.rb +1813 -101
- data/lib/revox/models/call_retrieve_response.rb +1815 -101
- data/lib/revox/models/campaign_create_params.rb +67 -2
- data/lib/revox/models/campaign_create_response.rb +1314 -59
- data/lib/revox/models/campaign_get_rows_params.rb +1 -46
- data/lib/revox/models/campaign_get_rows_response.rb +1837 -129
- data/lib/revox/models/campaign_list_response.rb +1312 -59
- data/lib/revox/models/campaign_retrieve_response.rb +1312 -56
- data/lib/revox/models/users/me_retrieve_response.rb +13 -1
- data/lib/revox/models/users/me_update_response.rb +13 -1
- data/lib/revox/models/voice_list_response.rb +55 -1
- data/lib/revox/models/voice_preview_params.rb +49 -1
- data/lib/revox/models.rb +0 -2
- data/lib/revox/resources/assistants.rb +116 -8
- data/lib/revox/resources/call.rb +0 -29
- data/lib/revox/resources/campaigns.rb +12 -17
- data/lib/revox/resources/voices.rb +16 -10
- data/lib/revox/version.rb +1 -1
- data/lib/revox.rb +0 -2
- data/rbi/revox/internal/util.rbi +8 -0
- data/rbi/revox/models/assistant_create_params.rbi +2138 -103
- data/rbi/revox/models/assistant_create_response.rbi +2454 -199
- data/rbi/revox/models/assistant_list_response.rbi +2448 -195
- data/rbi/revox/models/assistant_retrieve_response.rbi +2401 -210
- data/rbi/revox/models/assistant_update_params.rbi +2138 -103
- data/rbi/revox/models/assistant_update_response.rbi +2504 -198
- data/rbi/revox/models/call_create_params.rbi +2382 -225
- data/rbi/revox/models/call_create_response.rbi +4104 -384
- data/rbi/revox/models/call_retrieve_response.rbi +4104 -382
- data/rbi/revox/models/campaign_create_params.rbi +136 -0
- data/rbi/revox/models/campaign_create_response.rbi +2911 -231
- data/rbi/revox/models/campaign_get_rows_params.rbi +2 -82
- data/rbi/revox/models/campaign_get_rows_response.rbi +4135 -410
- data/rbi/revox/models/campaign_list_response.rbi +2904 -230
- data/rbi/revox/models/campaign_retrieve_response.rbi +2911 -231
- data/rbi/revox/models/users/me_retrieve_response.rbi +13 -3
- data/rbi/revox/models/users/me_update_response.rbi +13 -3
- data/rbi/revox/models/voice_list_response.rbi +105 -3
- data/rbi/revox/models/voice_preview_params.rbi +69 -0
- data/rbi/revox/models.rbi +0 -2
- data/rbi/revox/resources/assistants.rbi +284 -8
- data/rbi/revox/resources/call.rbi +0 -21
- data/rbi/revox/resources/campaigns.rbi +12 -19
- data/rbi/revox/resources/voices.rbi +17 -9
- data/sig/revox/internal/util.rbs +4 -0
- data/sig/revox/models/assistant_create_params.rbs +844 -11
- data/sig/revox/models/assistant_create_response.rbs +860 -3
- data/sig/revox/models/assistant_list_response.rbs +860 -3
- data/sig/revox/models/assistant_retrieve_response.rbs +859 -3
- data/sig/revox/models/assistant_update_params.rbs +844 -11
- data/sig/revox/models/assistant_update_response.rbs +886 -6
- data/sig/revox/models/call_create_params.rbs +847 -13
- data/sig/revox/models/call_create_response.rbs +1514 -34
- data/sig/revox/models/call_retrieve_response.rbs +1514 -34
- data/sig/revox/models/campaign_create_params.rbs +54 -0
- data/sig/revox/models/campaign_create_response.rbs +1034 -6
- data/sig/revox/models/campaign_get_rows_params.rbs +2 -64
- data/sig/revox/models/campaign_get_rows_response.rbs +1522 -54
- data/sig/revox/models/campaign_list_response.rbs +1034 -6
- data/sig/revox/models/campaign_retrieve_response.rbs +1034 -6
- data/sig/revox/models/users/me_retrieve_response.rbs +8 -3
- data/sig/revox/models/users/me_update_response.rbs +8 -3
- data/sig/revox/models/voice_list_response.rbs +45 -3
- data/sig/revox/models/voice_preview_params.rbs +42 -1
- data/sig/revox/models.rbs +0 -2
- data/sig/revox/resources/assistants.rbs +56 -2
- data/sig/revox/resources/call.rbs +0 -7
- data/sig/revox/resources/campaigns.rbs +2 -5
- data/sig/revox/resources/voices.rbs +4 -0
- metadata +2 -8
- data/lib/revox/models/call_list_params.rb +0 -52
- data/lib/revox/models/call_list_response.rb +0 -259
- data/rbi/revox/models/call_list_params.rbi +0 -94
- data/rbi/revox/models/call_list_response.rbi +0 -563
- data/sig/revox/models/call_list_params.rbs +0 -63
- data/sig/revox/models/call_list_response.rbs +0 -226
|
@@ -71,9 +71,19 @@ module Revox
|
|
|
71
71
|
end
|
|
72
72
|
attr_accessor :status
|
|
73
73
|
|
|
74
|
+
sig do
|
|
75
|
+
returns(
|
|
76
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Type::TaggedSymbol
|
|
77
|
+
)
|
|
78
|
+
end
|
|
79
|
+
attr_accessor :type
|
|
80
|
+
|
|
74
81
|
sig { returns(T.anything) }
|
|
75
82
|
attr_accessor :updated_at
|
|
76
83
|
|
|
84
|
+
sig { returns(T.nilable(String)) }
|
|
85
|
+
attr_accessor :active_takeover_call_id
|
|
86
|
+
|
|
77
87
|
sig do
|
|
78
88
|
returns(
|
|
79
89
|
T.nilable(
|
|
@@ -112,12 +122,64 @@ module Revox
|
|
|
112
122
|
end
|
|
113
123
|
attr_writer :call_retry_config
|
|
114
124
|
|
|
125
|
+
# A member of the current organization.
|
|
126
|
+
sig do
|
|
127
|
+
returns(
|
|
128
|
+
T.nilable(
|
|
129
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::CreatedBy
|
|
130
|
+
)
|
|
131
|
+
)
|
|
132
|
+
end
|
|
133
|
+
attr_reader :created_by
|
|
134
|
+
|
|
135
|
+
sig do
|
|
136
|
+
params(
|
|
137
|
+
created_by:
|
|
138
|
+
T.nilable(
|
|
139
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::CreatedBy::OrHash
|
|
140
|
+
)
|
|
141
|
+
).void
|
|
142
|
+
end
|
|
143
|
+
attr_writer :created_by
|
|
144
|
+
|
|
115
145
|
sig { returns(T.nilable(String)) }
|
|
116
146
|
attr_accessor :from_phone_number
|
|
117
147
|
|
|
148
|
+
sig do
|
|
149
|
+
returns(
|
|
150
|
+
T.nilable(
|
|
151
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::FunnelStats
|
|
152
|
+
)
|
|
153
|
+
)
|
|
154
|
+
end
|
|
155
|
+
attr_reader :funnel_stats
|
|
156
|
+
|
|
157
|
+
sig do
|
|
158
|
+
params(
|
|
159
|
+
funnel_stats:
|
|
160
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::FunnelStats::OrHash
|
|
161
|
+
).void
|
|
162
|
+
end
|
|
163
|
+
attr_writer :funnel_stats
|
|
164
|
+
|
|
118
165
|
sig { returns(T.nilable(Float)) }
|
|
119
166
|
attr_accessor :max_concurrent_calls
|
|
120
167
|
|
|
168
|
+
sig do
|
|
169
|
+
returns(
|
|
170
|
+
T.nilable(
|
|
171
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::PausedReason::TaggedSymbol
|
|
172
|
+
)
|
|
173
|
+
)
|
|
174
|
+
end
|
|
175
|
+
attr_accessor :paused_reason
|
|
176
|
+
|
|
177
|
+
sig { returns(T.nilable(Float)) }
|
|
178
|
+
attr_reader :present_count
|
|
179
|
+
|
|
180
|
+
sig { params(present_count: Float).void }
|
|
181
|
+
attr_writer :present_count
|
|
182
|
+
|
|
121
183
|
sig do
|
|
122
184
|
returns(
|
|
123
185
|
T.nilable(
|
|
@@ -141,6 +203,24 @@ module Revox
|
|
|
141
203
|
sig { params(scheduled_at: T.anything).void }
|
|
142
204
|
attr_writer :scheduled_at
|
|
143
205
|
|
|
206
|
+
# The status of the structured output extraction.
|
|
207
|
+
sig do
|
|
208
|
+
returns(
|
|
209
|
+
T.nilable(
|
|
210
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::StructuredOutputExtraction::TaggedSymbol
|
|
211
|
+
)
|
|
212
|
+
)
|
|
213
|
+
end
|
|
214
|
+
attr_reader :structured_output_extraction
|
|
215
|
+
|
|
216
|
+
sig do
|
|
217
|
+
params(
|
|
218
|
+
structured_output_extraction:
|
|
219
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::StructuredOutputExtraction::OrSymbol
|
|
220
|
+
).void
|
|
221
|
+
end
|
|
222
|
+
attr_writer :structured_output_extraction
|
|
223
|
+
|
|
144
224
|
sig do
|
|
145
225
|
params(
|
|
146
226
|
id: String,
|
|
@@ -151,18 +231,34 @@ module Revox
|
|
|
151
231
|
organization_id: String,
|
|
152
232
|
status:
|
|
153
233
|
Revox::Models::CampaignRetrieveResponse::Campaign::Status::OrSymbol,
|
|
234
|
+
type:
|
|
235
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Type::OrSymbol,
|
|
154
236
|
updated_at: T.anything,
|
|
237
|
+
active_takeover_call_id: T.nilable(String),
|
|
155
238
|
assistant:
|
|
156
239
|
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::OrHash,
|
|
157
240
|
call_retry_config:
|
|
158
241
|
T.nilable(
|
|
159
242
|
Revox::Models::CampaignRetrieveResponse::Campaign::CallRetryConfig::OrHash
|
|
160
243
|
),
|
|
244
|
+
created_by:
|
|
245
|
+
T.nilable(
|
|
246
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::CreatedBy::OrHash
|
|
247
|
+
),
|
|
161
248
|
from_phone_number: T.nilable(String),
|
|
249
|
+
funnel_stats:
|
|
250
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::FunnelStats::OrHash,
|
|
162
251
|
max_concurrent_calls: T.nilable(Float),
|
|
252
|
+
paused_reason:
|
|
253
|
+
T.nilable(
|
|
254
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::PausedReason::OrSymbol
|
|
255
|
+
),
|
|
256
|
+
present_count: Float,
|
|
163
257
|
row_stats:
|
|
164
258
|
Revox::Models::CampaignRetrieveResponse::Campaign::RowStats::OrHash,
|
|
165
|
-
scheduled_at: T.anything
|
|
259
|
+
scheduled_at: T.anything,
|
|
260
|
+
structured_output_extraction:
|
|
261
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::StructuredOutputExtraction::OrSymbol
|
|
166
262
|
).returns(T.attached_class)
|
|
167
263
|
end
|
|
168
264
|
def self.new(
|
|
@@ -173,15 +269,24 @@ module Revox
|
|
|
173
269
|
name:,
|
|
174
270
|
organization_id:,
|
|
175
271
|
status:,
|
|
272
|
+
type:,
|
|
176
273
|
updated_at:,
|
|
274
|
+
active_takeover_call_id: nil,
|
|
177
275
|
assistant: nil,
|
|
178
276
|
# Configuration for call retry behavior including time windows, delays, and max
|
|
179
277
|
# iterations. If not provided, defaults will be used.
|
|
180
278
|
call_retry_config: nil,
|
|
279
|
+
# A member of the current organization.
|
|
280
|
+
created_by: nil,
|
|
181
281
|
from_phone_number: nil,
|
|
282
|
+
funnel_stats: nil,
|
|
182
283
|
max_concurrent_calls: nil,
|
|
284
|
+
paused_reason: nil,
|
|
285
|
+
present_count: nil,
|
|
183
286
|
row_stats: nil,
|
|
184
|
-
scheduled_at: nil
|
|
287
|
+
scheduled_at: nil,
|
|
288
|
+
# The status of the structured output extraction.
|
|
289
|
+
structured_output_extraction: nil
|
|
185
290
|
)
|
|
186
291
|
end
|
|
187
292
|
|
|
@@ -196,18 +301,34 @@ module Revox
|
|
|
196
301
|
organization_id: String,
|
|
197
302
|
status:
|
|
198
303
|
Revox::Models::CampaignRetrieveResponse::Campaign::Status::TaggedSymbol,
|
|
304
|
+
type:
|
|
305
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Type::TaggedSymbol,
|
|
199
306
|
updated_at: T.anything,
|
|
307
|
+
active_takeover_call_id: T.nilable(String),
|
|
200
308
|
assistant:
|
|
201
309
|
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant,
|
|
202
310
|
call_retry_config:
|
|
203
311
|
T.nilable(
|
|
204
312
|
Revox::Models::CampaignRetrieveResponse::Campaign::CallRetryConfig
|
|
205
313
|
),
|
|
314
|
+
created_by:
|
|
315
|
+
T.nilable(
|
|
316
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::CreatedBy
|
|
317
|
+
),
|
|
206
318
|
from_phone_number: T.nilable(String),
|
|
319
|
+
funnel_stats:
|
|
320
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::FunnelStats,
|
|
207
321
|
max_concurrent_calls: T.nilable(Float),
|
|
322
|
+
paused_reason:
|
|
323
|
+
T.nilable(
|
|
324
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::PausedReason::TaggedSymbol
|
|
325
|
+
),
|
|
326
|
+
present_count: Float,
|
|
208
327
|
row_stats:
|
|
209
328
|
Revox::Models::CampaignRetrieveResponse::Campaign::RowStats,
|
|
210
|
-
scheduled_at: T.anything
|
|
329
|
+
scheduled_at: T.anything,
|
|
330
|
+
structured_output_extraction:
|
|
331
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::StructuredOutputExtraction::TaggedSymbol
|
|
211
332
|
}
|
|
212
333
|
)
|
|
213
334
|
end
|
|
@@ -258,6 +379,40 @@ module Revox
|
|
|
258
379
|
end
|
|
259
380
|
end
|
|
260
381
|
|
|
382
|
+
module Type
|
|
383
|
+
extend Revox::Internal::Type::Enum
|
|
384
|
+
|
|
385
|
+
TaggedSymbol =
|
|
386
|
+
T.type_alias do
|
|
387
|
+
T.all(
|
|
388
|
+
Symbol,
|
|
389
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Type
|
|
390
|
+
)
|
|
391
|
+
end
|
|
392
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
393
|
+
|
|
394
|
+
REGULAR =
|
|
395
|
+
T.let(
|
|
396
|
+
:regular,
|
|
397
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Type::TaggedSymbol
|
|
398
|
+
)
|
|
399
|
+
JUMP_IN =
|
|
400
|
+
T.let(
|
|
401
|
+
:jump_in,
|
|
402
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Type::TaggedSymbol
|
|
403
|
+
)
|
|
404
|
+
|
|
405
|
+
sig do
|
|
406
|
+
override.returns(
|
|
407
|
+
T::Array[
|
|
408
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Type::TaggedSymbol
|
|
409
|
+
]
|
|
410
|
+
)
|
|
411
|
+
end
|
|
412
|
+
def self.values
|
|
413
|
+
end
|
|
414
|
+
end
|
|
415
|
+
|
|
261
416
|
class Assistant < Revox::Internal::Type::BaseModel
|
|
262
417
|
OrHash =
|
|
263
418
|
T.type_alias do
|
|
@@ -270,8 +425,25 @@ module Revox
|
|
|
270
425
|
sig { returns(String) }
|
|
271
426
|
attr_accessor :id
|
|
272
427
|
|
|
273
|
-
#
|
|
274
|
-
#
|
|
428
|
+
# Which call outcomes trigger the after-call SMS. When empty or null, no
|
|
429
|
+
# after-call SMS is sent. Use "none" when outcome is null.
|
|
430
|
+
sig do
|
|
431
|
+
returns(
|
|
432
|
+
T.nilable(
|
|
433
|
+
T::Array[
|
|
434
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
435
|
+
]
|
|
436
|
+
)
|
|
437
|
+
)
|
|
438
|
+
end
|
|
439
|
+
attr_accessor :after_call_sms_outcomes
|
|
440
|
+
|
|
441
|
+
# Prompt / instructions for the after-call SMS. Supports {{variable}}
|
|
442
|
+
# placeholders. When null, no after-call SMS is sent.
|
|
443
|
+
sig { returns(T.nilable(String)) }
|
|
444
|
+
attr_accessor :after_call_sms_prompt
|
|
445
|
+
|
|
446
|
+
# Ambient background sound to play during the call. null disables it.
|
|
275
447
|
sig do
|
|
276
448
|
returns(
|
|
277
449
|
T.nilable(
|
|
@@ -281,6 +453,10 @@ module Revox
|
|
|
281
453
|
end
|
|
282
454
|
attr_accessor :background_sound
|
|
283
455
|
|
|
456
|
+
# Volume of the ambient background sound (0 = silent, 1 = max).
|
|
457
|
+
sig { returns(Float) }
|
|
458
|
+
attr_accessor :background_sound_volume
|
|
459
|
+
|
|
284
460
|
sig do
|
|
285
461
|
returns(
|
|
286
462
|
T.nilable(
|
|
@@ -321,9 +497,51 @@ module Revox
|
|
|
321
497
|
end
|
|
322
498
|
attr_writer :call_retry_config
|
|
323
499
|
|
|
500
|
+
# Optional Cartesia pronunciation dictionary ID linked to this assistant.
|
|
501
|
+
sig { returns(T.nilable(String)) }
|
|
502
|
+
attr_accessor :cartesia_dictionary_pronunciation_id
|
|
503
|
+
|
|
324
504
|
sig { returns(T.anything) }
|
|
325
505
|
attr_accessor :created_at
|
|
326
506
|
|
|
507
|
+
sig do
|
|
508
|
+
returns(
|
|
509
|
+
T.nilable(
|
|
510
|
+
T::Array[
|
|
511
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool
|
|
512
|
+
]
|
|
513
|
+
)
|
|
514
|
+
)
|
|
515
|
+
end
|
|
516
|
+
attr_accessor :custom_tools
|
|
517
|
+
|
|
518
|
+
# Email address(es) to receive notifications when a call ends with a matching
|
|
519
|
+
# outcome. Accepts a single email or a comma-separated list (e.g. "alice@x.com,
|
|
520
|
+
# bob@y.com").
|
|
521
|
+
sig { returns(T.nilable(String)) }
|
|
522
|
+
attr_accessor :email_notification_address
|
|
523
|
+
|
|
524
|
+
# The language used for the notification email content. One of "en" or "fr".
|
|
525
|
+
sig do
|
|
526
|
+
returns(
|
|
527
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::EmailNotificationLanguage::TaggedSymbol
|
|
528
|
+
)
|
|
529
|
+
end
|
|
530
|
+
attr_accessor :email_notification_language
|
|
531
|
+
|
|
532
|
+
# Which call outcomes trigger an email notification. E.g. ["interested",
|
|
533
|
+
# "completed", "none"]. Use "none" when outcome is null.
|
|
534
|
+
sig do
|
|
535
|
+
returns(
|
|
536
|
+
T.nilable(
|
|
537
|
+
T::Array[
|
|
538
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
539
|
+
]
|
|
540
|
+
)
|
|
541
|
+
)
|
|
542
|
+
end
|
|
543
|
+
attr_accessor :email_notification_outcomes
|
|
544
|
+
|
|
327
545
|
sig { returns(T.nilable(String)) }
|
|
328
546
|
attr_accessor :end_of_call_sentence
|
|
329
547
|
|
|
@@ -341,6 +559,22 @@ module Revox
|
|
|
341
559
|
end
|
|
342
560
|
attr_accessor :first_sentence_mode
|
|
343
561
|
|
|
562
|
+
# Override the default outbound phone number for calls placed with this assistant.
|
|
563
|
+
# When null, the organization's default phone number is used.
|
|
564
|
+
sig { returns(T.nilable(String)) }
|
|
565
|
+
attr_accessor :from_phone_number
|
|
566
|
+
|
|
567
|
+
# Warm or cold transfer when transfer_phone_number is set; null when transfer is
|
|
568
|
+
# not configured.
|
|
569
|
+
sig do
|
|
570
|
+
returns(
|
|
571
|
+
T.nilable(
|
|
572
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::HumanTransferMode::TaggedSymbol
|
|
573
|
+
)
|
|
574
|
+
)
|
|
575
|
+
end
|
|
576
|
+
attr_accessor :human_transfer_mode
|
|
577
|
+
|
|
344
578
|
# Enable IVR navigation tools. When enabled, the assistant can send DTMF tones and
|
|
345
579
|
# skip turns to navigate phone menus.
|
|
346
580
|
sig { returns(T::Boolean) }
|
|
@@ -353,20 +587,99 @@ module Revox
|
|
|
353
587
|
end
|
|
354
588
|
attr_accessor :llm_model
|
|
355
589
|
|
|
590
|
+
# Public URL of the brand logo shown on the assistant's demo page. Null when
|
|
591
|
+
# unset.
|
|
592
|
+
sig { returns(T.nilable(String)) }
|
|
593
|
+
attr_accessor :logo_url
|
|
594
|
+
|
|
356
595
|
# The maximum duration of the call in seconds. This is the maximum time the call
|
|
357
596
|
# will be allowed to run.
|
|
358
597
|
sig { returns(Float) }
|
|
359
598
|
attr_accessor :max_call_duration_secs
|
|
360
599
|
|
|
600
|
+
# Optional message the agent will say, without being interruptible, when the call
|
|
601
|
+
# reaches its max duration. Kept short so it fits inside the farewell buffer. If
|
|
602
|
+
# null, the call ends silently.
|
|
603
|
+
sig { returns(T.nilable(String)) }
|
|
604
|
+
attr_accessor :max_duration_end_message
|
|
605
|
+
|
|
361
606
|
sig { returns(String) }
|
|
362
607
|
attr_accessor :name
|
|
363
608
|
|
|
364
609
|
sig { returns(String) }
|
|
365
610
|
attr_accessor :organization_id
|
|
366
611
|
|
|
612
|
+
sig do
|
|
613
|
+
returns(
|
|
614
|
+
T.nilable(
|
|
615
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Position
|
|
616
|
+
)
|
|
617
|
+
)
|
|
618
|
+
end
|
|
619
|
+
attr_reader :position
|
|
620
|
+
|
|
621
|
+
sig do
|
|
622
|
+
params(
|
|
623
|
+
position:
|
|
624
|
+
T.nilable(
|
|
625
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Position::OrHash
|
|
626
|
+
)
|
|
627
|
+
).void
|
|
628
|
+
end
|
|
629
|
+
attr_writer :position
|
|
630
|
+
|
|
367
631
|
sig { returns(String) }
|
|
368
632
|
attr_accessor :prompt
|
|
369
633
|
|
|
634
|
+
sig do
|
|
635
|
+
returns(
|
|
636
|
+
T.nilable(
|
|
637
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow
|
|
638
|
+
)
|
|
639
|
+
)
|
|
640
|
+
end
|
|
641
|
+
attr_reader :prompt_flow
|
|
642
|
+
|
|
643
|
+
sig do
|
|
644
|
+
params(
|
|
645
|
+
prompt_flow:
|
|
646
|
+
T.nilable(
|
|
647
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::OrHash
|
|
648
|
+
)
|
|
649
|
+
).void
|
|
650
|
+
end
|
|
651
|
+
attr_writer :prompt_flow
|
|
652
|
+
|
|
653
|
+
sig do
|
|
654
|
+
returns(
|
|
655
|
+
T.nilable(
|
|
656
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack
|
|
657
|
+
)
|
|
658
|
+
)
|
|
659
|
+
end
|
|
660
|
+
attr_reader :slack
|
|
661
|
+
|
|
662
|
+
sig do
|
|
663
|
+
params(
|
|
664
|
+
slack:
|
|
665
|
+
T.nilable(
|
|
666
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack::OrHash
|
|
667
|
+
)
|
|
668
|
+
).void
|
|
669
|
+
end
|
|
670
|
+
attr_writer :slack
|
|
671
|
+
|
|
672
|
+
# Enable SMS tool during calls. When enabled, the agent can send SMS messages to
|
|
673
|
+
# the user on the call.
|
|
674
|
+
sig { returns(T::Boolean) }
|
|
675
|
+
attr_accessor :sms_enabled
|
|
676
|
+
|
|
677
|
+
# Hardcoded SMS template to send during calls. When set, this exact text is sent
|
|
678
|
+
# instead of letting the agent generate the message. Supports {{variable}}
|
|
679
|
+
# placeholders.
|
|
680
|
+
sig { returns(T.nilable(String)) }
|
|
681
|
+
attr_accessor :sms_template
|
|
682
|
+
|
|
370
683
|
# The structured output config to use for the call. This is used to extract the
|
|
371
684
|
# data from the call (like email, name, company name, etc.).
|
|
372
685
|
sig do
|
|
@@ -380,10 +693,73 @@ module Revox
|
|
|
380
693
|
end
|
|
381
694
|
attr_accessor :structured_output_config
|
|
382
695
|
|
|
696
|
+
# Custom prompt for structured data extraction. If not provided, a default prompt
|
|
697
|
+
# is used. Available variables: {{transcript}}, {{call_direction}},
|
|
698
|
+
# {{user_phone_number}}, {{agent_phone_number}}.
|
|
699
|
+
sig { returns(T.nilable(String)) }
|
|
700
|
+
attr_accessor :structured_output_prompt
|
|
701
|
+
|
|
702
|
+
# Assistant-level speech-to-text context: structured `general` key/value pairs
|
|
703
|
+
# plus a list of domain `terms`. Prompt-derived context is merged in without
|
|
704
|
+
# replacing existing entries.
|
|
705
|
+
sig do
|
|
706
|
+
returns(
|
|
707
|
+
T.nilable(
|
|
708
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::SttContext
|
|
709
|
+
)
|
|
710
|
+
)
|
|
711
|
+
end
|
|
712
|
+
attr_reader :stt_context
|
|
713
|
+
|
|
714
|
+
sig do
|
|
715
|
+
params(
|
|
716
|
+
stt_context:
|
|
717
|
+
T.nilable(
|
|
718
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::SttContext::OrHash
|
|
719
|
+
)
|
|
720
|
+
).void
|
|
721
|
+
end
|
|
722
|
+
attr_writer :stt_context
|
|
723
|
+
|
|
724
|
+
# Transcriber (speech-to-text) model used for the assistant.
|
|
725
|
+
sig do
|
|
726
|
+
returns(
|
|
727
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::SttModel::TaggedSymbol
|
|
728
|
+
)
|
|
729
|
+
end
|
|
730
|
+
attr_accessor :stt_model
|
|
731
|
+
|
|
732
|
+
# Audio clip to play while the agent is processing a response. One of the built-in
|
|
733
|
+
# LiveKit audio clips; null disables it.
|
|
734
|
+
sig do
|
|
735
|
+
returns(
|
|
736
|
+
T.nilable(
|
|
737
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::ThinkingSound::TaggedSymbol
|
|
738
|
+
)
|
|
739
|
+
)
|
|
740
|
+
end
|
|
741
|
+
attr_accessor :thinking_sound
|
|
742
|
+
|
|
743
|
+
# Probability [0..1] that the thinking sound plays on any given turn; otherwise
|
|
744
|
+
# the agent is silent while thinking.
|
|
745
|
+
sig { returns(Float) }
|
|
746
|
+
attr_accessor :thinking_sound_probability
|
|
747
|
+
|
|
748
|
+
# Volume of the thinking sound (0 = silent, 1 = max).
|
|
749
|
+
sig { returns(Float) }
|
|
750
|
+
attr_accessor :thinking_sound_volume
|
|
751
|
+
|
|
383
752
|
# Phone number to transfer calls to when users request to speak to a human agent.
|
|
384
753
|
sig { returns(T.nilable(String)) }
|
|
385
754
|
attr_accessor :transfer_phone_number
|
|
386
755
|
|
|
756
|
+
sig do
|
|
757
|
+
returns(
|
|
758
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Type::TaggedSymbol
|
|
759
|
+
)
|
|
760
|
+
end
|
|
761
|
+
attr_accessor :type
|
|
762
|
+
|
|
387
763
|
sig { returns(T.anything) }
|
|
388
764
|
attr_accessor :updated_at
|
|
389
765
|
|
|
@@ -411,10 +787,59 @@ module Revox
|
|
|
411
787
|
sig { returns(T.nilable(String)) }
|
|
412
788
|
attr_accessor :voicemail_message
|
|
413
789
|
|
|
790
|
+
# Prompt / instructions for the voicemail SMS. Supports {{variable}} placeholders.
|
|
791
|
+
# When null, no SMS is sent on voicemail.
|
|
792
|
+
sig { returns(T.nilable(String)) }
|
|
793
|
+
attr_accessor :voicemail_sms_prompt
|
|
794
|
+
|
|
795
|
+
# Warm transfer only: instructions for the supervisor handoff summary; null when
|
|
796
|
+
# not configured or cold transfer.
|
|
797
|
+
sig { returns(T.nilable(String)) }
|
|
798
|
+
attr_accessor :warm_transfer_summary_instructions
|
|
799
|
+
|
|
414
800
|
# The webhook URL to call when the call is completed.
|
|
415
801
|
sig { returns(T.nilable(String)) }
|
|
416
802
|
attr_accessor :webhook_url
|
|
417
803
|
|
|
804
|
+
sig do
|
|
805
|
+
returns(
|
|
806
|
+
T.nilable(
|
|
807
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho
|
|
808
|
+
)
|
|
809
|
+
)
|
|
810
|
+
end
|
|
811
|
+
attr_reader :zoho
|
|
812
|
+
|
|
813
|
+
sig do
|
|
814
|
+
params(
|
|
815
|
+
zoho:
|
|
816
|
+
T.nilable(
|
|
817
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho::OrHash
|
|
818
|
+
)
|
|
819
|
+
).void
|
|
820
|
+
end
|
|
821
|
+
attr_writer :zoho
|
|
822
|
+
|
|
823
|
+
# The user who created the assistant.
|
|
824
|
+
sig do
|
|
825
|
+
returns(
|
|
826
|
+
T.nilable(
|
|
827
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CreatedBy
|
|
828
|
+
)
|
|
829
|
+
)
|
|
830
|
+
end
|
|
831
|
+
attr_reader :created_by
|
|
832
|
+
|
|
833
|
+
sig do
|
|
834
|
+
params(
|
|
835
|
+
created_by:
|
|
836
|
+
T.nilable(
|
|
837
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CreatedBy::OrHash
|
|
838
|
+
)
|
|
839
|
+
).void
|
|
840
|
+
end
|
|
841
|
+
attr_writer :created_by
|
|
842
|
+
|
|
418
843
|
sig do
|
|
419
844
|
returns(
|
|
420
845
|
T.nilable(
|
|
@@ -436,6 +861,12 @@ module Revox
|
|
|
436
861
|
end
|
|
437
862
|
attr_writer :faq_items
|
|
438
863
|
|
|
864
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
865
|
+
attr_reader :is_realestate_assistant
|
|
866
|
+
|
|
867
|
+
sig { params(is_realestate_assistant: T::Boolean).void }
|
|
868
|
+
attr_writer :is_realestate_assistant
|
|
869
|
+
|
|
439
870
|
sig { returns(T.nilable(Float)) }
|
|
440
871
|
attr_reader :pending_faq_count
|
|
441
872
|
|
|
@@ -445,10 +876,18 @@ module Revox
|
|
|
445
876
|
sig do
|
|
446
877
|
params(
|
|
447
878
|
id: String,
|
|
879
|
+
after_call_sms_outcomes:
|
|
880
|
+
T.nilable(
|
|
881
|
+
T::Array[
|
|
882
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::AfterCallSMSOutcome::OrSymbol
|
|
883
|
+
]
|
|
884
|
+
),
|
|
885
|
+
after_call_sms_prompt: T.nilable(String),
|
|
448
886
|
background_sound:
|
|
449
887
|
T.nilable(
|
|
450
888
|
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::BackgroundSound::OrSymbol
|
|
451
889
|
),
|
|
890
|
+
background_sound_volume: Float,
|
|
452
891
|
calendly:
|
|
453
892
|
T.nilable(
|
|
454
893
|
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Calendly::OrHash
|
|
@@ -457,81 +896,217 @@ module Revox
|
|
|
457
896
|
T.nilable(
|
|
458
897
|
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CallRetryConfig::OrHash
|
|
459
898
|
),
|
|
899
|
+
cartesia_dictionary_pronunciation_id: T.nilable(String),
|
|
460
900
|
created_at: T.anything,
|
|
901
|
+
custom_tools:
|
|
902
|
+
T.nilable(
|
|
903
|
+
T::Array[
|
|
904
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::OrHash
|
|
905
|
+
]
|
|
906
|
+
),
|
|
907
|
+
email_notification_address: T.nilable(String),
|
|
908
|
+
email_notification_language:
|
|
909
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::EmailNotificationLanguage::OrSymbol,
|
|
910
|
+
email_notification_outcomes:
|
|
911
|
+
T.nilable(
|
|
912
|
+
T::Array[
|
|
913
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::EmailNotificationOutcome::OrSymbol
|
|
914
|
+
]
|
|
915
|
+
),
|
|
461
916
|
end_of_call_sentence: T.nilable(String),
|
|
462
917
|
first_sentence: T.nilable(String),
|
|
463
918
|
first_sentence_delay_ms: Integer,
|
|
464
919
|
first_sentence_mode:
|
|
465
920
|
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::FirstSentenceMode::OrSymbol,
|
|
921
|
+
from_phone_number: T.nilable(String),
|
|
922
|
+
human_transfer_mode:
|
|
923
|
+
T.nilable(
|
|
924
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::HumanTransferMode::OrSymbol
|
|
925
|
+
),
|
|
466
926
|
ivr_navigation_enabled: T::Boolean,
|
|
467
927
|
llm_model:
|
|
468
928
|
T.any(
|
|
469
929
|
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember0::OrHash,
|
|
470
|
-
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember1::OrHash
|
|
930
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember1::OrHash,
|
|
931
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember2::OrHash,
|
|
932
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember3::OrHash
|
|
471
933
|
),
|
|
934
|
+
logo_url: T.nilable(String),
|
|
472
935
|
max_call_duration_secs: Float,
|
|
936
|
+
max_duration_end_message: T.nilable(String),
|
|
473
937
|
name: String,
|
|
474
938
|
organization_id: String,
|
|
939
|
+
position:
|
|
940
|
+
T.nilable(
|
|
941
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Position::OrHash
|
|
942
|
+
),
|
|
475
943
|
prompt: String,
|
|
944
|
+
prompt_flow:
|
|
945
|
+
T.nilable(
|
|
946
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::OrHash
|
|
947
|
+
),
|
|
948
|
+
slack:
|
|
949
|
+
T.nilable(
|
|
950
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack::OrHash
|
|
951
|
+
),
|
|
952
|
+
sms_enabled: T::Boolean,
|
|
953
|
+
sms_template: T.nilable(String),
|
|
476
954
|
structured_output_config:
|
|
477
955
|
T.nilable(
|
|
478
956
|
T::Array[
|
|
479
957
|
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::StructuredOutputConfig::OrHash
|
|
480
958
|
]
|
|
481
959
|
),
|
|
960
|
+
structured_output_prompt: T.nilable(String),
|
|
961
|
+
stt_context:
|
|
962
|
+
T.nilable(
|
|
963
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::SttContext::OrHash
|
|
964
|
+
),
|
|
965
|
+
stt_model:
|
|
966
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::SttModel::OrSymbol,
|
|
967
|
+
thinking_sound:
|
|
968
|
+
T.nilable(
|
|
969
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::ThinkingSound::OrSymbol
|
|
970
|
+
),
|
|
971
|
+
thinking_sound_probability: Float,
|
|
972
|
+
thinking_sound_volume: Float,
|
|
482
973
|
transfer_phone_number: T.nilable(String),
|
|
974
|
+
type:
|
|
975
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Type::OrSymbol,
|
|
483
976
|
updated_at: T.anything,
|
|
484
977
|
voice:
|
|
485
978
|
T.nilable(
|
|
486
979
|
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice::OrHash
|
|
487
980
|
),
|
|
488
981
|
voicemail_message: T.nilable(String),
|
|
982
|
+
voicemail_sms_prompt: T.nilable(String),
|
|
983
|
+
warm_transfer_summary_instructions: T.nilable(String),
|
|
489
984
|
webhook_url: T.nilable(String),
|
|
985
|
+
zoho:
|
|
986
|
+
T.nilable(
|
|
987
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho::OrHash
|
|
988
|
+
),
|
|
989
|
+
created_by:
|
|
990
|
+
T.nilable(
|
|
991
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CreatedBy::OrHash
|
|
992
|
+
),
|
|
490
993
|
faq_items:
|
|
491
994
|
T::Array[
|
|
492
995
|
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::FaqItem::OrHash
|
|
493
996
|
],
|
|
997
|
+
is_realestate_assistant: T::Boolean,
|
|
494
998
|
pending_faq_count: Float
|
|
495
999
|
).returns(T.attached_class)
|
|
496
1000
|
end
|
|
497
1001
|
def self.new(
|
|
498
1002
|
id:,
|
|
499
|
-
#
|
|
500
|
-
#
|
|
1003
|
+
# Which call outcomes trigger the after-call SMS. When empty or null, no
|
|
1004
|
+
# after-call SMS is sent. Use "none" when outcome is null.
|
|
1005
|
+
after_call_sms_outcomes:,
|
|
1006
|
+
# Prompt / instructions for the after-call SMS. Supports {{variable}}
|
|
1007
|
+
# placeholders. When null, no after-call SMS is sent.
|
|
1008
|
+
after_call_sms_prompt:,
|
|
1009
|
+
# Ambient background sound to play during the call. null disables it.
|
|
501
1010
|
background_sound:,
|
|
1011
|
+
# Volume of the ambient background sound (0 = silent, 1 = max).
|
|
1012
|
+
background_sound_volume:,
|
|
502
1013
|
calendly:,
|
|
503
1014
|
# Configuration for call retry behavior including time windows, delays, and max
|
|
504
1015
|
# iterations. If not provided, defaults will be used.
|
|
505
1016
|
call_retry_config:,
|
|
1017
|
+
# Optional Cartesia pronunciation dictionary ID linked to this assistant.
|
|
1018
|
+
cartesia_dictionary_pronunciation_id:,
|
|
506
1019
|
created_at:,
|
|
1020
|
+
custom_tools:,
|
|
1021
|
+
# Email address(es) to receive notifications when a call ends with a matching
|
|
1022
|
+
# outcome. Accepts a single email or a comma-separated list (e.g. "alice@x.com,
|
|
1023
|
+
# bob@y.com").
|
|
1024
|
+
email_notification_address:,
|
|
1025
|
+
# The language used for the notification email content. One of "en" or "fr".
|
|
1026
|
+
email_notification_language:,
|
|
1027
|
+
# Which call outcomes trigger an email notification. E.g. ["interested",
|
|
1028
|
+
# "completed", "none"]. Use "none" when outcome is null.
|
|
1029
|
+
email_notification_outcomes:,
|
|
507
1030
|
end_of_call_sentence:,
|
|
508
1031
|
first_sentence:,
|
|
509
1032
|
# Delay in milliseconds before speaking the first sentence. Default: 400.
|
|
510
1033
|
first_sentence_delay_ms:,
|
|
511
1034
|
first_sentence_mode:,
|
|
1035
|
+
# Override the default outbound phone number for calls placed with this assistant.
|
|
1036
|
+
# When null, the organization's default phone number is used.
|
|
1037
|
+
from_phone_number:,
|
|
1038
|
+
# Warm or cold transfer when transfer_phone_number is set; null when transfer is
|
|
1039
|
+
# not configured.
|
|
1040
|
+
human_transfer_mode:,
|
|
512
1041
|
# Enable IVR navigation tools. When enabled, the assistant can send DTMF tones and
|
|
513
1042
|
# skip turns to navigate phone menus.
|
|
514
1043
|
ivr_navigation_enabled:,
|
|
515
1044
|
llm_model:,
|
|
1045
|
+
# Public URL of the brand logo shown on the assistant's demo page. Null when
|
|
1046
|
+
# unset.
|
|
1047
|
+
logo_url:,
|
|
516
1048
|
# The maximum duration of the call in seconds. This is the maximum time the call
|
|
517
1049
|
# will be allowed to run.
|
|
518
1050
|
max_call_duration_secs:,
|
|
1051
|
+
# Optional message the agent will say, without being interruptible, when the call
|
|
1052
|
+
# reaches its max duration. Kept short so it fits inside the farewell buffer. If
|
|
1053
|
+
# null, the call ends silently.
|
|
1054
|
+
max_duration_end_message:,
|
|
519
1055
|
name:,
|
|
520
1056
|
organization_id:,
|
|
1057
|
+
position:,
|
|
521
1058
|
prompt:,
|
|
1059
|
+
prompt_flow:,
|
|
1060
|
+
slack:,
|
|
1061
|
+
# Enable SMS tool during calls. When enabled, the agent can send SMS messages to
|
|
1062
|
+
# the user on the call.
|
|
1063
|
+
sms_enabled:,
|
|
1064
|
+
# Hardcoded SMS template to send during calls. When set, this exact text is sent
|
|
1065
|
+
# instead of letting the agent generate the message. Supports {{variable}}
|
|
1066
|
+
# placeholders.
|
|
1067
|
+
sms_template:,
|
|
522
1068
|
# The structured output config to use for the call. This is used to extract the
|
|
523
1069
|
# data from the call (like email, name, company name, etc.).
|
|
524
1070
|
structured_output_config:,
|
|
1071
|
+
# Custom prompt for structured data extraction. If not provided, a default prompt
|
|
1072
|
+
# is used. Available variables: {{transcript}}, {{call_direction}},
|
|
1073
|
+
# {{user_phone_number}}, {{agent_phone_number}}.
|
|
1074
|
+
structured_output_prompt:,
|
|
1075
|
+
# Assistant-level speech-to-text context: structured `general` key/value pairs
|
|
1076
|
+
# plus a list of domain `terms`. Prompt-derived context is merged in without
|
|
1077
|
+
# replacing existing entries.
|
|
1078
|
+
stt_context:,
|
|
1079
|
+
# Transcriber (speech-to-text) model used for the assistant.
|
|
1080
|
+
stt_model:,
|
|
1081
|
+
# Audio clip to play while the agent is processing a response. One of the built-in
|
|
1082
|
+
# LiveKit audio clips; null disables it.
|
|
1083
|
+
thinking_sound:,
|
|
1084
|
+
# Probability [0..1] that the thinking sound plays on any given turn; otherwise
|
|
1085
|
+
# the agent is silent while thinking.
|
|
1086
|
+
thinking_sound_probability:,
|
|
1087
|
+
# Volume of the thinking sound (0 = silent, 1 = max).
|
|
1088
|
+
thinking_sound_volume:,
|
|
525
1089
|
# Phone number to transfer calls to when users request to speak to a human agent.
|
|
526
1090
|
transfer_phone_number:,
|
|
1091
|
+
type:,
|
|
527
1092
|
updated_at:,
|
|
528
1093
|
voice:,
|
|
529
1094
|
# If set, when voicemail is detected the agent will speak this message then hang
|
|
530
1095
|
# up; if null, hang up immediately.
|
|
531
1096
|
voicemail_message:,
|
|
1097
|
+
# Prompt / instructions for the voicemail SMS. Supports {{variable}} placeholders.
|
|
1098
|
+
# When null, no SMS is sent on voicemail.
|
|
1099
|
+
voicemail_sms_prompt:,
|
|
1100
|
+
# Warm transfer only: instructions for the supervisor handoff summary; null when
|
|
1101
|
+
# not configured or cold transfer.
|
|
1102
|
+
warm_transfer_summary_instructions:,
|
|
532
1103
|
# The webhook URL to call when the call is completed.
|
|
533
1104
|
webhook_url:,
|
|
1105
|
+
zoho:,
|
|
1106
|
+
# The user who created the assistant.
|
|
1107
|
+
created_by: nil,
|
|
534
1108
|
faq_items: nil,
|
|
1109
|
+
is_realestate_assistant: nil,
|
|
535
1110
|
pending_faq_count: nil
|
|
536
1111
|
)
|
|
537
1112
|
end
|
|
@@ -540,10 +1115,18 @@ module Revox
|
|
|
540
1115
|
override.returns(
|
|
541
1116
|
{
|
|
542
1117
|
id: String,
|
|
1118
|
+
after_call_sms_outcomes:
|
|
1119
|
+
T.nilable(
|
|
1120
|
+
T::Array[
|
|
1121
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
1122
|
+
]
|
|
1123
|
+
),
|
|
1124
|
+
after_call_sms_prompt: T.nilable(String),
|
|
543
1125
|
background_sound:
|
|
544
1126
|
T.nilable(
|
|
545
1127
|
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::BackgroundSound::TaggedSymbol
|
|
546
1128
|
),
|
|
1129
|
+
background_sound_volume: Float,
|
|
547
1130
|
calendly:
|
|
548
1131
|
T.nilable(
|
|
549
1132
|
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Calendly
|
|
@@ -552,37 +1135,100 @@ module Revox
|
|
|
552
1135
|
T.nilable(
|
|
553
1136
|
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CallRetryConfig
|
|
554
1137
|
),
|
|
1138
|
+
cartesia_dictionary_pronunciation_id: T.nilable(String),
|
|
555
1139
|
created_at: T.anything,
|
|
1140
|
+
custom_tools:
|
|
1141
|
+
T.nilable(
|
|
1142
|
+
T::Array[
|
|
1143
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool
|
|
1144
|
+
]
|
|
1145
|
+
),
|
|
1146
|
+
email_notification_address: T.nilable(String),
|
|
1147
|
+
email_notification_language:
|
|
1148
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::EmailNotificationLanguage::TaggedSymbol,
|
|
1149
|
+
email_notification_outcomes:
|
|
1150
|
+
T.nilable(
|
|
1151
|
+
T::Array[
|
|
1152
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
1153
|
+
]
|
|
1154
|
+
),
|
|
556
1155
|
end_of_call_sentence: T.nilable(String),
|
|
557
1156
|
first_sentence: T.nilable(String),
|
|
558
1157
|
first_sentence_delay_ms: Integer,
|
|
559
1158
|
first_sentence_mode:
|
|
560
1159
|
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::FirstSentenceMode::TaggedSymbol,
|
|
1160
|
+
from_phone_number: T.nilable(String),
|
|
1161
|
+
human_transfer_mode:
|
|
1162
|
+
T.nilable(
|
|
1163
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::HumanTransferMode::TaggedSymbol
|
|
1164
|
+
),
|
|
561
1165
|
ivr_navigation_enabled: T::Boolean,
|
|
562
1166
|
llm_model:
|
|
563
1167
|
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::Variants,
|
|
1168
|
+
logo_url: T.nilable(String),
|
|
564
1169
|
max_call_duration_secs: Float,
|
|
1170
|
+
max_duration_end_message: T.nilable(String),
|
|
565
1171
|
name: String,
|
|
566
1172
|
organization_id: String,
|
|
1173
|
+
position:
|
|
1174
|
+
T.nilable(
|
|
1175
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Position
|
|
1176
|
+
),
|
|
567
1177
|
prompt: String,
|
|
1178
|
+
prompt_flow:
|
|
1179
|
+
T.nilable(
|
|
1180
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow
|
|
1181
|
+
),
|
|
1182
|
+
slack:
|
|
1183
|
+
T.nilable(
|
|
1184
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack
|
|
1185
|
+
),
|
|
1186
|
+
sms_enabled: T::Boolean,
|
|
1187
|
+
sms_template: T.nilable(String),
|
|
568
1188
|
structured_output_config:
|
|
569
1189
|
T.nilable(
|
|
570
1190
|
T::Array[
|
|
571
1191
|
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::StructuredOutputConfig
|
|
572
1192
|
]
|
|
573
1193
|
),
|
|
1194
|
+
structured_output_prompt: T.nilable(String),
|
|
1195
|
+
stt_context:
|
|
1196
|
+
T.nilable(
|
|
1197
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::SttContext
|
|
1198
|
+
),
|
|
1199
|
+
stt_model:
|
|
1200
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::SttModel::TaggedSymbol,
|
|
1201
|
+
thinking_sound:
|
|
1202
|
+
T.nilable(
|
|
1203
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::ThinkingSound::TaggedSymbol
|
|
1204
|
+
),
|
|
1205
|
+
thinking_sound_probability: Float,
|
|
1206
|
+
thinking_sound_volume: Float,
|
|
574
1207
|
transfer_phone_number: T.nilable(String),
|
|
1208
|
+
type:
|
|
1209
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Type::TaggedSymbol,
|
|
575
1210
|
updated_at: T.anything,
|
|
576
1211
|
voice:
|
|
577
1212
|
T.nilable(
|
|
578
1213
|
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice
|
|
579
1214
|
),
|
|
580
1215
|
voicemail_message: T.nilable(String),
|
|
1216
|
+
voicemail_sms_prompt: T.nilable(String),
|
|
1217
|
+
warm_transfer_summary_instructions: T.nilable(String),
|
|
581
1218
|
webhook_url: T.nilable(String),
|
|
1219
|
+
zoho:
|
|
1220
|
+
T.nilable(
|
|
1221
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho
|
|
1222
|
+
),
|
|
1223
|
+
created_by:
|
|
1224
|
+
T.nilable(
|
|
1225
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CreatedBy
|
|
1226
|
+
),
|
|
582
1227
|
faq_items:
|
|
583
1228
|
T::Array[
|
|
584
1229
|
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::FaqItem
|
|
585
1230
|
],
|
|
1231
|
+
is_realestate_assistant: T::Boolean,
|
|
586
1232
|
pending_faq_count: Float
|
|
587
1233
|
}
|
|
588
1234
|
)
|
|
@@ -590,8 +1236,71 @@ module Revox
|
|
|
590
1236
|
def to_hash
|
|
591
1237
|
end
|
|
592
1238
|
|
|
593
|
-
|
|
594
|
-
|
|
1239
|
+
module AfterCallSMSOutcome
|
|
1240
|
+
extend Revox::Internal::Type::Enum
|
|
1241
|
+
|
|
1242
|
+
TaggedSymbol =
|
|
1243
|
+
T.type_alias do
|
|
1244
|
+
T.all(
|
|
1245
|
+
Symbol,
|
|
1246
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::AfterCallSMSOutcome
|
|
1247
|
+
)
|
|
1248
|
+
end
|
|
1249
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1250
|
+
|
|
1251
|
+
NOT_INTERESTED =
|
|
1252
|
+
T.let(
|
|
1253
|
+
:not_interested,
|
|
1254
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
1255
|
+
)
|
|
1256
|
+
INTERESTED =
|
|
1257
|
+
T.let(
|
|
1258
|
+
:interested,
|
|
1259
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
1260
|
+
)
|
|
1261
|
+
COMPLETED =
|
|
1262
|
+
T.let(
|
|
1263
|
+
:completed,
|
|
1264
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
1265
|
+
)
|
|
1266
|
+
REQUESTED_CALLBACK_LATER =
|
|
1267
|
+
T.let(
|
|
1268
|
+
:requested_callback_later,
|
|
1269
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
1270
|
+
)
|
|
1271
|
+
REQUESTED_CALLBACK_NEW_NUMBER =
|
|
1272
|
+
T.let(
|
|
1273
|
+
:requested_callback_new_number,
|
|
1274
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
1275
|
+
)
|
|
1276
|
+
DO_NOT_CONTACT =
|
|
1277
|
+
T.let(
|
|
1278
|
+
:do_not_contact,
|
|
1279
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
1280
|
+
)
|
|
1281
|
+
AI_AVERSE =
|
|
1282
|
+
T.let(
|
|
1283
|
+
:ai_averse,
|
|
1284
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
1285
|
+
)
|
|
1286
|
+
NONE =
|
|
1287
|
+
T.let(
|
|
1288
|
+
:none,
|
|
1289
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
1290
|
+
)
|
|
1291
|
+
|
|
1292
|
+
sig do
|
|
1293
|
+
override.returns(
|
|
1294
|
+
T::Array[
|
|
1295
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
1296
|
+
]
|
|
1297
|
+
)
|
|
1298
|
+
end
|
|
1299
|
+
def self.values
|
|
1300
|
+
end
|
|
1301
|
+
end
|
|
1302
|
+
|
|
1303
|
+
# Ambient background sound to play during the call. null disables it.
|
|
595
1304
|
module BackgroundSound
|
|
596
1305
|
extend Revox::Internal::Type::Enum
|
|
597
1306
|
|
|
@@ -669,6 +1378,24 @@ module Revox
|
|
|
669
1378
|
)
|
|
670
1379
|
end
|
|
671
1380
|
|
|
1381
|
+
# Days of the week when calls are allowed, in the recipient's timezone. Default:
|
|
1382
|
+
# Monday through Friday.
|
|
1383
|
+
sig do
|
|
1384
|
+
returns(
|
|
1385
|
+
T::Array[
|
|
1386
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
1387
|
+
]
|
|
1388
|
+
)
|
|
1389
|
+
end
|
|
1390
|
+
attr_accessor :allowed_days
|
|
1391
|
+
|
|
1392
|
+
# If true and max_retry_attempts >= 2, attempt #2 fires immediately (skipping
|
|
1393
|
+
# retry_delay_seconds) when attempt #1 didn't reach a human.
|
|
1394
|
+
# Calling-window/allowed-days checks still apply. Only affects the 1→2 transition.
|
|
1395
|
+
# Default: false.
|
|
1396
|
+
sig { returns(T::Boolean) }
|
|
1397
|
+
attr_accessor :call_twice_in_a_row
|
|
1398
|
+
|
|
672
1399
|
sig do
|
|
673
1400
|
returns(
|
|
674
1401
|
T::Array[
|
|
@@ -692,6 +1419,11 @@ module Revox
|
|
|
692
1419
|
# iterations. If not provided, defaults will be used.
|
|
693
1420
|
sig do
|
|
694
1421
|
params(
|
|
1422
|
+
allowed_days:
|
|
1423
|
+
T::Array[
|
|
1424
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CallRetryConfig::AllowedDay::OrSymbol
|
|
1425
|
+
],
|
|
1426
|
+
call_twice_in_a_row: T::Boolean,
|
|
695
1427
|
calling_windows:
|
|
696
1428
|
T::Array[
|
|
697
1429
|
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CallRetryConfig::CallingWindow::OrHash
|
|
@@ -701,6 +1433,14 @@ module Revox
|
|
|
701
1433
|
).returns(T.attached_class)
|
|
702
1434
|
end
|
|
703
1435
|
def self.new(
|
|
1436
|
+
# Days of the week when calls are allowed, in the recipient's timezone. Default:
|
|
1437
|
+
# Monday through Friday.
|
|
1438
|
+
allowed_days:,
|
|
1439
|
+
# If true and max_retry_attempts >= 2, attempt #2 fires immediately (skipping
|
|
1440
|
+
# retry_delay_seconds) when attempt #1 didn't reach a human.
|
|
1441
|
+
# Calling-window/allowed-days checks still apply. Only affects the 1→2 transition.
|
|
1442
|
+
# Default: false.
|
|
1443
|
+
call_twice_in_a_row:,
|
|
704
1444
|
calling_windows:,
|
|
705
1445
|
# Maximum number of call retry attempts. Default: 3.
|
|
706
1446
|
max_retry_attempts:,
|
|
@@ -714,6 +1454,11 @@ module Revox
|
|
|
714
1454
|
sig do
|
|
715
1455
|
override.returns(
|
|
716
1456
|
{
|
|
1457
|
+
allowed_days:
|
|
1458
|
+
T::Array[
|
|
1459
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
1460
|
+
],
|
|
1461
|
+
call_twice_in_a_row: T::Boolean,
|
|
717
1462
|
calling_windows:
|
|
718
1463
|
T::Array[
|
|
719
1464
|
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CallRetryConfig::CallingWindow
|
|
@@ -726,6 +1471,65 @@ module Revox
|
|
|
726
1471
|
def to_hash
|
|
727
1472
|
end
|
|
728
1473
|
|
|
1474
|
+
module AllowedDay
|
|
1475
|
+
extend Revox::Internal::Type::Enum
|
|
1476
|
+
|
|
1477
|
+
TaggedSymbol =
|
|
1478
|
+
T.type_alias do
|
|
1479
|
+
T.all(
|
|
1480
|
+
Symbol,
|
|
1481
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CallRetryConfig::AllowedDay
|
|
1482
|
+
)
|
|
1483
|
+
end
|
|
1484
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1485
|
+
|
|
1486
|
+
MONDAY =
|
|
1487
|
+
T.let(
|
|
1488
|
+
:monday,
|
|
1489
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
1490
|
+
)
|
|
1491
|
+
TUESDAY =
|
|
1492
|
+
T.let(
|
|
1493
|
+
:tuesday,
|
|
1494
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
1495
|
+
)
|
|
1496
|
+
WEDNESDAY =
|
|
1497
|
+
T.let(
|
|
1498
|
+
:wednesday,
|
|
1499
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
1500
|
+
)
|
|
1501
|
+
THURSDAY =
|
|
1502
|
+
T.let(
|
|
1503
|
+
:thursday,
|
|
1504
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
1505
|
+
)
|
|
1506
|
+
FRIDAY =
|
|
1507
|
+
T.let(
|
|
1508
|
+
:friday,
|
|
1509
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
1510
|
+
)
|
|
1511
|
+
SATURDAY =
|
|
1512
|
+
T.let(
|
|
1513
|
+
:saturday,
|
|
1514
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
1515
|
+
)
|
|
1516
|
+
SUNDAY =
|
|
1517
|
+
T.let(
|
|
1518
|
+
:sunday,
|
|
1519
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
1520
|
+
)
|
|
1521
|
+
|
|
1522
|
+
sig do
|
|
1523
|
+
override.returns(
|
|
1524
|
+
T::Array[
|
|
1525
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
1526
|
+
]
|
|
1527
|
+
)
|
|
1528
|
+
end
|
|
1529
|
+
def self.values
|
|
1530
|
+
end
|
|
1531
|
+
end
|
|
1532
|
+
|
|
729
1533
|
class CallingWindow < Revox::Internal::Type::BaseModel
|
|
730
1534
|
OrHash =
|
|
731
1535
|
T.type_alias do
|
|
@@ -786,124 +1590,289 @@ module Revox
|
|
|
786
1590
|
end
|
|
787
1591
|
end
|
|
788
1592
|
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
TaggedSymbol =
|
|
1593
|
+
class CustomTool < Revox::Internal::Type::BaseModel
|
|
1594
|
+
OrHash =
|
|
793
1595
|
T.type_alias do
|
|
794
|
-
T.
|
|
795
|
-
|
|
796
|
-
Revox::
|
|
1596
|
+
T.any(
|
|
1597
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool,
|
|
1598
|
+
Revox::Internal::AnyHash
|
|
797
1599
|
)
|
|
798
1600
|
end
|
|
799
|
-
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
800
1601
|
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
1602
|
+
# JSON body template for the request. Use quoted {{variable}} placeholders (e.g.
|
|
1603
|
+
# "{{name}}") for dynamic values
|
|
1604
|
+
sig { returns(T.nilable(String)) }
|
|
1605
|
+
attr_accessor :body_template
|
|
1606
|
+
|
|
1607
|
+
# Human-readable description of what the tool does, used by the LLM to decide when
|
|
1608
|
+
# to call it
|
|
1609
|
+
sig { returns(String) }
|
|
1610
|
+
attr_accessor :description
|
|
1611
|
+
|
|
1612
|
+
# HTTP headers to include in the request. Values support {{variable}} placeholders
|
|
1613
|
+
sig do
|
|
1614
|
+
returns(
|
|
1615
|
+
T::Array[
|
|
1616
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::Header
|
|
1617
|
+
]
|
|
805
1618
|
)
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
1619
|
+
end
|
|
1620
|
+
attr_accessor :headers
|
|
1621
|
+
|
|
1622
|
+
# Schema defining the parameters the LLM should extract from the conversation to
|
|
1623
|
+
# pass to this tool
|
|
1624
|
+
sig do
|
|
1625
|
+
returns(
|
|
1626
|
+
T::Array[
|
|
1627
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::InputSchema
|
|
1628
|
+
]
|
|
810
1629
|
)
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
1630
|
+
end
|
|
1631
|
+
attr_accessor :input_schema
|
|
1632
|
+
|
|
1633
|
+
# HTTP method to use when calling the API endpoint
|
|
1634
|
+
sig do
|
|
1635
|
+
returns(
|
|
1636
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::Method::TaggedSymbol
|
|
815
1637
|
)
|
|
1638
|
+
end
|
|
1639
|
+
attr_accessor :method_
|
|
1640
|
+
|
|
1641
|
+
# Unique tool name in lowercase_snake_case (e.g. check_inventory)
|
|
1642
|
+
sig { returns(String) }
|
|
1643
|
+
attr_accessor :name
|
|
816
1644
|
|
|
1645
|
+
# Query string parameters appended to the URL. Values support {{variable}}
|
|
1646
|
+
# placeholders
|
|
817
1647
|
sig do
|
|
818
|
-
|
|
1648
|
+
returns(
|
|
819
1649
|
T::Array[
|
|
820
|
-
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::
|
|
1650
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::QueryParam
|
|
821
1651
|
]
|
|
822
1652
|
)
|
|
823
1653
|
end
|
|
824
|
-
|
|
825
|
-
end
|
|
826
|
-
end
|
|
1654
|
+
attr_accessor :query_params
|
|
827
1655
|
|
|
828
|
-
|
|
829
|
-
|
|
1656
|
+
# Full URL of the API endpoint. Supports {{variable}} placeholders for dynamic
|
|
1657
|
+
# values
|
|
1658
|
+
sig { returns(String) }
|
|
1659
|
+
attr_accessor :url
|
|
830
1660
|
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
T.
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
1661
|
+
sig do
|
|
1662
|
+
params(
|
|
1663
|
+
body_template: T.nilable(String),
|
|
1664
|
+
description: String,
|
|
1665
|
+
headers:
|
|
1666
|
+
T::Array[
|
|
1667
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::Header::OrHash
|
|
1668
|
+
],
|
|
1669
|
+
input_schema:
|
|
1670
|
+
T::Array[
|
|
1671
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::InputSchema::OrHash
|
|
1672
|
+
],
|
|
1673
|
+
method_:
|
|
1674
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::Method::OrSymbol,
|
|
1675
|
+
name: String,
|
|
1676
|
+
query_params:
|
|
1677
|
+
T::Array[
|
|
1678
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::QueryParam::OrHash
|
|
1679
|
+
],
|
|
1680
|
+
url: String
|
|
1681
|
+
).returns(T.attached_class)
|
|
1682
|
+
end
|
|
1683
|
+
def self.new(
|
|
1684
|
+
# JSON body template for the request. Use quoted {{variable}} placeholders (e.g.
|
|
1685
|
+
# "{{name}}") for dynamic values
|
|
1686
|
+
body_template:,
|
|
1687
|
+
# Human-readable description of what the tool does, used by the LLM to decide when
|
|
1688
|
+
# to call it
|
|
1689
|
+
description:,
|
|
1690
|
+
# HTTP headers to include in the request. Values support {{variable}} placeholders
|
|
1691
|
+
headers:,
|
|
1692
|
+
# Schema defining the parameters the LLM should extract from the conversation to
|
|
1693
|
+
# pass to this tool
|
|
1694
|
+
input_schema:,
|
|
1695
|
+
# HTTP method to use when calling the API endpoint
|
|
1696
|
+
method_:,
|
|
1697
|
+
# Unique tool name in lowercase_snake_case (e.g. check_inventory)
|
|
1698
|
+
name:,
|
|
1699
|
+
# Query string parameters appended to the URL. Values support {{variable}}
|
|
1700
|
+
# placeholders
|
|
1701
|
+
query_params:,
|
|
1702
|
+
# Full URL of the API endpoint. Supports {{variable}} placeholders for dynamic
|
|
1703
|
+
# values
|
|
1704
|
+
url:
|
|
1705
|
+
)
|
|
1706
|
+
end
|
|
838
1707
|
|
|
839
|
-
|
|
1708
|
+
sig do
|
|
1709
|
+
override.returns(
|
|
1710
|
+
{
|
|
1711
|
+
body_template: T.nilable(String),
|
|
1712
|
+
description: String,
|
|
1713
|
+
headers:
|
|
1714
|
+
T::Array[
|
|
1715
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::Header
|
|
1716
|
+
],
|
|
1717
|
+
input_schema:
|
|
1718
|
+
T::Array[
|
|
1719
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::InputSchema
|
|
1720
|
+
],
|
|
1721
|
+
method_:
|
|
1722
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::Method::TaggedSymbol,
|
|
1723
|
+
name: String,
|
|
1724
|
+
query_params:
|
|
1725
|
+
T::Array[
|
|
1726
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::QueryParam
|
|
1727
|
+
],
|
|
1728
|
+
url: String
|
|
1729
|
+
}
|
|
1730
|
+
)
|
|
1731
|
+
end
|
|
1732
|
+
def to_hash
|
|
1733
|
+
end
|
|
1734
|
+
|
|
1735
|
+
class Header < Revox::Internal::Type::BaseModel
|
|
840
1736
|
OrHash =
|
|
841
1737
|
T.type_alias do
|
|
842
1738
|
T.any(
|
|
843
|
-
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::
|
|
1739
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::Header,
|
|
844
1740
|
Revox::Internal::AnyHash
|
|
845
1741
|
)
|
|
846
1742
|
end
|
|
847
1743
|
|
|
1744
|
+
sig { returns(String) }
|
|
1745
|
+
attr_accessor :key
|
|
1746
|
+
|
|
1747
|
+
sig { returns(String) }
|
|
1748
|
+
attr_accessor :value
|
|
1749
|
+
|
|
848
1750
|
sig do
|
|
849
|
-
returns(
|
|
850
|
-
|
|
851
|
-
|
|
1751
|
+
params(key: String, value: String).returns(T.attached_class)
|
|
1752
|
+
end
|
|
1753
|
+
def self.new(key:, value:)
|
|
852
1754
|
end
|
|
853
|
-
attr_accessor :name
|
|
854
1755
|
|
|
855
|
-
sig { returns(
|
|
856
|
-
|
|
1756
|
+
sig { override.returns({ key: String, value: String }) }
|
|
1757
|
+
def to_hash
|
|
1758
|
+
end
|
|
1759
|
+
end
|
|
1760
|
+
|
|
1761
|
+
class InputSchema < Revox::Internal::Type::BaseModel
|
|
1762
|
+
OrHash =
|
|
1763
|
+
T.type_alias do
|
|
1764
|
+
T.any(
|
|
1765
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::InputSchema,
|
|
1766
|
+
Revox::Internal::AnyHash
|
|
1767
|
+
)
|
|
1768
|
+
end
|
|
1769
|
+
|
|
1770
|
+
sig { returns(String) }
|
|
1771
|
+
attr_accessor :name
|
|
1772
|
+
|
|
1773
|
+
sig { returns(T::Boolean) }
|
|
1774
|
+
attr_accessor :required
|
|
1775
|
+
|
|
1776
|
+
sig do
|
|
1777
|
+
returns(
|
|
1778
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::InputSchema::Type::TaggedSymbol
|
|
1779
|
+
)
|
|
1780
|
+
end
|
|
1781
|
+
attr_accessor :type
|
|
1782
|
+
|
|
1783
|
+
sig { returns(T.nilable(String)) }
|
|
1784
|
+
attr_reader :description
|
|
1785
|
+
|
|
1786
|
+
sig { params(description: String).void }
|
|
1787
|
+
attr_writer :description
|
|
1788
|
+
|
|
1789
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
1790
|
+
attr_reader :enum_options
|
|
1791
|
+
|
|
1792
|
+
sig { params(enum_options: T::Array[String]).void }
|
|
1793
|
+
attr_writer :enum_options
|
|
857
1794
|
|
|
858
1795
|
sig do
|
|
859
1796
|
params(
|
|
860
|
-
name:
|
|
861
|
-
|
|
862
|
-
type:
|
|
1797
|
+
name: String,
|
|
1798
|
+
required: T::Boolean,
|
|
1799
|
+
type:
|
|
1800
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::InputSchema::Type::OrSymbol,
|
|
1801
|
+
description: String,
|
|
1802
|
+
enum_options: T::Array[String]
|
|
863
1803
|
).returns(T.attached_class)
|
|
864
1804
|
end
|
|
865
|
-
def self.new(
|
|
1805
|
+
def self.new(
|
|
1806
|
+
name:,
|
|
1807
|
+
required:,
|
|
1808
|
+
type:,
|
|
1809
|
+
description: nil,
|
|
1810
|
+
enum_options: nil
|
|
1811
|
+
)
|
|
866
1812
|
end
|
|
867
1813
|
|
|
868
1814
|
sig do
|
|
869
1815
|
override.returns(
|
|
870
1816
|
{
|
|
871
|
-
name:
|
|
872
|
-
|
|
873
|
-
type:
|
|
1817
|
+
name: String,
|
|
1818
|
+
required: T::Boolean,
|
|
1819
|
+
type:
|
|
1820
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::InputSchema::Type::TaggedSymbol,
|
|
1821
|
+
description: String,
|
|
1822
|
+
enum_options: T::Array[String]
|
|
874
1823
|
}
|
|
875
1824
|
)
|
|
876
1825
|
end
|
|
877
1826
|
def to_hash
|
|
878
1827
|
end
|
|
879
1828
|
|
|
880
|
-
module
|
|
1829
|
+
module Type
|
|
881
1830
|
extend Revox::Internal::Type::Enum
|
|
882
1831
|
|
|
883
1832
|
TaggedSymbol =
|
|
884
1833
|
T.type_alias do
|
|
885
1834
|
T.all(
|
|
886
1835
|
Symbol,
|
|
887
|
-
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::
|
|
1836
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::InputSchema::Type
|
|
888
1837
|
)
|
|
889
1838
|
end
|
|
890
1839
|
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
891
1840
|
|
|
892
|
-
|
|
1841
|
+
STRING =
|
|
893
1842
|
T.let(
|
|
894
|
-
:
|
|
895
|
-
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::
|
|
1843
|
+
:string,
|
|
1844
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::InputSchema::Type::TaggedSymbol
|
|
896
1845
|
)
|
|
897
|
-
|
|
1846
|
+
NUMBER =
|
|
898
1847
|
T.let(
|
|
899
|
-
:
|
|
900
|
-
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::
|
|
1848
|
+
:number,
|
|
1849
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::InputSchema::Type::TaggedSymbol
|
|
1850
|
+
)
|
|
1851
|
+
BOOLEAN =
|
|
1852
|
+
T.let(
|
|
1853
|
+
:boolean,
|
|
1854
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::InputSchema::Type::TaggedSymbol
|
|
1855
|
+
)
|
|
1856
|
+
ENUM =
|
|
1857
|
+
T.let(
|
|
1858
|
+
:enum,
|
|
1859
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::InputSchema::Type::TaggedSymbol
|
|
1860
|
+
)
|
|
1861
|
+
DATE =
|
|
1862
|
+
T.let(
|
|
1863
|
+
:date,
|
|
1864
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::InputSchema::Type::TaggedSymbol
|
|
1865
|
+
)
|
|
1866
|
+
DATETIME =
|
|
1867
|
+
T.let(
|
|
1868
|
+
:datetime,
|
|
1869
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::InputSchema::Type::TaggedSymbol
|
|
901
1870
|
)
|
|
902
1871
|
|
|
903
1872
|
sig do
|
|
904
1873
|
override.returns(
|
|
905
1874
|
T::Array[
|
|
906
|
-
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::
|
|
1875
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::InputSchema::Type::TaggedSymbol
|
|
907
1876
|
]
|
|
908
1877
|
)
|
|
909
1878
|
end
|
|
@@ -912,183 +1881,1677 @@ module Revox
|
|
|
912
1881
|
end
|
|
913
1882
|
end
|
|
914
1883
|
|
|
915
|
-
|
|
1884
|
+
# HTTP method to use when calling the API endpoint
|
|
1885
|
+
module Method
|
|
1886
|
+
extend Revox::Internal::Type::Enum
|
|
1887
|
+
|
|
1888
|
+
TaggedSymbol =
|
|
1889
|
+
T.type_alias do
|
|
1890
|
+
T.all(
|
|
1891
|
+
Symbol,
|
|
1892
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::Method
|
|
1893
|
+
)
|
|
1894
|
+
end
|
|
1895
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1896
|
+
|
|
1897
|
+
GET =
|
|
1898
|
+
T.let(
|
|
1899
|
+
:GET,
|
|
1900
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::Method::TaggedSymbol
|
|
1901
|
+
)
|
|
1902
|
+
POST =
|
|
1903
|
+
T.let(
|
|
1904
|
+
:POST,
|
|
1905
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::Method::TaggedSymbol
|
|
1906
|
+
)
|
|
1907
|
+
PUT =
|
|
1908
|
+
T.let(
|
|
1909
|
+
:PUT,
|
|
1910
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::Method::TaggedSymbol
|
|
1911
|
+
)
|
|
1912
|
+
PATCH =
|
|
1913
|
+
T.let(
|
|
1914
|
+
:PATCH,
|
|
1915
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::Method::TaggedSymbol
|
|
1916
|
+
)
|
|
1917
|
+
DELETE =
|
|
1918
|
+
T.let(
|
|
1919
|
+
:DELETE,
|
|
1920
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::Method::TaggedSymbol
|
|
1921
|
+
)
|
|
1922
|
+
|
|
1923
|
+
sig do
|
|
1924
|
+
override.returns(
|
|
1925
|
+
T::Array[
|
|
1926
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::Method::TaggedSymbol
|
|
1927
|
+
]
|
|
1928
|
+
)
|
|
1929
|
+
end
|
|
1930
|
+
def self.values
|
|
1931
|
+
end
|
|
1932
|
+
end
|
|
1933
|
+
|
|
1934
|
+
class QueryParam < Revox::Internal::Type::BaseModel
|
|
916
1935
|
OrHash =
|
|
917
1936
|
T.type_alias do
|
|
918
1937
|
T.any(
|
|
919
|
-
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::
|
|
1938
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CustomTool::QueryParam,
|
|
920
1939
|
Revox::Internal::AnyHash
|
|
921
1940
|
)
|
|
922
1941
|
end
|
|
923
1942
|
|
|
924
|
-
# The model ID to use from OpenRouter. eg: openai/gpt-4.1
|
|
925
1943
|
sig { returns(String) }
|
|
926
|
-
attr_accessor :
|
|
1944
|
+
attr_accessor :key
|
|
927
1945
|
|
|
928
|
-
# The provider to use from OpenRouter. eg: nebius, openai, azure, etc.
|
|
929
1946
|
sig { returns(String) }
|
|
930
|
-
attr_accessor :
|
|
931
|
-
|
|
932
|
-
# Use a model from OpenRouter.
|
|
933
|
-
sig { returns(Symbol) }
|
|
934
|
-
attr_accessor :type
|
|
1947
|
+
attr_accessor :value
|
|
935
1948
|
|
|
936
1949
|
sig do
|
|
937
|
-
params(
|
|
938
|
-
openrouter_model_id: String,
|
|
939
|
-
openrouter_provider: String,
|
|
940
|
-
type: Symbol
|
|
941
|
-
).returns(T.attached_class)
|
|
1950
|
+
params(key: String, value: String).returns(T.attached_class)
|
|
942
1951
|
end
|
|
943
|
-
def self.new(
|
|
944
|
-
# The model ID to use from OpenRouter. eg: openai/gpt-4.1
|
|
945
|
-
openrouter_model_id:,
|
|
946
|
-
# The provider to use from OpenRouter. eg: nebius, openai, azure, etc.
|
|
947
|
-
openrouter_provider:,
|
|
948
|
-
# Use a model from OpenRouter.
|
|
949
|
-
type: :openrouter
|
|
950
|
-
)
|
|
1952
|
+
def self.new(key:, value:)
|
|
951
1953
|
end
|
|
952
1954
|
|
|
953
|
-
sig
|
|
954
|
-
override.returns(
|
|
955
|
-
{
|
|
956
|
-
openrouter_model_id: String,
|
|
957
|
-
openrouter_provider: String,
|
|
958
|
-
type: Symbol
|
|
959
|
-
}
|
|
960
|
-
)
|
|
961
|
-
end
|
|
1955
|
+
sig { override.returns({ key: String, value: String }) }
|
|
962
1956
|
def to_hash
|
|
963
1957
|
end
|
|
964
1958
|
end
|
|
1959
|
+
end
|
|
1960
|
+
|
|
1961
|
+
# The language used for the notification email content. One of "en" or "fr".
|
|
1962
|
+
module EmailNotificationLanguage
|
|
1963
|
+
extend Revox::Internal::Type::Enum
|
|
1964
|
+
|
|
1965
|
+
TaggedSymbol =
|
|
1966
|
+
T.type_alias do
|
|
1967
|
+
T.all(
|
|
1968
|
+
Symbol,
|
|
1969
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::EmailNotificationLanguage
|
|
1970
|
+
)
|
|
1971
|
+
end
|
|
1972
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1973
|
+
|
|
1974
|
+
EN =
|
|
1975
|
+
T.let(
|
|
1976
|
+
:en,
|
|
1977
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::EmailNotificationLanguage::TaggedSymbol
|
|
1978
|
+
)
|
|
1979
|
+
FR =
|
|
1980
|
+
T.let(
|
|
1981
|
+
:fr,
|
|
1982
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::EmailNotificationLanguage::TaggedSymbol
|
|
1983
|
+
)
|
|
965
1984
|
|
|
966
1985
|
sig do
|
|
967
1986
|
override.returns(
|
|
968
1987
|
T::Array[
|
|
969
|
-
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::
|
|
1988
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::EmailNotificationLanguage::TaggedSymbol
|
|
970
1989
|
]
|
|
971
1990
|
)
|
|
972
1991
|
end
|
|
973
|
-
def self.
|
|
1992
|
+
def self.values
|
|
974
1993
|
end
|
|
975
1994
|
end
|
|
976
1995
|
|
|
977
|
-
|
|
978
|
-
|
|
1996
|
+
module EmailNotificationOutcome
|
|
1997
|
+
extend Revox::Internal::Type::Enum
|
|
1998
|
+
|
|
1999
|
+
TaggedSymbol =
|
|
979
2000
|
T.type_alias do
|
|
980
|
-
T.
|
|
981
|
-
|
|
982
|
-
Revox::
|
|
2001
|
+
T.all(
|
|
2002
|
+
Symbol,
|
|
2003
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::EmailNotificationOutcome
|
|
983
2004
|
)
|
|
984
2005
|
end
|
|
2006
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
985
2007
|
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
2008
|
+
NOT_INTERESTED =
|
|
2009
|
+
T.let(
|
|
2010
|
+
:not_interested,
|
|
2011
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
2012
|
+
)
|
|
2013
|
+
INTERESTED =
|
|
2014
|
+
T.let(
|
|
2015
|
+
:interested,
|
|
2016
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
2017
|
+
)
|
|
2018
|
+
COMPLETED =
|
|
2019
|
+
T.let(
|
|
2020
|
+
:completed,
|
|
2021
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
2022
|
+
)
|
|
2023
|
+
REQUESTED_CALLBACK_LATER =
|
|
2024
|
+
T.let(
|
|
2025
|
+
:requested_callback_later,
|
|
2026
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
2027
|
+
)
|
|
2028
|
+
REQUESTED_CALLBACK_NEW_NUMBER =
|
|
2029
|
+
T.let(
|
|
2030
|
+
:requested_callback_new_number,
|
|
2031
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
2032
|
+
)
|
|
2033
|
+
DO_NOT_CONTACT =
|
|
2034
|
+
T.let(
|
|
2035
|
+
:do_not_contact,
|
|
2036
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
2037
|
+
)
|
|
2038
|
+
AI_AVERSE =
|
|
2039
|
+
T.let(
|
|
2040
|
+
:ai_averse,
|
|
2041
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
2042
|
+
)
|
|
2043
|
+
NONE =
|
|
2044
|
+
T.let(
|
|
2045
|
+
:none,
|
|
2046
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
2047
|
+
)
|
|
991
2048
|
|
|
992
2049
|
sig do
|
|
993
|
-
returns(
|
|
994
|
-
|
|
2050
|
+
override.returns(
|
|
2051
|
+
T::Array[
|
|
2052
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
2053
|
+
]
|
|
995
2054
|
)
|
|
996
2055
|
end
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
attr_reader :description
|
|
2056
|
+
def self.values
|
|
2057
|
+
end
|
|
2058
|
+
end
|
|
1001
2059
|
|
|
1002
|
-
|
|
1003
|
-
|
|
2060
|
+
module FirstSentenceMode
|
|
2061
|
+
extend Revox::Internal::Type::Enum
|
|
1004
2062
|
|
|
1005
|
-
|
|
1006
|
-
|
|
2063
|
+
TaggedSymbol =
|
|
2064
|
+
T.type_alias do
|
|
2065
|
+
T.all(
|
|
2066
|
+
Symbol,
|
|
2067
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::FirstSentenceMode
|
|
2068
|
+
)
|
|
2069
|
+
end
|
|
2070
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1007
2071
|
|
|
1008
|
-
|
|
1009
|
-
|
|
2072
|
+
GENERATED =
|
|
2073
|
+
T.let(
|
|
2074
|
+
:generated,
|
|
2075
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::FirstSentenceMode::TaggedSymbol
|
|
2076
|
+
)
|
|
2077
|
+
STATIC =
|
|
2078
|
+
T.let(
|
|
2079
|
+
:static,
|
|
2080
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::FirstSentenceMode::TaggedSymbol
|
|
2081
|
+
)
|
|
2082
|
+
NONE =
|
|
2083
|
+
T.let(
|
|
2084
|
+
:none,
|
|
2085
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::FirstSentenceMode::TaggedSymbol
|
|
2086
|
+
)
|
|
1010
2087
|
|
|
1011
2088
|
sig do
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
description: String,
|
|
1018
|
-
enum_options: T::Array[String]
|
|
1019
|
-
).returns(T.attached_class)
|
|
2089
|
+
override.returns(
|
|
2090
|
+
T::Array[
|
|
2091
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::FirstSentenceMode::TaggedSymbol
|
|
2092
|
+
]
|
|
2093
|
+
)
|
|
1020
2094
|
end
|
|
1021
|
-
def self.
|
|
1022
|
-
name:,
|
|
1023
|
-
required:,
|
|
1024
|
-
type:,
|
|
1025
|
-
description: nil,
|
|
1026
|
-
enum_options: nil
|
|
1027
|
-
)
|
|
2095
|
+
def self.values
|
|
1028
2096
|
end
|
|
2097
|
+
end
|
|
2098
|
+
|
|
2099
|
+
# Warm or cold transfer when transfer_phone_number is set; null when transfer is
|
|
2100
|
+
# not configured.
|
|
2101
|
+
module HumanTransferMode
|
|
2102
|
+
extend Revox::Internal::Type::Enum
|
|
2103
|
+
|
|
2104
|
+
TaggedSymbol =
|
|
2105
|
+
T.type_alias do
|
|
2106
|
+
T.all(
|
|
2107
|
+
Symbol,
|
|
2108
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::HumanTransferMode
|
|
2109
|
+
)
|
|
2110
|
+
end
|
|
2111
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
2112
|
+
|
|
2113
|
+
WARM =
|
|
2114
|
+
T.let(
|
|
2115
|
+
:warm,
|
|
2116
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::HumanTransferMode::TaggedSymbol
|
|
2117
|
+
)
|
|
2118
|
+
COLD =
|
|
2119
|
+
T.let(
|
|
2120
|
+
:cold,
|
|
2121
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::HumanTransferMode::TaggedSymbol
|
|
2122
|
+
)
|
|
1029
2123
|
|
|
1030
2124
|
sig do
|
|
1031
2125
|
override.returns(
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
2126
|
+
T::Array[
|
|
2127
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::HumanTransferMode::TaggedSymbol
|
|
2128
|
+
]
|
|
2129
|
+
)
|
|
2130
|
+
end
|
|
2131
|
+
def self.values
|
|
2132
|
+
end
|
|
2133
|
+
end
|
|
2134
|
+
|
|
2135
|
+
module LlmModel
|
|
2136
|
+
extend Revox::Internal::Type::Union
|
|
2137
|
+
|
|
2138
|
+
Variants =
|
|
2139
|
+
T.type_alias do
|
|
2140
|
+
T.any(
|
|
2141
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember0,
|
|
2142
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember1,
|
|
2143
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember2,
|
|
2144
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember3
|
|
2145
|
+
)
|
|
2146
|
+
end
|
|
2147
|
+
|
|
2148
|
+
class UnionMember0 < Revox::Internal::Type::BaseModel
|
|
2149
|
+
OrHash =
|
|
2150
|
+
T.type_alias do
|
|
2151
|
+
T.any(
|
|
2152
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember0,
|
|
2153
|
+
Revox::Internal::AnyHash
|
|
2154
|
+
)
|
|
2155
|
+
end
|
|
2156
|
+
|
|
2157
|
+
sig do
|
|
2158
|
+
returns(
|
|
2159
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember0::Name::TaggedSymbol
|
|
2160
|
+
)
|
|
2161
|
+
end
|
|
2162
|
+
attr_accessor :name
|
|
2163
|
+
|
|
2164
|
+
sig { returns(Symbol) }
|
|
2165
|
+
attr_accessor :type
|
|
2166
|
+
|
|
2167
|
+
sig do
|
|
2168
|
+
params(
|
|
2169
|
+
name:
|
|
2170
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember0::Name::OrSymbol,
|
|
2171
|
+
type: Symbol
|
|
2172
|
+
).returns(T.attached_class)
|
|
2173
|
+
end
|
|
2174
|
+
def self.new(name:, type: :"dedicated-instance")
|
|
2175
|
+
end
|
|
2176
|
+
|
|
2177
|
+
sig do
|
|
2178
|
+
override.returns(
|
|
2179
|
+
{
|
|
2180
|
+
name:
|
|
2181
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember0::Name::TaggedSymbol,
|
|
2182
|
+
type: Symbol
|
|
2183
|
+
}
|
|
2184
|
+
)
|
|
2185
|
+
end
|
|
2186
|
+
def to_hash
|
|
2187
|
+
end
|
|
2188
|
+
|
|
2189
|
+
module Name
|
|
2190
|
+
extend Revox::Internal::Type::Enum
|
|
2191
|
+
|
|
2192
|
+
TaggedSymbol =
|
|
2193
|
+
T.type_alias do
|
|
2194
|
+
T.all(
|
|
2195
|
+
Symbol,
|
|
2196
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember0::Name
|
|
2197
|
+
)
|
|
2198
|
+
end
|
|
2199
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
2200
|
+
|
|
2201
|
+
GPT_4_1 =
|
|
2202
|
+
T.let(
|
|
2203
|
+
:"gpt-4.1",
|
|
2204
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember0::Name::TaggedSymbol
|
|
2205
|
+
)
|
|
2206
|
+
MINISTRAL_3_8B_INSTRUCT =
|
|
2207
|
+
T.let(
|
|
2208
|
+
:"ministral-3-8b-instruct",
|
|
2209
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember0::Name::TaggedSymbol
|
|
2210
|
+
)
|
|
2211
|
+
|
|
2212
|
+
sig do
|
|
2213
|
+
override.returns(
|
|
2214
|
+
T::Array[
|
|
2215
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember0::Name::TaggedSymbol
|
|
2216
|
+
]
|
|
2217
|
+
)
|
|
2218
|
+
end
|
|
2219
|
+
def self.values
|
|
2220
|
+
end
|
|
2221
|
+
end
|
|
2222
|
+
end
|
|
2223
|
+
|
|
2224
|
+
class UnionMember1 < Revox::Internal::Type::BaseModel
|
|
2225
|
+
OrHash =
|
|
2226
|
+
T.type_alias do
|
|
2227
|
+
T.any(
|
|
2228
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember1,
|
|
2229
|
+
Revox::Internal::AnyHash
|
|
2230
|
+
)
|
|
2231
|
+
end
|
|
2232
|
+
|
|
2233
|
+
# The model ID to use from OpenRouter. eg: openai/gpt-4.1
|
|
2234
|
+
sig { returns(String) }
|
|
2235
|
+
attr_accessor :openrouter_model_id
|
|
2236
|
+
|
|
2237
|
+
# The provider to use from OpenRouter. eg: nebius, openai, azure, etc.
|
|
2238
|
+
sig { returns(String) }
|
|
2239
|
+
attr_accessor :openrouter_provider
|
|
2240
|
+
|
|
2241
|
+
# Use a model from OpenRouter.
|
|
2242
|
+
sig { returns(Symbol) }
|
|
2243
|
+
attr_accessor :type
|
|
2244
|
+
|
|
2245
|
+
sig do
|
|
2246
|
+
params(
|
|
2247
|
+
openrouter_model_id: String,
|
|
2248
|
+
openrouter_provider: String,
|
|
2249
|
+
type: Symbol
|
|
2250
|
+
).returns(T.attached_class)
|
|
2251
|
+
end
|
|
2252
|
+
def self.new(
|
|
2253
|
+
# The model ID to use from OpenRouter. eg: openai/gpt-4.1
|
|
2254
|
+
openrouter_model_id:,
|
|
2255
|
+
# The provider to use from OpenRouter. eg: nebius, openai, azure, etc.
|
|
2256
|
+
openrouter_provider:,
|
|
2257
|
+
# Use a model from OpenRouter.
|
|
2258
|
+
type: :openrouter
|
|
2259
|
+
)
|
|
2260
|
+
end
|
|
2261
|
+
|
|
2262
|
+
sig do
|
|
2263
|
+
override.returns(
|
|
2264
|
+
{
|
|
2265
|
+
openrouter_model_id: String,
|
|
2266
|
+
openrouter_provider: String,
|
|
2267
|
+
type: Symbol
|
|
2268
|
+
}
|
|
2269
|
+
)
|
|
2270
|
+
end
|
|
2271
|
+
def to_hash
|
|
2272
|
+
end
|
|
2273
|
+
end
|
|
2274
|
+
|
|
2275
|
+
class UnionMember2 < Revox::Internal::Type::BaseModel
|
|
2276
|
+
OrHash =
|
|
2277
|
+
T.type_alias do
|
|
2278
|
+
T.any(
|
|
2279
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember2,
|
|
2280
|
+
Revox::Internal::AnyHash
|
|
2281
|
+
)
|
|
2282
|
+
end
|
|
2283
|
+
|
|
2284
|
+
# API key sent as Bearer token to the custom endpoint.
|
|
2285
|
+
sig { returns(String) }
|
|
2286
|
+
attr_accessor :api_key
|
|
2287
|
+
|
|
2288
|
+
# Base URL for the OpenAI-compatible API, e.g. https://api.together.xyz/v1
|
|
2289
|
+
sig { returns(String) }
|
|
2290
|
+
attr_accessor :api_url
|
|
2291
|
+
|
|
2292
|
+
# Model name as expected by the provider, e.g. meta-llama/llama-3-70b
|
|
2293
|
+
sig { returns(String) }
|
|
2294
|
+
attr_accessor :model_name
|
|
2295
|
+
|
|
2296
|
+
# OpenAI-compatible chat completions API (bring your own endpoint and key).
|
|
2297
|
+
sig { returns(Symbol) }
|
|
2298
|
+
attr_accessor :type
|
|
2299
|
+
|
|
2300
|
+
sig do
|
|
2301
|
+
params(
|
|
2302
|
+
api_key: String,
|
|
2303
|
+
api_url: String,
|
|
2304
|
+
model_name: String,
|
|
2305
|
+
type: Symbol
|
|
2306
|
+
).returns(T.attached_class)
|
|
2307
|
+
end
|
|
2308
|
+
def self.new(
|
|
2309
|
+
# API key sent as Bearer token to the custom endpoint.
|
|
2310
|
+
api_key:,
|
|
2311
|
+
# Base URL for the OpenAI-compatible API, e.g. https://api.together.xyz/v1
|
|
2312
|
+
api_url:,
|
|
2313
|
+
# Model name as expected by the provider, e.g. meta-llama/llama-3-70b
|
|
2314
|
+
model_name:,
|
|
2315
|
+
# OpenAI-compatible chat completions API (bring your own endpoint and key).
|
|
2316
|
+
type: :custom
|
|
2317
|
+
)
|
|
2318
|
+
end
|
|
2319
|
+
|
|
2320
|
+
sig do
|
|
2321
|
+
override.returns(
|
|
2322
|
+
{
|
|
2323
|
+
api_key: String,
|
|
2324
|
+
api_url: String,
|
|
2325
|
+
model_name: String,
|
|
2326
|
+
type: Symbol
|
|
2327
|
+
}
|
|
2328
|
+
)
|
|
2329
|
+
end
|
|
2330
|
+
def to_hash
|
|
2331
|
+
end
|
|
2332
|
+
end
|
|
2333
|
+
|
|
2334
|
+
class UnionMember3 < Revox::Internal::Type::BaseModel
|
|
2335
|
+
OrHash =
|
|
2336
|
+
T.type_alias do
|
|
2337
|
+
T.any(
|
|
2338
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember3,
|
|
2339
|
+
Revox::Internal::AnyHash
|
|
2340
|
+
)
|
|
2341
|
+
end
|
|
2342
|
+
|
|
2343
|
+
# The provider to use from Realtime. eg: openai, google.
|
|
2344
|
+
sig do
|
|
2345
|
+
returns(
|
|
2346
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember3::Provider::TaggedSymbol
|
|
2347
|
+
)
|
|
2348
|
+
end
|
|
2349
|
+
attr_accessor :provider
|
|
2350
|
+
|
|
2351
|
+
# The model ID to use from Realtime. eg: gpt-4.1
|
|
2352
|
+
sig { returns(String) }
|
|
2353
|
+
attr_accessor :realtime_model_id
|
|
2354
|
+
|
|
2355
|
+
# Use a model from Realtime.
|
|
2356
|
+
sig { returns(Symbol) }
|
|
2357
|
+
attr_accessor :type
|
|
2358
|
+
|
|
2359
|
+
# Output voice for the realtime provider (e.g. OpenAI: marin; Gemini: Puck).
|
|
2360
|
+
sig { returns(T.nilable(String)) }
|
|
2361
|
+
attr_reader :realtime_voice_id
|
|
2362
|
+
|
|
2363
|
+
sig { params(realtime_voice_id: String).void }
|
|
2364
|
+
attr_writer :realtime_voice_id
|
|
2365
|
+
|
|
2366
|
+
sig do
|
|
2367
|
+
params(
|
|
2368
|
+
provider:
|
|
2369
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember3::Provider::OrSymbol,
|
|
2370
|
+
realtime_model_id: String,
|
|
2371
|
+
realtime_voice_id: String,
|
|
2372
|
+
type: Symbol
|
|
2373
|
+
).returns(T.attached_class)
|
|
2374
|
+
end
|
|
2375
|
+
def self.new(
|
|
2376
|
+
# The provider to use from Realtime. eg: openai, google.
|
|
2377
|
+
provider:,
|
|
2378
|
+
# The model ID to use from Realtime. eg: gpt-4.1
|
|
2379
|
+
realtime_model_id:,
|
|
2380
|
+
# Output voice for the realtime provider (e.g. OpenAI: marin; Gemini: Puck).
|
|
2381
|
+
realtime_voice_id: nil,
|
|
2382
|
+
# Use a model from Realtime.
|
|
2383
|
+
type: :realtime
|
|
2384
|
+
)
|
|
2385
|
+
end
|
|
2386
|
+
|
|
2387
|
+
sig do
|
|
2388
|
+
override.returns(
|
|
2389
|
+
{
|
|
2390
|
+
provider:
|
|
2391
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember3::Provider::TaggedSymbol,
|
|
2392
|
+
realtime_model_id: String,
|
|
2393
|
+
type: Symbol,
|
|
2394
|
+
realtime_voice_id: String
|
|
2395
|
+
}
|
|
2396
|
+
)
|
|
2397
|
+
end
|
|
2398
|
+
def to_hash
|
|
2399
|
+
end
|
|
2400
|
+
|
|
2401
|
+
# The provider to use from Realtime. eg: openai, google.
|
|
2402
|
+
module Provider
|
|
2403
|
+
extend Revox::Internal::Type::Enum
|
|
2404
|
+
|
|
2405
|
+
TaggedSymbol =
|
|
2406
|
+
T.type_alias do
|
|
2407
|
+
T.all(
|
|
2408
|
+
Symbol,
|
|
2409
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember3::Provider
|
|
2410
|
+
)
|
|
2411
|
+
end
|
|
2412
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
2413
|
+
|
|
2414
|
+
OPENAI =
|
|
2415
|
+
T.let(
|
|
2416
|
+
:openai,
|
|
2417
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember3::Provider::TaggedSymbol
|
|
2418
|
+
)
|
|
2419
|
+
GOOGLE =
|
|
2420
|
+
T.let(
|
|
2421
|
+
:google,
|
|
2422
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember3::Provider::TaggedSymbol
|
|
2423
|
+
)
|
|
2424
|
+
|
|
2425
|
+
sig do
|
|
2426
|
+
override.returns(
|
|
2427
|
+
T::Array[
|
|
2428
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::UnionMember3::Provider::TaggedSymbol
|
|
2429
|
+
]
|
|
2430
|
+
)
|
|
2431
|
+
end
|
|
2432
|
+
def self.values
|
|
2433
|
+
end
|
|
2434
|
+
end
|
|
2435
|
+
end
|
|
2436
|
+
|
|
2437
|
+
sig do
|
|
2438
|
+
override.returns(
|
|
2439
|
+
T::Array[
|
|
2440
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::LlmModel::Variants
|
|
2441
|
+
]
|
|
2442
|
+
)
|
|
2443
|
+
end
|
|
2444
|
+
def self.variants
|
|
2445
|
+
end
|
|
2446
|
+
end
|
|
2447
|
+
|
|
2448
|
+
class Position < Revox::Internal::Type::BaseModel
|
|
2449
|
+
OrHash =
|
|
2450
|
+
T.type_alias do
|
|
2451
|
+
T.any(
|
|
2452
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Position,
|
|
2453
|
+
Revox::Internal::AnyHash
|
|
2454
|
+
)
|
|
2455
|
+
end
|
|
2456
|
+
|
|
2457
|
+
sig { returns(Float) }
|
|
2458
|
+
attr_accessor :x
|
|
2459
|
+
|
|
2460
|
+
sig { returns(Float) }
|
|
2461
|
+
attr_accessor :y_
|
|
2462
|
+
|
|
2463
|
+
sig { params(x: Float, y_: Float).returns(T.attached_class) }
|
|
2464
|
+
def self.new(x:, y_:)
|
|
2465
|
+
end
|
|
2466
|
+
|
|
2467
|
+
sig { override.returns({ x: Float, y_: Float }) }
|
|
2468
|
+
def to_hash
|
|
2469
|
+
end
|
|
2470
|
+
end
|
|
2471
|
+
|
|
2472
|
+
class PromptFlow < Revox::Internal::Type::BaseModel
|
|
2473
|
+
OrHash =
|
|
2474
|
+
T.type_alias do
|
|
2475
|
+
T.any(
|
|
2476
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow,
|
|
2477
|
+
Revox::Internal::AnyHash
|
|
2478
|
+
)
|
|
2479
|
+
end
|
|
2480
|
+
|
|
2481
|
+
sig do
|
|
2482
|
+
returns(
|
|
2483
|
+
T::Array[
|
|
2484
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Edge
|
|
2485
|
+
]
|
|
2486
|
+
)
|
|
2487
|
+
end
|
|
2488
|
+
attr_accessor :edges
|
|
2489
|
+
|
|
2490
|
+
sig do
|
|
2491
|
+
returns(
|
|
2492
|
+
T::Array[
|
|
2493
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Node
|
|
2494
|
+
]
|
|
2495
|
+
)
|
|
2496
|
+
end
|
|
2497
|
+
attr_accessor :nodes
|
|
2498
|
+
|
|
2499
|
+
sig do
|
|
2500
|
+
params(
|
|
2501
|
+
edges:
|
|
2502
|
+
T::Array[
|
|
2503
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Edge::OrHash
|
|
2504
|
+
],
|
|
2505
|
+
nodes:
|
|
2506
|
+
T::Array[
|
|
2507
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Node::OrHash
|
|
2508
|
+
]
|
|
2509
|
+
).returns(T.attached_class)
|
|
2510
|
+
end
|
|
2511
|
+
def self.new(edges:, nodes:)
|
|
2512
|
+
end
|
|
2513
|
+
|
|
2514
|
+
sig do
|
|
2515
|
+
override.returns(
|
|
2516
|
+
{
|
|
2517
|
+
edges:
|
|
2518
|
+
T::Array[
|
|
2519
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Edge
|
|
2520
|
+
],
|
|
2521
|
+
nodes:
|
|
2522
|
+
T::Array[
|
|
2523
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Node
|
|
2524
|
+
]
|
|
2525
|
+
}
|
|
2526
|
+
)
|
|
2527
|
+
end
|
|
2528
|
+
def to_hash
|
|
2529
|
+
end
|
|
2530
|
+
|
|
2531
|
+
class Edge < Revox::Internal::Type::BaseModel
|
|
2532
|
+
OrHash =
|
|
2533
|
+
T.type_alias do
|
|
2534
|
+
T.any(
|
|
2535
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Edge,
|
|
2536
|
+
Revox::Internal::AnyHash
|
|
2537
|
+
)
|
|
2538
|
+
end
|
|
2539
|
+
|
|
2540
|
+
sig { returns(String) }
|
|
2541
|
+
attr_accessor :id
|
|
2542
|
+
|
|
2543
|
+
sig { returns(String) }
|
|
2544
|
+
attr_accessor :source
|
|
2545
|
+
|
|
2546
|
+
sig { returns(String) }
|
|
2547
|
+
attr_accessor :target
|
|
2548
|
+
|
|
2549
|
+
sig do
|
|
2550
|
+
params(id: String, source: String, target: String).returns(
|
|
2551
|
+
T.attached_class
|
|
2552
|
+
)
|
|
2553
|
+
end
|
|
2554
|
+
def self.new(id:, source:, target:)
|
|
2555
|
+
end
|
|
2556
|
+
|
|
2557
|
+
sig do
|
|
2558
|
+
override.returns({ id: String, source: String, target: String })
|
|
2559
|
+
end
|
|
2560
|
+
def to_hash
|
|
2561
|
+
end
|
|
2562
|
+
end
|
|
2563
|
+
|
|
2564
|
+
class Node < Revox::Internal::Type::BaseModel
|
|
2565
|
+
OrHash =
|
|
2566
|
+
T.type_alias do
|
|
2567
|
+
T.any(
|
|
2568
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Node,
|
|
2569
|
+
Revox::Internal::AnyHash
|
|
2570
|
+
)
|
|
2571
|
+
end
|
|
2572
|
+
|
|
2573
|
+
sig { returns(String) }
|
|
2574
|
+
attr_accessor :id
|
|
2575
|
+
|
|
2576
|
+
sig do
|
|
2577
|
+
returns(
|
|
2578
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Node::Data
|
|
2579
|
+
)
|
|
2580
|
+
end
|
|
2581
|
+
attr_reader :data
|
|
2582
|
+
|
|
2583
|
+
sig do
|
|
2584
|
+
params(
|
|
2585
|
+
data:
|
|
2586
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Node::Data::OrHash
|
|
2587
|
+
).void
|
|
2588
|
+
end
|
|
2589
|
+
attr_writer :data
|
|
2590
|
+
|
|
2591
|
+
sig do
|
|
2592
|
+
returns(
|
|
2593
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Node::Position
|
|
2594
|
+
)
|
|
2595
|
+
end
|
|
2596
|
+
attr_reader :position
|
|
2597
|
+
|
|
2598
|
+
sig do
|
|
2599
|
+
params(
|
|
2600
|
+
position:
|
|
2601
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Node::Position::OrHash
|
|
2602
|
+
).void
|
|
2603
|
+
end
|
|
2604
|
+
attr_writer :position
|
|
2605
|
+
|
|
2606
|
+
sig { returns(Symbol) }
|
|
2607
|
+
attr_accessor :type
|
|
2608
|
+
|
|
2609
|
+
sig do
|
|
2610
|
+
params(
|
|
2611
|
+
id: String,
|
|
2612
|
+
data:
|
|
2613
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Node::Data::OrHash,
|
|
2614
|
+
position:
|
|
2615
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Node::Position::OrHash,
|
|
2616
|
+
type: Symbol
|
|
2617
|
+
).returns(T.attached_class)
|
|
2618
|
+
end
|
|
2619
|
+
def self.new(id:, data:, position:, type: :promptBlock)
|
|
2620
|
+
end
|
|
2621
|
+
|
|
2622
|
+
sig do
|
|
2623
|
+
override.returns(
|
|
2624
|
+
{
|
|
2625
|
+
id: String,
|
|
2626
|
+
data:
|
|
2627
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Node::Data,
|
|
2628
|
+
position:
|
|
2629
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Node::Position,
|
|
2630
|
+
type: Symbol
|
|
2631
|
+
}
|
|
2632
|
+
)
|
|
2633
|
+
end
|
|
2634
|
+
def to_hash
|
|
2635
|
+
end
|
|
2636
|
+
|
|
2637
|
+
class Data < Revox::Internal::Type::BaseModel
|
|
2638
|
+
OrHash =
|
|
2639
|
+
T.type_alias do
|
|
2640
|
+
T.any(
|
|
2641
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Node::Data,
|
|
2642
|
+
Revox::Internal::AnyHash
|
|
2643
|
+
)
|
|
2644
|
+
end
|
|
2645
|
+
|
|
2646
|
+
sig { returns(String) }
|
|
2647
|
+
attr_accessor :body
|
|
2648
|
+
|
|
2649
|
+
sig { returns(String) }
|
|
2650
|
+
attr_accessor :title
|
|
2651
|
+
|
|
2652
|
+
sig do
|
|
2653
|
+
params(body: String, title: String).returns(T.attached_class)
|
|
2654
|
+
end
|
|
2655
|
+
def self.new(body:, title:)
|
|
2656
|
+
end
|
|
2657
|
+
|
|
2658
|
+
sig { override.returns({ body: String, title: String }) }
|
|
2659
|
+
def to_hash
|
|
2660
|
+
end
|
|
2661
|
+
end
|
|
2662
|
+
|
|
2663
|
+
class Position < Revox::Internal::Type::BaseModel
|
|
2664
|
+
OrHash =
|
|
2665
|
+
T.type_alias do
|
|
2666
|
+
T.any(
|
|
2667
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow::Node::Position,
|
|
2668
|
+
Revox::Internal::AnyHash
|
|
2669
|
+
)
|
|
2670
|
+
end
|
|
2671
|
+
|
|
2672
|
+
sig { returns(Float) }
|
|
2673
|
+
attr_accessor :x
|
|
2674
|
+
|
|
2675
|
+
sig { returns(Float) }
|
|
2676
|
+
attr_accessor :y_
|
|
2677
|
+
|
|
2678
|
+
sig { params(x: Float, y_: Float).returns(T.attached_class) }
|
|
2679
|
+
def self.new(x:, y_:)
|
|
2680
|
+
end
|
|
2681
|
+
|
|
2682
|
+
sig { override.returns({ x: Float, y_: Float }) }
|
|
2683
|
+
def to_hash
|
|
2684
|
+
end
|
|
2685
|
+
end
|
|
2686
|
+
end
|
|
2687
|
+
end
|
|
2688
|
+
|
|
2689
|
+
class Slack < Revox::Internal::Type::BaseModel
|
|
2690
|
+
OrHash =
|
|
2691
|
+
T.type_alias do
|
|
2692
|
+
T.any(
|
|
2693
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack,
|
|
2694
|
+
Revox::Internal::AnyHash
|
|
2695
|
+
)
|
|
2696
|
+
end
|
|
2697
|
+
|
|
2698
|
+
# The Slack channel ID where the notification will be posted.
|
|
2699
|
+
sig { returns(String) }
|
|
2700
|
+
attr_accessor :channel_id
|
|
2701
|
+
|
|
2702
|
+
# The Nango connection ID linking the org's Slack workspace to Revox.
|
|
2703
|
+
sig { returns(String) }
|
|
2704
|
+
attr_accessor :connection_id
|
|
2705
|
+
|
|
2706
|
+
# Which call outcomes trigger a Slack notification (e.g. ['interested', 'none']).
|
|
2707
|
+
# Use 'none' to notify when outcome is null.
|
|
2708
|
+
sig do
|
|
2709
|
+
returns(
|
|
2710
|
+
T::Array[
|
|
2711
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack::Outcome::TaggedSymbol
|
|
2712
|
+
]
|
|
2713
|
+
)
|
|
2714
|
+
end
|
|
2715
|
+
attr_accessor :outcomes
|
|
2716
|
+
|
|
2717
|
+
# Human-readable Slack channel name, cached for display in the UI.
|
|
2718
|
+
sig { returns(T.nilable(String)) }
|
|
2719
|
+
attr_accessor :channel_name
|
|
2720
|
+
|
|
2721
|
+
# Optional message template. Supports {{summary}}, {{outcome}}, {{phone}},
|
|
2722
|
+
# {{call_url}}, {{assistant_name}}, {{campaign_name}}, {{first_name}},
|
|
2723
|
+
# {{last_name}}, {{email}}, {{company}}, {{contact_name}}, {{contact_line}}, plus
|
|
2724
|
+
# prompt_variables and structured_output keys. When null/empty a default template
|
|
2725
|
+
# is used.
|
|
2726
|
+
sig { returns(T.nilable(String)) }
|
|
2727
|
+
attr_accessor :template
|
|
2728
|
+
|
|
2729
|
+
sig do
|
|
2730
|
+
params(
|
|
2731
|
+
channel_id: String,
|
|
2732
|
+
connection_id: String,
|
|
2733
|
+
outcomes:
|
|
2734
|
+
T::Array[
|
|
2735
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack::Outcome::OrSymbol
|
|
2736
|
+
],
|
|
2737
|
+
channel_name: T.nilable(String),
|
|
2738
|
+
template: T.nilable(String)
|
|
2739
|
+
).returns(T.attached_class)
|
|
2740
|
+
end
|
|
2741
|
+
def self.new(
|
|
2742
|
+
# The Slack channel ID where the notification will be posted.
|
|
2743
|
+
channel_id:,
|
|
2744
|
+
# The Nango connection ID linking the org's Slack workspace to Revox.
|
|
2745
|
+
connection_id:,
|
|
2746
|
+
# Which call outcomes trigger a Slack notification (e.g. ['interested', 'none']).
|
|
2747
|
+
# Use 'none' to notify when outcome is null.
|
|
2748
|
+
outcomes:,
|
|
2749
|
+
# Human-readable Slack channel name, cached for display in the UI.
|
|
2750
|
+
channel_name: nil,
|
|
2751
|
+
# Optional message template. Supports {{summary}}, {{outcome}}, {{phone}},
|
|
2752
|
+
# {{call_url}}, {{assistant_name}}, {{campaign_name}}, {{first_name}},
|
|
2753
|
+
# {{last_name}}, {{email}}, {{company}}, {{contact_name}}, {{contact_line}}, plus
|
|
2754
|
+
# prompt_variables and structured_output keys. When null/empty a default template
|
|
2755
|
+
# is used.
|
|
2756
|
+
template: nil
|
|
2757
|
+
)
|
|
2758
|
+
end
|
|
2759
|
+
|
|
2760
|
+
sig do
|
|
2761
|
+
override.returns(
|
|
2762
|
+
{
|
|
2763
|
+
channel_id: String,
|
|
2764
|
+
connection_id: String,
|
|
2765
|
+
outcomes:
|
|
2766
|
+
T::Array[
|
|
2767
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack::Outcome::TaggedSymbol
|
|
2768
|
+
],
|
|
2769
|
+
channel_name: T.nilable(String),
|
|
2770
|
+
template: T.nilable(String)
|
|
2771
|
+
}
|
|
2772
|
+
)
|
|
2773
|
+
end
|
|
2774
|
+
def to_hash
|
|
2775
|
+
end
|
|
2776
|
+
|
|
2777
|
+
module Outcome
|
|
2778
|
+
extend Revox::Internal::Type::Enum
|
|
2779
|
+
|
|
2780
|
+
TaggedSymbol =
|
|
2781
|
+
T.type_alias do
|
|
2782
|
+
T.all(
|
|
2783
|
+
Symbol,
|
|
2784
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack::Outcome
|
|
2785
|
+
)
|
|
2786
|
+
end
|
|
2787
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
2788
|
+
|
|
2789
|
+
NOT_INTERESTED =
|
|
2790
|
+
T.let(
|
|
2791
|
+
:not_interested,
|
|
2792
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack::Outcome::TaggedSymbol
|
|
2793
|
+
)
|
|
2794
|
+
INTERESTED =
|
|
2795
|
+
T.let(
|
|
2796
|
+
:interested,
|
|
2797
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack::Outcome::TaggedSymbol
|
|
2798
|
+
)
|
|
2799
|
+
COMPLETED =
|
|
2800
|
+
T.let(
|
|
2801
|
+
:completed,
|
|
2802
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack::Outcome::TaggedSymbol
|
|
2803
|
+
)
|
|
2804
|
+
REQUESTED_CALLBACK_LATER =
|
|
2805
|
+
T.let(
|
|
2806
|
+
:requested_callback_later,
|
|
2807
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack::Outcome::TaggedSymbol
|
|
2808
|
+
)
|
|
2809
|
+
REQUESTED_CALLBACK_NEW_NUMBER =
|
|
2810
|
+
T.let(
|
|
2811
|
+
:requested_callback_new_number,
|
|
2812
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack::Outcome::TaggedSymbol
|
|
2813
|
+
)
|
|
2814
|
+
DO_NOT_CONTACT =
|
|
2815
|
+
T.let(
|
|
2816
|
+
:do_not_contact,
|
|
2817
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack::Outcome::TaggedSymbol
|
|
2818
|
+
)
|
|
2819
|
+
AI_AVERSE =
|
|
2820
|
+
T.let(
|
|
2821
|
+
:ai_averse,
|
|
2822
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack::Outcome::TaggedSymbol
|
|
2823
|
+
)
|
|
2824
|
+
NONE =
|
|
2825
|
+
T.let(
|
|
2826
|
+
:none,
|
|
2827
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack::Outcome::TaggedSymbol
|
|
2828
|
+
)
|
|
2829
|
+
|
|
2830
|
+
sig do
|
|
2831
|
+
override.returns(
|
|
2832
|
+
T::Array[
|
|
2833
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack::Outcome::TaggedSymbol
|
|
2834
|
+
]
|
|
2835
|
+
)
|
|
2836
|
+
end
|
|
2837
|
+
def self.values
|
|
2838
|
+
end
|
|
2839
|
+
end
|
|
2840
|
+
end
|
|
2841
|
+
|
|
2842
|
+
class StructuredOutputConfig < Revox::Internal::Type::BaseModel
|
|
2843
|
+
OrHash =
|
|
2844
|
+
T.type_alias do
|
|
2845
|
+
T.any(
|
|
2846
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::StructuredOutputConfig,
|
|
2847
|
+
Revox::Internal::AnyHash
|
|
2848
|
+
)
|
|
2849
|
+
end
|
|
2850
|
+
|
|
2851
|
+
sig { returns(String) }
|
|
2852
|
+
attr_accessor :name
|
|
2853
|
+
|
|
2854
|
+
sig { returns(T::Boolean) }
|
|
2855
|
+
attr_accessor :required
|
|
2856
|
+
|
|
2857
|
+
sig do
|
|
2858
|
+
returns(
|
|
2859
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::StructuredOutputConfig::Type::TaggedSymbol
|
|
2860
|
+
)
|
|
2861
|
+
end
|
|
2862
|
+
attr_accessor :type
|
|
2863
|
+
|
|
2864
|
+
sig { returns(T.nilable(String)) }
|
|
2865
|
+
attr_reader :description
|
|
2866
|
+
|
|
2867
|
+
sig { params(description: String).void }
|
|
2868
|
+
attr_writer :description
|
|
2869
|
+
|
|
2870
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
2871
|
+
attr_reader :enum_options
|
|
2872
|
+
|
|
2873
|
+
sig { params(enum_options: T::Array[String]).void }
|
|
2874
|
+
attr_writer :enum_options
|
|
2875
|
+
|
|
2876
|
+
sig do
|
|
2877
|
+
params(
|
|
2878
|
+
name: String,
|
|
2879
|
+
required: T::Boolean,
|
|
2880
|
+
type:
|
|
2881
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::StructuredOutputConfig::Type::OrSymbol,
|
|
2882
|
+
description: String,
|
|
2883
|
+
enum_options: T::Array[String]
|
|
2884
|
+
).returns(T.attached_class)
|
|
2885
|
+
end
|
|
2886
|
+
def self.new(
|
|
2887
|
+
name:,
|
|
2888
|
+
required:,
|
|
2889
|
+
type:,
|
|
2890
|
+
description: nil,
|
|
2891
|
+
enum_options: nil
|
|
2892
|
+
)
|
|
2893
|
+
end
|
|
2894
|
+
|
|
2895
|
+
sig do
|
|
2896
|
+
override.returns(
|
|
2897
|
+
{
|
|
2898
|
+
name: String,
|
|
2899
|
+
required: T::Boolean,
|
|
2900
|
+
type:
|
|
2901
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::StructuredOutputConfig::Type::TaggedSymbol,
|
|
2902
|
+
description: String,
|
|
2903
|
+
enum_options: T::Array[String]
|
|
2904
|
+
}
|
|
2905
|
+
)
|
|
2906
|
+
end
|
|
2907
|
+
def to_hash
|
|
2908
|
+
end
|
|
2909
|
+
|
|
2910
|
+
module Type
|
|
2911
|
+
extend Revox::Internal::Type::Enum
|
|
2912
|
+
|
|
2913
|
+
TaggedSymbol =
|
|
2914
|
+
T.type_alias do
|
|
2915
|
+
T.all(
|
|
2916
|
+
Symbol,
|
|
2917
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::StructuredOutputConfig::Type
|
|
2918
|
+
)
|
|
2919
|
+
end
|
|
2920
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
2921
|
+
|
|
2922
|
+
STRING =
|
|
2923
|
+
T.let(
|
|
2924
|
+
:string,
|
|
2925
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::StructuredOutputConfig::Type::TaggedSymbol
|
|
2926
|
+
)
|
|
2927
|
+
NUMBER =
|
|
2928
|
+
T.let(
|
|
2929
|
+
:number,
|
|
2930
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::StructuredOutputConfig::Type::TaggedSymbol
|
|
2931
|
+
)
|
|
2932
|
+
BOOLEAN =
|
|
2933
|
+
T.let(
|
|
2934
|
+
:boolean,
|
|
2935
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::StructuredOutputConfig::Type::TaggedSymbol
|
|
2936
|
+
)
|
|
2937
|
+
ENUM =
|
|
2938
|
+
T.let(
|
|
2939
|
+
:enum,
|
|
2940
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::StructuredOutputConfig::Type::TaggedSymbol
|
|
2941
|
+
)
|
|
2942
|
+
DATE =
|
|
2943
|
+
T.let(
|
|
2944
|
+
:date,
|
|
2945
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::StructuredOutputConfig::Type::TaggedSymbol
|
|
2946
|
+
)
|
|
2947
|
+
DATETIME =
|
|
2948
|
+
T.let(
|
|
2949
|
+
:datetime,
|
|
2950
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::StructuredOutputConfig::Type::TaggedSymbol
|
|
2951
|
+
)
|
|
2952
|
+
|
|
2953
|
+
sig do
|
|
2954
|
+
override.returns(
|
|
2955
|
+
T::Array[
|
|
2956
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::StructuredOutputConfig::Type::TaggedSymbol
|
|
2957
|
+
]
|
|
2958
|
+
)
|
|
2959
|
+
end
|
|
2960
|
+
def self.values
|
|
2961
|
+
end
|
|
2962
|
+
end
|
|
2963
|
+
end
|
|
2964
|
+
|
|
2965
|
+
class SttContext < Revox::Internal::Type::BaseModel
|
|
2966
|
+
OrHash =
|
|
2967
|
+
T.type_alias do
|
|
2968
|
+
T.any(
|
|
2969
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::SttContext,
|
|
2970
|
+
Revox::Internal::AnyHash
|
|
2971
|
+
)
|
|
2972
|
+
end
|
|
2973
|
+
|
|
2974
|
+
sig do
|
|
2975
|
+
returns(
|
|
2976
|
+
T::Array[
|
|
2977
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::SttContext::General
|
|
2978
|
+
]
|
|
2979
|
+
)
|
|
2980
|
+
end
|
|
2981
|
+
attr_accessor :general
|
|
2982
|
+
|
|
2983
|
+
sig { returns(T::Array[String]) }
|
|
2984
|
+
attr_accessor :terms
|
|
2985
|
+
|
|
2986
|
+
# Assistant-level speech-to-text context: structured `general` key/value pairs
|
|
2987
|
+
# plus a list of domain `terms`. Prompt-derived context is merged in without
|
|
2988
|
+
# replacing existing entries.
|
|
2989
|
+
sig do
|
|
2990
|
+
params(
|
|
2991
|
+
general:
|
|
2992
|
+
T::Array[
|
|
2993
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::SttContext::General::OrHash
|
|
2994
|
+
],
|
|
2995
|
+
terms: T::Array[String]
|
|
2996
|
+
).returns(T.attached_class)
|
|
2997
|
+
end
|
|
2998
|
+
def self.new(general:, terms:)
|
|
2999
|
+
end
|
|
3000
|
+
|
|
3001
|
+
sig do
|
|
3002
|
+
override.returns(
|
|
3003
|
+
{
|
|
3004
|
+
general:
|
|
3005
|
+
T::Array[
|
|
3006
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::SttContext::General
|
|
3007
|
+
],
|
|
3008
|
+
terms: T::Array[String]
|
|
3009
|
+
}
|
|
3010
|
+
)
|
|
3011
|
+
end
|
|
3012
|
+
def to_hash
|
|
3013
|
+
end
|
|
3014
|
+
|
|
3015
|
+
class General < Revox::Internal::Type::BaseModel
|
|
3016
|
+
OrHash =
|
|
3017
|
+
T.type_alias do
|
|
3018
|
+
T.any(
|
|
3019
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::SttContext::General,
|
|
3020
|
+
Revox::Internal::AnyHash
|
|
3021
|
+
)
|
|
3022
|
+
end
|
|
3023
|
+
|
|
3024
|
+
sig { returns(String) }
|
|
3025
|
+
attr_accessor :key
|
|
3026
|
+
|
|
3027
|
+
sig { returns(String) }
|
|
3028
|
+
attr_accessor :value
|
|
3029
|
+
|
|
3030
|
+
sig do
|
|
3031
|
+
params(key: String, value: String).returns(T.attached_class)
|
|
3032
|
+
end
|
|
3033
|
+
def self.new(key:, value:)
|
|
3034
|
+
end
|
|
3035
|
+
|
|
3036
|
+
sig { override.returns({ key: String, value: String }) }
|
|
3037
|
+
def to_hash
|
|
3038
|
+
end
|
|
3039
|
+
end
|
|
3040
|
+
end
|
|
3041
|
+
|
|
3042
|
+
# Transcriber (speech-to-text) model used for the assistant.
|
|
3043
|
+
module SttModel
|
|
3044
|
+
extend Revox::Internal::Type::Enum
|
|
3045
|
+
|
|
3046
|
+
TaggedSymbol =
|
|
3047
|
+
T.type_alias do
|
|
3048
|
+
T.all(
|
|
3049
|
+
Symbol,
|
|
3050
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::SttModel
|
|
3051
|
+
)
|
|
3052
|
+
end
|
|
3053
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
3054
|
+
|
|
3055
|
+
STT_RT_V4 =
|
|
3056
|
+
T.let(
|
|
3057
|
+
:"stt-rt-v4",
|
|
3058
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::SttModel::TaggedSymbol
|
|
3059
|
+
)
|
|
3060
|
+
STT_RT_V5 =
|
|
3061
|
+
T.let(
|
|
3062
|
+
:"stt-rt-v5",
|
|
3063
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::SttModel::TaggedSymbol
|
|
3064
|
+
)
|
|
3065
|
+
|
|
3066
|
+
sig do
|
|
3067
|
+
override.returns(
|
|
3068
|
+
T::Array[
|
|
3069
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::SttModel::TaggedSymbol
|
|
3070
|
+
]
|
|
3071
|
+
)
|
|
3072
|
+
end
|
|
3073
|
+
def self.values
|
|
3074
|
+
end
|
|
3075
|
+
end
|
|
3076
|
+
|
|
3077
|
+
# Audio clip to play while the agent is processing a response. One of the built-in
|
|
3078
|
+
# LiveKit audio clips; null disables it.
|
|
3079
|
+
module ThinkingSound
|
|
3080
|
+
extend Revox::Internal::Type::Enum
|
|
3081
|
+
|
|
3082
|
+
TaggedSymbol =
|
|
3083
|
+
T.type_alias do
|
|
3084
|
+
T.all(
|
|
3085
|
+
Symbol,
|
|
3086
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::ThinkingSound
|
|
3087
|
+
)
|
|
3088
|
+
end
|
|
3089
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
3090
|
+
|
|
3091
|
+
CITY_AMBIENCE_OGG =
|
|
3092
|
+
T.let(
|
|
3093
|
+
:"city-ambience.ogg",
|
|
3094
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::ThinkingSound::TaggedSymbol
|
|
3095
|
+
)
|
|
3096
|
+
FOREST_AMBIENCE_OGG =
|
|
3097
|
+
T.let(
|
|
3098
|
+
:"forest-ambience.ogg",
|
|
3099
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::ThinkingSound::TaggedSymbol
|
|
3100
|
+
)
|
|
3101
|
+
OFFICE_AMBIENCE_OGG =
|
|
3102
|
+
T.let(
|
|
3103
|
+
:"office-ambience.ogg",
|
|
3104
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::ThinkingSound::TaggedSymbol
|
|
3105
|
+
)
|
|
3106
|
+
CROWDED_ROOM_OGG =
|
|
3107
|
+
T.let(
|
|
3108
|
+
:"crowded-room.ogg",
|
|
3109
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::ThinkingSound::TaggedSymbol
|
|
3110
|
+
)
|
|
3111
|
+
KEYBOARD_TYPING_OGG =
|
|
3112
|
+
T.let(
|
|
3113
|
+
:"keyboard-typing.ogg",
|
|
3114
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::ThinkingSound::TaggedSymbol
|
|
3115
|
+
)
|
|
3116
|
+
KEYBOARD_TYPING2_OGG =
|
|
3117
|
+
T.let(
|
|
3118
|
+
:"keyboard-typing2.ogg",
|
|
3119
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::ThinkingSound::TaggedSymbol
|
|
3120
|
+
)
|
|
3121
|
+
HOLD_MUSIC_OGG =
|
|
3122
|
+
T.let(
|
|
3123
|
+
:"hold_music.ogg",
|
|
3124
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::ThinkingSound::TaggedSymbol
|
|
3125
|
+
)
|
|
3126
|
+
|
|
3127
|
+
sig do
|
|
3128
|
+
override.returns(
|
|
3129
|
+
T::Array[
|
|
3130
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::ThinkingSound::TaggedSymbol
|
|
3131
|
+
]
|
|
3132
|
+
)
|
|
3133
|
+
end
|
|
3134
|
+
def self.values
|
|
3135
|
+
end
|
|
3136
|
+
end
|
|
3137
|
+
|
|
3138
|
+
module Type
|
|
3139
|
+
extend Revox::Internal::Type::Enum
|
|
3140
|
+
|
|
3141
|
+
TaggedSymbol =
|
|
3142
|
+
T.type_alias do
|
|
3143
|
+
T.all(
|
|
3144
|
+
Symbol,
|
|
3145
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Type
|
|
3146
|
+
)
|
|
3147
|
+
end
|
|
3148
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
3149
|
+
|
|
3150
|
+
STANDALONE =
|
|
3151
|
+
T.let(
|
|
3152
|
+
:standalone,
|
|
3153
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Type::TaggedSymbol
|
|
3154
|
+
)
|
|
3155
|
+
MULTI_STEP =
|
|
3156
|
+
T.let(
|
|
3157
|
+
:"multi-step",
|
|
3158
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Type::TaggedSymbol
|
|
3159
|
+
)
|
|
3160
|
+
SUB_ASSISTANT =
|
|
3161
|
+
T.let(
|
|
3162
|
+
:"sub-assistant",
|
|
3163
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Type::TaggedSymbol
|
|
3164
|
+
)
|
|
3165
|
+
|
|
3166
|
+
sig do
|
|
3167
|
+
override.returns(
|
|
3168
|
+
T::Array[
|
|
3169
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Type::TaggedSymbol
|
|
3170
|
+
]
|
|
3171
|
+
)
|
|
3172
|
+
end
|
|
3173
|
+
def self.values
|
|
3174
|
+
end
|
|
3175
|
+
end
|
|
3176
|
+
|
|
3177
|
+
class Voice < Revox::Internal::Type::BaseModel
|
|
3178
|
+
OrHash =
|
|
3179
|
+
T.type_alias do
|
|
3180
|
+
T.any(
|
|
3181
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice,
|
|
3182
|
+
Revox::Internal::AnyHash
|
|
3183
|
+
)
|
|
3184
|
+
end
|
|
3185
|
+
|
|
3186
|
+
# The ID of the voice.
|
|
3187
|
+
sig { returns(String) }
|
|
3188
|
+
attr_accessor :id
|
|
3189
|
+
|
|
3190
|
+
# The provider of the voice.
|
|
3191
|
+
sig do
|
|
3192
|
+
returns(
|
|
3193
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice::Provider::TaggedSymbol
|
|
3194
|
+
)
|
|
3195
|
+
end
|
|
3196
|
+
attr_accessor :provider
|
|
3197
|
+
|
|
3198
|
+
# Cartesia TTS model (Cartesia only). Defaults to sonic-3 when omitted. Ignored
|
|
3199
|
+
# for other providers.
|
|
3200
|
+
sig do
|
|
3201
|
+
returns(
|
|
3202
|
+
T.nilable(
|
|
3203
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice::Model::TaggedSymbol
|
|
3204
|
+
)
|
|
3205
|
+
)
|
|
3206
|
+
end
|
|
3207
|
+
attr_reader :model
|
|
3208
|
+
|
|
3209
|
+
sig do
|
|
3210
|
+
params(
|
|
3211
|
+
model:
|
|
3212
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice::Model::OrSymbol
|
|
3213
|
+
).void
|
|
3214
|
+
end
|
|
3215
|
+
attr_writer :model
|
|
3216
|
+
|
|
3217
|
+
# The speed of the voice. Range depends on provider: Cartesia 0.6–1.5, ElevenLabs
|
|
3218
|
+
# 0.7–1.2. Default is 1.0.
|
|
3219
|
+
sig { returns(T.nilable(Float)) }
|
|
3220
|
+
attr_reader :speed
|
|
3221
|
+
|
|
3222
|
+
sig { params(speed: Float).void }
|
|
3223
|
+
attr_writer :speed
|
|
3224
|
+
|
|
3225
|
+
# Volume of the voice (Cartesia only). 0.5–2.0, default 1.0. Ignored for other
|
|
3226
|
+
# providers.
|
|
3227
|
+
sig { returns(T.nilable(Float)) }
|
|
3228
|
+
attr_reader :volume
|
|
3229
|
+
|
|
3230
|
+
sig { params(volume: Float).void }
|
|
3231
|
+
attr_writer :volume
|
|
3232
|
+
|
|
3233
|
+
sig do
|
|
3234
|
+
params(
|
|
3235
|
+
id: String,
|
|
3236
|
+
provider:
|
|
3237
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice::Provider::OrSymbol,
|
|
3238
|
+
model:
|
|
3239
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice::Model::OrSymbol,
|
|
3240
|
+
speed: Float,
|
|
3241
|
+
volume: Float
|
|
3242
|
+
).returns(T.attached_class)
|
|
3243
|
+
end
|
|
3244
|
+
def self.new(
|
|
3245
|
+
# The ID of the voice.
|
|
3246
|
+
id:,
|
|
3247
|
+
# The provider of the voice.
|
|
3248
|
+
provider:,
|
|
3249
|
+
# Cartesia TTS model (Cartesia only). Defaults to sonic-3 when omitted. Ignored
|
|
3250
|
+
# for other providers.
|
|
3251
|
+
model: nil,
|
|
3252
|
+
# The speed of the voice. Range depends on provider: Cartesia 0.6–1.5, ElevenLabs
|
|
3253
|
+
# 0.7–1.2. Default is 1.0.
|
|
3254
|
+
speed: nil,
|
|
3255
|
+
# Volume of the voice (Cartesia only). 0.5–2.0, default 1.0. Ignored for other
|
|
3256
|
+
# providers.
|
|
3257
|
+
volume: nil
|
|
3258
|
+
)
|
|
3259
|
+
end
|
|
3260
|
+
|
|
3261
|
+
sig do
|
|
3262
|
+
override.returns(
|
|
3263
|
+
{
|
|
3264
|
+
id: String,
|
|
3265
|
+
provider:
|
|
3266
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice::Provider::TaggedSymbol,
|
|
3267
|
+
model:
|
|
3268
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice::Model::TaggedSymbol,
|
|
3269
|
+
speed: Float,
|
|
3270
|
+
volume: Float
|
|
3271
|
+
}
|
|
3272
|
+
)
|
|
3273
|
+
end
|
|
3274
|
+
def to_hash
|
|
3275
|
+
end
|
|
3276
|
+
|
|
3277
|
+
# The provider of the voice.
|
|
3278
|
+
module Provider
|
|
3279
|
+
extend Revox::Internal::Type::Enum
|
|
3280
|
+
|
|
3281
|
+
TaggedSymbol =
|
|
3282
|
+
T.type_alias do
|
|
3283
|
+
T.all(
|
|
3284
|
+
Symbol,
|
|
3285
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice::Provider
|
|
3286
|
+
)
|
|
3287
|
+
end
|
|
3288
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
3289
|
+
|
|
3290
|
+
CARTESIA =
|
|
3291
|
+
T.let(
|
|
3292
|
+
:cartesia,
|
|
3293
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice::Provider::TaggedSymbol
|
|
3294
|
+
)
|
|
3295
|
+
ELEVENLABS =
|
|
3296
|
+
T.let(
|
|
3297
|
+
:elevenlabs,
|
|
3298
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice::Provider::TaggedSymbol
|
|
3299
|
+
)
|
|
3300
|
+
|
|
3301
|
+
sig do
|
|
3302
|
+
override.returns(
|
|
3303
|
+
T::Array[
|
|
3304
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice::Provider::TaggedSymbol
|
|
3305
|
+
]
|
|
3306
|
+
)
|
|
3307
|
+
end
|
|
3308
|
+
def self.values
|
|
3309
|
+
end
|
|
3310
|
+
end
|
|
3311
|
+
|
|
3312
|
+
# Cartesia TTS model (Cartesia only). Defaults to sonic-3 when omitted. Ignored
|
|
3313
|
+
# for other providers.
|
|
3314
|
+
module Model
|
|
3315
|
+
extend Revox::Internal::Type::Enum
|
|
3316
|
+
|
|
3317
|
+
TaggedSymbol =
|
|
3318
|
+
T.type_alias do
|
|
3319
|
+
T.all(
|
|
3320
|
+
Symbol,
|
|
3321
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice::Model
|
|
3322
|
+
)
|
|
3323
|
+
end
|
|
3324
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
3325
|
+
|
|
3326
|
+
SONIC_3 =
|
|
3327
|
+
T.let(
|
|
3328
|
+
:"sonic-3",
|
|
3329
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice::Model::TaggedSymbol
|
|
3330
|
+
)
|
|
3331
|
+
SONIC_3_5 =
|
|
3332
|
+
T.let(
|
|
3333
|
+
:"sonic-3.5",
|
|
3334
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice::Model::TaggedSymbol
|
|
3335
|
+
)
|
|
3336
|
+
|
|
3337
|
+
sig do
|
|
3338
|
+
override.returns(
|
|
3339
|
+
T::Array[
|
|
3340
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice::Model::TaggedSymbol
|
|
3341
|
+
]
|
|
3342
|
+
)
|
|
3343
|
+
end
|
|
3344
|
+
def self.values
|
|
3345
|
+
end
|
|
3346
|
+
end
|
|
3347
|
+
end
|
|
3348
|
+
|
|
3349
|
+
class Zoho < Revox::Internal::Type::BaseModel
|
|
3350
|
+
OrHash =
|
|
3351
|
+
T.type_alias do
|
|
3352
|
+
T.any(
|
|
3353
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho,
|
|
3354
|
+
Revox::Internal::AnyHash
|
|
3355
|
+
)
|
|
3356
|
+
end
|
|
3357
|
+
|
|
3358
|
+
# The Nango connection ID linking the org's Zoho CRM account to Revox.
|
|
3359
|
+
sig { returns(String) }
|
|
3360
|
+
attr_accessor :connection_id
|
|
3361
|
+
|
|
3362
|
+
# Maps extracted call fields (structured_output / prompt variables) onto Zoho
|
|
3363
|
+
# field API names on the upserted record.
|
|
3364
|
+
sig do
|
|
3365
|
+
returns(
|
|
3366
|
+
T::Array[
|
|
3367
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho::FieldMapping
|
|
3368
|
+
]
|
|
3369
|
+
)
|
|
3370
|
+
end
|
|
3371
|
+
attr_accessor :field_mapping
|
|
3372
|
+
|
|
3373
|
+
# When true, also log the call as a record in Zoho's Calls module (related to the
|
|
3374
|
+
# upserted prospect via Who_Id).
|
|
3375
|
+
sig { returns(T::Boolean) }
|
|
3376
|
+
attr_accessor :log_call_activity
|
|
3377
|
+
|
|
3378
|
+
# Zoho module the prospect record is upserted into (e.g. 'Leads' or 'Contacts').
|
|
3379
|
+
sig { returns(String) }
|
|
3380
|
+
attr_accessor :module_
|
|
3381
|
+
|
|
3382
|
+
# Which call outcomes trigger the Zoho push (e.g. ['interested', 'none']). Use
|
|
3383
|
+
# 'none' to push when outcome is null.
|
|
3384
|
+
sig do
|
|
3385
|
+
returns(
|
|
3386
|
+
T::Array[
|
|
3387
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho::Outcome::TaggedSymbol
|
|
3388
|
+
]
|
|
3389
|
+
)
|
|
3390
|
+
end
|
|
3391
|
+
attr_accessor :outcomes
|
|
3392
|
+
|
|
3393
|
+
# Optional Note body template. Supports {{summary}}, {{outcome}}, {{phone}},
|
|
3394
|
+
# {{call_url}}, {{assistant_name}}, {{campaign_name}}, {{transcript}}, plus
|
|
3395
|
+
# prompt_variables and structured_output keys. When null/empty a default note
|
|
3396
|
+
# (outcome + summary + auto-listed extracted fields) is used.
|
|
3397
|
+
sig { returns(T.nilable(String)) }
|
|
3398
|
+
attr_accessor :template
|
|
3399
|
+
|
|
3400
|
+
sig do
|
|
3401
|
+
params(
|
|
3402
|
+
connection_id: String,
|
|
3403
|
+
field_mapping:
|
|
3404
|
+
T::Array[
|
|
3405
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho::FieldMapping::OrHash
|
|
3406
|
+
],
|
|
3407
|
+
log_call_activity: T::Boolean,
|
|
3408
|
+
module_: String,
|
|
3409
|
+
outcomes:
|
|
3410
|
+
T::Array[
|
|
3411
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho::Outcome::OrSymbol
|
|
3412
|
+
],
|
|
3413
|
+
template: T.nilable(String)
|
|
3414
|
+
).returns(T.attached_class)
|
|
3415
|
+
end
|
|
3416
|
+
def self.new(
|
|
3417
|
+
# The Nango connection ID linking the org's Zoho CRM account to Revox.
|
|
3418
|
+
connection_id:,
|
|
3419
|
+
# Maps extracted call fields (structured_output / prompt variables) onto Zoho
|
|
3420
|
+
# field API names on the upserted record.
|
|
3421
|
+
field_mapping:,
|
|
3422
|
+
# When true, also log the call as a record in Zoho's Calls module (related to the
|
|
3423
|
+
# upserted prospect via Who_Id).
|
|
3424
|
+
log_call_activity:,
|
|
3425
|
+
# Zoho module the prospect record is upserted into (e.g. 'Leads' or 'Contacts').
|
|
3426
|
+
module_:,
|
|
3427
|
+
# Which call outcomes trigger the Zoho push (e.g. ['interested', 'none']). Use
|
|
3428
|
+
# 'none' to push when outcome is null.
|
|
3429
|
+
outcomes:,
|
|
3430
|
+
# Optional Note body template. Supports {{summary}}, {{outcome}}, {{phone}},
|
|
3431
|
+
# {{call_url}}, {{assistant_name}}, {{campaign_name}}, {{transcript}}, plus
|
|
3432
|
+
# prompt_variables and structured_output keys. When null/empty a default note
|
|
3433
|
+
# (outcome + summary + auto-listed extracted fields) is used.
|
|
3434
|
+
template: nil
|
|
3435
|
+
)
|
|
3436
|
+
end
|
|
3437
|
+
|
|
3438
|
+
sig do
|
|
3439
|
+
override.returns(
|
|
3440
|
+
{
|
|
3441
|
+
connection_id: String,
|
|
3442
|
+
field_mapping:
|
|
3443
|
+
T::Array[
|
|
3444
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho::FieldMapping
|
|
3445
|
+
],
|
|
3446
|
+
log_call_activity: T::Boolean,
|
|
3447
|
+
module_: String,
|
|
3448
|
+
outcomes:
|
|
3449
|
+
T::Array[
|
|
3450
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho::Outcome::TaggedSymbol
|
|
3451
|
+
],
|
|
3452
|
+
template: T.nilable(String)
|
|
3453
|
+
}
|
|
1040
3454
|
)
|
|
1041
3455
|
end
|
|
1042
3456
|
def to_hash
|
|
1043
3457
|
end
|
|
1044
3458
|
|
|
1045
|
-
|
|
3459
|
+
class FieldMapping < Revox::Internal::Type::BaseModel
|
|
3460
|
+
OrHash =
|
|
3461
|
+
T.type_alias do
|
|
3462
|
+
T.any(
|
|
3463
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho::FieldMapping,
|
|
3464
|
+
Revox::Internal::AnyHash
|
|
3465
|
+
)
|
|
3466
|
+
end
|
|
3467
|
+
|
|
3468
|
+
# Source key to read from the call: a structured_output field name, falling back
|
|
3469
|
+
# to a prompt variable of the same name.
|
|
3470
|
+
sig { returns(String) }
|
|
3471
|
+
attr_accessor :source
|
|
3472
|
+
|
|
3473
|
+
# Destination Zoho field API name on the upserted record (e.g. 'Email', 'Company',
|
|
3474
|
+
# or a custom 'Budget\_\_c').
|
|
3475
|
+
sig { returns(String) }
|
|
3476
|
+
attr_accessor :zoho_field
|
|
3477
|
+
|
|
3478
|
+
sig do
|
|
3479
|
+
params(source: String, zoho_field: String).returns(
|
|
3480
|
+
T.attached_class
|
|
3481
|
+
)
|
|
3482
|
+
end
|
|
3483
|
+
def self.new(
|
|
3484
|
+
# Source key to read from the call: a structured_output field name, falling back
|
|
3485
|
+
# to a prompt variable of the same name.
|
|
3486
|
+
source:,
|
|
3487
|
+
# Destination Zoho field API name on the upserted record (e.g. 'Email', 'Company',
|
|
3488
|
+
# or a custom 'Budget\_\_c').
|
|
3489
|
+
zoho_field:
|
|
3490
|
+
)
|
|
3491
|
+
end
|
|
3492
|
+
|
|
3493
|
+
sig { override.returns({ source: String, zoho_field: String }) }
|
|
3494
|
+
def to_hash
|
|
3495
|
+
end
|
|
3496
|
+
end
|
|
3497
|
+
|
|
3498
|
+
module Outcome
|
|
1046
3499
|
extend Revox::Internal::Type::Enum
|
|
1047
3500
|
|
|
1048
3501
|
TaggedSymbol =
|
|
1049
3502
|
T.type_alias do
|
|
1050
3503
|
T.all(
|
|
1051
3504
|
Symbol,
|
|
1052
|
-
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::
|
|
3505
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho::Outcome
|
|
1053
3506
|
)
|
|
1054
3507
|
end
|
|
1055
3508
|
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1056
3509
|
|
|
1057
|
-
|
|
3510
|
+
NOT_INTERESTED =
|
|
1058
3511
|
T.let(
|
|
1059
|
-
:
|
|
1060
|
-
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::
|
|
3512
|
+
:not_interested,
|
|
3513
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho::Outcome::TaggedSymbol
|
|
1061
3514
|
)
|
|
1062
|
-
|
|
3515
|
+
INTERESTED =
|
|
1063
3516
|
T.let(
|
|
1064
|
-
:
|
|
1065
|
-
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::
|
|
3517
|
+
:interested,
|
|
3518
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho::Outcome::TaggedSymbol
|
|
1066
3519
|
)
|
|
1067
|
-
|
|
3520
|
+
COMPLETED =
|
|
1068
3521
|
T.let(
|
|
1069
|
-
:
|
|
1070
|
-
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::
|
|
3522
|
+
:completed,
|
|
3523
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho::Outcome::TaggedSymbol
|
|
1071
3524
|
)
|
|
1072
|
-
|
|
3525
|
+
REQUESTED_CALLBACK_LATER =
|
|
1073
3526
|
T.let(
|
|
1074
|
-
:
|
|
1075
|
-
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::
|
|
3527
|
+
:requested_callback_later,
|
|
3528
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho::Outcome::TaggedSymbol
|
|
1076
3529
|
)
|
|
1077
|
-
|
|
3530
|
+
REQUESTED_CALLBACK_NEW_NUMBER =
|
|
1078
3531
|
T.let(
|
|
1079
|
-
:
|
|
1080
|
-
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::
|
|
3532
|
+
:requested_callback_new_number,
|
|
3533
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho::Outcome::TaggedSymbol
|
|
1081
3534
|
)
|
|
1082
|
-
|
|
3535
|
+
DO_NOT_CONTACT =
|
|
1083
3536
|
T.let(
|
|
1084
|
-
:
|
|
1085
|
-
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::
|
|
3537
|
+
:do_not_contact,
|
|
3538
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho::Outcome::TaggedSymbol
|
|
3539
|
+
)
|
|
3540
|
+
AI_AVERSE =
|
|
3541
|
+
T.let(
|
|
3542
|
+
:ai_averse,
|
|
3543
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho::Outcome::TaggedSymbol
|
|
3544
|
+
)
|
|
3545
|
+
NONE =
|
|
3546
|
+
T.let(
|
|
3547
|
+
:none,
|
|
3548
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho::Outcome::TaggedSymbol
|
|
1086
3549
|
)
|
|
1087
3550
|
|
|
1088
3551
|
sig do
|
|
1089
3552
|
override.returns(
|
|
1090
3553
|
T::Array[
|
|
1091
|
-
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::
|
|
3554
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Zoho::Outcome::TaggedSymbol
|
|
1092
3555
|
]
|
|
1093
3556
|
)
|
|
1094
3557
|
end
|
|
@@ -1097,51 +3560,43 @@ module Revox
|
|
|
1097
3560
|
end
|
|
1098
3561
|
end
|
|
1099
3562
|
|
|
1100
|
-
class
|
|
3563
|
+
class CreatedBy < Revox::Internal::Type::BaseModel
|
|
1101
3564
|
OrHash =
|
|
1102
3565
|
T.type_alias do
|
|
1103
3566
|
T.any(
|
|
1104
|
-
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::
|
|
3567
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::CreatedBy,
|
|
1105
3568
|
Revox::Internal::AnyHash
|
|
1106
3569
|
)
|
|
1107
3570
|
end
|
|
1108
3571
|
|
|
1109
|
-
# The
|
|
3572
|
+
# The database user id of the creator.
|
|
1110
3573
|
sig { returns(String) }
|
|
1111
3574
|
attr_accessor :id
|
|
1112
3575
|
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
returns(
|
|
1116
|
-
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice::Provider::TaggedSymbol
|
|
1117
|
-
)
|
|
1118
|
-
end
|
|
1119
|
-
attr_accessor :provider
|
|
3576
|
+
sig { returns(String) }
|
|
3577
|
+
attr_accessor :email
|
|
1120
3578
|
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
sig { returns(T.nilable(Float)) }
|
|
1124
|
-
attr_reader :speed
|
|
3579
|
+
sig { returns(T.nilable(String)) }
|
|
3580
|
+
attr_accessor :first_name
|
|
1125
3581
|
|
|
1126
|
-
sig {
|
|
1127
|
-
|
|
3582
|
+
sig { returns(T.nilable(String)) }
|
|
3583
|
+
attr_accessor :last_name
|
|
1128
3584
|
|
|
3585
|
+
# The user who created the assistant.
|
|
1129
3586
|
sig do
|
|
1130
3587
|
params(
|
|
1131
3588
|
id: String,
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
3589
|
+
email: String,
|
|
3590
|
+
first_name: T.nilable(String),
|
|
3591
|
+
last_name: T.nilable(String)
|
|
1135
3592
|
).returns(T.attached_class)
|
|
1136
3593
|
end
|
|
1137
3594
|
def self.new(
|
|
1138
|
-
# The
|
|
3595
|
+
# The database user id of the creator.
|
|
1139
3596
|
id:,
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
# 0.7–1.2. Default is 1.0.
|
|
1144
|
-
speed: nil
|
|
3597
|
+
email:,
|
|
3598
|
+
first_name:,
|
|
3599
|
+
last_name:
|
|
1145
3600
|
)
|
|
1146
3601
|
end
|
|
1147
3602
|
|
|
@@ -1149,49 +3604,14 @@ module Revox
|
|
|
1149
3604
|
override.returns(
|
|
1150
3605
|
{
|
|
1151
3606
|
id: String,
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
3607
|
+
email: String,
|
|
3608
|
+
first_name: T.nilable(String),
|
|
3609
|
+
last_name: T.nilable(String)
|
|
1155
3610
|
}
|
|
1156
3611
|
)
|
|
1157
3612
|
end
|
|
1158
3613
|
def to_hash
|
|
1159
3614
|
end
|
|
1160
|
-
|
|
1161
|
-
# The provider of the voice.
|
|
1162
|
-
module Provider
|
|
1163
|
-
extend Revox::Internal::Type::Enum
|
|
1164
|
-
|
|
1165
|
-
TaggedSymbol =
|
|
1166
|
-
T.type_alias do
|
|
1167
|
-
T.all(
|
|
1168
|
-
Symbol,
|
|
1169
|
-
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice::Provider
|
|
1170
|
-
)
|
|
1171
|
-
end
|
|
1172
|
-
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1173
|
-
|
|
1174
|
-
CARTESIA =
|
|
1175
|
-
T.let(
|
|
1176
|
-
:cartesia,
|
|
1177
|
-
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice::Provider::TaggedSymbol
|
|
1178
|
-
)
|
|
1179
|
-
ELEVENLABS =
|
|
1180
|
-
T.let(
|
|
1181
|
-
:elevenlabs,
|
|
1182
|
-
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice::Provider::TaggedSymbol
|
|
1183
|
-
)
|
|
1184
|
-
|
|
1185
|
-
sig do
|
|
1186
|
-
override.returns(
|
|
1187
|
-
T::Array[
|
|
1188
|
-
Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Voice::Provider::TaggedSymbol
|
|
1189
|
-
]
|
|
1190
|
-
)
|
|
1191
|
-
end
|
|
1192
|
-
def self.values
|
|
1193
|
-
end
|
|
1194
|
-
end
|
|
1195
3615
|
end
|
|
1196
3616
|
|
|
1197
3617
|
class FaqItem < Revox::Internal::Type::BaseModel
|
|
@@ -1317,6 +3737,24 @@ module Revox
|
|
|
1317
3737
|
)
|
|
1318
3738
|
end
|
|
1319
3739
|
|
|
3740
|
+
# Days of the week when calls are allowed, in the recipient's timezone. Default:
|
|
3741
|
+
# Monday through Friday.
|
|
3742
|
+
sig do
|
|
3743
|
+
returns(
|
|
3744
|
+
T::Array[
|
|
3745
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
3746
|
+
]
|
|
3747
|
+
)
|
|
3748
|
+
end
|
|
3749
|
+
attr_accessor :allowed_days
|
|
3750
|
+
|
|
3751
|
+
# If true and max_retry_attempts >= 2, attempt #2 fires immediately (skipping
|
|
3752
|
+
# retry_delay_seconds) when attempt #1 didn't reach a human.
|
|
3753
|
+
# Calling-window/allowed-days checks still apply. Only affects the 1→2 transition.
|
|
3754
|
+
# Default: false.
|
|
3755
|
+
sig { returns(T::Boolean) }
|
|
3756
|
+
attr_accessor :call_twice_in_a_row
|
|
3757
|
+
|
|
1320
3758
|
sig do
|
|
1321
3759
|
returns(
|
|
1322
3760
|
T::Array[
|
|
@@ -1340,6 +3778,11 @@ module Revox
|
|
|
1340
3778
|
# iterations. If not provided, defaults will be used.
|
|
1341
3779
|
sig do
|
|
1342
3780
|
params(
|
|
3781
|
+
allowed_days:
|
|
3782
|
+
T::Array[
|
|
3783
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::CallRetryConfig::AllowedDay::OrSymbol
|
|
3784
|
+
],
|
|
3785
|
+
call_twice_in_a_row: T::Boolean,
|
|
1343
3786
|
calling_windows:
|
|
1344
3787
|
T::Array[
|
|
1345
3788
|
Revox::Models::CampaignRetrieveResponse::Campaign::CallRetryConfig::CallingWindow::OrHash
|
|
@@ -1349,6 +3792,14 @@ module Revox
|
|
|
1349
3792
|
).returns(T.attached_class)
|
|
1350
3793
|
end
|
|
1351
3794
|
def self.new(
|
|
3795
|
+
# Days of the week when calls are allowed, in the recipient's timezone. Default:
|
|
3796
|
+
# Monday through Friday.
|
|
3797
|
+
allowed_days:,
|
|
3798
|
+
# If true and max_retry_attempts >= 2, attempt #2 fires immediately (skipping
|
|
3799
|
+
# retry_delay_seconds) when attempt #1 didn't reach a human.
|
|
3800
|
+
# Calling-window/allowed-days checks still apply. Only affects the 1→2 transition.
|
|
3801
|
+
# Default: false.
|
|
3802
|
+
call_twice_in_a_row:,
|
|
1352
3803
|
calling_windows:,
|
|
1353
3804
|
# Maximum number of call retry attempts. Default: 3.
|
|
1354
3805
|
max_retry_attempts:,
|
|
@@ -1362,6 +3813,11 @@ module Revox
|
|
|
1362
3813
|
sig do
|
|
1363
3814
|
override.returns(
|
|
1364
3815
|
{
|
|
3816
|
+
allowed_days:
|
|
3817
|
+
T::Array[
|
|
3818
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
3819
|
+
],
|
|
3820
|
+
call_twice_in_a_row: T::Boolean,
|
|
1365
3821
|
calling_windows:
|
|
1366
3822
|
T::Array[
|
|
1367
3823
|
Revox::Models::CampaignRetrieveResponse::Campaign::CallRetryConfig::CallingWindow
|
|
@@ -1374,6 +3830,65 @@ module Revox
|
|
|
1374
3830
|
def to_hash
|
|
1375
3831
|
end
|
|
1376
3832
|
|
|
3833
|
+
module AllowedDay
|
|
3834
|
+
extend Revox::Internal::Type::Enum
|
|
3835
|
+
|
|
3836
|
+
TaggedSymbol =
|
|
3837
|
+
T.type_alias do
|
|
3838
|
+
T.all(
|
|
3839
|
+
Symbol,
|
|
3840
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::CallRetryConfig::AllowedDay
|
|
3841
|
+
)
|
|
3842
|
+
end
|
|
3843
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
3844
|
+
|
|
3845
|
+
MONDAY =
|
|
3846
|
+
T.let(
|
|
3847
|
+
:monday,
|
|
3848
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
3849
|
+
)
|
|
3850
|
+
TUESDAY =
|
|
3851
|
+
T.let(
|
|
3852
|
+
:tuesday,
|
|
3853
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
3854
|
+
)
|
|
3855
|
+
WEDNESDAY =
|
|
3856
|
+
T.let(
|
|
3857
|
+
:wednesday,
|
|
3858
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
3859
|
+
)
|
|
3860
|
+
THURSDAY =
|
|
3861
|
+
T.let(
|
|
3862
|
+
:thursday,
|
|
3863
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
3864
|
+
)
|
|
3865
|
+
FRIDAY =
|
|
3866
|
+
T.let(
|
|
3867
|
+
:friday,
|
|
3868
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
3869
|
+
)
|
|
3870
|
+
SATURDAY =
|
|
3871
|
+
T.let(
|
|
3872
|
+
:saturday,
|
|
3873
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
3874
|
+
)
|
|
3875
|
+
SUNDAY =
|
|
3876
|
+
T.let(
|
|
3877
|
+
:sunday,
|
|
3878
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
3879
|
+
)
|
|
3880
|
+
|
|
3881
|
+
sig do
|
|
3882
|
+
override.returns(
|
|
3883
|
+
T::Array[
|
|
3884
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
3885
|
+
]
|
|
3886
|
+
)
|
|
3887
|
+
end
|
|
3888
|
+
def self.values
|
|
3889
|
+
end
|
|
3890
|
+
end
|
|
3891
|
+
|
|
1377
3892
|
class CallingWindow < Revox::Internal::Type::BaseModel
|
|
1378
3893
|
OrHash =
|
|
1379
3894
|
T.type_alias do
|
|
@@ -1434,6 +3949,131 @@ module Revox
|
|
|
1434
3949
|
end
|
|
1435
3950
|
end
|
|
1436
3951
|
|
|
3952
|
+
class CreatedBy < Revox::Internal::Type::BaseModel
|
|
3953
|
+
OrHash =
|
|
3954
|
+
T.type_alias do
|
|
3955
|
+
T.any(
|
|
3956
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::CreatedBy,
|
|
3957
|
+
Revox::Internal::AnyHash
|
|
3958
|
+
)
|
|
3959
|
+
end
|
|
3960
|
+
|
|
3961
|
+
# The database user id (foreign key target on calls.assignee_id).
|
|
3962
|
+
sig { returns(String) }
|
|
3963
|
+
attr_accessor :id
|
|
3964
|
+
|
|
3965
|
+
sig { returns(String) }
|
|
3966
|
+
attr_accessor :email
|
|
3967
|
+
|
|
3968
|
+
sig { returns(T.nilable(String)) }
|
|
3969
|
+
attr_accessor :first_name
|
|
3970
|
+
|
|
3971
|
+
sig { returns(T.nilable(String)) }
|
|
3972
|
+
attr_accessor :last_name
|
|
3973
|
+
|
|
3974
|
+
# A member of the current organization.
|
|
3975
|
+
sig do
|
|
3976
|
+
params(
|
|
3977
|
+
id: String,
|
|
3978
|
+
email: String,
|
|
3979
|
+
first_name: T.nilable(String),
|
|
3980
|
+
last_name: T.nilable(String)
|
|
3981
|
+
).returns(T.attached_class)
|
|
3982
|
+
end
|
|
3983
|
+
def self.new(
|
|
3984
|
+
# The database user id (foreign key target on calls.assignee_id).
|
|
3985
|
+
id:,
|
|
3986
|
+
email:,
|
|
3987
|
+
first_name:,
|
|
3988
|
+
last_name:
|
|
3989
|
+
)
|
|
3990
|
+
end
|
|
3991
|
+
|
|
3992
|
+
sig do
|
|
3993
|
+
override.returns(
|
|
3994
|
+
{
|
|
3995
|
+
id: String,
|
|
3996
|
+
email: String,
|
|
3997
|
+
first_name: T.nilable(String),
|
|
3998
|
+
last_name: T.nilable(String)
|
|
3999
|
+
}
|
|
4000
|
+
)
|
|
4001
|
+
end
|
|
4002
|
+
def to_hash
|
|
4003
|
+
end
|
|
4004
|
+
end
|
|
4005
|
+
|
|
4006
|
+
class FunnelStats < Revox::Internal::Type::BaseModel
|
|
4007
|
+
OrHash =
|
|
4008
|
+
T.type_alias do
|
|
4009
|
+
T.any(
|
|
4010
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::FunnelStats,
|
|
4011
|
+
Revox::Internal::AnyHash
|
|
4012
|
+
)
|
|
4013
|
+
end
|
|
4014
|
+
|
|
4015
|
+
sig { returns(Float) }
|
|
4016
|
+
attr_accessor :hot
|
|
4017
|
+
|
|
4018
|
+
sig { returns(Float) }
|
|
4019
|
+
attr_accessor :talked_to_human
|
|
4020
|
+
|
|
4021
|
+
sig { returns(Float) }
|
|
4022
|
+
attr_accessor :total_leads
|
|
4023
|
+
|
|
4024
|
+
sig do
|
|
4025
|
+
params(
|
|
4026
|
+
hot: Float,
|
|
4027
|
+
talked_to_human: Float,
|
|
4028
|
+
total_leads: Float
|
|
4029
|
+
).returns(T.attached_class)
|
|
4030
|
+
end
|
|
4031
|
+
def self.new(hot:, talked_to_human:, total_leads:)
|
|
4032
|
+
end
|
|
4033
|
+
|
|
4034
|
+
sig do
|
|
4035
|
+
override.returns(
|
|
4036
|
+
{ hot: Float, talked_to_human: Float, total_leads: Float }
|
|
4037
|
+
)
|
|
4038
|
+
end
|
|
4039
|
+
def to_hash
|
|
4040
|
+
end
|
|
4041
|
+
end
|
|
4042
|
+
|
|
4043
|
+
module PausedReason
|
|
4044
|
+
extend Revox::Internal::Type::Enum
|
|
4045
|
+
|
|
4046
|
+
TaggedSymbol =
|
|
4047
|
+
T.type_alias do
|
|
4048
|
+
T.all(
|
|
4049
|
+
Symbol,
|
|
4050
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::PausedReason
|
|
4051
|
+
)
|
|
4052
|
+
end
|
|
4053
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
4054
|
+
|
|
4055
|
+
MANUAL =
|
|
4056
|
+
T.let(
|
|
4057
|
+
:manual,
|
|
4058
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::PausedReason::TaggedSymbol
|
|
4059
|
+
)
|
|
4060
|
+
NO_PRESENCE =
|
|
4061
|
+
T.let(
|
|
4062
|
+
:no_presence,
|
|
4063
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::PausedReason::TaggedSymbol
|
|
4064
|
+
)
|
|
4065
|
+
|
|
4066
|
+
sig do
|
|
4067
|
+
override.returns(
|
|
4068
|
+
T::Array[
|
|
4069
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::PausedReason::TaggedSymbol
|
|
4070
|
+
]
|
|
4071
|
+
)
|
|
4072
|
+
end
|
|
4073
|
+
def self.values
|
|
4074
|
+
end
|
|
4075
|
+
end
|
|
4076
|
+
|
|
1437
4077
|
class RowStats < Revox::Internal::Type::BaseModel
|
|
1438
4078
|
OrHash =
|
|
1439
4079
|
T.type_alias do
|
|
@@ -1489,6 +4129,46 @@ module Revox
|
|
|
1489
4129
|
def to_hash
|
|
1490
4130
|
end
|
|
1491
4131
|
end
|
|
4132
|
+
|
|
4133
|
+
# The status of the structured output extraction.
|
|
4134
|
+
module StructuredOutputExtraction
|
|
4135
|
+
extend Revox::Internal::Type::Enum
|
|
4136
|
+
|
|
4137
|
+
TaggedSymbol =
|
|
4138
|
+
T.type_alias do
|
|
4139
|
+
T.all(
|
|
4140
|
+
Symbol,
|
|
4141
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::StructuredOutputExtraction
|
|
4142
|
+
)
|
|
4143
|
+
end
|
|
4144
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
4145
|
+
|
|
4146
|
+
NONE =
|
|
4147
|
+
T.let(
|
|
4148
|
+
:none,
|
|
4149
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::StructuredOutputExtraction::TaggedSymbol
|
|
4150
|
+
)
|
|
4151
|
+
RUNNING =
|
|
4152
|
+
T.let(
|
|
4153
|
+
:running,
|
|
4154
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::StructuredOutputExtraction::TaggedSymbol
|
|
4155
|
+
)
|
|
4156
|
+
COMPLETED =
|
|
4157
|
+
T.let(
|
|
4158
|
+
:completed,
|
|
4159
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::StructuredOutputExtraction::TaggedSymbol
|
|
4160
|
+
)
|
|
4161
|
+
|
|
4162
|
+
sig do
|
|
4163
|
+
override.returns(
|
|
4164
|
+
T::Array[
|
|
4165
|
+
Revox::Models::CampaignRetrieveResponse::Campaign::StructuredOutputExtraction::TaggedSymbol
|
|
4166
|
+
]
|
|
4167
|
+
)
|
|
4168
|
+
end
|
|
4169
|
+
def self.values
|
|
4170
|
+
end
|
|
4171
|
+
end
|
|
1492
4172
|
end
|
|
1493
4173
|
end
|
|
1494
4174
|
end
|