revox 0.0.2 → 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.
Files changed (128) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +96 -0
  3. data/README.md +88 -22
  4. data/lib/revox/client.rb +19 -1
  5. data/lib/revox/internal/transport/base_client.rb +5 -0
  6. data/lib/revox/internal/type/base_model.rb +3 -3
  7. data/lib/revox/internal/util.rb +53 -7
  8. data/lib/revox/models/assistant_create_params.rb +1036 -11
  9. data/lib/revox/models/assistant_create_response.rb +1071 -11
  10. data/lib/revox/models/assistant_delete_params.rb +7 -1
  11. data/lib/revox/models/assistant_list_response.rb +1070 -11
  12. data/lib/revox/models/assistant_retrieve_params.rb +7 -1
  13. data/lib/revox/models/assistant_retrieve_response.rb +1066 -11
  14. data/lib/revox/models/assistant_update_params.rb +1043 -11
  15. data/lib/revox/models/assistant_update_response.rb +1097 -12
  16. data/lib/revox/models/call_create_params.rb +1063 -11
  17. data/lib/revox/models/call_create_response.rb +2507 -87
  18. data/lib/revox/models/call_retrieve_params.rb +7 -1
  19. data/lib/revox/models/call_retrieve_response.rb +2512 -87
  20. data/lib/revox/models/campaign_cancel_params.rb +20 -0
  21. data/lib/revox/models/campaign_cancel_response.rb +16 -0
  22. data/lib/revox/models/campaign_create_params.rb +239 -0
  23. data/lib/revox/models/campaign_create_response.rb +2030 -0
  24. data/lib/revox/models/campaign_delete_params.rb +20 -0
  25. data/lib/revox/models/campaign_delete_response.rb +16 -0
  26. data/lib/revox/models/campaign_export_rows_params.rb +20 -0
  27. data/lib/revox/models/campaign_export_rows_response.rb +22 -0
  28. data/lib/revox/models/campaign_get_rows_params.rb +20 -0
  29. data/lib/revox/models/campaign_get_rows_response.rb +3176 -0
  30. data/lib/revox/models/campaign_list_params.rb +14 -0
  31. data/lib/revox/models/campaign_list_response.rb +2024 -0
  32. data/lib/revox/models/campaign_retrieve_params.rb +20 -0
  33. data/lib/revox/models/campaign_retrieve_response.rb +2032 -0
  34. data/lib/revox/models/users/me_retrieve_response.rb +13 -1
  35. data/lib/revox/models/users/me_update_response.rb +13 -1
  36. data/lib/revox/models/voice_list_response.rb +55 -1
  37. data/lib/revox/models/voice_preview_params.rb +43 -3
  38. data/lib/revox/models/voice_retrieve_params.rb +7 -1
  39. data/lib/revox/models.rb +14 -2
  40. data/lib/revox/resources/assistants.rb +138 -6
  41. data/lib/revox/resources/call.rb +10 -27
  42. data/lib/revox/resources/campaigns.rb +176 -0
  43. data/lib/revox/resources/voices.rb +17 -7
  44. data/lib/revox/version.rb +1 -1
  45. data/lib/revox.rb +15 -2
  46. data/rbi/revox/client.rbi +3 -0
  47. data/rbi/revox/internal/util.rbi +28 -0
  48. data/rbi/revox/models/assistant_create_params.rbi +2135 -102
  49. data/rbi/revox/models/assistant_create_response.rbi +2454 -199
  50. data/rbi/revox/models/assistant_delete_params.rbi +11 -5
  51. data/rbi/revox/models/assistant_list_response.rbi +2448 -195
  52. data/rbi/revox/models/assistant_retrieve_params.rbi +11 -5
  53. data/rbi/revox/models/assistant_retrieve_response.rbi +2401 -210
  54. data/rbi/revox/models/assistant_update_params.rbi +2139 -100
  55. data/rbi/revox/models/assistant_update_response.rbi +2504 -198
  56. data/rbi/revox/models/call_create_params.rbi +2377 -222
  57. data/rbi/revox/models/call_create_response.rbi +5840 -594
  58. data/rbi/revox/models/call_retrieve_params.rbi +11 -5
  59. data/rbi/revox/models/call_retrieve_response.rbi +5872 -618
  60. data/rbi/revox/models/campaign_cancel_params.rbi +33 -0
  61. data/rbi/revox/models/campaign_cancel_response.rbi +23 -0
  62. data/rbi/revox/models/campaign_create_params.rbi +433 -0
  63. data/rbi/revox/models/campaign_create_response.rbi +4170 -0
  64. data/rbi/revox/models/campaign_delete_params.rbi +33 -0
  65. data/rbi/revox/models/campaign_delete_response.rbi +23 -0
  66. data/rbi/revox/models/campaign_export_rows_params.rbi +33 -0
  67. data/rbi/revox/models/campaign_export_rows_response.rbi +29 -0
  68. data/rbi/revox/models/campaign_get_rows_params.rbi +33 -0
  69. data/rbi/revox/models/campaign_get_rows_response.rbi +6706 -0
  70. data/rbi/revox/models/campaign_list_params.rbi +27 -0
  71. data/rbi/revox/models/campaign_list_response.rbi +4156 -0
  72. data/rbi/revox/models/campaign_retrieve_params.rbi +33 -0
  73. data/rbi/revox/models/campaign_retrieve_response.rbi +4175 -0
  74. data/rbi/revox/models/users/me_retrieve_response.rbi +13 -3
  75. data/rbi/revox/models/users/me_update_response.rbi +13 -3
  76. data/rbi/revox/models/voice_list_response.rbi +105 -3
  77. data/rbi/revox/models/voice_preview_params.rbi +60 -2
  78. data/rbi/revox/models/voice_retrieve_params.rbi +6 -1
  79. data/rbi/revox/models.rbi +14 -2
  80. data/rbi/revox/resources/assistants.rbi +301 -6
  81. data/rbi/revox/resources/call.rbi +10 -19
  82. data/rbi/revox/resources/campaigns.rbi +121 -0
  83. data/rbi/revox/resources/voices.rbi +15 -5
  84. data/sig/revox/client.rbs +2 -0
  85. data/sig/revox/internal/util.rbs +14 -0
  86. data/sig/revox/models/assistant_create_params.rbs +841 -4
  87. data/sig/revox/models/assistant_create_response.rbs +860 -3
  88. data/sig/revox/models/assistant_delete_params.rbs +8 -3
  89. data/sig/revox/models/assistant_list_response.rbs +860 -3
  90. data/sig/revox/models/assistant_retrieve_params.rbs +8 -3
  91. data/sig/revox/models/assistant_retrieve_response.rbs +859 -3
  92. data/sig/revox/models/assistant_update_params.rbs +846 -4
  93. data/sig/revox/models/assistant_update_response.rbs +886 -6
  94. data/sig/revox/models/call_create_params.rbs +844 -6
  95. data/sig/revox/models/call_create_response.rbs +2166 -79
  96. data/sig/revox/models/call_retrieve_params.rbs +9 -3
  97. data/sig/revox/models/call_retrieve_response.rbs +2166 -79
  98. data/sig/revox/models/campaign_cancel_params.rbs +20 -0
  99. data/sig/revox/models/campaign_cancel_response.rbs +13 -0
  100. data/sig/revox/models/campaign_create_params.rbs +203 -0
  101. data/sig/revox/models/campaign_create_response.rbs +1694 -0
  102. data/sig/revox/models/campaign_delete_params.rbs +20 -0
  103. data/sig/revox/models/campaign_delete_response.rbs +13 -0
  104. data/sig/revox/models/campaign_export_rows_params.rbs +20 -0
  105. data/sig/revox/models/campaign_export_rows_response.rbs +15 -0
  106. data/sig/revox/models/campaign_get_rows_params.rbs +20 -0
  107. data/sig/revox/models/campaign_get_rows_response.rbs +2688 -0
  108. data/sig/revox/models/campaign_list_params.rbs +14 -0
  109. data/sig/revox/models/campaign_list_response.rbs +1694 -0
  110. data/sig/revox/models/campaign_retrieve_params.rbs +20 -0
  111. data/sig/revox/models/campaign_retrieve_response.rbs +1694 -0
  112. data/sig/revox/models/users/me_retrieve_response.rbs +8 -3
  113. data/sig/revox/models/users/me_update_response.rbs +8 -3
  114. data/sig/revox/models/voice_list_response.rbs +45 -3
  115. data/sig/revox/models/voice_preview_params.rbs +35 -1
  116. data/sig/revox/models/voice_retrieve_params.rbs +5 -1
  117. data/sig/revox/models.rbs +14 -2
  118. data/sig/revox/resources/assistants.rbs +54 -0
  119. data/sig/revox/resources/call.rbs +0 -6
  120. data/sig/revox/resources/campaigns.rbs +49 -0
  121. data/sig/revox/resources/voices.rbs +3 -0
  122. metadata +47 -8
  123. data/lib/revox/models/call_list_params.rb +0 -29
  124. data/lib/revox/models/call_list_response.rb +0 -197
  125. data/rbi/revox/models/call_list_params.rbi +0 -47
  126. data/rbi/revox/models/call_list_response.rbi +0 -401
  127. data/sig/revox/models/call_list_params.rbs +0 -28
  128. data/sig/revox/models/call_list_response.rbs +0 -171
@@ -64,7 +64,17 @@ module Revox
64
64
  # @return [Object]
65
65
  required :updated_at, Revox::Internal::Type::Unknown
66
66
 
67
- # @!method initialize(id:, created_at:, email:, first_name:, has_completed_onboarding:, last_name:, organization_id:, updated_at:)
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
- # @!method initialize(id:, created_at:, email:, first_name:, has_completed_onboarding:, last_name:, organization_id:, updated_at:)
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
- # @!method initialize(id:, description:, language:, name:, provider:)
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,18 +19,46 @@ module Revox
19
19
  # @return [String]
20
20
  required :voice_id, String, api_name: :voiceId
21
21
 
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
+
22
35
  # @!attribute text
23
- # The text to generate a preview for.
36
+ # Custom text for the preview. If omitted, a short default is used.
24
37
  #
25
38
  # @return [String, nil]
26
39
  optional :text, String
27
40
 
28
- # @!method initialize(provider:, voice_id:, text: nil, request_options: {})
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
+ #
29
51
  # @param provider [Symbol, Revox::Models::VoicePreviewParams::Provider] The provider to use for the preview.
30
52
  #
31
53
  # @param voice_id [String] The voice ID to generate a preview for.
32
54
  #
33
- # @param text [String] The text to generate a preview for.
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.
34
62
  #
35
63
  # @param request_options [Revox::RequestOptions, Hash{Symbol=>Object}]
36
64
 
@@ -44,6 +72,18 @@ module Revox
44
72
  # @!method self.values
45
73
  # @return [Array<Symbol>]
46
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
47
87
  end
48
88
  end
49
89
  end
@@ -7,12 +7,18 @@ module Revox
7
7
  extend Revox::Internal::Type::RequestParameters::Converter
8
8
  include Revox::Internal::Type::RequestParameters
9
9
 
10
+ # @!attribute id
11
+ #
12
+ # @return [String]
13
+ required :id, String
14
+
10
15
  # @!attribute provider
11
16
  #
12
17
  # @return [Symbol, Revox::Models::VoiceRetrieveParams::Provider]
13
18
  required :provider, enum: -> { Revox::VoiceRetrieveParams::Provider }
14
19
 
15
- # @!method initialize(provider:, request_options: {})
20
+ # @!method initialize(id:, provider:, request_options: {})
21
+ # @param id [String]
16
22
  # @param provider [Symbol, Revox::Models::VoiceRetrieveParams::Provider]
17
23
  # @param request_options [Revox::RequestOptions, Hash{Symbol=>Object}]
18
24
 
data/lib/revox/models.rb CHANGED
@@ -51,10 +51,22 @@ module Revox
51
51
 
52
52
  CallCreateParams = Revox::Models::CallCreateParams
53
53
 
54
- CallListParams = Revox::Models::CallListParams
55
-
56
54
  CallRetrieveParams = Revox::Models::CallRetrieveParams
57
55
 
56
+ CampaignCancelParams = Revox::Models::CampaignCancelParams
57
+
58
+ CampaignCreateParams = Revox::Models::CampaignCreateParams
59
+
60
+ CampaignDeleteParams = Revox::Models::CampaignDeleteParams
61
+
62
+ CampaignExportRowsParams = Revox::Models::CampaignExportRowsParams
63
+
64
+ CampaignGetRowsParams = Revox::Models::CampaignGetRowsParams
65
+
66
+ CampaignListParams = Revox::Models::CampaignListParams
67
+
68
+ CampaignRetrieveParams = Revox::Models::CampaignRetrieveParams
69
+
58
70
  Users = Revox::Models::Users
59
71
 
60
72
  VoiceListParams = Revox::Models::VoiceListParams
@@ -6,18 +6,40 @@ module Revox
6
6
  # Some parameter documentations has been truncated, see
7
7
  # {Revox::Models::AssistantCreateParams} for more details.
8
8
  #
9
- # @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: {})
9
+ # Create a new AI assistant with a custom prompt, voice, and behavior
10
+ # configuration. Assistants define how the AI agent behaves during calls,
11
+ # including the system prompt given to the LLM, the first sentence spoken, the
12
+ # voice provider and voice ID (Cartesia or ElevenLabs), and end-of-call behavior.
13
+ # Once created, reference the assistant by its ID when placing calls.
14
+ #
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: {})
10
16
  #
11
17
  # @param name [String]
12
18
  #
13
19
  # @param prompt [String] The prompt to use for the call. This will be given to the LLM (gpt-4.1)
14
20
  #
15
- # @param background_sound [Symbol, Revox::Models::AssistantCreateParams::BackgroundSound, nil] The background sound to play during the call. Useful to give the impression that
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
+ #
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).
16
28
  #
17
29
  # @param calendly [Revox::Models::AssistantCreateParams::Calendly, nil]
18
30
  #
19
31
  # @param call_retry_config [Revox::Models::AssistantCreateParams::CallRetryConfig] Configuration for call retry behavior including time windows, delays, and max it
20
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
+ #
21
43
  # @param end_of_call_sentence [String] Optional message to say when the agent decides to end the call.
22
44
  #
23
45
  # @param faq_items [Array<Revox::Models::AssistantCreateParams::FaqItem>] FAQ items to associate with this assistant. When provided, replaces all existing
@@ -28,22 +50,60 @@ module Revox
28
50
  #
29
51
  # @param first_sentence_mode [Symbol, Revox::Models::AssistantCreateParams::FirstSentenceMode] How the first sentence should be handled. "generated" means the LLM will generat
30
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
+ #
31
57
  # @param ivr_navigation_enabled [Boolean] Enable IVR navigation tools. When enabled, the assistant can send DTMF tones and
32
58
  #
33
- # @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
34
62
  #
35
63
  # @param max_call_duration_secs [Float] The maximum duration of the call in seconds. This is the maximum time the call w
36
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
+ #
37
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
38
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
+ #
39
91
  # @param transfer_phone_number [String, nil] Phone number to transfer calls to when users request to speak to a human agent i
40
92
  #
93
+ # @param type [Symbol, Revox::Models::AssistantCreateParams::Type] Assistant kind. 'standalone' (default) is a normal assistant, 'multi-step' orche
94
+ #
41
95
  # @param voice [Revox::Models::AssistantCreateParams::Voice] The voice to use for the call. You can get the list of voices using the /voices
42
96
  #
43
97
  # @param voicemail_message [String, nil] If set, when voicemail is detected the agent will speak this message then hang u
44
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
+ #
45
103
  # @param webhook_url [String] The webhook URL to call when the call is completed.
46
104
  #
105
+ # @param zoho [Revox::Models::AssistantCreateParams::Zoho, nil] Zoho CRM integration config. When set, upserts the prospect (keyed on phone) int
106
+ #
47
107
  # @param request_options [Revox::RequestOptions, Hash{Symbol=>Object}, nil]
48
108
  #
49
109
  # @return [Revox::Models::AssistantCreateResponse]
@@ -60,6 +120,11 @@ module Revox
60
120
  )
61
121
  end
62
122
 
123
+ # Retrieve a single assistant by its unique ID. Returns the full assistant
124
+ # configuration including prompt, voice settings, and first sentence mode. Useful
125
+ # for inspecting an assistant's current setup before updating it or placing a
126
+ # call.
127
+ #
63
128
  # @overload retrieve(id, request_options: {})
64
129
  #
65
130
  # @param id [String]
@@ -80,16 +145,37 @@ module Revox
80
145
  # Some parameter documentations has been truncated, see
81
146
  # {Revox::Models::AssistantUpdateParams} for more details.
82
147
  #
83
- # @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: {})
148
+ # Update one or more fields on an existing assistant. Supports partial updates
149
+ # only the fields you include in the request body will be changed. You can update
150
+ # the prompt, voice, first sentence, name, or any other assistant property without
151
+ # affecting the rest of the configuration.
152
+ #
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: {})
84
154
  #
85
155
  # @param id [String]
86
156
  #
87
- # @param background_sound [Symbol, Revox::Models::AssistantUpdateParams::BackgroundSound, nil] The background sound to play during the call. Useful to give the impression that
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
158
+ #
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).
88
164
  #
89
165
  # @param calendly [Revox::Models::AssistantUpdateParams::Calendly, nil]
90
166
  #
91
167
  # @param call_retry_config [Revox::Models::AssistantUpdateParams::CallRetryConfig] Configuration for call retry behavior including time windows, delays, and max it
92
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
+ #
93
179
  # @param end_of_call_sentence [String] Optional message to say when the agent decides to end the call.
94
180
  #
95
181
  # @param faq_items [Array<Revox::Models::AssistantUpdateParams::FaqItem>] FAQ items to associate with this assistant. When provided, replaces all existing
@@ -100,26 +186,64 @@ module Revox
100
186
  #
101
187
  # @param first_sentence_mode [Symbol, Revox::Models::AssistantUpdateParams::FirstSentenceMode] How the first sentence should be handled. "generated" means the LLM will generat
102
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
+ #
103
193
  # @param ivr_navigation_enabled [Boolean] Enable IVR navigation tools. When enabled, the assistant can send DTMF tones and
104
194
  #
105
- # @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
106
198
  #
107
199
  # @param max_call_duration_secs [Float] The maximum duration of the call in seconds. This is the maximum time the call w
108
200
  #
201
+ # @param max_duration_end_message [String, nil] Optional message the agent will say, without being interruptible, when the call
202
+ #
109
203
  # @param name [String]
110
204
  #
205
+ # @param position [Revox::Models::AssistantUpdateParams::Position, nil] Canvas position of this assistant's node in its multi-step flow editor.
206
+ #
111
207
  # @param prompt [String] The prompt to use for the call. This will be given to the LLM (gpt-4.1)
112
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
+ #
113
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
114
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
+ #
115
231
  # @param transfer_phone_number [String, nil] Phone number to transfer calls to when users request to speak to a human agent i
116
232
  #
233
+ # @param type [Symbol, Revox::Models::AssistantUpdateParams::Type] Assistant kind. 'standalone' (default) is a normal assistant, 'multi-step' orche
234
+ #
117
235
  # @param voice [Revox::Models::AssistantUpdateParams::Voice] The voice to use for the call. You can get the list of voices using the /voices
118
236
  #
119
237
  # @param voicemail_message [String, nil] If set, when voicemail is detected the agent will speak this message then hang u
120
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
+ #
121
243
  # @param webhook_url [String] The webhook URL to call when the call is completed.
122
244
  #
245
+ # @param zoho [Revox::Models::AssistantUpdateParams::Zoho, nil] Zoho CRM integration config. When set, upserts the prospect (keyed on phone) int
246
+ #
123
247
  # @param request_options [Revox::RequestOptions, Hash{Symbol=>Object}, nil]
124
248
  #
125
249
  # @return [Revox::Models::AssistantUpdateResponse]
@@ -136,6 +260,10 @@ module Revox
136
260
  )
137
261
  end
138
262
 
263
+ # Retrieve all assistants associated with your account. Each assistant in the
264
+ # response includes its full configuration: prompt, voice settings, and first
265
+ # sentence. Use this endpoint to list available assistants before placing calls.
266
+ #
139
267
  # @overload list(request_options: {})
140
268
  #
141
269
  # @param request_options [Revox::RequestOptions, Hash{Symbol=>Object}, nil]
@@ -152,6 +280,10 @@ module Revox
152
280
  )
153
281
  end
154
282
 
283
+ # Permanently delete an assistant by its ID. Any future calls referencing this
284
+ # assistant ID will fail. Existing call records that used this assistant are not
285
+ # affected.
286
+ #
155
287
  # @overload delete(id, request_options: {})
156
288
  #
157
289
  # @param id [String]
@@ -6,8 +6,12 @@ module Revox
6
6
  # Some parameter documentations has been truncated, see
7
7
  # {Revox::Models::CallCreateParams} for more details.
8
8
  #
9
- # Place a new call order. A call order can be resolved over multiple call attempts
10
- # spanning up to a few days.
9
+ # Place a new outbound call order. Provide either an existing assistant ID or a
10
+ # custom assistant configuration. The call can be scheduled for a specific time or
11
+ # started immediately. A single call order may be resolved over multiple call
12
+ # attempts spanning up to a few days, with automatic retries when voicemail is
13
+ # detected. You can also set concurrency limits and pass prompt variables for
14
+ # dynamic personalization.
11
15
  #
12
16
  # @overload create(phone_number:, assistant: nil, assistant_id: nil, concurrency: nil, force_now: nil, from_phone_number: nil, metadata: nil, prompt_variables: nil, scheduled_at: nil, request_options: {})
13
17
  #
@@ -45,7 +49,10 @@ module Revox
45
49
  )
46
50
  end
47
51
 
48
- # Get a call order by ID.
52
+ # Retrieve the full details of a call order by its unique ID. The response
53
+ # includes the call status, call attempts, transcript, recording URL, timestamps,
54
+ # and metadata. Use this endpoint to poll for call completion or inspect results
55
+ # after a call has finished.
49
56
  #
50
57
  # @overload retrieve(id, request_options: {})
51
58
  #
@@ -65,30 +72,6 @@ module Revox
65
72
  )
66
73
  end
67
74
 
68
- # Get the list of call orders.
69
- #
70
- # @overload list(page:, page_size:, request_options: {})
71
- #
72
- # @param page [Float] The page number you want to get. Starting at 0.
73
- #
74
- # @param page_size [Float]
75
- #
76
- # @param request_options [Revox::RequestOptions, Hash{Symbol=>Object}, nil]
77
- #
78
- # @return [Revox::Models::CallListResponse]
79
- #
80
- # @see Revox::Models::CallListParams
81
- def list(params)
82
- parsed, options = Revox::CallListParams.dump_request(params)
83
- @client.request(
84
- method: :get,
85
- path: "call",
86
- query: parsed,
87
- model: Revox::Models::CallListResponse,
88
- options: options
89
- )
90
- end
91
-
92
75
  # @api private
93
76
  #
94
77
  # @param client [Revox::Client]