revox 0.3.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 +26 -0
- data/README.md +38 -38
- data/lib/revox/models/assistant_clone_response.rb +87 -65
- 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/call_create_params.rb +117 -90
- data/lib/revox/models/call_create_response.rb +670 -90
- data/lib/revox/models/call_export_params.rb +1 -3
- data/lib/revox/models/call_phone_history_response.rb +0 -3
- data/lib/revox/models/call_retrieve_response.rb +671 -90
- data/lib/revox/models/call_search_params.rb +1 -3
- data/lib/revox/models/call_search_response.rb +670 -90
- 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 +672 -90
- data/lib/revox/models/campaign_list_response.rb +108 -119
- data/lib/revox/models/campaign_retrieve_response.rb +108 -119
- data/lib/revox/models/campaign_statistics_response.rb +51 -23
- data/lib/revox/models/campaign_update_params.rb +9 -78
- data/lib/revox/models/campaign_update_response.rb +108 -119
- data/lib/revox/models/phone_number_list_response.rb +87 -65
- data/lib/revox/models/phone_number_update_response.rb +87 -65
- 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 +0 -2
- data/lib/revox/resources/assistants.rb +10 -10
- data/lib/revox/resources/call.rb +4 -4
- data/lib/revox/resources/campaigns.rb +13 -45
- data/lib/revox/version.rb +1 -1
- data/lib/revox.rb +0 -2
- data/rbi/revox/models/assistant_clone_response.rbi +157 -147
- 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/call_create_params.rbi +190 -187
- data/rbi/revox/models/call_create_response.rbi +1138 -227
- data/rbi/revox/models/call_export_params.rbi +5 -15
- data/rbi/revox/models/call_phone_history_response.rbi +0 -15
- data/rbi/revox/models/call_retrieve_response.rbi +1138 -227
- data/rbi/revox/models/call_search_params.rbi +2 -9
- data/rbi/revox/models/call_search_response.rbi +1138 -227
- 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 +1138 -225
- data/rbi/revox/models/campaign_list_response.rbi +188 -262
- data/rbi/revox/models/campaign_retrieve_response.rbi +188 -266
- data/rbi/revox/models/campaign_statistics_response.rbi +94 -36
- data/rbi/revox/models/campaign_update_params.rbi +10 -128
- data/rbi/revox/models/campaign_update_response.rbi +188 -266
- data/rbi/revox/models/phone_number_list_response.rbi +157 -147
- data/rbi/revox/models/phone_number_update_response.rbi +157 -147
- 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 +0 -2
- data/rbi/revox/resources/assistants.rbi +40 -22
- data/rbi/revox/resources/call.rbi +7 -4
- data/rbi/revox/resources/campaigns.rbi +12 -44
- data/sig/revox/models/assistant_clone_response.rbs +46 -54
- 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/call_create_params.rbs +50 -71
- data/sig/revox/models/call_create_response.rbs +468 -77
- data/sig/revox/models/call_export_params.rbs +2 -6
- data/sig/revox/models/call_phone_history_response.rbs +1 -10
- data/sig/revox/models/call_retrieve_response.rbs +468 -77
- data/sig/revox/models/call_search_params.rbs +2 -6
- data/sig/revox/models/call_search_response.rbs +468 -77
- 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 +467 -73
- data/sig/revox/models/campaign_list_response.rbs +62 -98
- data/sig/revox/models/campaign_retrieve_response.rbs +62 -98
- data/sig/revox/models/campaign_statistics_response.rbs +55 -24
- data/sig/revox/models/campaign_update_params.rbs +1 -69
- data/sig/revox/models/campaign_update_response.rbs +62 -98
- data/sig/revox/models/phone_number_list_response.rbs +46 -54
- data/sig/revox/models/phone_number_update_response.rbs +46 -54
- 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 +0 -2
- data/sig/revox/resources/assistants.rbs +4 -4
- data/sig/revox/resources/call.rbs +1 -1
- data/sig/revox/resources/campaigns.rbs +0 -12
- metadata +2 -8
- data/lib/revox/models/campaign_launch_params.rb +0 -20
- data/lib/revox/models/campaign_launch_response.rb +0 -2030
- data/rbi/revox/models/campaign_launch_params.rbi +0 -33
- data/rbi/revox/models/campaign_launch_response.rbi +0 -4170
- data/sig/revox/models/campaign_launch_params.rbs +0 -20
- data/sig/revox/models/campaign_launch_response.rbs +0 -1694
|
@@ -31,8 +31,6 @@ module Revox
|
|
|
31
31
|
T::Array[Revox::AssistantCreateParams::CustomTool::OrHash]
|
|
32
32
|
),
|
|
33
33
|
email_notification_address: T.nilable(String),
|
|
34
|
-
email_notification_language:
|
|
35
|
-
Revox::AssistantCreateParams::EmailNotificationLanguage::OrSymbol,
|
|
36
34
|
email_notification_outcomes:
|
|
37
35
|
T.nilable(
|
|
38
36
|
T::Array[
|
|
@@ -62,6 +60,7 @@ module Revox
|
|
|
62
60
|
max_call_duration_secs: Float,
|
|
63
61
|
max_duration_end_message: T.nilable(String),
|
|
64
62
|
position: T.nilable(Revox::AssistantCreateParams::Position::OrHash),
|
|
63
|
+
precall_lookup_url: T.nilable(String),
|
|
65
64
|
prompt_flow:
|
|
66
65
|
T.nilable(Revox::AssistantCreateParams::PromptFlow::OrHash),
|
|
67
66
|
slack: T.nilable(Revox::AssistantCreateParams::Slack::OrHash),
|
|
@@ -79,7 +78,12 @@ module Revox
|
|
|
79
78
|
T.nilable(Revox::AssistantCreateParams::ThinkingSound::OrSymbol),
|
|
80
79
|
thinking_sound_probability: Float,
|
|
81
80
|
thinking_sound_volume: Float,
|
|
82
|
-
|
|
81
|
+
transfer_destinations:
|
|
82
|
+
T.nilable(
|
|
83
|
+
T::Array[
|
|
84
|
+
Revox::AssistantCreateParams::TransferDestination::OrHash
|
|
85
|
+
]
|
|
86
|
+
),
|
|
83
87
|
type: Revox::AssistantCreateParams::Type::OrSymbol,
|
|
84
88
|
voice: Revox::AssistantCreateParams::Voice::OrHash,
|
|
85
89
|
voicemail_message: T.nilable(String),
|
|
@@ -119,9 +123,6 @@ module Revox
|
|
|
119
123
|
# outcome. Accepts a single email or a comma-separated list (e.g. "alice@x.com,
|
|
120
124
|
# bob@y.com").
|
|
121
125
|
email_notification_address: nil,
|
|
122
|
-
# The language used for the notification email content. One of "en" or "fr".
|
|
123
|
-
# Defaults to "en".
|
|
124
|
-
email_notification_language: nil,
|
|
125
126
|
# Which call outcomes trigger an email notification. E.g. ["interested",
|
|
126
127
|
# "completed", "none"]. Use "none" when outcome is null.
|
|
127
128
|
email_notification_outcomes: nil,
|
|
@@ -143,8 +144,8 @@ module Revox
|
|
|
143
144
|
# Must be a phone number owned by the organization in E.164 format (e.g.
|
|
144
145
|
# +1234567890). When null, the organization's default phone number is used.
|
|
145
146
|
from_phone_number: nil,
|
|
146
|
-
# When
|
|
147
|
-
# trunk must allow REFER/PSTN). Omit or null when transfer is disabled.
|
|
147
|
+
# When transfer_destinations is non-empty: "warm" (AI bridges) or "cold" (SIP
|
|
148
|
+
# REFER; trunk must allow REFER/PSTN). Omit or null when transfer is disabled.
|
|
148
149
|
human_transfer_mode: nil,
|
|
149
150
|
# Enable IVR navigation tools. When enabled, the assistant can send DTMF tones and
|
|
150
151
|
# skip turns to navigate phone menus.
|
|
@@ -162,6 +163,12 @@ module Revox
|
|
|
162
163
|
max_duration_end_message: nil,
|
|
163
164
|
# Canvas position of this assistant's node in its multi-step flow editor.
|
|
164
165
|
position: nil,
|
|
166
|
+
# Inbound calls only. URL fetched over HTTP GET right before the call is answered,
|
|
167
|
+
# with `{{phone}}` replaced by the caller's number in E.164 format (URL-encoded).
|
|
168
|
+
# It must return `{"prompt_variables": {...}}` covering every `{{variable}}` the
|
|
169
|
+
# assistant declares, otherwise the call is errored. Must be an http(s) URL
|
|
170
|
+
# containing `{{phone}}`. When null, no lookup is performed.
|
|
171
|
+
precall_lookup_url: nil,
|
|
165
172
|
# Visual prompt constructor data (nodes, edges, positions). Used by the UI to
|
|
166
173
|
# re-open the visual editor. Does not affect call behavior — the flattened prompt
|
|
167
174
|
# field is what the LLM receives.
|
|
@@ -198,9 +205,11 @@ module Revox
|
|
|
198
205
|
thinking_sound_probability: nil,
|
|
199
206
|
# Volume of the thinking sound (0 = silent, 1 = max).
|
|
200
207
|
thinking_sound_volume: nil,
|
|
201
|
-
#
|
|
202
|
-
#
|
|
203
|
-
|
|
208
|
+
# Where calls can be transferred to when users ask to speak to a human. With a
|
|
209
|
+
# single entry the assistant always transfers there; with several, it picks one at
|
|
210
|
+
# transfer time by applying the routing rules written in the assistant's own
|
|
211
|
+
# prompt (which refer to the destination labels). Empty or null disables transfer.
|
|
212
|
+
transfer_destinations: nil,
|
|
204
213
|
# Assistant kind. 'standalone' (default) is a normal assistant, 'multi-step'
|
|
205
214
|
# orchestrates a flow of sub-assistants, 'sub-assistant' is a step inside a
|
|
206
215
|
# multi-step flow (hidden from the assistants list). Flow transitions are managed
|
|
@@ -268,8 +277,6 @@ module Revox
|
|
|
268
277
|
T::Array[Revox::AssistantUpdateParams::CustomTool::OrHash]
|
|
269
278
|
),
|
|
270
279
|
email_notification_address: T.nilable(String),
|
|
271
|
-
email_notification_language:
|
|
272
|
-
Revox::AssistantUpdateParams::EmailNotificationLanguage::OrSymbol,
|
|
273
280
|
email_notification_outcomes:
|
|
274
281
|
T.nilable(
|
|
275
282
|
T::Array[
|
|
@@ -300,6 +307,7 @@ module Revox
|
|
|
300
307
|
max_duration_end_message: T.nilable(String),
|
|
301
308
|
name: String,
|
|
302
309
|
position: T.nilable(Revox::AssistantUpdateParams::Position::OrHash),
|
|
310
|
+
precall_lookup_url: T.nilable(String),
|
|
303
311
|
prompt: String,
|
|
304
312
|
prompt_flow:
|
|
305
313
|
T.nilable(Revox::AssistantUpdateParams::PromptFlow::OrHash),
|
|
@@ -318,7 +326,12 @@ module Revox
|
|
|
318
326
|
T.nilable(Revox::AssistantUpdateParams::ThinkingSound::OrSymbol),
|
|
319
327
|
thinking_sound_probability: Float,
|
|
320
328
|
thinking_sound_volume: Float,
|
|
321
|
-
|
|
329
|
+
transfer_destinations:
|
|
330
|
+
T.nilable(
|
|
331
|
+
T::Array[
|
|
332
|
+
Revox::AssistantUpdateParams::TransferDestination::OrHash
|
|
333
|
+
]
|
|
334
|
+
),
|
|
322
335
|
type: Revox::AssistantUpdateParams::Type::OrSymbol,
|
|
323
336
|
voice: Revox::AssistantUpdateParams::Voice::OrHash,
|
|
324
337
|
voicemail_message: T.nilable(String),
|
|
@@ -356,9 +369,6 @@ module Revox
|
|
|
356
369
|
# outcome. Accepts a single email or a comma-separated list (e.g. "alice@x.com,
|
|
357
370
|
# bob@y.com").
|
|
358
371
|
email_notification_address: nil,
|
|
359
|
-
# The language used for the notification email content. One of "en" or "fr".
|
|
360
|
-
# Defaults to "en".
|
|
361
|
-
email_notification_language: nil,
|
|
362
372
|
# Which call outcomes trigger an email notification. E.g. ["interested",
|
|
363
373
|
# "completed", "none"]. Use "none" when outcome is null.
|
|
364
374
|
email_notification_outcomes: nil,
|
|
@@ -380,8 +390,8 @@ module Revox
|
|
|
380
390
|
# Must be a phone number owned by the organization in E.164 format (e.g.
|
|
381
391
|
# +1234567890). When null, the organization's default phone number is used.
|
|
382
392
|
from_phone_number: nil,
|
|
383
|
-
# When
|
|
384
|
-
# trunk must allow REFER/PSTN). Omit or null when transfer is disabled.
|
|
393
|
+
# When transfer_destinations is non-empty: "warm" (AI bridges) or "cold" (SIP
|
|
394
|
+
# REFER; trunk must allow REFER/PSTN). Omit or null when transfer is disabled.
|
|
385
395
|
human_transfer_mode: nil,
|
|
386
396
|
# Enable IVR navigation tools. When enabled, the assistant can send DTMF tones and
|
|
387
397
|
# skip turns to navigate phone menus.
|
|
@@ -400,6 +410,12 @@ module Revox
|
|
|
400
410
|
name: nil,
|
|
401
411
|
# Canvas position of this assistant's node in its multi-step flow editor.
|
|
402
412
|
position: nil,
|
|
413
|
+
# Inbound calls only. URL fetched over HTTP GET right before the call is answered,
|
|
414
|
+
# with `{{phone}}` replaced by the caller's number in E.164 format (URL-encoded).
|
|
415
|
+
# It must return `{"prompt_variables": {...}}` covering every `{{variable}}` the
|
|
416
|
+
# assistant declares, otherwise the call is errored. Must be an http(s) URL
|
|
417
|
+
# containing `{{phone}}`. When null, no lookup is performed.
|
|
418
|
+
precall_lookup_url: nil,
|
|
403
419
|
# The prompt to use for the call. This will be given to the LLM (gpt-4.1)
|
|
404
420
|
prompt: nil,
|
|
405
421
|
# Visual prompt constructor data (nodes, edges, positions). Used by the UI to
|
|
@@ -438,9 +454,11 @@ module Revox
|
|
|
438
454
|
thinking_sound_probability: nil,
|
|
439
455
|
# Volume of the thinking sound (0 = silent, 1 = max).
|
|
440
456
|
thinking_sound_volume: nil,
|
|
441
|
-
#
|
|
442
|
-
#
|
|
443
|
-
|
|
457
|
+
# Where calls can be transferred to when users ask to speak to a human. With a
|
|
458
|
+
# single entry the assistant always transfers there; with several, it picks one at
|
|
459
|
+
# transfer time by applying the routing rules written in the assistant's own
|
|
460
|
+
# prompt (which refer to the destination labels). Empty or null disables transfer.
|
|
461
|
+
transfer_destinations: nil,
|
|
444
462
|
# Assistant kind. 'standalone' (default) is a normal assistant, 'multi-step'
|
|
445
463
|
# orchestrates a flow of sub-assistants, 'sub-assistant' is a step inside a
|
|
446
464
|
# multi-step flow (hidden from the assistants list). Flow transitions are managed
|
|
@@ -15,11 +15,11 @@ module Revox
|
|
|
15
15
|
assistant: Revox::CallCreateParams::Assistant::OrHash,
|
|
16
16
|
assistant_id: String,
|
|
17
17
|
concurrency: Revox::CallCreateParams::Concurrency::OrHash,
|
|
18
|
-
force_now: T::Boolean,
|
|
19
18
|
from_phone_number: String,
|
|
20
19
|
metadata: T::Hash[Symbol, String],
|
|
21
20
|
prompt_variables: T::Hash[Symbol, String],
|
|
22
21
|
scheduled_at: Revox::CallCreateParams::ScheduledAt::Variants,
|
|
22
|
+
skip_calling_window: T::Boolean,
|
|
23
23
|
request_options: Revox::RequestOptions::OrHash
|
|
24
24
|
).returns(Revox::Models::CallCreateResponse)
|
|
25
25
|
end
|
|
@@ -31,10 +31,10 @@ module Revox
|
|
|
31
31
|
assistant: nil,
|
|
32
32
|
# The ID of the assistant to use for this call.
|
|
33
33
|
assistant_id: nil,
|
|
34
|
-
# Limit the number of concurrent calls for a given concurrency key.
|
|
34
|
+
# Limit the number of concurrent calls for a given concurrency key. The limit
|
|
35
|
+
# itself is set server-side; omit this to leave the call ungrouped (bounded only
|
|
36
|
+
# by your organization's limit).
|
|
35
37
|
concurrency: nil,
|
|
36
|
-
# The prompt to use for the call. This will be given to the LLM (gpt-4.1)
|
|
37
|
-
force_now: nil,
|
|
38
38
|
# The phone number to use for making the call (e.g., +1234567890). If not
|
|
39
39
|
# provided, uses the default trunk.
|
|
40
40
|
from_phone_number: nil,
|
|
@@ -47,6 +47,9 @@ module Revox
|
|
|
47
47
|
# Schedule the call to start at a specific date and time (ISO 8601 format). If not
|
|
48
48
|
# provided, the call will start immediately.
|
|
49
49
|
scheduled_at: nil,
|
|
50
|
+
# Bypass the calling-window check for this call so it dials even outside the
|
|
51
|
+
# assistant's configured window. Use for immediate 'call now' dials.
|
|
52
|
+
skip_calling_window: nil,
|
|
50
53
|
request_options: {}
|
|
51
54
|
)
|
|
52
55
|
end
|
|
@@ -3,20 +3,18 @@
|
|
|
3
3
|
module Revox
|
|
4
4
|
module Resources
|
|
5
5
|
class Campaigns
|
|
6
|
-
# Create a new outbound calling campaign.
|
|
7
|
-
#
|
|
6
|
+
# Create a new outbound calling campaign. Every contact is materialized as a call
|
|
7
|
+
# in the `not_launched` status — nothing is dialed. Use POST
|
|
8
|
+
# /campaigns/:id/launch-calls to send them.
|
|
8
9
|
sig do
|
|
9
10
|
params(
|
|
10
11
|
assistant_id: String,
|
|
11
12
|
contacts: T::Array[Revox::CampaignCreateParams::Contact::OrHash],
|
|
12
|
-
launch: T::Boolean,
|
|
13
13
|
name: String,
|
|
14
|
-
type: Revox::CampaignCreateParams::Type::OrSymbol,
|
|
15
14
|
call_retry_config:
|
|
16
15
|
Revox::CampaignCreateParams::CallRetryConfig::OrHash,
|
|
17
16
|
from_phone_number: String,
|
|
18
17
|
max_concurrent_calls: Float,
|
|
19
|
-
scheduled_at: Revox::CampaignCreateParams::ScheduledAt::Variants,
|
|
20
18
|
request_options: Revox::RequestOptions::OrHash
|
|
21
19
|
).returns(Revox::Models::CampaignCreateResponse)
|
|
22
20
|
end
|
|
@@ -25,13 +23,8 @@ module Revox
|
|
|
25
23
|
assistant_id:,
|
|
26
24
|
# The list of contacts to call
|
|
27
25
|
contacts:,
|
|
28
|
-
# Whether to launch the campaign immediately. Set to false to save as a draft.
|
|
29
|
-
launch:,
|
|
30
26
|
# The name of the campaign
|
|
31
27
|
name:,
|
|
32
|
-
# Campaign type. 'jump_in' campaigns only dial while someone is on the campaign
|
|
33
|
-
# page and auto-pause when unattended.
|
|
34
|
-
type:,
|
|
35
28
|
# Override retry configuration for calls in this campaign. If not provided, uses
|
|
36
29
|
# the assistant's retry config.
|
|
37
30
|
call_retry_config: nil,
|
|
@@ -39,9 +32,6 @@ module Revox
|
|
|
39
32
|
from_phone_number: nil,
|
|
40
33
|
# Maximum number of concurrent calls allowed for this campaign
|
|
41
34
|
max_concurrent_calls: nil,
|
|
42
|
-
# Schedule all calls in this campaign to start at a specific date and time (ISO
|
|
43
|
-
# 8601 format)
|
|
44
|
-
scheduled_at: nil,
|
|
45
35
|
request_options: {}
|
|
46
36
|
)
|
|
47
37
|
end
|
|
@@ -57,44 +47,34 @@ module Revox
|
|
|
57
47
|
def retrieve(id, request_options: {})
|
|
58
48
|
end
|
|
59
49
|
|
|
60
|
-
# Update
|
|
61
|
-
#
|
|
62
|
-
#
|
|
50
|
+
# Update a campaign's name, outbound number, retry configuration (calling hours,
|
|
51
|
+
# retry delay, max attempts) and concurrency cap. Changes are applied to the
|
|
52
|
+
# campaign's calls that have not completed yet. The assistant is fixed at
|
|
53
|
+
# creation; add contacts with POST /campaigns/:id/rows, and choose when calls go
|
|
54
|
+
# out with POST /campaigns/:id/launch-calls.
|
|
63
55
|
sig do
|
|
64
56
|
params(
|
|
65
57
|
id: String,
|
|
66
|
-
assistant_id: String,
|
|
67
58
|
call_retry_config:
|
|
68
59
|
T.nilable(Revox::CampaignUpdateParams::CallRetryConfig::OrHash),
|
|
69
|
-
contacts: T::Array[Revox::CampaignUpdateParams::Contact::OrHash],
|
|
70
60
|
from_phone_number: T.nilable(String),
|
|
71
61
|
max_concurrent_calls: T.nilable(Float),
|
|
72
62
|
name: String,
|
|
73
|
-
scheduled_at:
|
|
74
|
-
T.nilable(Revox::CampaignUpdateParams::ScheduledAt::Variants),
|
|
75
|
-
type: Revox::CampaignUpdateParams::Type::OrSymbol,
|
|
76
63
|
request_options: Revox::RequestOptions::OrHash
|
|
77
64
|
).returns(Revox::Models::CampaignUpdateResponse)
|
|
78
65
|
end
|
|
79
66
|
def update(
|
|
80
67
|
id,
|
|
81
|
-
# The ID of the assistant to use (draft only)
|
|
82
|
-
assistant_id: nil,
|
|
83
68
|
# Configuration for call retry behavior including time windows, delays, and max
|
|
84
69
|
# iterations. If not provided, defaults will be used.
|
|
85
70
|
call_retry_config: nil,
|
|
86
|
-
#
|
|
87
|
-
|
|
88
|
-
# The phone number to use for outbound calls (draft only)
|
|
71
|
+
# The phone number to use for outbound calls. Editable after launch; applied to
|
|
72
|
+
# the campaign's calls that have not completed yet.
|
|
89
73
|
from_phone_number: nil,
|
|
90
|
-
# Maximum concurrent calls
|
|
74
|
+
# Maximum concurrent calls. Editable after launch.
|
|
91
75
|
max_concurrent_calls: nil,
|
|
92
76
|
# Campaign display name
|
|
93
77
|
name: nil,
|
|
94
|
-
# Scheduled start time (draft only)
|
|
95
|
-
scheduled_at: nil,
|
|
96
|
-
# Campaign type (draft only)
|
|
97
|
-
type: nil,
|
|
98
78
|
request_options: {}
|
|
99
79
|
)
|
|
100
80
|
end
|
|
@@ -143,8 +123,7 @@ module Revox
|
|
|
143
123
|
def export_rows(id, request_options: {})
|
|
144
124
|
end
|
|
145
125
|
|
|
146
|
-
# Retrieve all contact rows for a campaign.
|
|
147
|
-
# for editing.
|
|
126
|
+
# Retrieve all contact rows for a campaign.
|
|
148
127
|
sig do
|
|
149
128
|
params(
|
|
150
129
|
id: String,
|
|
@@ -154,17 +133,6 @@ module Revox
|
|
|
154
133
|
def get_rows(id, request_options: {})
|
|
155
134
|
end
|
|
156
135
|
|
|
157
|
-
# Launch a previously saved draft campaign. This starts all calls immediately (or
|
|
158
|
-
# queues them if scheduled_at is set). The campaign must be in draft status.
|
|
159
|
-
sig do
|
|
160
|
-
params(
|
|
161
|
-
id: String,
|
|
162
|
-
request_options: Revox::RequestOptions::OrHash
|
|
163
|
-
).returns(Revox::Models::CampaignLaunchResponse)
|
|
164
|
-
end
|
|
165
|
-
def launch(id, request_options: {})
|
|
166
|
-
end
|
|
167
|
-
|
|
168
136
|
# Pause a running campaign so no further calls are placed. In-progress calls are
|
|
169
137
|
# allowed to finish; pending and scheduled calls are held until the campaign is
|
|
170
138
|
# resumed. Scheduled retry timers keep counting down, so a call resumed before its
|
|
@@ -27,7 +27,6 @@ module Revox
|
|
|
27
27
|
created_at: top,
|
|
28
28
|
custom_tools: ::Array[Revox::Models::AssistantCloneResponse::Assistant::CustomTool]?,
|
|
29
29
|
email_notification_address: String?,
|
|
30
|
-
email_notification_language: Revox::Models::AssistantCloneResponse::Assistant::email_notification_language,
|
|
31
30
|
email_notification_outcomes: ::Array[Revox::Models::AssistantCloneResponse::Assistant::email_notification_outcome]?,
|
|
32
31
|
end_of_call_sentence: String?,
|
|
33
32
|
first_sentence: String?,
|
|
@@ -43,6 +42,7 @@ module Revox
|
|
|
43
42
|
name: String,
|
|
44
43
|
organization_id: String,
|
|
45
44
|
position: Revox::Models::AssistantCloneResponse::Assistant::Position?,
|
|
45
|
+
precall_lookup_url: String?,
|
|
46
46
|
prompt: String,
|
|
47
47
|
prompt_flow: Revox::Models::AssistantCloneResponse::Assistant::PromptFlow?,
|
|
48
48
|
slack: Revox::Models::AssistantCloneResponse::Assistant::Slack?,
|
|
@@ -55,7 +55,7 @@ module Revox
|
|
|
55
55
|
thinking_sound: Revox::Models::AssistantCloneResponse::Assistant::thinking_sound?,
|
|
56
56
|
thinking_sound_probability: Float,
|
|
57
57
|
thinking_sound_volume: Float,
|
|
58
|
-
|
|
58
|
+
transfer_destinations: ::Array[Revox::Models::AssistantCloneResponse::Assistant::TransferDestination]?,
|
|
59
59
|
type: Revox::Models::AssistantCloneResponse::Assistant::type_,
|
|
60
60
|
updated_at: top,
|
|
61
61
|
voice: Revox::Models::AssistantCloneResponse::Assistant::Voice?,
|
|
@@ -66,6 +66,7 @@ module Revox
|
|
|
66
66
|
zoho: Revox::Models::AssistantCloneResponse::Assistant::Zoho?,
|
|
67
67
|
created_by: Revox::Models::AssistantCloneResponse::Assistant::CreatedBy?,
|
|
68
68
|
faq_items: ::Array[Revox::Models::AssistantCloneResponse::Assistant::FaqItem],
|
|
69
|
+
is_inbound_receptionist: bool,
|
|
69
70
|
is_realestate_assistant: bool,
|
|
70
71
|
pending_faq_count: Float
|
|
71
72
|
}
|
|
@@ -93,8 +94,6 @@ module Revox
|
|
|
93
94
|
|
|
94
95
|
attr_accessor email_notification_address: String?
|
|
95
96
|
|
|
96
|
-
attr_accessor email_notification_language: Revox::Models::AssistantCloneResponse::Assistant::email_notification_language
|
|
97
|
-
|
|
98
97
|
attr_accessor email_notification_outcomes: ::Array[Revox::Models::AssistantCloneResponse::Assistant::email_notification_outcome]?
|
|
99
98
|
|
|
100
99
|
attr_accessor end_of_call_sentence: String?
|
|
@@ -125,6 +124,8 @@ module Revox
|
|
|
125
124
|
|
|
126
125
|
attr_accessor position: Revox::Models::AssistantCloneResponse::Assistant::Position?
|
|
127
126
|
|
|
127
|
+
attr_accessor precall_lookup_url: String?
|
|
128
|
+
|
|
128
129
|
attr_accessor prompt: String
|
|
129
130
|
|
|
130
131
|
attr_accessor prompt_flow: Revox::Models::AssistantCloneResponse::Assistant::PromptFlow?
|
|
@@ -149,7 +150,7 @@ module Revox
|
|
|
149
150
|
|
|
150
151
|
attr_accessor thinking_sound_volume: Float
|
|
151
152
|
|
|
152
|
-
attr_accessor
|
|
153
|
+
attr_accessor transfer_destinations: ::Array[Revox::Models::AssistantCloneResponse::Assistant::TransferDestination]?
|
|
153
154
|
|
|
154
155
|
attr_accessor type: Revox::Models::AssistantCloneResponse::Assistant::type_
|
|
155
156
|
|
|
@@ -175,6 +176,10 @@ module Revox
|
|
|
175
176
|
::Array[Revox::Models::AssistantCloneResponse::Assistant::FaqItem]
|
|
176
177
|
) -> ::Array[Revox::Models::AssistantCloneResponse::Assistant::FaqItem]
|
|
177
178
|
|
|
179
|
+
attr_reader is_inbound_receptionist: bool?
|
|
180
|
+
|
|
181
|
+
def is_inbound_receptionist=: (bool) -> bool
|
|
182
|
+
|
|
178
183
|
attr_reader is_realestate_assistant: bool?
|
|
179
184
|
|
|
180
185
|
def is_realestate_assistant=: (bool) -> bool
|
|
@@ -195,7 +200,6 @@ module Revox
|
|
|
195
200
|
created_at: top,
|
|
196
201
|
custom_tools: ::Array[Revox::Models::AssistantCloneResponse::Assistant::CustomTool]?,
|
|
197
202
|
email_notification_address: String?,
|
|
198
|
-
email_notification_language: Revox::Models::AssistantCloneResponse::Assistant::email_notification_language,
|
|
199
203
|
email_notification_outcomes: ::Array[Revox::Models::AssistantCloneResponse::Assistant::email_notification_outcome]?,
|
|
200
204
|
end_of_call_sentence: String?,
|
|
201
205
|
first_sentence: String?,
|
|
@@ -211,6 +215,7 @@ module Revox
|
|
|
211
215
|
name: String,
|
|
212
216
|
organization_id: String,
|
|
213
217
|
position: Revox::Models::AssistantCloneResponse::Assistant::Position?,
|
|
218
|
+
precall_lookup_url: String?,
|
|
214
219
|
prompt: String,
|
|
215
220
|
prompt_flow: Revox::Models::AssistantCloneResponse::Assistant::PromptFlow?,
|
|
216
221
|
slack: Revox::Models::AssistantCloneResponse::Assistant::Slack?,
|
|
@@ -223,7 +228,7 @@ module Revox
|
|
|
223
228
|
thinking_sound: Revox::Models::AssistantCloneResponse::Assistant::thinking_sound?,
|
|
224
229
|
thinking_sound_probability: Float,
|
|
225
230
|
thinking_sound_volume: Float,
|
|
226
|
-
|
|
231
|
+
transfer_destinations: ::Array[Revox::Models::AssistantCloneResponse::Assistant::TransferDestination]?,
|
|
227
232
|
type: Revox::Models::AssistantCloneResponse::Assistant::type_,
|
|
228
233
|
updated_at: top,
|
|
229
234
|
voice: Revox::Models::AssistantCloneResponse::Assistant::Voice?,
|
|
@@ -234,6 +239,7 @@ module Revox
|
|
|
234
239
|
zoho: Revox::Models::AssistantCloneResponse::Assistant::Zoho?,
|
|
235
240
|
?created_by: Revox::Models::AssistantCloneResponse::Assistant::CreatedBy?,
|
|
236
241
|
?faq_items: ::Array[Revox::Models::AssistantCloneResponse::Assistant::FaqItem],
|
|
242
|
+
?is_inbound_receptionist: bool,
|
|
237
243
|
?is_realestate_assistant: bool,
|
|
238
244
|
?pending_faq_count: Float
|
|
239
245
|
) -> void
|
|
@@ -250,7 +256,6 @@ module Revox
|
|
|
250
256
|
created_at: top,
|
|
251
257
|
custom_tools: ::Array[Revox::Models::AssistantCloneResponse::Assistant::CustomTool]?,
|
|
252
258
|
email_notification_address: String?,
|
|
253
|
-
email_notification_language: Revox::Models::AssistantCloneResponse::Assistant::email_notification_language,
|
|
254
259
|
email_notification_outcomes: ::Array[Revox::Models::AssistantCloneResponse::Assistant::email_notification_outcome]?,
|
|
255
260
|
end_of_call_sentence: String?,
|
|
256
261
|
first_sentence: String?,
|
|
@@ -266,6 +271,7 @@ module Revox
|
|
|
266
271
|
name: String,
|
|
267
272
|
organization_id: String,
|
|
268
273
|
position: Revox::Models::AssistantCloneResponse::Assistant::Position?,
|
|
274
|
+
precall_lookup_url: String?,
|
|
269
275
|
prompt: String,
|
|
270
276
|
prompt_flow: Revox::Models::AssistantCloneResponse::Assistant::PromptFlow?,
|
|
271
277
|
slack: Revox::Models::AssistantCloneResponse::Assistant::Slack?,
|
|
@@ -278,7 +284,7 @@ module Revox
|
|
|
278
284
|
thinking_sound: Revox::Models::AssistantCloneResponse::Assistant::thinking_sound?,
|
|
279
285
|
thinking_sound_probability: Float,
|
|
280
286
|
thinking_sound_volume: Float,
|
|
281
|
-
|
|
287
|
+
transfer_destinations: ::Array[Revox::Models::AssistantCloneResponse::Assistant::TransferDestination]?,
|
|
282
288
|
type: Revox::Models::AssistantCloneResponse::Assistant::type_,
|
|
283
289
|
updated_at: top,
|
|
284
290
|
voice: Revox::Models::AssistantCloneResponse::Assistant::Voice?,
|
|
@@ -289,6 +295,7 @@ module Revox
|
|
|
289
295
|
zoho: Revox::Models::AssistantCloneResponse::Assistant::Zoho?,
|
|
290
296
|
created_by: Revox::Models::AssistantCloneResponse::Assistant::CreatedBy?,
|
|
291
297
|
faq_items: ::Array[Revox::Models::AssistantCloneResponse::Assistant::FaqItem],
|
|
298
|
+
is_inbound_receptionist: bool,
|
|
292
299
|
is_realestate_assistant: bool,
|
|
293
300
|
pending_faq_count: Float
|
|
294
301
|
}
|
|
@@ -298,9 +305,6 @@ module Revox
|
|
|
298
305
|
| :interested
|
|
299
306
|
| :completed
|
|
300
307
|
| :requested_callback_later
|
|
301
|
-
| :requested_callback_new_number
|
|
302
|
-
| :do_not_contact
|
|
303
|
-
| :ai_averse
|
|
304
308
|
| :none
|
|
305
309
|
|
|
306
310
|
module AfterCallSMSOutcome
|
|
@@ -310,9 +314,6 @@ module Revox
|
|
|
310
314
|
INTERESTED: :interested
|
|
311
315
|
COMPLETED: :completed
|
|
312
316
|
REQUESTED_CALLBACK_LATER: :requested_callback_later
|
|
313
|
-
REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
|
|
314
|
-
DO_NOT_CONTACT: :do_not_contact
|
|
315
|
-
AI_AVERSE: :ai_averse
|
|
316
317
|
NONE: :none
|
|
317
318
|
|
|
318
319
|
def self?.values: -> ::Array[Revox::Models::AssistantCloneResponse::Assistant::after_call_sms_outcome]
|
|
@@ -574,25 +575,11 @@ module Revox
|
|
|
574
575
|
end
|
|
575
576
|
end
|
|
576
577
|
|
|
577
|
-
type email_notification_language = :en | :fr
|
|
578
|
-
|
|
579
|
-
module EmailNotificationLanguage
|
|
580
|
-
extend Revox::Internal::Type::Enum
|
|
581
|
-
|
|
582
|
-
EN: :en
|
|
583
|
-
FR: :fr
|
|
584
|
-
|
|
585
|
-
def self?.values: -> ::Array[Revox::Models::AssistantCloneResponse::Assistant::email_notification_language]
|
|
586
|
-
end
|
|
587
|
-
|
|
588
578
|
type email_notification_outcome =
|
|
589
579
|
:not_interested
|
|
590
580
|
| :interested
|
|
591
581
|
| :completed
|
|
592
582
|
| :requested_callback_later
|
|
593
|
-
| :requested_callback_new_number
|
|
594
|
-
| :do_not_contact
|
|
595
|
-
| :ai_averse
|
|
596
583
|
| :none
|
|
597
584
|
|
|
598
585
|
module EmailNotificationOutcome
|
|
@@ -602,9 +589,6 @@ module Revox
|
|
|
602
589
|
INTERESTED: :interested
|
|
603
590
|
COMPLETED: :completed
|
|
604
591
|
REQUESTED_CALLBACK_LATER: :requested_callback_later
|
|
605
|
-
REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
|
|
606
|
-
DO_NOT_CONTACT: :do_not_contact
|
|
607
|
-
AI_AVERSE: :ai_averse
|
|
608
592
|
NONE: :none
|
|
609
593
|
|
|
610
594
|
def self?.values: -> ::Array[Revox::Models::AssistantCloneResponse::Assistant::email_notification_outcome]
|
|
@@ -888,48 +872,52 @@ module Revox
|
|
|
888
872
|
|
|
889
873
|
type slack =
|
|
890
874
|
{
|
|
891
|
-
|
|
875
|
+
channels: ::Array[Revox::Models::AssistantCloneResponse::Assistant::Slack::Channel],
|
|
892
876
|
connection_id: String,
|
|
893
877
|
outcomes: ::Array[Revox::Models::AssistantCloneResponse::Assistant::Slack::outcome],
|
|
894
|
-
channel_name: String?,
|
|
895
878
|
template: String?
|
|
896
879
|
}
|
|
897
880
|
|
|
898
881
|
class Slack < Revox::Internal::Type::BaseModel
|
|
899
|
-
attr_accessor
|
|
882
|
+
attr_accessor channels: ::Array[Revox::Models::AssistantCloneResponse::Assistant::Slack::Channel]
|
|
900
883
|
|
|
901
884
|
attr_accessor connection_id: String
|
|
902
885
|
|
|
903
886
|
attr_accessor outcomes: ::Array[Revox::Models::AssistantCloneResponse::Assistant::Slack::outcome]
|
|
904
887
|
|
|
905
|
-
attr_accessor channel_name: String?
|
|
906
|
-
|
|
907
888
|
attr_accessor template: String?
|
|
908
889
|
|
|
909
890
|
def initialize: (
|
|
910
|
-
|
|
891
|
+
channels: ::Array[Revox::Models::AssistantCloneResponse::Assistant::Slack::Channel],
|
|
911
892
|
connection_id: String,
|
|
912
893
|
outcomes: ::Array[Revox::Models::AssistantCloneResponse::Assistant::Slack::outcome],
|
|
913
|
-
?channel_name: String?,
|
|
914
894
|
?template: String?
|
|
915
895
|
) -> void
|
|
916
896
|
|
|
917
897
|
def to_hash: -> {
|
|
918
|
-
|
|
898
|
+
channels: ::Array[Revox::Models::AssistantCloneResponse::Assistant::Slack::Channel],
|
|
919
899
|
connection_id: String,
|
|
920
900
|
outcomes: ::Array[Revox::Models::AssistantCloneResponse::Assistant::Slack::outcome],
|
|
921
|
-
channel_name: String?,
|
|
922
901
|
template: String?
|
|
923
902
|
}
|
|
924
903
|
|
|
904
|
+
type channel = { id: String, name: String? }
|
|
905
|
+
|
|
906
|
+
class Channel < Revox::Internal::Type::BaseModel
|
|
907
|
+
attr_accessor id: String
|
|
908
|
+
|
|
909
|
+
attr_accessor name: String?
|
|
910
|
+
|
|
911
|
+
def initialize: (id: String, ?name: String?) -> void
|
|
912
|
+
|
|
913
|
+
def to_hash: -> { id: String, name: String? }
|
|
914
|
+
end
|
|
915
|
+
|
|
925
916
|
type outcome =
|
|
926
917
|
:not_interested
|
|
927
918
|
| :interested
|
|
928
919
|
| :completed
|
|
929
920
|
| :requested_callback_later
|
|
930
|
-
| :requested_callback_new_number
|
|
931
|
-
| :do_not_contact
|
|
932
|
-
| :ai_averse
|
|
933
921
|
| :none
|
|
934
922
|
|
|
935
923
|
module Outcome
|
|
@@ -939,9 +927,6 @@ module Revox
|
|
|
939
927
|
INTERESTED: :interested
|
|
940
928
|
COMPLETED: :completed
|
|
941
929
|
REQUESTED_CALLBACK_LATER: :requested_callback_later
|
|
942
|
-
REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
|
|
943
|
-
DO_NOT_CONTACT: :do_not_contact
|
|
944
|
-
AI_AVERSE: :ai_averse
|
|
945
930
|
NONE: :none
|
|
946
931
|
|
|
947
932
|
def self?.values: -> ::Array[Revox::Models::AssistantCloneResponse::Assistant::Slack::outcome]
|
|
@@ -1072,6 +1057,18 @@ module Revox
|
|
|
1072
1057
|
def self?.values: -> ::Array[Revox::Models::AssistantCloneResponse::Assistant::thinking_sound]
|
|
1073
1058
|
end
|
|
1074
1059
|
|
|
1060
|
+
type transfer_destination = { label: String, phone_number: String }
|
|
1061
|
+
|
|
1062
|
+
class TransferDestination < Revox::Internal::Type::BaseModel
|
|
1063
|
+
attr_accessor label: String
|
|
1064
|
+
|
|
1065
|
+
attr_accessor phone_number: String
|
|
1066
|
+
|
|
1067
|
+
def initialize: (label: String, phone_number: String) -> void
|
|
1068
|
+
|
|
1069
|
+
def to_hash: -> { label: String, phone_number: String }
|
|
1070
|
+
end
|
|
1071
|
+
|
|
1075
1072
|
type type_ = :standalone | :"multi-step" | :"sub-assistant"
|
|
1076
1073
|
|
|
1077
1074
|
module Type
|
|
@@ -1128,13 +1125,14 @@ module Revox
|
|
|
1128
1125
|
volume: Float
|
|
1129
1126
|
}
|
|
1130
1127
|
|
|
1131
|
-
type provider = :cartesia | :elevenlabs
|
|
1128
|
+
type provider = :cartesia | :elevenlabs | :gradium
|
|
1132
1129
|
|
|
1133
1130
|
module Provider
|
|
1134
1131
|
extend Revox::Internal::Type::Enum
|
|
1135
1132
|
|
|
1136
1133
|
CARTESIA: :cartesia
|
|
1137
1134
|
ELEVENLABS: :elevenlabs
|
|
1135
|
+
GRADIUM: :gradium
|
|
1138
1136
|
|
|
1139
1137
|
def self?.values: -> ::Array[Revox::Models::AssistantCloneResponse::Assistant::Voice::provider]
|
|
1140
1138
|
end
|
|
@@ -1209,9 +1207,6 @@ module Revox
|
|
|
1209
1207
|
| :interested
|
|
1210
1208
|
| :completed
|
|
1211
1209
|
| :requested_callback_later
|
|
1212
|
-
| :requested_callback_new_number
|
|
1213
|
-
| :do_not_contact
|
|
1214
|
-
| :ai_averse
|
|
1215
1210
|
| :none
|
|
1216
1211
|
|
|
1217
1212
|
module Outcome
|
|
@@ -1221,9 +1216,6 @@ module Revox
|
|
|
1221
1216
|
INTERESTED: :interested
|
|
1222
1217
|
COMPLETED: :completed
|
|
1223
1218
|
REQUESTED_CALLBACK_LATER: :requested_callback_later
|
|
1224
|
-
REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
|
|
1225
|
-
DO_NOT_CONTACT: :do_not_contact
|
|
1226
|
-
AI_AVERSE: :ai_averse
|
|
1227
1219
|
NONE: :none
|
|
1228
1220
|
|
|
1229
1221
|
def self?.values: -> ::Array[Revox::Models::AssistantCloneResponse::Assistant::Zoho::outcome]
|