revox 0.2.0 → 0.4.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 +36 -0
- data/README.md +38 -38
- data/lib/revox/client.rb +8 -0
- data/lib/revox/internal/type/base_model.rb +3 -3
- data/lib/revox/models/assistant_clone_params.rb +20 -0
- data/lib/revox/models/assistant_clone_response.rb +1616 -0
- data/lib/revox/models/assistant_create_params.rb +90 -66
- data/lib/revox/models/assistant_create_response.rb +87 -65
- data/lib/revox/models/assistant_list_response.rb +87 -65
- data/lib/revox/models/assistant_retrieve_response.rb +86 -65
- data/lib/revox/models/assistant_update_params.rb +90 -66
- data/lib/revox/models/assistant_update_response.rb +87 -65
- data/lib/revox/models/auth_status_retrieve_params.rb +14 -0
- data/lib/revox/models/auth_status_retrieve_response.rb +17 -0
- data/lib/revox/models/call_cancel_params.rb +20 -0
- data/lib/revox/models/call_cancel_response.rb +16 -0
- data/lib/revox/models/call_create_params.rb +117 -90
- data/lib/revox/models/call_create_response.rb +680 -90
- data/lib/revox/models/call_export_params.rb +203 -0
- data/lib/revox/models/call_export_response.rb +22 -0
- data/lib/revox/models/call_pause_params.rb +20 -0
- data/lib/revox/models/call_pause_response.rb +16 -0
- data/lib/revox/models/call_phone_history_params.rb +14 -0
- data/lib/revox/models/call_phone_history_response.rb +95 -0
- data/lib/revox/models/call_resume_params.rb +20 -0
- data/lib/revox/models/call_resume_response.rb +16 -0
- data/lib/revox/models/call_retrieve_response.rb +681 -90
- data/lib/revox/models/call_search_params.rb +169 -0
- data/lib/revox/models/call_search_response.rb +3694 -0
- data/lib/revox/models/campaign_create_params.rb +7 -57
- data/lib/revox/models/campaign_create_response.rb +108 -119
- data/lib/revox/models/campaign_get_rows_response.rb +682 -90
- data/lib/revox/models/campaign_list_response.rb +108 -119
- data/lib/revox/models/campaign_pause_params.rb +20 -0
- data/lib/revox/models/campaign_pause_response.rb +16 -0
- data/lib/revox/models/campaign_resume_params.rb +20 -0
- data/lib/revox/models/campaign_resume_response.rb +16 -0
- data/lib/revox/models/campaign_retrieve_response.rb +108 -119
- data/lib/revox/models/campaign_statistics_params.rb +20 -0
- data/lib/revox/models/campaign_statistics_response.rb +514 -0
- data/lib/revox/models/campaign_update_params.rb +165 -0
- data/lib/revox/models/campaign_update_response.rb +2019 -0
- data/lib/revox/models/phone_number_delete_params.rb +20 -0
- data/lib/revox/models/phone_number_delete_response.rb +16 -0
- data/lib/revox/models/phone_number_list_params.rb +14 -0
- data/lib/revox/models/phone_number_list_response.rb +1799 -0
- data/lib/revox/models/phone_number_update_params.rb +32 -0
- data/lib/revox/models/phone_number_update_response.rb +1799 -0
- data/lib/revox/models/user_retrieve_params.rb +14 -0
- data/lib/revox/models/user_retrieve_response.rb +99 -0
- data/lib/revox/models/voice_clone_params.rb +78 -0
- data/lib/revox/models/voice_clone_response.rb +40 -0
- data/lib/revox/models/voice_delete_params.rb +20 -0
- data/lib/revox/models/voice_delete_response.rb +16 -0
- data/lib/revox/models/voice_list_response.rb +1 -0
- data/lib/revox/models/voice_preview_params.rb +1 -0
- data/lib/revox/models/voice_retrieve_params.rb +1 -0
- data/lib/revox/models.rb +35 -1
- data/lib/revox/resources/assistants.rb +31 -10
- data/lib/revox/resources/auth_status.rb +32 -0
- data/lib/revox/resources/call.rb +149 -4
- data/lib/revox/resources/campaigns.rb +110 -11
- data/lib/revox/resources/phone_numbers.rb +74 -0
- data/lib/revox/resources/users.rb +17 -3
- data/lib/revox/resources/voices.rb +50 -0
- data/lib/revox/version.rb +1 -1
- data/lib/revox.rb +38 -5
- data/rbi/revox/client.rbi +6 -0
- data/rbi/revox/models/assistant_clone_params.rbi +33 -0
- data/rbi/revox/models/assistant_clone_response.rbi +3351 -0
- data/rbi/revox/models/assistant_create_params.rbi +148 -162
- data/rbi/revox/models/assistant_create_response.rbi +157 -147
- data/rbi/revox/models/assistant_list_response.rbi +157 -147
- data/rbi/revox/models/assistant_retrieve_response.rbi +153 -147
- data/rbi/revox/models/assistant_update_params.rbi +148 -162
- data/rbi/revox/models/assistant_update_response.rbi +157 -147
- data/rbi/revox/models/auth_status_retrieve_params.rbi +27 -0
- data/rbi/revox/models/auth_status_retrieve_response.rbi +30 -0
- data/rbi/revox/models/call_cancel_params.rbi +33 -0
- data/rbi/revox/models/call_cancel_response.rbi +23 -0
- data/rbi/revox/models/call_create_params.rbi +190 -187
- data/rbi/revox/models/call_create_response.rbi +1150 -227
- data/rbi/revox/models/call_export_params.rbi +446 -0
- data/rbi/revox/models/call_export_response.rbi +26 -0
- data/rbi/revox/models/call_pause_params.rbi +31 -0
- data/rbi/revox/models/call_pause_response.rbi +23 -0
- data/rbi/revox/models/call_phone_history_params.rbi +27 -0
- data/rbi/revox/models/call_phone_history_response.rbi +209 -0
- data/rbi/revox/models/call_resume_params.rbi +33 -0
- data/rbi/revox/models/call_resume_response.rbi +23 -0
- data/rbi/revox/models/call_retrieve_response.rbi +1150 -227
- data/rbi/revox/models/call_search_params.rbi +281 -0
- data/rbi/revox/models/call_search_response.rbi +7504 -0
- data/rbi/revox/models/campaign_create_params.rbi +9 -87
- data/rbi/revox/models/campaign_create_response.rbi +188 -266
- data/rbi/revox/models/campaign_get_rows_response.rbi +1150 -225
- data/rbi/revox/models/campaign_list_response.rbi +188 -262
- data/rbi/revox/models/campaign_pause_params.rbi +33 -0
- data/rbi/revox/models/campaign_pause_response.rbi +23 -0
- data/rbi/revox/models/campaign_resume_params.rbi +33 -0
- data/rbi/revox/models/campaign_resume_response.rbi +23 -0
- data/rbi/revox/models/campaign_retrieve_response.rbi +188 -266
- data/rbi/revox/models/campaign_statistics_params.rbi +33 -0
- data/rbi/revox/models/campaign_statistics_response.rbi +1069 -0
- data/rbi/revox/models/campaign_update_params.rbi +313 -0
- data/rbi/revox/models/campaign_update_response.rbi +4092 -0
- data/rbi/revox/models/phone_number_delete_params.rbi +33 -0
- data/rbi/revox/models/phone_number_delete_response.rbi +26 -0
- data/rbi/revox/models/phone_number_list_params.rbi +27 -0
- data/rbi/revox/models/phone_number_list_response.rbi +3690 -0
- data/rbi/revox/models/phone_number_update_params.rbi +53 -0
- data/rbi/revox/models/phone_number_update_response.rbi +3693 -0
- data/rbi/revox/models/user_retrieve_params.rbi +27 -0
- data/rbi/revox/models/user_retrieve_response.rbi +140 -0
- data/rbi/revox/models/voice_clone_params.rbi +141 -0
- data/rbi/revox/models/voice_clone_response.rbi +53 -0
- data/rbi/revox/models/voice_delete_params.rbi +33 -0
- data/rbi/revox/models/voice_delete_response.rbi +23 -0
- data/rbi/revox/models/voice_list_response.rbi +5 -0
- data/rbi/revox/models/voice_preview_params.rbi +2 -0
- data/rbi/revox/models/voice_retrieve_params.rbi +2 -0
- data/rbi/revox/models.rbi +35 -1
- data/rbi/revox/resources/assistants.rbi +52 -22
- data/rbi/revox/resources/auth_status.rbi +21 -0
- data/rbi/revox/resources/call.rbi +114 -4
- data/rbi/revox/resources/campaigns.rbi +77 -15
- data/rbi/revox/resources/phone_numbers.rbi +43 -0
- data/rbi/revox/resources/users.rbi +8 -2
- data/rbi/revox/resources/voices.rbi +39 -0
- data/sig/revox/client.rbs +4 -0
- data/sig/revox/models/assistant_clone_params.rbs +20 -0
- data/sig/revox/models/assistant_clone_response.rbs +1310 -0
- data/sig/revox/models/assistant_create_params.rbs +39 -58
- data/sig/revox/models/assistant_create_response.rbs +46 -54
- data/sig/revox/models/assistant_list_response.rbs +46 -54
- data/sig/revox/models/assistant_retrieve_response.rbs +46 -54
- data/sig/revox/models/assistant_update_params.rbs +39 -58
- data/sig/revox/models/assistant_update_response.rbs +46 -54
- data/sig/revox/models/auth_status_retrieve_params.rbs +15 -0
- data/sig/revox/models/auth_status_retrieve_response.rbs +13 -0
- data/sig/revox/models/call_cancel_params.rbs +20 -0
- data/sig/revox/models/call_cancel_response.rbs +13 -0
- data/sig/revox/models/call_create_params.rbs +50 -71
- data/sig/revox/models/call_create_response.rbs +473 -77
- data/sig/revox/models/call_export_params.rbs +230 -0
- data/sig/revox/models/call_export_response.rbs +15 -0
- data/sig/revox/models/call_pause_params.rbs +20 -0
- data/sig/revox/models/call_pause_response.rbs +13 -0
- data/sig/revox/models/call_phone_history_params.rbs +15 -0
- data/sig/revox/models/call_phone_history_response.rbs +93 -0
- data/sig/revox/models/call_resume_params.rbs +20 -0
- data/sig/revox/models/call_resume_response.rbs +13 -0
- data/sig/revox/models/call_retrieve_response.rbs +473 -77
- data/sig/revox/models/call_search_params.rbs +194 -0
- data/sig/revox/models/call_search_response.rbs +3045 -0
- data/sig/revox/models/campaign_create_params.rbs +5 -50
- data/sig/revox/models/campaign_create_response.rbs +62 -98
- data/sig/revox/models/campaign_get_rows_response.rbs +472 -73
- data/sig/revox/models/campaign_list_response.rbs +62 -98
- data/sig/revox/models/campaign_pause_params.rbs +20 -0
- data/sig/revox/models/campaign_pause_response.rbs +13 -0
- data/sig/revox/models/campaign_resume_params.rbs +20 -0
- data/sig/revox/models/campaign_resume_response.rbs +13 -0
- data/sig/revox/models/campaign_retrieve_response.rbs +62 -98
- data/sig/revox/models/campaign_statistics_params.rbs +20 -0
- data/sig/revox/models/campaign_statistics_response.rbs +489 -0
- data/sig/revox/models/campaign_update_params.rbs +135 -0
- data/sig/revox/models/campaign_update_response.rbs +1658 -0
- data/sig/revox/models/phone_number_delete_params.rbs +20 -0
- data/sig/revox/models/phone_number_delete_response.rbs +13 -0
- data/sig/revox/models/phone_number_list_params.rbs +15 -0
- data/sig/revox/models/phone_number_list_response.rbs +1454 -0
- data/sig/revox/models/phone_number_update_params.rbs +32 -0
- data/sig/revox/models/phone_number_update_response.rbs +1452 -0
- data/sig/revox/models/user_retrieve_params.rbs +14 -0
- data/sig/revox/models/user_retrieve_response.rbs +71 -0
- data/sig/revox/models/voice_clone_params.rbs +79 -0
- data/sig/revox/models/voice_clone_response.rbs +40 -0
- data/sig/revox/models/voice_delete_params.rbs +20 -0
- data/sig/revox/models/voice_delete_response.rbs +13 -0
- data/sig/revox/models/voice_list_response.rbs +2 -1
- data/sig/revox/models/voice_preview_params.rbs +2 -1
- data/sig/revox/models/voice_retrieve_params.rbs +2 -1
- data/sig/revox/models.rbs +35 -1
- data/sig/revox/resources/assistants.rbs +9 -4
- data/sig/revox/resources/auth_status.rbs +11 -0
- data/sig/revox/resources/call.rbs +46 -1
- data/sig/revox/resources/campaigns.rbs +24 -3
- data/sig/revox/resources/phone_numbers.rbs +23 -0
- data/sig/revox/resources/users.rbs +3 -1
- data/sig/revox/resources/voices.rbs +13 -0
- metadata +116 -17
- data/lib/revox/models/users/me_retrieve_params.rb +0 -16
- data/lib/revox/models/users/me_retrieve_response.rb +0 -101
- data/lib/revox/models/users/me_update_params.rb +0 -22
- data/lib/revox/models/users/me_update_response.rb +0 -101
- data/lib/revox/resources/users/me.rb +0 -55
- data/rbi/revox/models/users/me_retrieve_params.rbi +0 -29
- data/rbi/revox/models/users/me_retrieve_response.rbi +0 -149
- data/rbi/revox/models/users/me_update_params.rbi +0 -43
- data/rbi/revox/models/users/me_update_response.rbi +0 -149
- data/rbi/revox/resources/users/me.rbi +0 -33
- data/sig/revox/models/users/me_retrieve_params.rbs +0 -16
- data/sig/revox/models/users/me_retrieve_response.rbs +0 -75
- data/sig/revox/models/users/me_update_params.rbs +0 -28
- data/sig/revox/models/users/me_update_response.rbs +0 -75
- data/sig/revox/resources/users/me.rbs +0 -18
|
@@ -93,25 +93,6 @@ module Revox
|
|
|
93
93
|
sig { returns(T.nilable(String)) }
|
|
94
94
|
attr_accessor :email_notification_address
|
|
95
95
|
|
|
96
|
-
# The language used for the notification email content. One of "en" or "fr".
|
|
97
|
-
# Defaults to "en".
|
|
98
|
-
sig do
|
|
99
|
-
returns(
|
|
100
|
-
T.nilable(
|
|
101
|
-
Revox::AssistantCreateParams::EmailNotificationLanguage::OrSymbol
|
|
102
|
-
)
|
|
103
|
-
)
|
|
104
|
-
end
|
|
105
|
-
attr_reader :email_notification_language
|
|
106
|
-
|
|
107
|
-
sig do
|
|
108
|
-
params(
|
|
109
|
-
email_notification_language:
|
|
110
|
-
Revox::AssistantCreateParams::EmailNotificationLanguage::OrSymbol
|
|
111
|
-
).void
|
|
112
|
-
end
|
|
113
|
-
attr_writer :email_notification_language
|
|
114
|
-
|
|
115
96
|
# Which call outcomes trigger an email notification. E.g. ["interested",
|
|
116
97
|
# "completed", "none"]. Use "none" when outcome is null.
|
|
117
98
|
sig do
|
|
@@ -185,8 +166,8 @@ module Revox
|
|
|
185
166
|
sig { returns(T.nilable(String)) }
|
|
186
167
|
attr_accessor :from_phone_number
|
|
187
168
|
|
|
188
|
-
# When
|
|
189
|
-
# trunk must allow REFER/PSTN). Omit or null when transfer is disabled.
|
|
169
|
+
# When transfer_destinations is non-empty: "warm" (AI bridges) or "cold" (SIP
|
|
170
|
+
# REFER; trunk must allow REFER/PSTN). Omit or null when transfer is disabled.
|
|
190
171
|
sig do
|
|
191
172
|
returns(
|
|
192
173
|
T.nilable(Revox::AssistantCreateParams::HumanTransferMode::OrSymbol)
|
|
@@ -259,6 +240,14 @@ module Revox
|
|
|
259
240
|
end
|
|
260
241
|
attr_writer :position
|
|
261
242
|
|
|
243
|
+
# Inbound calls only. URL fetched over HTTP GET right before the call is answered,
|
|
244
|
+
# with `{{phone}}` replaced by the caller's number in E.164 format (URL-encoded).
|
|
245
|
+
# It must return `{"prompt_variables": {...}}` covering every `{{variable}}` the
|
|
246
|
+
# assistant declares, otherwise the call is errored. Must be an http(s) URL
|
|
247
|
+
# containing `{{phone}}`. When null, no lookup is performed.
|
|
248
|
+
sig { returns(T.nilable(String)) }
|
|
249
|
+
attr_accessor :precall_lookup_url
|
|
250
|
+
|
|
262
251
|
# Visual prompt constructor data (nodes, edges, positions). Used by the UI to
|
|
263
252
|
# re-open the visual editor. Does not affect call behavior — the flattened prompt
|
|
264
253
|
# field is what the LLM receives.
|
|
@@ -376,10 +365,16 @@ module Revox
|
|
|
376
365
|
sig { params(thinking_sound_volume: Float).void }
|
|
377
366
|
attr_writer :thinking_sound_volume
|
|
378
367
|
|
|
379
|
-
#
|
|
380
|
-
#
|
|
381
|
-
|
|
382
|
-
|
|
368
|
+
# Where calls can be transferred to when users ask to speak to a human. With a
|
|
369
|
+
# single entry the assistant always transfers there; with several, it picks one at
|
|
370
|
+
# transfer time by applying the routing rules written in the assistant's own
|
|
371
|
+
# prompt (which refer to the destination labels). Empty or null disables transfer.
|
|
372
|
+
sig do
|
|
373
|
+
returns(
|
|
374
|
+
T.nilable(T::Array[Revox::AssistantCreateParams::TransferDestination])
|
|
375
|
+
)
|
|
376
|
+
end
|
|
377
|
+
attr_accessor :transfer_destinations
|
|
383
378
|
|
|
384
379
|
# Assistant kind. 'standalone' (default) is a normal assistant, 'multi-step'
|
|
385
380
|
# orchestrates a flow of sub-assistants, 'sub-assistant' is a step inside a
|
|
@@ -456,8 +451,6 @@ module Revox
|
|
|
456
451
|
T::Array[Revox::AssistantCreateParams::CustomTool::OrHash]
|
|
457
452
|
),
|
|
458
453
|
email_notification_address: T.nilable(String),
|
|
459
|
-
email_notification_language:
|
|
460
|
-
Revox::AssistantCreateParams::EmailNotificationLanguage::OrSymbol,
|
|
461
454
|
email_notification_outcomes:
|
|
462
455
|
T.nilable(
|
|
463
456
|
T::Array[
|
|
@@ -487,6 +480,7 @@ module Revox
|
|
|
487
480
|
max_call_duration_secs: Float,
|
|
488
481
|
max_duration_end_message: T.nilable(String),
|
|
489
482
|
position: T.nilable(Revox::AssistantCreateParams::Position::OrHash),
|
|
483
|
+
precall_lookup_url: T.nilable(String),
|
|
490
484
|
prompt_flow:
|
|
491
485
|
T.nilable(Revox::AssistantCreateParams::PromptFlow::OrHash),
|
|
492
486
|
slack: T.nilable(Revox::AssistantCreateParams::Slack::OrHash),
|
|
@@ -504,7 +498,12 @@ module Revox
|
|
|
504
498
|
T.nilable(Revox::AssistantCreateParams::ThinkingSound::OrSymbol),
|
|
505
499
|
thinking_sound_probability: Float,
|
|
506
500
|
thinking_sound_volume: Float,
|
|
507
|
-
|
|
501
|
+
transfer_destinations:
|
|
502
|
+
T.nilable(
|
|
503
|
+
T::Array[
|
|
504
|
+
Revox::AssistantCreateParams::TransferDestination::OrHash
|
|
505
|
+
]
|
|
506
|
+
),
|
|
508
507
|
type: Revox::AssistantCreateParams::Type::OrSymbol,
|
|
509
508
|
voice: Revox::AssistantCreateParams::Voice::OrHash,
|
|
510
509
|
voicemail_message: T.nilable(String),
|
|
@@ -544,9 +543,6 @@ module Revox
|
|
|
544
543
|
# outcome. Accepts a single email or a comma-separated list (e.g. "alice@x.com,
|
|
545
544
|
# bob@y.com").
|
|
546
545
|
email_notification_address: nil,
|
|
547
|
-
# The language used for the notification email content. One of "en" or "fr".
|
|
548
|
-
# Defaults to "en".
|
|
549
|
-
email_notification_language: nil,
|
|
550
546
|
# Which call outcomes trigger an email notification. E.g. ["interested",
|
|
551
547
|
# "completed", "none"]. Use "none" when outcome is null.
|
|
552
548
|
email_notification_outcomes: nil,
|
|
@@ -568,8 +564,8 @@ module Revox
|
|
|
568
564
|
# Must be a phone number owned by the organization in E.164 format (e.g.
|
|
569
565
|
# +1234567890). When null, the organization's default phone number is used.
|
|
570
566
|
from_phone_number: nil,
|
|
571
|
-
# When
|
|
572
|
-
# trunk must allow REFER/PSTN). Omit or null when transfer is disabled.
|
|
567
|
+
# When transfer_destinations is non-empty: "warm" (AI bridges) or "cold" (SIP
|
|
568
|
+
# REFER; trunk must allow REFER/PSTN). Omit or null when transfer is disabled.
|
|
573
569
|
human_transfer_mode: nil,
|
|
574
570
|
# Enable IVR navigation tools. When enabled, the assistant can send DTMF tones and
|
|
575
571
|
# skip turns to navigate phone menus.
|
|
@@ -587,6 +583,12 @@ module Revox
|
|
|
587
583
|
max_duration_end_message: nil,
|
|
588
584
|
# Canvas position of this assistant's node in its multi-step flow editor.
|
|
589
585
|
position: nil,
|
|
586
|
+
# Inbound calls only. URL fetched over HTTP GET right before the call is answered,
|
|
587
|
+
# with `{{phone}}` replaced by the caller's number in E.164 format (URL-encoded).
|
|
588
|
+
# It must return `{"prompt_variables": {...}}` covering every `{{variable}}` the
|
|
589
|
+
# assistant declares, otherwise the call is errored. Must be an http(s) URL
|
|
590
|
+
# containing `{{phone}}`. When null, no lookup is performed.
|
|
591
|
+
precall_lookup_url: nil,
|
|
590
592
|
# Visual prompt constructor data (nodes, edges, positions). Used by the UI to
|
|
591
593
|
# re-open the visual editor. Does not affect call behavior — the flattened prompt
|
|
592
594
|
# field is what the LLM receives.
|
|
@@ -623,9 +625,11 @@ module Revox
|
|
|
623
625
|
thinking_sound_probability: nil,
|
|
624
626
|
# Volume of the thinking sound (0 = silent, 1 = max).
|
|
625
627
|
thinking_sound_volume: nil,
|
|
626
|
-
#
|
|
627
|
-
#
|
|
628
|
-
|
|
628
|
+
# Where calls can be transferred to when users ask to speak to a human. With a
|
|
629
|
+
# single entry the assistant always transfers there; with several, it picks one at
|
|
630
|
+
# transfer time by applying the routing rules written in the assistant's own
|
|
631
|
+
# prompt (which refer to the destination labels). Empty or null disables transfer.
|
|
632
|
+
transfer_destinations: nil,
|
|
629
633
|
# Assistant kind. 'standalone' (default) is a normal assistant, 'multi-step'
|
|
630
634
|
# orchestrates a flow of sub-assistants, 'sub-assistant' is a step inside a
|
|
631
635
|
# multi-step flow (hidden from the assistants list). Flow transitions are managed
|
|
@@ -677,8 +681,6 @@ module Revox
|
|
|
677
681
|
custom_tools:
|
|
678
682
|
T.nilable(T::Array[Revox::AssistantCreateParams::CustomTool]),
|
|
679
683
|
email_notification_address: T.nilable(String),
|
|
680
|
-
email_notification_language:
|
|
681
|
-
Revox::AssistantCreateParams::EmailNotificationLanguage::OrSymbol,
|
|
682
684
|
email_notification_outcomes:
|
|
683
685
|
T.nilable(
|
|
684
686
|
T::Array[
|
|
@@ -708,6 +710,7 @@ module Revox
|
|
|
708
710
|
max_call_duration_secs: Float,
|
|
709
711
|
max_duration_end_message: T.nilable(String),
|
|
710
712
|
position: T.nilable(Revox::AssistantCreateParams::Position),
|
|
713
|
+
precall_lookup_url: T.nilable(String),
|
|
711
714
|
prompt_flow: T.nilable(Revox::AssistantCreateParams::PromptFlow),
|
|
712
715
|
slack: T.nilable(Revox::AssistantCreateParams::Slack),
|
|
713
716
|
sms_enabled: T::Boolean,
|
|
@@ -721,7 +724,10 @@ module Revox
|
|
|
721
724
|
T.nilable(Revox::AssistantCreateParams::ThinkingSound::OrSymbol),
|
|
722
725
|
thinking_sound_probability: Float,
|
|
723
726
|
thinking_sound_volume: Float,
|
|
724
|
-
|
|
727
|
+
transfer_destinations:
|
|
728
|
+
T.nilable(
|
|
729
|
+
T::Array[Revox::AssistantCreateParams::TransferDestination]
|
|
730
|
+
),
|
|
725
731
|
type: Revox::AssistantCreateParams::Type::OrSymbol,
|
|
726
732
|
voice: Revox::AssistantCreateParams::Voice,
|
|
727
733
|
voicemail_message: T.nilable(String),
|
|
@@ -765,21 +771,6 @@ module Revox
|
|
|
765
771
|
:requested_callback_later,
|
|
766
772
|
Revox::AssistantCreateParams::AfterCallSMSOutcome::TaggedSymbol
|
|
767
773
|
)
|
|
768
|
-
REQUESTED_CALLBACK_NEW_NUMBER =
|
|
769
|
-
T.let(
|
|
770
|
-
:requested_callback_new_number,
|
|
771
|
-
Revox::AssistantCreateParams::AfterCallSMSOutcome::TaggedSymbol
|
|
772
|
-
)
|
|
773
|
-
DO_NOT_CONTACT =
|
|
774
|
-
T.let(
|
|
775
|
-
:do_not_contact,
|
|
776
|
-
Revox::AssistantCreateParams::AfterCallSMSOutcome::TaggedSymbol
|
|
777
|
-
)
|
|
778
|
-
AI_AVERSE =
|
|
779
|
-
T.let(
|
|
780
|
-
:ai_averse,
|
|
781
|
-
Revox::AssistantCreateParams::AfterCallSMSOutcome::TaggedSymbol
|
|
782
|
-
)
|
|
783
774
|
NONE =
|
|
784
775
|
T.let(
|
|
785
776
|
:none,
|
|
@@ -1045,7 +1036,8 @@ module Revox
|
|
|
1045
1036
|
sig { returns(String) }
|
|
1046
1037
|
attr_accessor :calling_window_start_time
|
|
1047
1038
|
|
|
1048
|
-
# Delay between retry attempts in seconds.
|
|
1039
|
+
# Delay between retry attempts in seconds. 0 retries as soon as the calling window
|
|
1040
|
+
# allows. Default: 7200 (2 hours).
|
|
1049
1041
|
sig { returns(Integer) }
|
|
1050
1042
|
attr_accessor :retry_delay_seconds
|
|
1051
1043
|
|
|
@@ -1065,7 +1057,8 @@ module Revox
|
|
|
1065
1057
|
# timezone_override if provided). Format: 'HH:mm' (24-hour) or 'H:mma' (12-hour).
|
|
1066
1058
|
# Examples: '09:00', '10am'. Default: '10:00'.
|
|
1067
1059
|
calling_window_start_time:,
|
|
1068
|
-
# Delay between retry attempts in seconds.
|
|
1060
|
+
# Delay between retry attempts in seconds. 0 retries as soon as the calling window
|
|
1061
|
+
# allows. Default: 7200 (2 hours).
|
|
1069
1062
|
retry_delay_seconds:
|
|
1070
1063
|
)
|
|
1071
1064
|
end
|
|
@@ -1428,42 +1421,6 @@ module Revox
|
|
|
1428
1421
|
end
|
|
1429
1422
|
end
|
|
1430
1423
|
|
|
1431
|
-
# The language used for the notification email content. One of "en" or "fr".
|
|
1432
|
-
# Defaults to "en".
|
|
1433
|
-
module EmailNotificationLanguage
|
|
1434
|
-
extend Revox::Internal::Type::Enum
|
|
1435
|
-
|
|
1436
|
-
TaggedSymbol =
|
|
1437
|
-
T.type_alias do
|
|
1438
|
-
T.all(
|
|
1439
|
-
Symbol,
|
|
1440
|
-
Revox::AssistantCreateParams::EmailNotificationLanguage
|
|
1441
|
-
)
|
|
1442
|
-
end
|
|
1443
|
-
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1444
|
-
|
|
1445
|
-
EN =
|
|
1446
|
-
T.let(
|
|
1447
|
-
:en,
|
|
1448
|
-
Revox::AssistantCreateParams::EmailNotificationLanguage::TaggedSymbol
|
|
1449
|
-
)
|
|
1450
|
-
FR =
|
|
1451
|
-
T.let(
|
|
1452
|
-
:fr,
|
|
1453
|
-
Revox::AssistantCreateParams::EmailNotificationLanguage::TaggedSymbol
|
|
1454
|
-
)
|
|
1455
|
-
|
|
1456
|
-
sig do
|
|
1457
|
-
override.returns(
|
|
1458
|
-
T::Array[
|
|
1459
|
-
Revox::AssistantCreateParams::EmailNotificationLanguage::TaggedSymbol
|
|
1460
|
-
]
|
|
1461
|
-
)
|
|
1462
|
-
end
|
|
1463
|
-
def self.values
|
|
1464
|
-
end
|
|
1465
|
-
end
|
|
1466
|
-
|
|
1467
1424
|
module EmailNotificationOutcome
|
|
1468
1425
|
extend Revox::Internal::Type::Enum
|
|
1469
1426
|
|
|
@@ -1496,21 +1453,6 @@ module Revox
|
|
|
1496
1453
|
:requested_callback_later,
|
|
1497
1454
|
Revox::AssistantCreateParams::EmailNotificationOutcome::TaggedSymbol
|
|
1498
1455
|
)
|
|
1499
|
-
REQUESTED_CALLBACK_NEW_NUMBER =
|
|
1500
|
-
T.let(
|
|
1501
|
-
:requested_callback_new_number,
|
|
1502
|
-
Revox::AssistantCreateParams::EmailNotificationOutcome::TaggedSymbol
|
|
1503
|
-
)
|
|
1504
|
-
DO_NOT_CONTACT =
|
|
1505
|
-
T.let(
|
|
1506
|
-
:do_not_contact,
|
|
1507
|
-
Revox::AssistantCreateParams::EmailNotificationOutcome::TaggedSymbol
|
|
1508
|
-
)
|
|
1509
|
-
AI_AVERSE =
|
|
1510
|
-
T.let(
|
|
1511
|
-
:ai_averse,
|
|
1512
|
-
Revox::AssistantCreateParams::EmailNotificationOutcome::TaggedSymbol
|
|
1513
|
-
)
|
|
1514
1456
|
NONE =
|
|
1515
1457
|
T.let(
|
|
1516
1458
|
:none,
|
|
@@ -1594,8 +1536,8 @@ module Revox
|
|
|
1594
1536
|
end
|
|
1595
1537
|
end
|
|
1596
1538
|
|
|
1597
|
-
# When
|
|
1598
|
-
# trunk must allow REFER/PSTN). Omit or null when transfer is disabled.
|
|
1539
|
+
# When transfer_destinations is non-empty: "warm" (AI bridges) or "cold" (SIP
|
|
1540
|
+
# REFER; trunk must allow REFER/PSTN). Omit or null when transfer is disabled.
|
|
1599
1541
|
module HumanTransferMode
|
|
1600
1542
|
extend Revox::Internal::Type::Enum
|
|
1601
1543
|
|
|
@@ -2163,9 +2105,11 @@ module Revox
|
|
|
2163
2105
|
T.any(Revox::AssistantCreateParams::Slack, Revox::Internal::AnyHash)
|
|
2164
2106
|
end
|
|
2165
2107
|
|
|
2166
|
-
# The Slack
|
|
2167
|
-
|
|
2168
|
-
|
|
2108
|
+
# The Slack channels eligible to receive the notification. When more than one is
|
|
2109
|
+
# configured, the agent prompt may define routing rules to narrow it down per
|
|
2110
|
+
# call; with no such rules every channel here is notified.
|
|
2111
|
+
sig { returns(T::Array[Revox::AssistantCreateParams::Slack::Channel]) }
|
|
2112
|
+
attr_accessor :channels
|
|
2169
2113
|
|
|
2170
2114
|
# The Nango connection ID linking the org's Slack workspace to Revox.
|
|
2171
2115
|
sig { returns(String) }
|
|
@@ -2180,15 +2124,11 @@ module Revox
|
|
|
2180
2124
|
end
|
|
2181
2125
|
attr_accessor :outcomes
|
|
2182
2126
|
|
|
2183
|
-
# Human-readable Slack channel name, cached for display in the UI.
|
|
2184
|
-
sig { returns(T.nilable(String)) }
|
|
2185
|
-
attr_accessor :channel_name
|
|
2186
|
-
|
|
2187
2127
|
# Optional message template. Supports {{summary}}, {{outcome}}, {{phone}},
|
|
2188
2128
|
# {{call_url}}, {{assistant_name}}, {{campaign_name}}, {{first_name}},
|
|
2189
|
-
# {{last_name}}, {{email}}, {{company}}, {{
|
|
2190
|
-
# prompt_variables and structured_output keys. When
|
|
2191
|
-
# is used.
|
|
2129
|
+
# {{last_name}}, {{email}}, {{company}}, {{job_title}}, {{contact_name}},
|
|
2130
|
+
# {{contact_line}}, plus prompt_variables and structured_output keys. When
|
|
2131
|
+
# null/empty a default template is used.
|
|
2192
2132
|
sig { returns(T.nilable(String)) }
|
|
2193
2133
|
attr_accessor :template
|
|
2194
2134
|
|
|
@@ -2196,29 +2136,29 @@ module Revox
|
|
|
2196
2136
|
# a call ends with one of the configured outcomes.
|
|
2197
2137
|
sig do
|
|
2198
2138
|
params(
|
|
2199
|
-
|
|
2139
|
+
channels:
|
|
2140
|
+
T::Array[Revox::AssistantCreateParams::Slack::Channel::OrHash],
|
|
2200
2141
|
connection_id: String,
|
|
2201
2142
|
outcomes:
|
|
2202
2143
|
T::Array[Revox::AssistantCreateParams::Slack::Outcome::OrSymbol],
|
|
2203
|
-
channel_name: T.nilable(String),
|
|
2204
2144
|
template: T.nilable(String)
|
|
2205
2145
|
).returns(T.attached_class)
|
|
2206
2146
|
end
|
|
2207
2147
|
def self.new(
|
|
2208
|
-
# The Slack
|
|
2209
|
-
|
|
2148
|
+
# The Slack channels eligible to receive the notification. When more than one is
|
|
2149
|
+
# configured, the agent prompt may define routing rules to narrow it down per
|
|
2150
|
+
# call; with no such rules every channel here is notified.
|
|
2151
|
+
channels:,
|
|
2210
2152
|
# The Nango connection ID linking the org's Slack workspace to Revox.
|
|
2211
2153
|
connection_id:,
|
|
2212
2154
|
# Which call outcomes trigger a Slack notification (e.g. ['interested', 'none']).
|
|
2213
2155
|
# Use 'none' to notify when outcome is null.
|
|
2214
2156
|
outcomes:,
|
|
2215
|
-
# Human-readable Slack channel name, cached for display in the UI.
|
|
2216
|
-
channel_name: nil,
|
|
2217
2157
|
# Optional message template. Supports {{summary}}, {{outcome}}, {{phone}},
|
|
2218
2158
|
# {{call_url}}, {{assistant_name}}, {{campaign_name}}, {{first_name}},
|
|
2219
|
-
# {{last_name}}, {{email}}, {{company}}, {{
|
|
2220
|
-
# prompt_variables and structured_output keys. When
|
|
2221
|
-
# is used.
|
|
2159
|
+
# {{last_name}}, {{email}}, {{company}}, {{job_title}}, {{contact_name}},
|
|
2160
|
+
# {{contact_line}}, plus prompt_variables and structured_output keys. When
|
|
2161
|
+
# null/empty a default template is used.
|
|
2222
2162
|
template: nil
|
|
2223
2163
|
)
|
|
2224
2164
|
end
|
|
@@ -2226,13 +2166,12 @@ module Revox
|
|
|
2226
2166
|
sig do
|
|
2227
2167
|
override.returns(
|
|
2228
2168
|
{
|
|
2229
|
-
|
|
2169
|
+
channels: T::Array[Revox::AssistantCreateParams::Slack::Channel],
|
|
2230
2170
|
connection_id: String,
|
|
2231
2171
|
outcomes:
|
|
2232
2172
|
T::Array[
|
|
2233
2173
|
Revox::AssistantCreateParams::Slack::Outcome::OrSymbol
|
|
2234
2174
|
],
|
|
2235
|
-
channel_name: T.nilable(String),
|
|
2236
2175
|
template: T.nilable(String)
|
|
2237
2176
|
}
|
|
2238
2177
|
)
|
|
@@ -2240,6 +2179,43 @@ module Revox
|
|
|
2240
2179
|
def to_hash
|
|
2241
2180
|
end
|
|
2242
2181
|
|
|
2182
|
+
class Channel < Revox::Internal::Type::BaseModel
|
|
2183
|
+
OrHash =
|
|
2184
|
+
T.type_alias do
|
|
2185
|
+
T.any(
|
|
2186
|
+
Revox::AssistantCreateParams::Slack::Channel,
|
|
2187
|
+
Revox::Internal::AnyHash
|
|
2188
|
+
)
|
|
2189
|
+
end
|
|
2190
|
+
|
|
2191
|
+
# The Slack channel ID (e.g. 'C01234567').
|
|
2192
|
+
sig { returns(String) }
|
|
2193
|
+
attr_accessor :id
|
|
2194
|
+
|
|
2195
|
+
# Human-readable Slack channel name, cached for display in the UI and given to the
|
|
2196
|
+
# LLM when the agent prompt routes by channel name.
|
|
2197
|
+
sig { returns(T.nilable(String)) }
|
|
2198
|
+
attr_accessor :name
|
|
2199
|
+
|
|
2200
|
+
sig do
|
|
2201
|
+
params(id: String, name: T.nilable(String)).returns(
|
|
2202
|
+
T.attached_class
|
|
2203
|
+
)
|
|
2204
|
+
end
|
|
2205
|
+
def self.new(
|
|
2206
|
+
# The Slack channel ID (e.g. 'C01234567').
|
|
2207
|
+
id:,
|
|
2208
|
+
# Human-readable Slack channel name, cached for display in the UI and given to the
|
|
2209
|
+
# LLM when the agent prompt routes by channel name.
|
|
2210
|
+
name: nil
|
|
2211
|
+
)
|
|
2212
|
+
end
|
|
2213
|
+
|
|
2214
|
+
sig { override.returns({ id: String, name: T.nilable(String) }) }
|
|
2215
|
+
def to_hash
|
|
2216
|
+
end
|
|
2217
|
+
end
|
|
2218
|
+
|
|
2243
2219
|
module Outcome
|
|
2244
2220
|
extend Revox::Internal::Type::Enum
|
|
2245
2221
|
|
|
@@ -2269,21 +2245,6 @@ module Revox
|
|
|
2269
2245
|
:requested_callback_later,
|
|
2270
2246
|
Revox::AssistantCreateParams::Slack::Outcome::TaggedSymbol
|
|
2271
2247
|
)
|
|
2272
|
-
REQUESTED_CALLBACK_NEW_NUMBER =
|
|
2273
|
-
T.let(
|
|
2274
|
-
:requested_callback_new_number,
|
|
2275
|
-
Revox::AssistantCreateParams::Slack::Outcome::TaggedSymbol
|
|
2276
|
-
)
|
|
2277
|
-
DO_NOT_CONTACT =
|
|
2278
|
-
T.let(
|
|
2279
|
-
:do_not_contact,
|
|
2280
|
-
Revox::AssistantCreateParams::Slack::Outcome::TaggedSymbol
|
|
2281
|
-
)
|
|
2282
|
-
AI_AVERSE =
|
|
2283
|
-
T.let(
|
|
2284
|
-
:ai_averse,
|
|
2285
|
-
Revox::AssistantCreateParams::Slack::Outcome::TaggedSymbol
|
|
2286
|
-
)
|
|
2287
2248
|
NONE =
|
|
2288
2249
|
T.let(
|
|
2289
2250
|
:none,
|
|
@@ -2579,6 +2540,41 @@ module Revox
|
|
|
2579
2540
|
end
|
|
2580
2541
|
end
|
|
2581
2542
|
|
|
2543
|
+
class TransferDestination < Revox::Internal::Type::BaseModel
|
|
2544
|
+
OrHash =
|
|
2545
|
+
T.type_alias do
|
|
2546
|
+
T.any(
|
|
2547
|
+
Revox::AssistantCreateParams::TransferDestination,
|
|
2548
|
+
Revox::Internal::AnyHash
|
|
2549
|
+
)
|
|
2550
|
+
end
|
|
2551
|
+
|
|
2552
|
+
# Human-meaningful name for this destination (e.g. "Sales"). The assistant's
|
|
2553
|
+
# prompt refers to these labels when describing who to transfer to.
|
|
2554
|
+
sig { returns(String) }
|
|
2555
|
+
attr_accessor :label
|
|
2556
|
+
|
|
2557
|
+
# Destination phone number in E.164 format (e.g. +1234567890).
|
|
2558
|
+
sig { returns(String) }
|
|
2559
|
+
attr_accessor :phone_number
|
|
2560
|
+
|
|
2561
|
+
sig do
|
|
2562
|
+
params(label: String, phone_number: String).returns(T.attached_class)
|
|
2563
|
+
end
|
|
2564
|
+
def self.new(
|
|
2565
|
+
# Human-meaningful name for this destination (e.g. "Sales"). The assistant's
|
|
2566
|
+
# prompt refers to these labels when describing who to transfer to.
|
|
2567
|
+
label:,
|
|
2568
|
+
# Destination phone number in E.164 format (e.g. +1234567890).
|
|
2569
|
+
phone_number:
|
|
2570
|
+
)
|
|
2571
|
+
end
|
|
2572
|
+
|
|
2573
|
+
sig { override.returns({ label: String, phone_number: String }) }
|
|
2574
|
+
def to_hash
|
|
2575
|
+
end
|
|
2576
|
+
end
|
|
2577
|
+
|
|
2582
2578
|
# Assistant kind. 'standalone' (default) is a normal assistant, 'multi-step'
|
|
2583
2579
|
# orchestrates a flow of sub-assistants, 'sub-assistant' is a step inside a
|
|
2584
2580
|
# multi-step flow (hidden from the assistants list). Flow transitions are managed
|
|
@@ -2640,7 +2636,7 @@ module Revox
|
|
|
2640
2636
|
attr_writer :model
|
|
2641
2637
|
|
|
2642
2638
|
# The speed of the voice. Range depends on provider: Cartesia 0.6–1.5, ElevenLabs
|
|
2643
|
-
# 0.7–1.2. Default is 1.0.
|
|
2639
|
+
# 0.7–1.2, Gradium 0.6–1.5. Default is 1.0.
|
|
2644
2640
|
sig { returns(T.nilable(Float)) }
|
|
2645
2641
|
attr_reader :speed
|
|
2646
2642
|
|
|
@@ -2675,7 +2671,7 @@ module Revox
|
|
|
2675
2671
|
# for other providers.
|
|
2676
2672
|
model: nil,
|
|
2677
2673
|
# The speed of the voice. Range depends on provider: Cartesia 0.6–1.5, ElevenLabs
|
|
2678
|
-
# 0.7–1.2. Default is 1.0.
|
|
2674
|
+
# 0.7–1.2, Gradium 0.6–1.5. Default is 1.0.
|
|
2679
2675
|
speed: nil,
|
|
2680
2676
|
# Volume of the voice (Cartesia only). 0.5–2.0, default 1.0. Ignored for other
|
|
2681
2677
|
# providers.
|
|
@@ -2717,6 +2713,11 @@ module Revox
|
|
|
2717
2713
|
:elevenlabs,
|
|
2718
2714
|
Revox::AssistantCreateParams::Voice::Provider::TaggedSymbol
|
|
2719
2715
|
)
|
|
2716
|
+
GRADIUM =
|
|
2717
|
+
T.let(
|
|
2718
|
+
:gradium,
|
|
2719
|
+
Revox::AssistantCreateParams::Voice::Provider::TaggedSymbol
|
|
2720
|
+
)
|
|
2720
2721
|
|
|
2721
2722
|
sig do
|
|
2722
2723
|
override.returns(
|
|
@@ -2925,21 +2926,6 @@ module Revox
|
|
|
2925
2926
|
:requested_callback_later,
|
|
2926
2927
|
Revox::AssistantCreateParams::Zoho::Outcome::TaggedSymbol
|
|
2927
2928
|
)
|
|
2928
|
-
REQUESTED_CALLBACK_NEW_NUMBER =
|
|
2929
|
-
T.let(
|
|
2930
|
-
:requested_callback_new_number,
|
|
2931
|
-
Revox::AssistantCreateParams::Zoho::Outcome::TaggedSymbol
|
|
2932
|
-
)
|
|
2933
|
-
DO_NOT_CONTACT =
|
|
2934
|
-
T.let(
|
|
2935
|
-
:do_not_contact,
|
|
2936
|
-
Revox::AssistantCreateParams::Zoho::Outcome::TaggedSymbol
|
|
2937
|
-
)
|
|
2938
|
-
AI_AVERSE =
|
|
2939
|
-
T.let(
|
|
2940
|
-
:ai_averse,
|
|
2941
|
-
Revox::AssistantCreateParams::Zoho::Outcome::TaggedSymbol
|
|
2942
|
-
)
|
|
2943
2929
|
NONE =
|
|
2944
2930
|
T.let(
|
|
2945
2931
|
:none,
|