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
|
@@ -89,25 +89,6 @@ module Revox
|
|
|
89
89
|
sig { returns(T.nilable(String)) }
|
|
90
90
|
attr_accessor :email_notification_address
|
|
91
91
|
|
|
92
|
-
# The language used for the notification email content. One of "en" or "fr".
|
|
93
|
-
# Defaults to "en".
|
|
94
|
-
sig do
|
|
95
|
-
returns(
|
|
96
|
-
T.nilable(
|
|
97
|
-
Revox::AssistantUpdateParams::EmailNotificationLanguage::OrSymbol
|
|
98
|
-
)
|
|
99
|
-
)
|
|
100
|
-
end
|
|
101
|
-
attr_reader :email_notification_language
|
|
102
|
-
|
|
103
|
-
sig do
|
|
104
|
-
params(
|
|
105
|
-
email_notification_language:
|
|
106
|
-
Revox::AssistantUpdateParams::EmailNotificationLanguage::OrSymbol
|
|
107
|
-
).void
|
|
108
|
-
end
|
|
109
|
-
attr_writer :email_notification_language
|
|
110
|
-
|
|
111
92
|
# Which call outcomes trigger an email notification. E.g. ["interested",
|
|
112
93
|
# "completed", "none"]. Use "none" when outcome is null.
|
|
113
94
|
sig do
|
|
@@ -181,8 +162,8 @@ module Revox
|
|
|
181
162
|
sig { returns(T.nilable(String)) }
|
|
182
163
|
attr_accessor :from_phone_number
|
|
183
164
|
|
|
184
|
-
# When
|
|
185
|
-
# trunk must allow REFER/PSTN). Omit or null when transfer is disabled.
|
|
165
|
+
# When transfer_destinations is non-empty: "warm" (AI bridges) or "cold" (SIP
|
|
166
|
+
# REFER; trunk must allow REFER/PSTN). Omit or null when transfer is disabled.
|
|
186
167
|
sig do
|
|
187
168
|
returns(
|
|
188
169
|
T.nilable(Revox::AssistantUpdateParams::HumanTransferMode::OrSymbol)
|
|
@@ -261,6 +242,14 @@ module Revox
|
|
|
261
242
|
end
|
|
262
243
|
attr_writer :position
|
|
263
244
|
|
|
245
|
+
# Inbound calls only. URL fetched over HTTP GET right before the call is answered,
|
|
246
|
+
# with `{{phone}}` replaced by the caller's number in E.164 format (URL-encoded).
|
|
247
|
+
# It must return `{"prompt_variables": {...}}` covering every `{{variable}}` the
|
|
248
|
+
# assistant declares, otherwise the call is errored. Must be an http(s) URL
|
|
249
|
+
# containing `{{phone}}`. When null, no lookup is performed.
|
|
250
|
+
sig { returns(T.nilable(String)) }
|
|
251
|
+
attr_accessor :precall_lookup_url
|
|
252
|
+
|
|
264
253
|
# The prompt to use for the call. This will be given to the LLM (gpt-4.1)
|
|
265
254
|
sig { returns(T.nilable(String)) }
|
|
266
255
|
attr_reader :prompt
|
|
@@ -385,10 +374,16 @@ module Revox
|
|
|
385
374
|
sig { params(thinking_sound_volume: Float).void }
|
|
386
375
|
attr_writer :thinking_sound_volume
|
|
387
376
|
|
|
388
|
-
#
|
|
389
|
-
#
|
|
390
|
-
|
|
391
|
-
|
|
377
|
+
# Where calls can be transferred to when users ask to speak to a human. With a
|
|
378
|
+
# single entry the assistant always transfers there; with several, it picks one at
|
|
379
|
+
# transfer time by applying the routing rules written in the assistant's own
|
|
380
|
+
# prompt (which refer to the destination labels). Empty or null disables transfer.
|
|
381
|
+
sig do
|
|
382
|
+
returns(
|
|
383
|
+
T.nilable(T::Array[Revox::AssistantUpdateParams::TransferDestination])
|
|
384
|
+
)
|
|
385
|
+
end
|
|
386
|
+
attr_accessor :transfer_destinations
|
|
392
387
|
|
|
393
388
|
# Assistant kind. 'standalone' (default) is a normal assistant, 'multi-step'
|
|
394
389
|
# orchestrates a flow of sub-assistants, 'sub-assistant' is a step inside a
|
|
@@ -464,8 +459,6 @@ module Revox
|
|
|
464
459
|
T::Array[Revox::AssistantUpdateParams::CustomTool::OrHash]
|
|
465
460
|
),
|
|
466
461
|
email_notification_address: T.nilable(String),
|
|
467
|
-
email_notification_language:
|
|
468
|
-
Revox::AssistantUpdateParams::EmailNotificationLanguage::OrSymbol,
|
|
469
462
|
email_notification_outcomes:
|
|
470
463
|
T.nilable(
|
|
471
464
|
T::Array[
|
|
@@ -496,6 +489,7 @@ module Revox
|
|
|
496
489
|
max_duration_end_message: T.nilable(String),
|
|
497
490
|
name: String,
|
|
498
491
|
position: T.nilable(Revox::AssistantUpdateParams::Position::OrHash),
|
|
492
|
+
precall_lookup_url: T.nilable(String),
|
|
499
493
|
prompt: String,
|
|
500
494
|
prompt_flow:
|
|
501
495
|
T.nilable(Revox::AssistantUpdateParams::PromptFlow::OrHash),
|
|
@@ -514,7 +508,12 @@ module Revox
|
|
|
514
508
|
T.nilable(Revox::AssistantUpdateParams::ThinkingSound::OrSymbol),
|
|
515
509
|
thinking_sound_probability: Float,
|
|
516
510
|
thinking_sound_volume: Float,
|
|
517
|
-
|
|
511
|
+
transfer_destinations:
|
|
512
|
+
T.nilable(
|
|
513
|
+
T::Array[
|
|
514
|
+
Revox::AssistantUpdateParams::TransferDestination::OrHash
|
|
515
|
+
]
|
|
516
|
+
),
|
|
518
517
|
type: Revox::AssistantUpdateParams::Type::OrSymbol,
|
|
519
518
|
voice: Revox::AssistantUpdateParams::Voice::OrHash,
|
|
520
519
|
voicemail_message: T.nilable(String),
|
|
@@ -552,9 +551,6 @@ module Revox
|
|
|
552
551
|
# outcome. Accepts a single email or a comma-separated list (e.g. "alice@x.com,
|
|
553
552
|
# bob@y.com").
|
|
554
553
|
email_notification_address: nil,
|
|
555
|
-
# The language used for the notification email content. One of "en" or "fr".
|
|
556
|
-
# Defaults to "en".
|
|
557
|
-
email_notification_language: nil,
|
|
558
554
|
# Which call outcomes trigger an email notification. E.g. ["interested",
|
|
559
555
|
# "completed", "none"]. Use "none" when outcome is null.
|
|
560
556
|
email_notification_outcomes: nil,
|
|
@@ -576,8 +572,8 @@ module Revox
|
|
|
576
572
|
# Must be a phone number owned by the organization in E.164 format (e.g.
|
|
577
573
|
# +1234567890). When null, the organization's default phone number is used.
|
|
578
574
|
from_phone_number: nil,
|
|
579
|
-
# When
|
|
580
|
-
# trunk must allow REFER/PSTN). Omit or null when transfer is disabled.
|
|
575
|
+
# When transfer_destinations is non-empty: "warm" (AI bridges) or "cold" (SIP
|
|
576
|
+
# REFER; trunk must allow REFER/PSTN). Omit or null when transfer is disabled.
|
|
581
577
|
human_transfer_mode: nil,
|
|
582
578
|
# Enable IVR navigation tools. When enabled, the assistant can send DTMF tones and
|
|
583
579
|
# skip turns to navigate phone menus.
|
|
@@ -596,6 +592,12 @@ module Revox
|
|
|
596
592
|
name: nil,
|
|
597
593
|
# Canvas position of this assistant's node in its multi-step flow editor.
|
|
598
594
|
position: nil,
|
|
595
|
+
# Inbound calls only. URL fetched over HTTP GET right before the call is answered,
|
|
596
|
+
# with `{{phone}}` replaced by the caller's number in E.164 format (URL-encoded).
|
|
597
|
+
# It must return `{"prompt_variables": {...}}` covering every `{{variable}}` the
|
|
598
|
+
# assistant declares, otherwise the call is errored. Must be an http(s) URL
|
|
599
|
+
# containing `{{phone}}`. When null, no lookup is performed.
|
|
600
|
+
precall_lookup_url: nil,
|
|
599
601
|
# The prompt to use for the call. This will be given to the LLM (gpt-4.1)
|
|
600
602
|
prompt: nil,
|
|
601
603
|
# Visual prompt constructor data (nodes, edges, positions). Used by the UI to
|
|
@@ -634,9 +636,11 @@ module Revox
|
|
|
634
636
|
thinking_sound_probability: nil,
|
|
635
637
|
# Volume of the thinking sound (0 = silent, 1 = max).
|
|
636
638
|
thinking_sound_volume: nil,
|
|
637
|
-
#
|
|
638
|
-
#
|
|
639
|
-
|
|
639
|
+
# Where calls can be transferred to when users ask to speak to a human. With a
|
|
640
|
+
# single entry the assistant always transfers there; with several, it picks one at
|
|
641
|
+
# transfer time by applying the routing rules written in the assistant's own
|
|
642
|
+
# prompt (which refer to the destination labels). Empty or null disables transfer.
|
|
643
|
+
transfer_destinations: nil,
|
|
640
644
|
# Assistant kind. 'standalone' (default) is a normal assistant, 'multi-step'
|
|
641
645
|
# orchestrates a flow of sub-assistants, 'sub-assistant' is a step inside a
|
|
642
646
|
# multi-step flow (hidden from the assistants list). Flow transitions are managed
|
|
@@ -687,8 +691,6 @@ module Revox
|
|
|
687
691
|
custom_tools:
|
|
688
692
|
T.nilable(T::Array[Revox::AssistantUpdateParams::CustomTool]),
|
|
689
693
|
email_notification_address: T.nilable(String),
|
|
690
|
-
email_notification_language:
|
|
691
|
-
Revox::AssistantUpdateParams::EmailNotificationLanguage::OrSymbol,
|
|
692
694
|
email_notification_outcomes:
|
|
693
695
|
T.nilable(
|
|
694
696
|
T::Array[
|
|
@@ -719,6 +721,7 @@ module Revox
|
|
|
719
721
|
max_duration_end_message: T.nilable(String),
|
|
720
722
|
name: String,
|
|
721
723
|
position: T.nilable(Revox::AssistantUpdateParams::Position),
|
|
724
|
+
precall_lookup_url: T.nilable(String),
|
|
722
725
|
prompt: String,
|
|
723
726
|
prompt_flow: T.nilable(Revox::AssistantUpdateParams::PromptFlow),
|
|
724
727
|
slack: T.nilable(Revox::AssistantUpdateParams::Slack),
|
|
@@ -733,7 +736,10 @@ module Revox
|
|
|
733
736
|
T.nilable(Revox::AssistantUpdateParams::ThinkingSound::OrSymbol),
|
|
734
737
|
thinking_sound_probability: Float,
|
|
735
738
|
thinking_sound_volume: Float,
|
|
736
|
-
|
|
739
|
+
transfer_destinations:
|
|
740
|
+
T.nilable(
|
|
741
|
+
T::Array[Revox::AssistantUpdateParams::TransferDestination]
|
|
742
|
+
),
|
|
737
743
|
type: Revox::AssistantUpdateParams::Type::OrSymbol,
|
|
738
744
|
voice: Revox::AssistantUpdateParams::Voice,
|
|
739
745
|
voicemail_message: T.nilable(String),
|
|
@@ -777,21 +783,6 @@ module Revox
|
|
|
777
783
|
:requested_callback_later,
|
|
778
784
|
Revox::AssistantUpdateParams::AfterCallSMSOutcome::TaggedSymbol
|
|
779
785
|
)
|
|
780
|
-
REQUESTED_CALLBACK_NEW_NUMBER =
|
|
781
|
-
T.let(
|
|
782
|
-
:requested_callback_new_number,
|
|
783
|
-
Revox::AssistantUpdateParams::AfterCallSMSOutcome::TaggedSymbol
|
|
784
|
-
)
|
|
785
|
-
DO_NOT_CONTACT =
|
|
786
|
-
T.let(
|
|
787
|
-
:do_not_contact,
|
|
788
|
-
Revox::AssistantUpdateParams::AfterCallSMSOutcome::TaggedSymbol
|
|
789
|
-
)
|
|
790
|
-
AI_AVERSE =
|
|
791
|
-
T.let(
|
|
792
|
-
:ai_averse,
|
|
793
|
-
Revox::AssistantUpdateParams::AfterCallSMSOutcome::TaggedSymbol
|
|
794
|
-
)
|
|
795
786
|
NONE =
|
|
796
787
|
T.let(
|
|
797
788
|
:none,
|
|
@@ -1057,7 +1048,8 @@ module Revox
|
|
|
1057
1048
|
sig { returns(String) }
|
|
1058
1049
|
attr_accessor :calling_window_start_time
|
|
1059
1050
|
|
|
1060
|
-
# Delay between retry attempts in seconds.
|
|
1051
|
+
# Delay between retry attempts in seconds. 0 retries as soon as the calling window
|
|
1052
|
+
# allows. Default: 7200 (2 hours).
|
|
1061
1053
|
sig { returns(Integer) }
|
|
1062
1054
|
attr_accessor :retry_delay_seconds
|
|
1063
1055
|
|
|
@@ -1077,7 +1069,8 @@ module Revox
|
|
|
1077
1069
|
# timezone_override if provided). Format: 'HH:mm' (24-hour) or 'H:mma' (12-hour).
|
|
1078
1070
|
# Examples: '09:00', '10am'. Default: '10:00'.
|
|
1079
1071
|
calling_window_start_time:,
|
|
1080
|
-
# Delay between retry attempts in seconds.
|
|
1072
|
+
# Delay between retry attempts in seconds. 0 retries as soon as the calling window
|
|
1073
|
+
# allows. Default: 7200 (2 hours).
|
|
1081
1074
|
retry_delay_seconds:
|
|
1082
1075
|
)
|
|
1083
1076
|
end
|
|
@@ -1440,42 +1433,6 @@ module Revox
|
|
|
1440
1433
|
end
|
|
1441
1434
|
end
|
|
1442
1435
|
|
|
1443
|
-
# The language used for the notification email content. One of "en" or "fr".
|
|
1444
|
-
# Defaults to "en".
|
|
1445
|
-
module EmailNotificationLanguage
|
|
1446
|
-
extend Revox::Internal::Type::Enum
|
|
1447
|
-
|
|
1448
|
-
TaggedSymbol =
|
|
1449
|
-
T.type_alias do
|
|
1450
|
-
T.all(
|
|
1451
|
-
Symbol,
|
|
1452
|
-
Revox::AssistantUpdateParams::EmailNotificationLanguage
|
|
1453
|
-
)
|
|
1454
|
-
end
|
|
1455
|
-
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1456
|
-
|
|
1457
|
-
EN =
|
|
1458
|
-
T.let(
|
|
1459
|
-
:en,
|
|
1460
|
-
Revox::AssistantUpdateParams::EmailNotificationLanguage::TaggedSymbol
|
|
1461
|
-
)
|
|
1462
|
-
FR =
|
|
1463
|
-
T.let(
|
|
1464
|
-
:fr,
|
|
1465
|
-
Revox::AssistantUpdateParams::EmailNotificationLanguage::TaggedSymbol
|
|
1466
|
-
)
|
|
1467
|
-
|
|
1468
|
-
sig do
|
|
1469
|
-
override.returns(
|
|
1470
|
-
T::Array[
|
|
1471
|
-
Revox::AssistantUpdateParams::EmailNotificationLanguage::TaggedSymbol
|
|
1472
|
-
]
|
|
1473
|
-
)
|
|
1474
|
-
end
|
|
1475
|
-
def self.values
|
|
1476
|
-
end
|
|
1477
|
-
end
|
|
1478
|
-
|
|
1479
1436
|
module EmailNotificationOutcome
|
|
1480
1437
|
extend Revox::Internal::Type::Enum
|
|
1481
1438
|
|
|
@@ -1508,21 +1465,6 @@ module Revox
|
|
|
1508
1465
|
:requested_callback_later,
|
|
1509
1466
|
Revox::AssistantUpdateParams::EmailNotificationOutcome::TaggedSymbol
|
|
1510
1467
|
)
|
|
1511
|
-
REQUESTED_CALLBACK_NEW_NUMBER =
|
|
1512
|
-
T.let(
|
|
1513
|
-
:requested_callback_new_number,
|
|
1514
|
-
Revox::AssistantUpdateParams::EmailNotificationOutcome::TaggedSymbol
|
|
1515
|
-
)
|
|
1516
|
-
DO_NOT_CONTACT =
|
|
1517
|
-
T.let(
|
|
1518
|
-
:do_not_contact,
|
|
1519
|
-
Revox::AssistantUpdateParams::EmailNotificationOutcome::TaggedSymbol
|
|
1520
|
-
)
|
|
1521
|
-
AI_AVERSE =
|
|
1522
|
-
T.let(
|
|
1523
|
-
:ai_averse,
|
|
1524
|
-
Revox::AssistantUpdateParams::EmailNotificationOutcome::TaggedSymbol
|
|
1525
|
-
)
|
|
1526
1468
|
NONE =
|
|
1527
1469
|
T.let(
|
|
1528
1470
|
:none,
|
|
@@ -1606,8 +1548,8 @@ module Revox
|
|
|
1606
1548
|
end
|
|
1607
1549
|
end
|
|
1608
1550
|
|
|
1609
|
-
# When
|
|
1610
|
-
# trunk must allow REFER/PSTN). Omit or null when transfer is disabled.
|
|
1551
|
+
# When transfer_destinations is non-empty: "warm" (AI bridges) or "cold" (SIP
|
|
1552
|
+
# REFER; trunk must allow REFER/PSTN). Omit or null when transfer is disabled.
|
|
1611
1553
|
module HumanTransferMode
|
|
1612
1554
|
extend Revox::Internal::Type::Enum
|
|
1613
1555
|
|
|
@@ -2175,9 +2117,11 @@ module Revox
|
|
|
2175
2117
|
T.any(Revox::AssistantUpdateParams::Slack, Revox::Internal::AnyHash)
|
|
2176
2118
|
end
|
|
2177
2119
|
|
|
2178
|
-
# The Slack
|
|
2179
|
-
|
|
2180
|
-
|
|
2120
|
+
# The Slack channels eligible to receive the notification. When more than one is
|
|
2121
|
+
# configured, the agent prompt may define routing rules to narrow it down per
|
|
2122
|
+
# call; with no such rules every channel here is notified.
|
|
2123
|
+
sig { returns(T::Array[Revox::AssistantUpdateParams::Slack::Channel]) }
|
|
2124
|
+
attr_accessor :channels
|
|
2181
2125
|
|
|
2182
2126
|
# The Nango connection ID linking the org's Slack workspace to Revox.
|
|
2183
2127
|
sig { returns(String) }
|
|
@@ -2192,15 +2136,11 @@ module Revox
|
|
|
2192
2136
|
end
|
|
2193
2137
|
attr_accessor :outcomes
|
|
2194
2138
|
|
|
2195
|
-
# Human-readable Slack channel name, cached for display in the UI.
|
|
2196
|
-
sig { returns(T.nilable(String)) }
|
|
2197
|
-
attr_accessor :channel_name
|
|
2198
|
-
|
|
2199
2139
|
# Optional message template. Supports {{summary}}, {{outcome}}, {{phone}},
|
|
2200
2140
|
# {{call_url}}, {{assistant_name}}, {{campaign_name}}, {{first_name}},
|
|
2201
|
-
# {{last_name}}, {{email}}, {{company}}, {{
|
|
2202
|
-
# prompt_variables and structured_output keys. When
|
|
2203
|
-
# is used.
|
|
2141
|
+
# {{last_name}}, {{email}}, {{company}}, {{job_title}}, {{contact_name}},
|
|
2142
|
+
# {{contact_line}}, plus prompt_variables and structured_output keys. When
|
|
2143
|
+
# null/empty a default template is used.
|
|
2204
2144
|
sig { returns(T.nilable(String)) }
|
|
2205
2145
|
attr_accessor :template
|
|
2206
2146
|
|
|
@@ -2208,29 +2148,29 @@ module Revox
|
|
|
2208
2148
|
# a call ends with one of the configured outcomes.
|
|
2209
2149
|
sig do
|
|
2210
2150
|
params(
|
|
2211
|
-
|
|
2151
|
+
channels:
|
|
2152
|
+
T::Array[Revox::AssistantUpdateParams::Slack::Channel::OrHash],
|
|
2212
2153
|
connection_id: String,
|
|
2213
2154
|
outcomes:
|
|
2214
2155
|
T::Array[Revox::AssistantUpdateParams::Slack::Outcome::OrSymbol],
|
|
2215
|
-
channel_name: T.nilable(String),
|
|
2216
2156
|
template: T.nilable(String)
|
|
2217
2157
|
).returns(T.attached_class)
|
|
2218
2158
|
end
|
|
2219
2159
|
def self.new(
|
|
2220
|
-
# The Slack
|
|
2221
|
-
|
|
2160
|
+
# The Slack channels eligible to receive the notification. When more than one is
|
|
2161
|
+
# configured, the agent prompt may define routing rules to narrow it down per
|
|
2162
|
+
# call; with no such rules every channel here is notified.
|
|
2163
|
+
channels:,
|
|
2222
2164
|
# The Nango connection ID linking the org's Slack workspace to Revox.
|
|
2223
2165
|
connection_id:,
|
|
2224
2166
|
# Which call outcomes trigger a Slack notification (e.g. ['interested', 'none']).
|
|
2225
2167
|
# Use 'none' to notify when outcome is null.
|
|
2226
2168
|
outcomes:,
|
|
2227
|
-
# Human-readable Slack channel name, cached for display in the UI.
|
|
2228
|
-
channel_name: nil,
|
|
2229
2169
|
# Optional message template. Supports {{summary}}, {{outcome}}, {{phone}},
|
|
2230
2170
|
# {{call_url}}, {{assistant_name}}, {{campaign_name}}, {{first_name}},
|
|
2231
|
-
# {{last_name}}, {{email}}, {{company}}, {{
|
|
2232
|
-
# prompt_variables and structured_output keys. When
|
|
2233
|
-
# is used.
|
|
2171
|
+
# {{last_name}}, {{email}}, {{company}}, {{job_title}}, {{contact_name}},
|
|
2172
|
+
# {{contact_line}}, plus prompt_variables and structured_output keys. When
|
|
2173
|
+
# null/empty a default template is used.
|
|
2234
2174
|
template: nil
|
|
2235
2175
|
)
|
|
2236
2176
|
end
|
|
@@ -2238,13 +2178,12 @@ module Revox
|
|
|
2238
2178
|
sig do
|
|
2239
2179
|
override.returns(
|
|
2240
2180
|
{
|
|
2241
|
-
|
|
2181
|
+
channels: T::Array[Revox::AssistantUpdateParams::Slack::Channel],
|
|
2242
2182
|
connection_id: String,
|
|
2243
2183
|
outcomes:
|
|
2244
2184
|
T::Array[
|
|
2245
2185
|
Revox::AssistantUpdateParams::Slack::Outcome::OrSymbol
|
|
2246
2186
|
],
|
|
2247
|
-
channel_name: T.nilable(String),
|
|
2248
2187
|
template: T.nilable(String)
|
|
2249
2188
|
}
|
|
2250
2189
|
)
|
|
@@ -2252,6 +2191,43 @@ module Revox
|
|
|
2252
2191
|
def to_hash
|
|
2253
2192
|
end
|
|
2254
2193
|
|
|
2194
|
+
class Channel < Revox::Internal::Type::BaseModel
|
|
2195
|
+
OrHash =
|
|
2196
|
+
T.type_alias do
|
|
2197
|
+
T.any(
|
|
2198
|
+
Revox::AssistantUpdateParams::Slack::Channel,
|
|
2199
|
+
Revox::Internal::AnyHash
|
|
2200
|
+
)
|
|
2201
|
+
end
|
|
2202
|
+
|
|
2203
|
+
# The Slack channel ID (e.g. 'C01234567').
|
|
2204
|
+
sig { returns(String) }
|
|
2205
|
+
attr_accessor :id
|
|
2206
|
+
|
|
2207
|
+
# Human-readable Slack channel name, cached for display in the UI and given to the
|
|
2208
|
+
# LLM when the agent prompt routes by channel name.
|
|
2209
|
+
sig { returns(T.nilable(String)) }
|
|
2210
|
+
attr_accessor :name
|
|
2211
|
+
|
|
2212
|
+
sig do
|
|
2213
|
+
params(id: String, name: T.nilable(String)).returns(
|
|
2214
|
+
T.attached_class
|
|
2215
|
+
)
|
|
2216
|
+
end
|
|
2217
|
+
def self.new(
|
|
2218
|
+
# The Slack channel ID (e.g. 'C01234567').
|
|
2219
|
+
id:,
|
|
2220
|
+
# Human-readable Slack channel name, cached for display in the UI and given to the
|
|
2221
|
+
# LLM when the agent prompt routes by channel name.
|
|
2222
|
+
name: nil
|
|
2223
|
+
)
|
|
2224
|
+
end
|
|
2225
|
+
|
|
2226
|
+
sig { override.returns({ id: String, name: T.nilable(String) }) }
|
|
2227
|
+
def to_hash
|
|
2228
|
+
end
|
|
2229
|
+
end
|
|
2230
|
+
|
|
2255
2231
|
module Outcome
|
|
2256
2232
|
extend Revox::Internal::Type::Enum
|
|
2257
2233
|
|
|
@@ -2281,21 +2257,6 @@ module Revox
|
|
|
2281
2257
|
:requested_callback_later,
|
|
2282
2258
|
Revox::AssistantUpdateParams::Slack::Outcome::TaggedSymbol
|
|
2283
2259
|
)
|
|
2284
|
-
REQUESTED_CALLBACK_NEW_NUMBER =
|
|
2285
|
-
T.let(
|
|
2286
|
-
:requested_callback_new_number,
|
|
2287
|
-
Revox::AssistantUpdateParams::Slack::Outcome::TaggedSymbol
|
|
2288
|
-
)
|
|
2289
|
-
DO_NOT_CONTACT =
|
|
2290
|
-
T.let(
|
|
2291
|
-
:do_not_contact,
|
|
2292
|
-
Revox::AssistantUpdateParams::Slack::Outcome::TaggedSymbol
|
|
2293
|
-
)
|
|
2294
|
-
AI_AVERSE =
|
|
2295
|
-
T.let(
|
|
2296
|
-
:ai_averse,
|
|
2297
|
-
Revox::AssistantUpdateParams::Slack::Outcome::TaggedSymbol
|
|
2298
|
-
)
|
|
2299
2260
|
NONE =
|
|
2300
2261
|
T.let(
|
|
2301
2262
|
:none,
|
|
@@ -2591,6 +2552,41 @@ module Revox
|
|
|
2591
2552
|
end
|
|
2592
2553
|
end
|
|
2593
2554
|
|
|
2555
|
+
class TransferDestination < Revox::Internal::Type::BaseModel
|
|
2556
|
+
OrHash =
|
|
2557
|
+
T.type_alias do
|
|
2558
|
+
T.any(
|
|
2559
|
+
Revox::AssistantUpdateParams::TransferDestination,
|
|
2560
|
+
Revox::Internal::AnyHash
|
|
2561
|
+
)
|
|
2562
|
+
end
|
|
2563
|
+
|
|
2564
|
+
# Human-meaningful name for this destination (e.g. "Sales"). The assistant's
|
|
2565
|
+
# prompt refers to these labels when describing who to transfer to.
|
|
2566
|
+
sig { returns(String) }
|
|
2567
|
+
attr_accessor :label
|
|
2568
|
+
|
|
2569
|
+
# Destination phone number in E.164 format (e.g. +1234567890).
|
|
2570
|
+
sig { returns(String) }
|
|
2571
|
+
attr_accessor :phone_number
|
|
2572
|
+
|
|
2573
|
+
sig do
|
|
2574
|
+
params(label: String, phone_number: String).returns(T.attached_class)
|
|
2575
|
+
end
|
|
2576
|
+
def self.new(
|
|
2577
|
+
# Human-meaningful name for this destination (e.g. "Sales"). The assistant's
|
|
2578
|
+
# prompt refers to these labels when describing who to transfer to.
|
|
2579
|
+
label:,
|
|
2580
|
+
# Destination phone number in E.164 format (e.g. +1234567890).
|
|
2581
|
+
phone_number:
|
|
2582
|
+
)
|
|
2583
|
+
end
|
|
2584
|
+
|
|
2585
|
+
sig { override.returns({ label: String, phone_number: String }) }
|
|
2586
|
+
def to_hash
|
|
2587
|
+
end
|
|
2588
|
+
end
|
|
2589
|
+
|
|
2594
2590
|
# Assistant kind. 'standalone' (default) is a normal assistant, 'multi-step'
|
|
2595
2591
|
# orchestrates a flow of sub-assistants, 'sub-assistant' is a step inside a
|
|
2596
2592
|
# multi-step flow (hidden from the assistants list). Flow transitions are managed
|
|
@@ -2652,7 +2648,7 @@ module Revox
|
|
|
2652
2648
|
attr_writer :model
|
|
2653
2649
|
|
|
2654
2650
|
# The speed of the voice. Range depends on provider: Cartesia 0.6–1.5, ElevenLabs
|
|
2655
|
-
# 0.7–1.2. Default is 1.0.
|
|
2651
|
+
# 0.7–1.2, Gradium 0.6–1.5. Default is 1.0.
|
|
2656
2652
|
sig { returns(T.nilable(Float)) }
|
|
2657
2653
|
attr_reader :speed
|
|
2658
2654
|
|
|
@@ -2687,7 +2683,7 @@ module Revox
|
|
|
2687
2683
|
# for other providers.
|
|
2688
2684
|
model: nil,
|
|
2689
2685
|
# The speed of the voice. Range depends on provider: Cartesia 0.6–1.5, ElevenLabs
|
|
2690
|
-
# 0.7–1.2. Default is 1.0.
|
|
2686
|
+
# 0.7–1.2, Gradium 0.6–1.5. Default is 1.0.
|
|
2691
2687
|
speed: nil,
|
|
2692
2688
|
# Volume of the voice (Cartesia only). 0.5–2.0, default 1.0. Ignored for other
|
|
2693
2689
|
# providers.
|
|
@@ -2729,6 +2725,11 @@ module Revox
|
|
|
2729
2725
|
:elevenlabs,
|
|
2730
2726
|
Revox::AssistantUpdateParams::Voice::Provider::TaggedSymbol
|
|
2731
2727
|
)
|
|
2728
|
+
GRADIUM =
|
|
2729
|
+
T.let(
|
|
2730
|
+
:gradium,
|
|
2731
|
+
Revox::AssistantUpdateParams::Voice::Provider::TaggedSymbol
|
|
2732
|
+
)
|
|
2732
2733
|
|
|
2733
2734
|
sig do
|
|
2734
2735
|
override.returns(
|
|
@@ -2937,21 +2938,6 @@ module Revox
|
|
|
2937
2938
|
:requested_callback_later,
|
|
2938
2939
|
Revox::AssistantUpdateParams::Zoho::Outcome::TaggedSymbol
|
|
2939
2940
|
)
|
|
2940
|
-
REQUESTED_CALLBACK_NEW_NUMBER =
|
|
2941
|
-
T.let(
|
|
2942
|
-
:requested_callback_new_number,
|
|
2943
|
-
Revox::AssistantUpdateParams::Zoho::Outcome::TaggedSymbol
|
|
2944
|
-
)
|
|
2945
|
-
DO_NOT_CONTACT =
|
|
2946
|
-
T.let(
|
|
2947
|
-
:do_not_contact,
|
|
2948
|
-
Revox::AssistantUpdateParams::Zoho::Outcome::TaggedSymbol
|
|
2949
|
-
)
|
|
2950
|
-
AI_AVERSE =
|
|
2951
|
-
T.let(
|
|
2952
|
-
:ai_averse,
|
|
2953
|
-
Revox::AssistantUpdateParams::Zoho::Outcome::TaggedSymbol
|
|
2954
|
-
)
|
|
2955
2941
|
NONE =
|
|
2956
2942
|
T.let(
|
|
2957
2943
|
:none,
|