revox 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +71 -0
- data/README.md +39 -14
- data/lib/revox/client.rb +15 -1
- data/lib/revox/internal/transport/base_client.rb +5 -0
- data/lib/revox/internal/util.rb +22 -7
- data/lib/revox/models/assistant_create_params.rb +1038 -13
- data/lib/revox/models/assistant_create_response.rb +1071 -11
- data/lib/revox/models/assistant_list_response.rb +1070 -11
- data/lib/revox/models/assistant_retrieve_response.rb +1066 -11
- data/lib/revox/models/assistant_update_params.rb +1038 -13
- data/lib/revox/models/assistant_update_response.rb +1097 -12
- data/lib/revox/models/call_create_params.rb +1065 -13
- data/lib/revox/models/call_create_response.rb +1813 -101
- data/lib/revox/models/call_retrieve_response.rb +1815 -101
- data/lib/revox/models/campaign_create_params.rb +67 -2
- data/lib/revox/models/campaign_create_response.rb +1314 -59
- data/lib/revox/models/campaign_get_rows_params.rb +1 -46
- data/lib/revox/models/campaign_get_rows_response.rb +1837 -129
- data/lib/revox/models/campaign_list_response.rb +1312 -59
- data/lib/revox/models/campaign_retrieve_response.rb +1312 -56
- data/lib/revox/models/users/me_retrieve_response.rb +13 -1
- data/lib/revox/models/users/me_update_response.rb +13 -1
- data/lib/revox/models/voice_list_response.rb +55 -1
- data/lib/revox/models/voice_preview_params.rb +49 -1
- data/lib/revox/models.rb +0 -2
- data/lib/revox/resources/assistants.rb +116 -8
- data/lib/revox/resources/call.rb +0 -29
- data/lib/revox/resources/campaigns.rb +12 -17
- data/lib/revox/resources/voices.rb +16 -10
- data/lib/revox/version.rb +1 -1
- data/lib/revox.rb +0 -2
- data/rbi/revox/internal/util.rbi +8 -0
- data/rbi/revox/models/assistant_create_params.rbi +2138 -103
- data/rbi/revox/models/assistant_create_response.rbi +2454 -199
- data/rbi/revox/models/assistant_list_response.rbi +2448 -195
- data/rbi/revox/models/assistant_retrieve_response.rbi +2401 -210
- data/rbi/revox/models/assistant_update_params.rbi +2138 -103
- data/rbi/revox/models/assistant_update_response.rbi +2504 -198
- data/rbi/revox/models/call_create_params.rbi +2382 -225
- data/rbi/revox/models/call_create_response.rbi +4104 -384
- data/rbi/revox/models/call_retrieve_response.rbi +4104 -382
- data/rbi/revox/models/campaign_create_params.rbi +136 -0
- data/rbi/revox/models/campaign_create_response.rbi +2911 -231
- data/rbi/revox/models/campaign_get_rows_params.rbi +2 -82
- data/rbi/revox/models/campaign_get_rows_response.rbi +4135 -410
- data/rbi/revox/models/campaign_list_response.rbi +2904 -230
- data/rbi/revox/models/campaign_retrieve_response.rbi +2911 -231
- data/rbi/revox/models/users/me_retrieve_response.rbi +13 -3
- data/rbi/revox/models/users/me_update_response.rbi +13 -3
- data/rbi/revox/models/voice_list_response.rbi +105 -3
- data/rbi/revox/models/voice_preview_params.rbi +69 -0
- data/rbi/revox/models.rbi +0 -2
- data/rbi/revox/resources/assistants.rbi +284 -8
- data/rbi/revox/resources/call.rbi +0 -21
- data/rbi/revox/resources/campaigns.rbi +12 -19
- data/rbi/revox/resources/voices.rbi +17 -9
- data/sig/revox/internal/util.rbs +4 -0
- data/sig/revox/models/assistant_create_params.rbs +844 -11
- data/sig/revox/models/assistant_create_response.rbs +860 -3
- data/sig/revox/models/assistant_list_response.rbs +860 -3
- data/sig/revox/models/assistant_retrieve_response.rbs +859 -3
- data/sig/revox/models/assistant_update_params.rbs +844 -11
- data/sig/revox/models/assistant_update_response.rbs +886 -6
- data/sig/revox/models/call_create_params.rbs +847 -13
- data/sig/revox/models/call_create_response.rbs +1514 -34
- data/sig/revox/models/call_retrieve_response.rbs +1514 -34
- data/sig/revox/models/campaign_create_params.rbs +54 -0
- data/sig/revox/models/campaign_create_response.rbs +1034 -6
- data/sig/revox/models/campaign_get_rows_params.rbs +2 -64
- data/sig/revox/models/campaign_get_rows_response.rbs +1522 -54
- data/sig/revox/models/campaign_list_response.rbs +1034 -6
- data/sig/revox/models/campaign_retrieve_response.rbs +1034 -6
- data/sig/revox/models/users/me_retrieve_response.rbs +8 -3
- data/sig/revox/models/users/me_update_response.rbs +8 -3
- data/sig/revox/models/voice_list_response.rbs +45 -3
- data/sig/revox/models/voice_preview_params.rbs +42 -1
- data/sig/revox/models.rbs +0 -2
- data/sig/revox/resources/assistants.rbs +56 -2
- data/sig/revox/resources/call.rbs +0 -7
- data/sig/revox/resources/campaigns.rbs +2 -5
- data/sig/revox/resources/voices.rbs +4 -0
- metadata +2 -8
- data/lib/revox/models/call_list_params.rb +0 -52
- data/lib/revox/models/call_list_response.rb +0 -259
- data/rbi/revox/models/call_list_params.rbi +0 -94
- data/rbi/revox/models/call_list_response.rbi +0 -563
- data/sig/revox/models/call_list_params.rbs +0 -63
- data/sig/revox/models/call_list_response.rbs +0 -226
|
@@ -64,7 +64,17 @@ module Revox
|
|
|
64
64
|
# @return [Object]
|
|
65
65
|
required :updated_at, Revox::Internal::Type::Unknown
|
|
66
66
|
|
|
67
|
-
# @!
|
|
67
|
+
# @!attribute organization_country
|
|
68
|
+
# ISO 3166-1 alpha-2 country code of the organization (e.g. FR). Used as the
|
|
69
|
+
# default region when normalizing national-format phone numbers.
|
|
70
|
+
#
|
|
71
|
+
# @return [String, nil]
|
|
72
|
+
optional :organization_country, String, nil?: true
|
|
73
|
+
|
|
74
|
+
# @!method initialize(id:, created_at:, email:, first_name:, has_completed_onboarding:, last_name:, organization_id:, updated_at:, organization_country: nil)
|
|
75
|
+
# Some parameter documentations has been truncated, see
|
|
76
|
+
# {Revox::Models::Users::MeRetrieveResponse::User} for more details.
|
|
77
|
+
#
|
|
68
78
|
# The current authenticated user.
|
|
69
79
|
#
|
|
70
80
|
# @param id [String] The unique identifier of the user.
|
|
@@ -82,6 +92,8 @@ module Revox
|
|
|
82
92
|
# @param organization_id [String] The ID of the organization the user belongs to.
|
|
83
93
|
#
|
|
84
94
|
# @param updated_at [Object] The time the user was last updated.
|
|
95
|
+
#
|
|
96
|
+
# @param organization_country [String, nil] ISO 3166-1 alpha-2 country code of the organization (e.g. FR). Used as the defau
|
|
85
97
|
end
|
|
86
98
|
end
|
|
87
99
|
end
|
|
@@ -64,7 +64,17 @@ module Revox
|
|
|
64
64
|
# @return [Object]
|
|
65
65
|
required :updated_at, Revox::Internal::Type::Unknown
|
|
66
66
|
|
|
67
|
-
# @!
|
|
67
|
+
# @!attribute organization_country
|
|
68
|
+
# ISO 3166-1 alpha-2 country code of the organization (e.g. FR). Used as the
|
|
69
|
+
# default region when normalizing national-format phone numbers.
|
|
70
|
+
#
|
|
71
|
+
# @return [String, nil]
|
|
72
|
+
optional :organization_country, String, nil?: true
|
|
73
|
+
|
|
74
|
+
# @!method initialize(id:, created_at:, email:, first_name:, has_completed_onboarding:, last_name:, organization_id:, updated_at:, organization_country: nil)
|
|
75
|
+
# Some parameter documentations has been truncated, see
|
|
76
|
+
# {Revox::Models::Users::MeUpdateResponse::User} for more details.
|
|
77
|
+
#
|
|
68
78
|
# The current authenticated user.
|
|
69
79
|
#
|
|
70
80
|
# @param id [String] The unique identifier of the user.
|
|
@@ -82,6 +92,8 @@ module Revox
|
|
|
82
92
|
# @param organization_id [String] The ID of the organization the user belongs to.
|
|
83
93
|
#
|
|
84
94
|
# @param updated_at [Object] The time the user was last updated.
|
|
95
|
+
#
|
|
96
|
+
# @param organization_country [String, nil] ISO 3166-1 alpha-2 country code of the organization (e.g. FR). Used as the defau
|
|
85
97
|
end
|
|
86
98
|
end
|
|
87
99
|
end
|
|
@@ -43,7 +43,38 @@ module Revox
|
|
|
43
43
|
# @return [Symbol, Revox::Models::VoiceListResponse::Voice::Provider]
|
|
44
44
|
required :provider, enum: -> { Revox::Models::VoiceListResponse::Voice::Provider }
|
|
45
45
|
|
|
46
|
-
# @!
|
|
46
|
+
# @!attribute accent
|
|
47
|
+
# The accent/dialect of the voice (e.g. 'american', 'british', 'australian',
|
|
48
|
+
# 'quebec').
|
|
49
|
+
#
|
|
50
|
+
# @return [String, nil]
|
|
51
|
+
optional :accent, String
|
|
52
|
+
|
|
53
|
+
# @!attribute gender
|
|
54
|
+
# The gender of the voice (e.g. 'male', 'female', 'neutral').
|
|
55
|
+
#
|
|
56
|
+
# @return [String, nil]
|
|
57
|
+
optional :gender, String
|
|
58
|
+
|
|
59
|
+
# @!attribute is_cloned
|
|
60
|
+
# Whether this is a cloned voice.
|
|
61
|
+
#
|
|
62
|
+
# @return [Boolean, nil]
|
|
63
|
+
optional :is_cloned, Revox::Internal::Type::Boolean, api_name: :isCloned
|
|
64
|
+
|
|
65
|
+
# @!attribute model_compat
|
|
66
|
+
# Cartesia model compatibility. Used to filter the voice list by the selected
|
|
67
|
+
# model. Absent/undefined is treated as 'universal'.
|
|
68
|
+
#
|
|
69
|
+
# @return [Symbol, Revox::Models::VoiceListResponse::Voice::ModelCompat, nil]
|
|
70
|
+
optional :model_compat,
|
|
71
|
+
enum: -> { Revox::Models::VoiceListResponse::Voice::ModelCompat },
|
|
72
|
+
api_name: :modelCompat
|
|
73
|
+
|
|
74
|
+
# @!method initialize(id:, description:, language:, name:, provider:, accent: nil, gender: nil, is_cloned: nil, model_compat: nil)
|
|
75
|
+
# Some parameter documentations has been truncated, see
|
|
76
|
+
# {Revox::Models::VoiceListResponse::Voice} for more details.
|
|
77
|
+
#
|
|
47
78
|
# @param id [String] The ID of the voice.
|
|
48
79
|
#
|
|
49
80
|
# @param description [String] The description of the voice.
|
|
@@ -53,6 +84,14 @@ module Revox
|
|
|
53
84
|
# @param name [String] The name of the voice.
|
|
54
85
|
#
|
|
55
86
|
# @param provider [Symbol, Revox::Models::VoiceListResponse::Voice::Provider] The provider of the voice.
|
|
87
|
+
#
|
|
88
|
+
# @param accent [String] The accent/dialect of the voice (e.g. 'american', 'british', 'australian', 'queb
|
|
89
|
+
#
|
|
90
|
+
# @param gender [String] The gender of the voice (e.g. 'male', 'female', 'neutral').
|
|
91
|
+
#
|
|
92
|
+
# @param is_cloned [Boolean] Whether this is a cloned voice.
|
|
93
|
+
#
|
|
94
|
+
# @param model_compat [Symbol, Revox::Models::VoiceListResponse::Voice::ModelCompat] Cartesia model compatibility. Used to filter the voice list by the selected mode
|
|
56
95
|
|
|
57
96
|
# The language of the voice.
|
|
58
97
|
#
|
|
@@ -85,6 +124,21 @@ module Revox
|
|
|
85
124
|
# @!method self.values
|
|
86
125
|
# @return [Array<Symbol>]
|
|
87
126
|
end
|
|
127
|
+
|
|
128
|
+
# Cartesia model compatibility. Used to filter the voice list by the selected
|
|
129
|
+
# model. Absent/undefined is treated as 'universal'.
|
|
130
|
+
#
|
|
131
|
+
# @see Revox::Models::VoiceListResponse::Voice#model_compat
|
|
132
|
+
module ModelCompat
|
|
133
|
+
extend Revox::Internal::Type::Enum
|
|
134
|
+
|
|
135
|
+
UNIVERSAL = :universal
|
|
136
|
+
SONIC_3 = :"sonic-3"
|
|
137
|
+
SONIC_3_5 = :"sonic-3.5"
|
|
138
|
+
|
|
139
|
+
# @!method self.values
|
|
140
|
+
# @return [Array<Symbol>]
|
|
141
|
+
end
|
|
88
142
|
end
|
|
89
143
|
end
|
|
90
144
|
end
|
|
@@ -19,11 +19,47 @@ module Revox
|
|
|
19
19
|
# @return [String]
|
|
20
20
|
required :voice_id, String, api_name: :voiceId
|
|
21
21
|
|
|
22
|
-
# @!
|
|
22
|
+
# @!attribute model
|
|
23
|
+
# Cartesia model for the preview. Defaults to sonic-3. Ignored for other
|
|
24
|
+
# providers.
|
|
25
|
+
#
|
|
26
|
+
# @return [Symbol, Revox::Models::VoicePreviewParams::Model, nil]
|
|
27
|
+
optional :model, enum: -> { Revox::VoicePreviewParams::Model }
|
|
28
|
+
|
|
29
|
+
# @!attribute speed
|
|
30
|
+
# Speed for preview. Cartesia 0.6–1.5, ElevenLabs 0.7–1.2. Default 1.0.
|
|
31
|
+
#
|
|
32
|
+
# @return [Float, nil]
|
|
33
|
+
optional :speed, Float
|
|
34
|
+
|
|
35
|
+
# @!attribute text
|
|
36
|
+
# Custom text for the preview. If omitted, a short default is used.
|
|
37
|
+
#
|
|
38
|
+
# @return [String, nil]
|
|
39
|
+
optional :text, String
|
|
40
|
+
|
|
41
|
+
# @!attribute volume
|
|
42
|
+
# Volume for Cartesia preview (0.5–2.0). Ignored for other providers.
|
|
43
|
+
#
|
|
44
|
+
# @return [Float, nil]
|
|
45
|
+
optional :volume, Float
|
|
46
|
+
|
|
47
|
+
# @!method initialize(provider:, voice_id:, model: nil, speed: nil, text: nil, volume: nil, request_options: {})
|
|
48
|
+
# Some parameter documentations has been truncated, see
|
|
49
|
+
# {Revox::Models::VoicePreviewParams} for more details.
|
|
50
|
+
#
|
|
23
51
|
# @param provider [Symbol, Revox::Models::VoicePreviewParams::Provider] The provider to use for the preview.
|
|
24
52
|
#
|
|
25
53
|
# @param voice_id [String] The voice ID to generate a preview for.
|
|
26
54
|
#
|
|
55
|
+
# @param model [Symbol, Revox::Models::VoicePreviewParams::Model] Cartesia model for the preview. Defaults to sonic-3. Ignored for other providers
|
|
56
|
+
#
|
|
57
|
+
# @param speed [Float] Speed for preview. Cartesia 0.6–1.5, ElevenLabs 0.7–1.2. Default 1.0.
|
|
58
|
+
#
|
|
59
|
+
# @param text [String] Custom text for the preview. If omitted, a short default is used.
|
|
60
|
+
#
|
|
61
|
+
# @param volume [Float] Volume for Cartesia preview (0.5–2.0). Ignored for other providers.
|
|
62
|
+
#
|
|
27
63
|
# @param request_options [Revox::RequestOptions, Hash{Symbol=>Object}]
|
|
28
64
|
|
|
29
65
|
# The provider to use for the preview.
|
|
@@ -36,6 +72,18 @@ module Revox
|
|
|
36
72
|
# @!method self.values
|
|
37
73
|
# @return [Array<Symbol>]
|
|
38
74
|
end
|
|
75
|
+
|
|
76
|
+
# Cartesia model for the preview. Defaults to sonic-3. Ignored for other
|
|
77
|
+
# providers.
|
|
78
|
+
module Model
|
|
79
|
+
extend Revox::Internal::Type::Enum
|
|
80
|
+
|
|
81
|
+
SONIC_3 = :"sonic-3"
|
|
82
|
+
SONIC_3_5 = :"sonic-3.5"
|
|
83
|
+
|
|
84
|
+
# @!method self.values
|
|
85
|
+
# @return [Array<Symbol>]
|
|
86
|
+
end
|
|
39
87
|
end
|
|
40
88
|
end
|
|
41
89
|
end
|
data/lib/revox/models.rb
CHANGED
|
@@ -12,18 +12,34 @@ module Revox
|
|
|
12
12
|
# voice provider and voice ID (Cartesia or ElevenLabs), and end-of-call behavior.
|
|
13
13
|
# Once created, reference the assistant by its ID when placing calls.
|
|
14
14
|
#
|
|
15
|
-
# @overload create(name:, prompt:, background_sound: nil, calendly: nil, call_retry_config: nil, end_of_call_sentence: nil, faq_items: nil, first_sentence: nil, first_sentence_delay_ms: nil, first_sentence_mode: nil, ivr_navigation_enabled: nil, llm_model: nil, max_call_duration_secs: nil, structured_output_config: nil, transfer_phone_number: nil, voice: nil, voicemail_message: nil, webhook_url: nil, request_options: {})
|
|
15
|
+
# @overload create(name:, prompt:, after_call_sms_outcomes: nil, after_call_sms_prompt: nil, background_sound: nil, background_sound_volume: nil, calendly: nil, call_retry_config: nil, cartesia_dictionary_pronunciation_id: nil, custom_tools: nil, email_notification_address: nil, email_notification_language: nil, email_notification_outcomes: nil, end_of_call_sentence: nil, faq_items: nil, first_sentence: nil, first_sentence_delay_ms: nil, first_sentence_mode: nil, from_phone_number: nil, human_transfer_mode: nil, ivr_navigation_enabled: nil, llm_model: nil, logo_url: nil, max_call_duration_secs: nil, max_duration_end_message: nil, position: nil, prompt_flow: nil, slack: nil, sms_enabled: nil, sms_template: nil, structured_output_config: nil, structured_output_prompt: nil, stt_context: nil, stt_model: nil, thinking_sound: nil, thinking_sound_probability: nil, thinking_sound_volume: nil, transfer_phone_number: nil, type: nil, voice: nil, voicemail_message: nil, voicemail_sms_prompt: nil, warm_transfer_summary_instructions: nil, webhook_url: nil, zoho: nil, request_options: {})
|
|
16
16
|
#
|
|
17
17
|
# @param name [String]
|
|
18
18
|
#
|
|
19
19
|
# @param prompt [String] The prompt to use for the call. This will be given to the LLM (gpt-4.1)
|
|
20
20
|
#
|
|
21
|
-
# @param
|
|
21
|
+
# @param after_call_sms_outcomes [Array<Symbol, Revox::Models::AssistantCreateParams::AfterCallSMSOutcome>, nil] Which call outcomes trigger the after-call SMS. When empty or null, no after-cal
|
|
22
22
|
#
|
|
23
|
-
# @param
|
|
23
|
+
# @param after_call_sms_prompt [String, nil] Prompt / instructions for the after-call SMS. Supports {{variable}} placeholders
|
|
24
|
+
#
|
|
25
|
+
# @param background_sound [Symbol, Revox::Models::AssistantCreateParams::BackgroundSound, nil] Ambient background sound to play during the call. null/omitted disables it.
|
|
26
|
+
#
|
|
27
|
+
# @param background_sound_volume [Float] Volume of the ambient background sound (0 = silent, 1 = max).
|
|
28
|
+
#
|
|
29
|
+
# @param calendly [Revox::Models::AssistantCreateParams::Calendly, nil]
|
|
24
30
|
#
|
|
25
31
|
# @param call_retry_config [Revox::Models::AssistantCreateParams::CallRetryConfig] Configuration for call retry behavior including time windows, delays, and max it
|
|
26
32
|
#
|
|
33
|
+
# @param cartesia_dictionary_pronunciation_id [String, nil] Optional Cartesia pronunciation dictionary ID to use for this assistant's calls.
|
|
34
|
+
#
|
|
35
|
+
# @param custom_tools [Array<Revox::Models::AssistantCreateParams::CustomTool>, nil] Custom API tools the assistant can call during conversations. Each tool defines
|
|
36
|
+
#
|
|
37
|
+
# @param email_notification_address [String, nil] Email address(es) to receive notifications when a call ends with a matching outc
|
|
38
|
+
#
|
|
39
|
+
# @param email_notification_language [Symbol, Revox::Models::AssistantCreateParams::EmailNotificationLanguage] The language used for the notification email content. One of "en" or "fr". Defau
|
|
40
|
+
#
|
|
41
|
+
# @param email_notification_outcomes [Array<Symbol, Revox::Models::AssistantCreateParams::EmailNotificationOutcome>, nil] Which call outcomes trigger an email notification. E.g. ["interested", "complete
|
|
42
|
+
#
|
|
27
43
|
# @param end_of_call_sentence [String] Optional message to say when the agent decides to end the call.
|
|
28
44
|
#
|
|
29
45
|
# @param faq_items [Array<Revox::Models::AssistantCreateParams::FaqItem>] FAQ items to associate with this assistant. When provided, replaces all existing
|
|
@@ -34,22 +50,60 @@ module Revox
|
|
|
34
50
|
#
|
|
35
51
|
# @param first_sentence_mode [Symbol, Revox::Models::AssistantCreateParams::FirstSentenceMode] How the first sentence should be handled. "generated" means the LLM will generat
|
|
36
52
|
#
|
|
53
|
+
# @param from_phone_number [String, nil] Override the default outbound phone number for calls placed with this assistant.
|
|
54
|
+
#
|
|
55
|
+
# @param human_transfer_mode [Symbol, Revox::Models::AssistantCreateParams::HumanTransferMode, nil] When transfer_phone_number is set: "warm" (AI bridges) or "cold" (SIP REFER; tru
|
|
56
|
+
#
|
|
37
57
|
# @param ivr_navigation_enabled [Boolean] Enable IVR navigation tools. When enabled, the assistant can send DTMF tones and
|
|
38
58
|
#
|
|
39
|
-
# @param llm_model [Revox::Models::AssistantCreateParams::LlmModel::UnionMember0, Revox::Models::AssistantCreateParams::LlmModel::UnionMember1]
|
|
59
|
+
# @param llm_model [Revox::Models::AssistantCreateParams::LlmModel::UnionMember0, Revox::Models::AssistantCreateParams::LlmModel::UnionMember1, Revox::Models::AssistantCreateParams::LlmModel::UnionMember2, Revox::Models::AssistantCreateParams::LlmModel::UnionMember3]
|
|
60
|
+
#
|
|
61
|
+
# @param logo_url [String, nil] Public URL of the brand logo shown on the assistant's demo page. Upload a new lo
|
|
40
62
|
#
|
|
41
63
|
# @param max_call_duration_secs [Float] The maximum duration of the call in seconds. This is the maximum time the call w
|
|
42
64
|
#
|
|
65
|
+
# @param max_duration_end_message [String, nil] Optional message the agent will say, without being interruptible, when the call
|
|
66
|
+
#
|
|
67
|
+
# @param position [Revox::Models::AssistantCreateParams::Position, nil] Canvas position of this assistant's node in its multi-step flow editor.
|
|
68
|
+
#
|
|
69
|
+
# @param prompt_flow [Revox::Models::AssistantCreateParams::PromptFlow, nil] Visual prompt constructor data (nodes, edges, positions). Used by the UI to re-o
|
|
70
|
+
#
|
|
71
|
+
# @param slack [Revox::Models::AssistantCreateParams::Slack, nil] Slack notification config. When set, posts a message to the chosen channel after
|
|
72
|
+
#
|
|
73
|
+
# @param sms_enabled [Boolean] Enable SMS tool during calls. When enabled, the agent can send SMS messages to t
|
|
74
|
+
#
|
|
75
|
+
# @param sms_template [String, nil] Hardcoded SMS template to send during calls. When set, this exact text is sent i
|
|
76
|
+
#
|
|
43
77
|
# @param structured_output_config [Array<Revox::Models::AssistantCreateParams::StructuredOutputConfig>] The structured output config to use for the call. This is used to extract the da
|
|
44
78
|
#
|
|
79
|
+
# @param structured_output_prompt [String, nil] Custom prompt for structured data extraction. If not provided, a default prompt
|
|
80
|
+
#
|
|
81
|
+
# @param stt_context [Revox::Models::AssistantCreateParams::SttContext, nil] Assistant-level speech-to-text context: structured `general` key/value pairs plu
|
|
82
|
+
#
|
|
83
|
+
# @param stt_model [Symbol, Revox::Models::AssistantCreateParams::SttModel] Transcriber (speech-to-text) model. Defaults to the newest Soniox realtime model
|
|
84
|
+
#
|
|
85
|
+
# @param thinking_sound [Symbol, Revox::Models::AssistantCreateParams::ThinkingSound, nil] Audio clip to play while the agent is processing a response. One of the built-in
|
|
86
|
+
#
|
|
87
|
+
# @param thinking_sound_probability [Float] Probability [0..1] that the thinking sound plays on any given turn; otherwise th
|
|
88
|
+
#
|
|
89
|
+
# @param thinking_sound_volume [Float] Volume of the thinking sound (0 = silent, 1 = max).
|
|
90
|
+
#
|
|
45
91
|
# @param transfer_phone_number [String, nil] Phone number to transfer calls to when users request to speak to a human agent i
|
|
46
92
|
#
|
|
93
|
+
# @param type [Symbol, Revox::Models::AssistantCreateParams::Type] Assistant kind. 'standalone' (default) is a normal assistant, 'multi-step' orche
|
|
94
|
+
#
|
|
47
95
|
# @param voice [Revox::Models::AssistantCreateParams::Voice] The voice to use for the call. You can get the list of voices using the /voices
|
|
48
96
|
#
|
|
49
97
|
# @param voicemail_message [String, nil] If set, when voicemail is detected the agent will speak this message then hang u
|
|
50
98
|
#
|
|
99
|
+
# @param voicemail_sms_prompt [String, nil] SMS message to send when the call reaches voicemail. Supports {{variable}} place
|
|
100
|
+
#
|
|
101
|
+
# @param warm_transfer_summary_instructions [String, nil] When using warm transfer: extra instructions for the supervisor handoff summary.
|
|
102
|
+
#
|
|
51
103
|
# @param webhook_url [String] The webhook URL to call when the call is completed.
|
|
52
104
|
#
|
|
105
|
+
# @param zoho [Revox::Models::AssistantCreateParams::Zoho, nil] Zoho CRM integration config. When set, upserts the prospect (keyed on phone) int
|
|
106
|
+
#
|
|
53
107
|
# @param request_options [Revox::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
54
108
|
#
|
|
55
109
|
# @return [Revox::Models::AssistantCreateResponse]
|
|
@@ -96,16 +150,32 @@ module Revox
|
|
|
96
150
|
# the prompt, voice, first sentence, name, or any other assistant property without
|
|
97
151
|
# affecting the rest of the configuration.
|
|
98
152
|
#
|
|
99
|
-
# @overload update(id, background_sound: nil, calendly: nil, call_retry_config: nil, end_of_call_sentence: nil, faq_items: nil, first_sentence: nil, first_sentence_delay_ms: nil, first_sentence_mode: nil, ivr_navigation_enabled: nil, llm_model: nil, max_call_duration_secs: nil, name: nil, prompt: nil, structured_output_config: nil, transfer_phone_number: nil, voice: nil, voicemail_message: nil, webhook_url: nil, request_options: {})
|
|
153
|
+
# @overload update(id, after_call_sms_outcomes: nil, after_call_sms_prompt: nil, background_sound: nil, background_sound_volume: nil, calendly: nil, call_retry_config: nil, cartesia_dictionary_pronunciation_id: nil, custom_tools: nil, email_notification_address: nil, email_notification_language: nil, email_notification_outcomes: nil, end_of_call_sentence: nil, faq_items: nil, first_sentence: nil, first_sentence_delay_ms: nil, first_sentence_mode: nil, from_phone_number: nil, human_transfer_mode: nil, ivr_navigation_enabled: nil, llm_model: nil, logo_url: nil, max_call_duration_secs: nil, max_duration_end_message: nil, name: nil, position: nil, prompt: nil, prompt_flow: nil, slack: nil, sms_enabled: nil, sms_template: nil, structured_output_config: nil, structured_output_prompt: nil, stt_context: nil, stt_model: nil, thinking_sound: nil, thinking_sound_probability: nil, thinking_sound_volume: nil, transfer_phone_number: nil, type: nil, voice: nil, voicemail_message: nil, voicemail_sms_prompt: nil, warm_transfer_summary_instructions: nil, webhook_url: nil, zoho: nil, request_options: {})
|
|
100
154
|
#
|
|
101
155
|
# @param id [String]
|
|
102
156
|
#
|
|
103
|
-
# @param
|
|
157
|
+
# @param after_call_sms_outcomes [Array<Symbol, Revox::Models::AssistantUpdateParams::AfterCallSMSOutcome>, nil] Which call outcomes trigger the after-call SMS. When empty or null, no after-cal
|
|
104
158
|
#
|
|
105
|
-
# @param
|
|
159
|
+
# @param after_call_sms_prompt [String, nil] Prompt / instructions for the after-call SMS. Supports {{variable}} placeholders
|
|
160
|
+
#
|
|
161
|
+
# @param background_sound [Symbol, Revox::Models::AssistantUpdateParams::BackgroundSound, nil] Ambient background sound to play during the call. null/omitted disables it.
|
|
162
|
+
#
|
|
163
|
+
# @param background_sound_volume [Float] Volume of the ambient background sound (0 = silent, 1 = max).
|
|
164
|
+
#
|
|
165
|
+
# @param calendly [Revox::Models::AssistantUpdateParams::Calendly, nil]
|
|
106
166
|
#
|
|
107
167
|
# @param call_retry_config [Revox::Models::AssistantUpdateParams::CallRetryConfig] Configuration for call retry behavior including time windows, delays, and max it
|
|
108
168
|
#
|
|
169
|
+
# @param cartesia_dictionary_pronunciation_id [String, nil] Optional Cartesia pronunciation dictionary ID to use for this assistant's calls.
|
|
170
|
+
#
|
|
171
|
+
# @param custom_tools [Array<Revox::Models::AssistantUpdateParams::CustomTool>, nil] Custom API tools the assistant can call during conversations. Each tool defines
|
|
172
|
+
#
|
|
173
|
+
# @param email_notification_address [String, nil] Email address(es) to receive notifications when a call ends with a matching outc
|
|
174
|
+
#
|
|
175
|
+
# @param email_notification_language [Symbol, Revox::Models::AssistantUpdateParams::EmailNotificationLanguage] The language used for the notification email content. One of "en" or "fr". Defau
|
|
176
|
+
#
|
|
177
|
+
# @param email_notification_outcomes [Array<Symbol, Revox::Models::AssistantUpdateParams::EmailNotificationOutcome>, nil] Which call outcomes trigger an email notification. E.g. ["interested", "complete
|
|
178
|
+
#
|
|
109
179
|
# @param end_of_call_sentence [String] Optional message to say when the agent decides to end the call.
|
|
110
180
|
#
|
|
111
181
|
# @param faq_items [Array<Revox::Models::AssistantUpdateParams::FaqItem>] FAQ items to associate with this assistant. When provided, replaces all existing
|
|
@@ -116,26 +186,64 @@ module Revox
|
|
|
116
186
|
#
|
|
117
187
|
# @param first_sentence_mode [Symbol, Revox::Models::AssistantUpdateParams::FirstSentenceMode] How the first sentence should be handled. "generated" means the LLM will generat
|
|
118
188
|
#
|
|
189
|
+
# @param from_phone_number [String, nil] Override the default outbound phone number for calls placed with this assistant.
|
|
190
|
+
#
|
|
191
|
+
# @param human_transfer_mode [Symbol, Revox::Models::AssistantUpdateParams::HumanTransferMode, nil] When transfer_phone_number is set: "warm" (AI bridges) or "cold" (SIP REFER; tru
|
|
192
|
+
#
|
|
119
193
|
# @param ivr_navigation_enabled [Boolean] Enable IVR navigation tools. When enabled, the assistant can send DTMF tones and
|
|
120
194
|
#
|
|
121
|
-
# @param llm_model [Revox::Models::AssistantUpdateParams::LlmModel::UnionMember0, Revox::Models::AssistantUpdateParams::LlmModel::UnionMember1]
|
|
195
|
+
# @param llm_model [Revox::Models::AssistantUpdateParams::LlmModel::UnionMember0, Revox::Models::AssistantUpdateParams::LlmModel::UnionMember1, Revox::Models::AssistantUpdateParams::LlmModel::UnionMember2, Revox::Models::AssistantUpdateParams::LlmModel::UnionMember3]
|
|
196
|
+
#
|
|
197
|
+
# @param logo_url [String, nil] Public URL of the brand logo shown on the assistant's demo page. Upload a new lo
|
|
122
198
|
#
|
|
123
199
|
# @param max_call_duration_secs [Float] The maximum duration of the call in seconds. This is the maximum time the call w
|
|
124
200
|
#
|
|
201
|
+
# @param max_duration_end_message [String, nil] Optional message the agent will say, without being interruptible, when the call
|
|
202
|
+
#
|
|
125
203
|
# @param name [String]
|
|
126
204
|
#
|
|
205
|
+
# @param position [Revox::Models::AssistantUpdateParams::Position, nil] Canvas position of this assistant's node in its multi-step flow editor.
|
|
206
|
+
#
|
|
127
207
|
# @param prompt [String] The prompt to use for the call. This will be given to the LLM (gpt-4.1)
|
|
128
208
|
#
|
|
209
|
+
# @param prompt_flow [Revox::Models::AssistantUpdateParams::PromptFlow, nil] Visual prompt constructor data (nodes, edges, positions). Used by the UI to re-o
|
|
210
|
+
#
|
|
211
|
+
# @param slack [Revox::Models::AssistantUpdateParams::Slack, nil] Slack notification config. When set, posts a message to the chosen channel after
|
|
212
|
+
#
|
|
213
|
+
# @param sms_enabled [Boolean] Enable SMS tool during calls. When enabled, the agent can send SMS messages to t
|
|
214
|
+
#
|
|
215
|
+
# @param sms_template [String, nil] Hardcoded SMS template to send during calls. When set, this exact text is sent i
|
|
216
|
+
#
|
|
129
217
|
# @param structured_output_config [Array<Revox::Models::AssistantUpdateParams::StructuredOutputConfig>] The structured output config to use for the call. This is used to extract the da
|
|
130
218
|
#
|
|
219
|
+
# @param structured_output_prompt [String, nil] Custom prompt for structured data extraction. If not provided, a default prompt
|
|
220
|
+
#
|
|
221
|
+
# @param stt_context [Revox::Models::AssistantUpdateParams::SttContext, nil] Assistant-level speech-to-text context: structured `general` key/value pairs plu
|
|
222
|
+
#
|
|
223
|
+
# @param stt_model [Symbol, Revox::Models::AssistantUpdateParams::SttModel] Transcriber (speech-to-text) model. Defaults to the newest Soniox realtime model
|
|
224
|
+
#
|
|
225
|
+
# @param thinking_sound [Symbol, Revox::Models::AssistantUpdateParams::ThinkingSound, nil] Audio clip to play while the agent is processing a response. One of the built-in
|
|
226
|
+
#
|
|
227
|
+
# @param thinking_sound_probability [Float] Probability [0..1] that the thinking sound plays on any given turn; otherwise th
|
|
228
|
+
#
|
|
229
|
+
# @param thinking_sound_volume [Float] Volume of the thinking sound (0 = silent, 1 = max).
|
|
230
|
+
#
|
|
131
231
|
# @param transfer_phone_number [String, nil] Phone number to transfer calls to when users request to speak to a human agent i
|
|
132
232
|
#
|
|
233
|
+
# @param type [Symbol, Revox::Models::AssistantUpdateParams::Type] Assistant kind. 'standalone' (default) is a normal assistant, 'multi-step' orche
|
|
234
|
+
#
|
|
133
235
|
# @param voice [Revox::Models::AssistantUpdateParams::Voice] The voice to use for the call. You can get the list of voices using the /voices
|
|
134
236
|
#
|
|
135
237
|
# @param voicemail_message [String, nil] If set, when voicemail is detected the agent will speak this message then hang u
|
|
136
238
|
#
|
|
239
|
+
# @param voicemail_sms_prompt [String, nil] SMS message to send when the call reaches voicemail. Supports {{variable}} place
|
|
240
|
+
#
|
|
241
|
+
# @param warm_transfer_summary_instructions [String, nil] When using warm transfer: extra instructions for the supervisor handoff summary.
|
|
242
|
+
#
|
|
137
243
|
# @param webhook_url [String] The webhook URL to call when the call is completed.
|
|
138
244
|
#
|
|
245
|
+
# @param zoho [Revox::Models::AssistantUpdateParams::Zoho, nil] Zoho CRM integration config. When set, upserts the prospect (keyed on phone) int
|
|
246
|
+
#
|
|
139
247
|
# @param request_options [Revox::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
140
248
|
#
|
|
141
249
|
# @return [Revox::Models::AssistantUpdateResponse]
|
data/lib/revox/resources/call.rb
CHANGED
|
@@ -72,35 +72,6 @@ module Revox
|
|
|
72
72
|
)
|
|
73
73
|
end
|
|
74
74
|
|
|
75
|
-
# Retrieve a paginated list of call attempts. Each entry includes the call status,
|
|
76
|
-
# phone number, assistant used, transcript, and timestamps. Use the page and
|
|
77
|
-
# page_size query parameters to navigate through results.
|
|
78
|
-
#
|
|
79
|
-
# @overload list(page:, page_size:, statuses: nil, request_options: {})
|
|
80
|
-
#
|
|
81
|
-
# @param page [Integer] The page number you want to get. Starting at 0.
|
|
82
|
-
#
|
|
83
|
-
# @param page_size [Integer] The number of calls to return per page.
|
|
84
|
-
#
|
|
85
|
-
# @param statuses [Array<Symbol, Revox::Models::CallListParams::Status>]
|
|
86
|
-
#
|
|
87
|
-
# @param request_options [Revox::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
88
|
-
#
|
|
89
|
-
# @return [Revox::Models::CallListResponse]
|
|
90
|
-
#
|
|
91
|
-
# @see Revox::Models::CallListParams
|
|
92
|
-
def list(params)
|
|
93
|
-
parsed, options = Revox::CallListParams.dump_request(params)
|
|
94
|
-
query = Revox::Internal::Util.encode_query_params(parsed)
|
|
95
|
-
@client.request(
|
|
96
|
-
method: :get,
|
|
97
|
-
path: "call",
|
|
98
|
-
query: query,
|
|
99
|
-
model: Revox::Models::CallListResponse,
|
|
100
|
-
options: options
|
|
101
|
-
)
|
|
102
|
-
end
|
|
103
|
-
|
|
104
75
|
# @api private
|
|
105
76
|
#
|
|
106
77
|
# @param client [Revox::Client]
|
|
@@ -6,18 +6,21 @@ module Revox
|
|
|
6
6
|
# Some parameter documentations has been truncated, see
|
|
7
7
|
# {Revox::Models::CampaignCreateParams} for more details.
|
|
8
8
|
#
|
|
9
|
-
# Create a new outbound calling campaign
|
|
10
|
-
#
|
|
11
|
-
# of starting right away.
|
|
9
|
+
# Create a new outbound calling campaign. By default the campaign launches
|
|
10
|
+
# immediately. Set launch to false to save as a draft for later review.
|
|
12
11
|
#
|
|
13
|
-
# @overload create(assistant_id:, contacts:, name:, call_retry_config: nil, from_phone_number: nil, max_concurrent_calls: nil, scheduled_at: nil, request_options: {})
|
|
12
|
+
# @overload create(assistant_id:, contacts:, launch:, name:, type:, call_retry_config: nil, from_phone_number: nil, max_concurrent_calls: nil, scheduled_at: nil, request_options: {})
|
|
14
13
|
#
|
|
15
14
|
# @param assistant_id [String] The ID of the assistant to use
|
|
16
15
|
#
|
|
17
16
|
# @param contacts [Array<Revox::Models::CampaignCreateParams::Contact>] The list of contacts to call
|
|
18
17
|
#
|
|
18
|
+
# @param launch [Boolean] Whether to launch the campaign immediately. Set to false to save as a draft.
|
|
19
|
+
#
|
|
19
20
|
# @param name [String] The name of the campaign
|
|
20
21
|
#
|
|
22
|
+
# @param type [Symbol, Revox::Models::CampaignCreateParams::Type] Campaign type. 'jump_in' campaigns only dial while someone is on the campaign pa
|
|
23
|
+
#
|
|
21
24
|
# @param call_retry_config [Revox::Models::CampaignCreateParams::CallRetryConfig] Override retry configuration for calls in this campaign. If not provided, uses t
|
|
22
25
|
#
|
|
23
26
|
# @param from_phone_number [String] The phone number to use for outbound calls (E.164 format, e.g., +1234567890)
|
|
@@ -142,31 +145,23 @@ module Revox
|
|
|
142
145
|
)
|
|
143
146
|
end
|
|
144
147
|
|
|
145
|
-
# Retrieve
|
|
146
|
-
#
|
|
148
|
+
# Retrieve all contact rows for a campaign. Useful for loading draft campaign data
|
|
149
|
+
# for editing.
|
|
147
150
|
#
|
|
148
|
-
# @overload get_rows(id,
|
|
151
|
+
# @overload get_rows(id, request_options: {})
|
|
149
152
|
#
|
|
150
153
|
# @param id [String]
|
|
151
|
-
# @param page [Float]
|
|
152
|
-
# @param page_size [Float]
|
|
153
|
-
# @param query [String]
|
|
154
|
-
# @param result [Symbol, Revox::Models::CampaignGetRowsParams::Result]
|
|
155
|
-
# @param statuses [String]
|
|
156
154
|
# @param request_options [Revox::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
157
155
|
#
|
|
158
156
|
# @return [Revox::Models::CampaignGetRowsResponse]
|
|
159
157
|
#
|
|
160
158
|
# @see Revox::Models::CampaignGetRowsParams
|
|
161
|
-
def get_rows(id, params)
|
|
162
|
-
parsed, options = Revox::CampaignGetRowsParams.dump_request(params)
|
|
163
|
-
query = Revox::Internal::Util.encode_query_params(parsed)
|
|
159
|
+
def get_rows(id, params = {})
|
|
164
160
|
@client.request(
|
|
165
161
|
method: :get,
|
|
166
162
|
path: ["campaigns/%1$s/rows", id],
|
|
167
|
-
query: query,
|
|
168
163
|
model: Revox::Models::CampaignGetRowsResponse,
|
|
169
|
-
options:
|
|
164
|
+
options: params[:request_options]
|
|
170
165
|
)
|
|
171
166
|
end
|
|
172
167
|
|
|
@@ -3,8 +3,7 @@
|
|
|
3
3
|
module Revox
|
|
4
4
|
module Resources
|
|
5
5
|
class Voices
|
|
6
|
-
# Retrieve details for a single voice by its unique ID and provider.
|
|
7
|
-
# voice name, description, and provider metadata.
|
|
6
|
+
# Retrieve details for a single voice by its unique ID and provider.
|
|
8
7
|
#
|
|
9
8
|
# @overload retrieve(id, provider:, request_options: {})
|
|
10
9
|
#
|
|
@@ -29,10 +28,8 @@ module Revox
|
|
|
29
28
|
)
|
|
30
29
|
end
|
|
31
30
|
|
|
32
|
-
# Retrieve
|
|
33
|
-
#
|
|
34
|
-
# provider-specific ID. Use this endpoint to browse voices before assigning one to
|
|
35
|
-
# an assistant or a call.
|
|
31
|
+
# Retrieve all voices available for AI calls, including preset voices from
|
|
32
|
+
# Cartesia/ElevenLabs and your organization's cloned voices.
|
|
36
33
|
#
|
|
37
34
|
# @overload list(request_options: {})
|
|
38
35
|
#
|
|
@@ -50,16 +47,25 @@ module Revox
|
|
|
50
47
|
)
|
|
51
48
|
end
|
|
52
49
|
|
|
53
|
-
#
|
|
54
|
-
#
|
|
55
|
-
# the voice sounds before assigning it to an assistant.
|
|
50
|
+
# Some parameter documentations has been truncated, see
|
|
51
|
+
# {Revox::Models::VoicePreviewParams} for more details.
|
|
56
52
|
#
|
|
57
|
-
#
|
|
53
|
+
# Generate a short audio preview for a given voice.
|
|
54
|
+
#
|
|
55
|
+
# @overload preview(provider:, voice_id:, model: nil, speed: nil, text: nil, volume: nil, request_options: {})
|
|
58
56
|
#
|
|
59
57
|
# @param provider [Symbol, Revox::Models::VoicePreviewParams::Provider] The provider to use for the preview.
|
|
60
58
|
#
|
|
61
59
|
# @param voice_id [String] The voice ID to generate a preview for.
|
|
62
60
|
#
|
|
61
|
+
# @param model [Symbol, Revox::Models::VoicePreviewParams::Model] Cartesia model for the preview. Defaults to sonic-3. Ignored for other providers
|
|
62
|
+
#
|
|
63
|
+
# @param speed [Float] Speed for preview. Cartesia 0.6–1.5, ElevenLabs 0.7–1.2. Default 1.0.
|
|
64
|
+
#
|
|
65
|
+
# @param text [String] Custom text for the preview. If omitted, a short default is used.
|
|
66
|
+
#
|
|
67
|
+
# @param volume [Float] Volume for Cartesia preview (0.5–2.0). Ignored for other providers.
|
|
68
|
+
#
|
|
63
69
|
# @param request_options [Revox::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
64
70
|
#
|
|
65
71
|
# @return [nil]
|
data/lib/revox/version.rb
CHANGED
data/lib/revox.rb
CHANGED
|
@@ -64,8 +64,6 @@ require_relative "revox/models/assistant_update_params"
|
|
|
64
64
|
require_relative "revox/models/assistant_update_response"
|
|
65
65
|
require_relative "revox/models/call_create_params"
|
|
66
66
|
require_relative "revox/models/call_create_response"
|
|
67
|
-
require_relative "revox/models/call_list_params"
|
|
68
|
-
require_relative "revox/models/call_list_response"
|
|
69
67
|
require_relative "revox/models/call_retrieve_params"
|
|
70
68
|
require_relative "revox/models/call_retrieve_response"
|
|
71
69
|
require_relative "revox/models/campaign_cancel_params"
|
data/rbi/revox/internal/util.rbi
CHANGED
|
@@ -144,12 +144,20 @@ module Revox
|
|
|
144
144
|
end
|
|
145
145
|
end
|
|
146
146
|
|
|
147
|
+
# https://www.rfc-editor.org/rfc/rfc3986.html#section-3.3
|
|
148
|
+
RFC_3986_NOT_PCHARS = T.let(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/, Regexp)
|
|
149
|
+
|
|
147
150
|
class << self
|
|
148
151
|
# @api private
|
|
149
152
|
sig { params(uri: URI::Generic).returns(String) }
|
|
150
153
|
def uri_origin(uri)
|
|
151
154
|
end
|
|
152
155
|
|
|
156
|
+
# @api private
|
|
157
|
+
sig { params(path: T.any(String, Integer)).returns(String) }
|
|
158
|
+
def encode_path(path)
|
|
159
|
+
end
|
|
160
|
+
|
|
153
161
|
# @api private
|
|
154
162
|
sig { params(path: T.any(String, T::Array[String])).returns(String) }
|
|
155
163
|
def interpolate_path(path)
|