revox 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +36 -0
  3. data/README.md +38 -38
  4. data/lib/revox/client.rb +8 -0
  5. data/lib/revox/internal/type/base_model.rb +3 -3
  6. data/lib/revox/models/assistant_clone_params.rb +20 -0
  7. data/lib/revox/models/assistant_clone_response.rb +1616 -0
  8. data/lib/revox/models/assistant_create_params.rb +90 -66
  9. data/lib/revox/models/assistant_create_response.rb +87 -65
  10. data/lib/revox/models/assistant_list_response.rb +87 -65
  11. data/lib/revox/models/assistant_retrieve_response.rb +86 -65
  12. data/lib/revox/models/assistant_update_params.rb +90 -66
  13. data/lib/revox/models/assistant_update_response.rb +87 -65
  14. data/lib/revox/models/auth_status_retrieve_params.rb +14 -0
  15. data/lib/revox/models/auth_status_retrieve_response.rb +17 -0
  16. data/lib/revox/models/call_cancel_params.rb +20 -0
  17. data/lib/revox/models/call_cancel_response.rb +16 -0
  18. data/lib/revox/models/call_create_params.rb +117 -90
  19. data/lib/revox/models/call_create_response.rb +680 -90
  20. data/lib/revox/models/call_export_params.rb +203 -0
  21. data/lib/revox/models/call_export_response.rb +22 -0
  22. data/lib/revox/models/call_pause_params.rb +20 -0
  23. data/lib/revox/models/call_pause_response.rb +16 -0
  24. data/lib/revox/models/call_phone_history_params.rb +14 -0
  25. data/lib/revox/models/call_phone_history_response.rb +95 -0
  26. data/lib/revox/models/call_resume_params.rb +20 -0
  27. data/lib/revox/models/call_resume_response.rb +16 -0
  28. data/lib/revox/models/call_retrieve_response.rb +681 -90
  29. data/lib/revox/models/call_search_params.rb +169 -0
  30. data/lib/revox/models/call_search_response.rb +3694 -0
  31. data/lib/revox/models/campaign_create_params.rb +7 -57
  32. data/lib/revox/models/campaign_create_response.rb +108 -119
  33. data/lib/revox/models/campaign_get_rows_response.rb +682 -90
  34. data/lib/revox/models/campaign_list_response.rb +108 -119
  35. data/lib/revox/models/campaign_pause_params.rb +20 -0
  36. data/lib/revox/models/campaign_pause_response.rb +16 -0
  37. data/lib/revox/models/campaign_resume_params.rb +20 -0
  38. data/lib/revox/models/campaign_resume_response.rb +16 -0
  39. data/lib/revox/models/campaign_retrieve_response.rb +108 -119
  40. data/lib/revox/models/campaign_statistics_params.rb +20 -0
  41. data/lib/revox/models/campaign_statistics_response.rb +514 -0
  42. data/lib/revox/models/campaign_update_params.rb +165 -0
  43. data/lib/revox/models/campaign_update_response.rb +2019 -0
  44. data/lib/revox/models/phone_number_delete_params.rb +20 -0
  45. data/lib/revox/models/phone_number_delete_response.rb +16 -0
  46. data/lib/revox/models/phone_number_list_params.rb +14 -0
  47. data/lib/revox/models/phone_number_list_response.rb +1799 -0
  48. data/lib/revox/models/phone_number_update_params.rb +32 -0
  49. data/lib/revox/models/phone_number_update_response.rb +1799 -0
  50. data/lib/revox/models/user_retrieve_params.rb +14 -0
  51. data/lib/revox/models/user_retrieve_response.rb +99 -0
  52. data/lib/revox/models/voice_clone_params.rb +78 -0
  53. data/lib/revox/models/voice_clone_response.rb +40 -0
  54. data/lib/revox/models/voice_delete_params.rb +20 -0
  55. data/lib/revox/models/voice_delete_response.rb +16 -0
  56. data/lib/revox/models/voice_list_response.rb +1 -0
  57. data/lib/revox/models/voice_preview_params.rb +1 -0
  58. data/lib/revox/models/voice_retrieve_params.rb +1 -0
  59. data/lib/revox/models.rb +35 -1
  60. data/lib/revox/resources/assistants.rb +31 -10
  61. data/lib/revox/resources/auth_status.rb +32 -0
  62. data/lib/revox/resources/call.rb +149 -4
  63. data/lib/revox/resources/campaigns.rb +110 -11
  64. data/lib/revox/resources/phone_numbers.rb +74 -0
  65. data/lib/revox/resources/users.rb +17 -3
  66. data/lib/revox/resources/voices.rb +50 -0
  67. data/lib/revox/version.rb +1 -1
  68. data/lib/revox.rb +38 -5
  69. data/rbi/revox/client.rbi +6 -0
  70. data/rbi/revox/models/assistant_clone_params.rbi +33 -0
  71. data/rbi/revox/models/assistant_clone_response.rbi +3351 -0
  72. data/rbi/revox/models/assistant_create_params.rbi +148 -162
  73. data/rbi/revox/models/assistant_create_response.rbi +157 -147
  74. data/rbi/revox/models/assistant_list_response.rbi +157 -147
  75. data/rbi/revox/models/assistant_retrieve_response.rbi +153 -147
  76. data/rbi/revox/models/assistant_update_params.rbi +148 -162
  77. data/rbi/revox/models/assistant_update_response.rbi +157 -147
  78. data/rbi/revox/models/auth_status_retrieve_params.rbi +27 -0
  79. data/rbi/revox/models/auth_status_retrieve_response.rbi +30 -0
  80. data/rbi/revox/models/call_cancel_params.rbi +33 -0
  81. data/rbi/revox/models/call_cancel_response.rbi +23 -0
  82. data/rbi/revox/models/call_create_params.rbi +190 -187
  83. data/rbi/revox/models/call_create_response.rbi +1150 -227
  84. data/rbi/revox/models/call_export_params.rbi +446 -0
  85. data/rbi/revox/models/call_export_response.rbi +26 -0
  86. data/rbi/revox/models/call_pause_params.rbi +31 -0
  87. data/rbi/revox/models/call_pause_response.rbi +23 -0
  88. data/rbi/revox/models/call_phone_history_params.rbi +27 -0
  89. data/rbi/revox/models/call_phone_history_response.rbi +209 -0
  90. data/rbi/revox/models/call_resume_params.rbi +33 -0
  91. data/rbi/revox/models/call_resume_response.rbi +23 -0
  92. data/rbi/revox/models/call_retrieve_response.rbi +1150 -227
  93. data/rbi/revox/models/call_search_params.rbi +281 -0
  94. data/rbi/revox/models/call_search_response.rbi +7504 -0
  95. data/rbi/revox/models/campaign_create_params.rbi +9 -87
  96. data/rbi/revox/models/campaign_create_response.rbi +188 -266
  97. data/rbi/revox/models/campaign_get_rows_response.rbi +1150 -225
  98. data/rbi/revox/models/campaign_list_response.rbi +188 -262
  99. data/rbi/revox/models/campaign_pause_params.rbi +33 -0
  100. data/rbi/revox/models/campaign_pause_response.rbi +23 -0
  101. data/rbi/revox/models/campaign_resume_params.rbi +33 -0
  102. data/rbi/revox/models/campaign_resume_response.rbi +23 -0
  103. data/rbi/revox/models/campaign_retrieve_response.rbi +188 -266
  104. data/rbi/revox/models/campaign_statistics_params.rbi +33 -0
  105. data/rbi/revox/models/campaign_statistics_response.rbi +1069 -0
  106. data/rbi/revox/models/campaign_update_params.rbi +313 -0
  107. data/rbi/revox/models/campaign_update_response.rbi +4092 -0
  108. data/rbi/revox/models/phone_number_delete_params.rbi +33 -0
  109. data/rbi/revox/models/phone_number_delete_response.rbi +26 -0
  110. data/rbi/revox/models/phone_number_list_params.rbi +27 -0
  111. data/rbi/revox/models/phone_number_list_response.rbi +3690 -0
  112. data/rbi/revox/models/phone_number_update_params.rbi +53 -0
  113. data/rbi/revox/models/phone_number_update_response.rbi +3693 -0
  114. data/rbi/revox/models/user_retrieve_params.rbi +27 -0
  115. data/rbi/revox/models/user_retrieve_response.rbi +140 -0
  116. data/rbi/revox/models/voice_clone_params.rbi +141 -0
  117. data/rbi/revox/models/voice_clone_response.rbi +53 -0
  118. data/rbi/revox/models/voice_delete_params.rbi +33 -0
  119. data/rbi/revox/models/voice_delete_response.rbi +23 -0
  120. data/rbi/revox/models/voice_list_response.rbi +5 -0
  121. data/rbi/revox/models/voice_preview_params.rbi +2 -0
  122. data/rbi/revox/models/voice_retrieve_params.rbi +2 -0
  123. data/rbi/revox/models.rbi +35 -1
  124. data/rbi/revox/resources/assistants.rbi +52 -22
  125. data/rbi/revox/resources/auth_status.rbi +21 -0
  126. data/rbi/revox/resources/call.rbi +114 -4
  127. data/rbi/revox/resources/campaigns.rbi +77 -15
  128. data/rbi/revox/resources/phone_numbers.rbi +43 -0
  129. data/rbi/revox/resources/users.rbi +8 -2
  130. data/rbi/revox/resources/voices.rbi +39 -0
  131. data/sig/revox/client.rbs +4 -0
  132. data/sig/revox/models/assistant_clone_params.rbs +20 -0
  133. data/sig/revox/models/assistant_clone_response.rbs +1310 -0
  134. data/sig/revox/models/assistant_create_params.rbs +39 -58
  135. data/sig/revox/models/assistant_create_response.rbs +46 -54
  136. data/sig/revox/models/assistant_list_response.rbs +46 -54
  137. data/sig/revox/models/assistant_retrieve_response.rbs +46 -54
  138. data/sig/revox/models/assistant_update_params.rbs +39 -58
  139. data/sig/revox/models/assistant_update_response.rbs +46 -54
  140. data/sig/revox/models/auth_status_retrieve_params.rbs +15 -0
  141. data/sig/revox/models/auth_status_retrieve_response.rbs +13 -0
  142. data/sig/revox/models/call_cancel_params.rbs +20 -0
  143. data/sig/revox/models/call_cancel_response.rbs +13 -0
  144. data/sig/revox/models/call_create_params.rbs +50 -71
  145. data/sig/revox/models/call_create_response.rbs +473 -77
  146. data/sig/revox/models/call_export_params.rbs +230 -0
  147. data/sig/revox/models/call_export_response.rbs +15 -0
  148. data/sig/revox/models/call_pause_params.rbs +20 -0
  149. data/sig/revox/models/call_pause_response.rbs +13 -0
  150. data/sig/revox/models/call_phone_history_params.rbs +15 -0
  151. data/sig/revox/models/call_phone_history_response.rbs +93 -0
  152. data/sig/revox/models/call_resume_params.rbs +20 -0
  153. data/sig/revox/models/call_resume_response.rbs +13 -0
  154. data/sig/revox/models/call_retrieve_response.rbs +473 -77
  155. data/sig/revox/models/call_search_params.rbs +194 -0
  156. data/sig/revox/models/call_search_response.rbs +3045 -0
  157. data/sig/revox/models/campaign_create_params.rbs +5 -50
  158. data/sig/revox/models/campaign_create_response.rbs +62 -98
  159. data/sig/revox/models/campaign_get_rows_response.rbs +472 -73
  160. data/sig/revox/models/campaign_list_response.rbs +62 -98
  161. data/sig/revox/models/campaign_pause_params.rbs +20 -0
  162. data/sig/revox/models/campaign_pause_response.rbs +13 -0
  163. data/sig/revox/models/campaign_resume_params.rbs +20 -0
  164. data/sig/revox/models/campaign_resume_response.rbs +13 -0
  165. data/sig/revox/models/campaign_retrieve_response.rbs +62 -98
  166. data/sig/revox/models/campaign_statistics_params.rbs +20 -0
  167. data/sig/revox/models/campaign_statistics_response.rbs +489 -0
  168. data/sig/revox/models/campaign_update_params.rbs +135 -0
  169. data/sig/revox/models/campaign_update_response.rbs +1658 -0
  170. data/sig/revox/models/phone_number_delete_params.rbs +20 -0
  171. data/sig/revox/models/phone_number_delete_response.rbs +13 -0
  172. data/sig/revox/models/phone_number_list_params.rbs +15 -0
  173. data/sig/revox/models/phone_number_list_response.rbs +1454 -0
  174. data/sig/revox/models/phone_number_update_params.rbs +32 -0
  175. data/sig/revox/models/phone_number_update_response.rbs +1452 -0
  176. data/sig/revox/models/user_retrieve_params.rbs +14 -0
  177. data/sig/revox/models/user_retrieve_response.rbs +71 -0
  178. data/sig/revox/models/voice_clone_params.rbs +79 -0
  179. data/sig/revox/models/voice_clone_response.rbs +40 -0
  180. data/sig/revox/models/voice_delete_params.rbs +20 -0
  181. data/sig/revox/models/voice_delete_response.rbs +13 -0
  182. data/sig/revox/models/voice_list_response.rbs +2 -1
  183. data/sig/revox/models/voice_preview_params.rbs +2 -1
  184. data/sig/revox/models/voice_retrieve_params.rbs +2 -1
  185. data/sig/revox/models.rbs +35 -1
  186. data/sig/revox/resources/assistants.rbs +9 -4
  187. data/sig/revox/resources/auth_status.rbs +11 -0
  188. data/sig/revox/resources/call.rbs +46 -1
  189. data/sig/revox/resources/campaigns.rbs +24 -3
  190. data/sig/revox/resources/phone_numbers.rbs +23 -0
  191. data/sig/revox/resources/users.rbs +3 -1
  192. data/sig/revox/resources/voices.rbs +13 -0
  193. metadata +116 -17
  194. data/lib/revox/models/users/me_retrieve_params.rb +0 -16
  195. data/lib/revox/models/users/me_retrieve_response.rb +0 -101
  196. data/lib/revox/models/users/me_update_params.rb +0 -22
  197. data/lib/revox/models/users/me_update_response.rb +0 -101
  198. data/lib/revox/resources/users/me.rb +0 -55
  199. data/rbi/revox/models/users/me_retrieve_params.rbi +0 -29
  200. data/rbi/revox/models/users/me_retrieve_response.rbi +0 -149
  201. data/rbi/revox/models/users/me_update_params.rbi +0 -43
  202. data/rbi/revox/models/users/me_update_response.rbi +0 -149
  203. data/rbi/revox/resources/users/me.rbi +0 -33
  204. data/sig/revox/models/users/me_retrieve_params.rbs +0 -16
  205. data/sig/revox/models/users/me_retrieve_response.rbs +0 -75
  206. data/sig/revox/models/users/me_update_params.rbs +0 -28
  207. data/sig/revox/models/users/me_update_response.rbs +0 -75
  208. data/sig/revox/resources/users/me.rbs +0 -18
@@ -77,14 +77,6 @@ module Revox
77
77
  # @return [String, nil]
78
78
  optional :email_notification_address, String, nil?: true
79
79
 
80
- # @!attribute email_notification_language
81
- # The language used for the notification email content. One of "en" or "fr".
82
- # Defaults to "en".
83
- #
84
- # @return [Symbol, Revox::Models::AssistantUpdateParams::EmailNotificationLanguage, nil]
85
- optional :email_notification_language,
86
- enum: -> { Revox::AssistantUpdateParams::EmailNotificationLanguage }
87
-
88
80
  # @!attribute email_notification_outcomes
89
81
  # Which call outcomes trigger an email notification. E.g. ["interested",
90
82
  # "completed", "none"]. Use "none" when outcome is null.
@@ -139,8 +131,8 @@ module Revox
139
131
  optional :from_phone_number, String, nil?: true
140
132
 
141
133
  # @!attribute human_transfer_mode
142
- # When transfer_phone_number is set: "warm" (AI bridges) or "cold" (SIP REFER;
143
- # trunk must allow REFER/PSTN). Omit or null when transfer is disabled.
134
+ # When transfer_destinations is non-empty: "warm" (AI bridges) or "cold" (SIP
135
+ # REFER; trunk must allow REFER/PSTN). Omit or null when transfer is disabled.
144
136
  #
145
137
  # @return [Symbol, Revox::Models::AssistantUpdateParams::HumanTransferMode, nil]
146
138
  optional :human_transfer_mode, enum: -> { Revox::AssistantUpdateParams::HumanTransferMode }, nil?: true
@@ -190,6 +182,16 @@ module Revox
190
182
  # @return [Revox::Models::AssistantUpdateParams::Position, nil]
191
183
  optional :position, -> { Revox::AssistantUpdateParams::Position }, nil?: true
192
184
 
185
+ # @!attribute precall_lookup_url
186
+ # Inbound calls only. URL fetched over HTTP GET right before the call is answered,
187
+ # with `{{phone}}` replaced by the caller's number in E.164 format (URL-encoded).
188
+ # It must return `{"prompt_variables": {...}}` covering every `{{variable}}` the
189
+ # assistant declares, otherwise the call is errored. Must be an http(s) URL
190
+ # containing `{{phone}}`. When null, no lookup is performed.
191
+ #
192
+ # @return [String, nil]
193
+ optional :precall_lookup_url, String, nil?: true
194
+
193
195
  # @!attribute prompt
194
196
  # The prompt to use for the call. This will be given to the LLM (gpt-4.1)
195
197
  #
@@ -277,12 +279,16 @@ module Revox
277
279
  # @return [Float, nil]
278
280
  optional :thinking_sound_volume, Float
279
281
 
280
- # @!attribute transfer_phone_number
281
- # Phone number to transfer calls to when users request to speak to a human agent
282
- # in E.164 format (e.g. +1234567890).
282
+ # @!attribute transfer_destinations
283
+ # Where calls can be transferred to when users ask to speak to a human. With a
284
+ # single entry the assistant always transfers there; with several, it picks one at
285
+ # transfer time by applying the routing rules written in the assistant's own
286
+ # prompt (which refer to the destination labels). Empty or null disables transfer.
283
287
  #
284
- # @return [String, nil]
285
- optional :transfer_phone_number, String, nil?: true
288
+ # @return [Array<Revox::Models::AssistantUpdateParams::TransferDestination>, nil]
289
+ optional :transfer_destinations,
290
+ -> { Revox::Internal::Type::ArrayOf[Revox::AssistantUpdateParams::TransferDestination] },
291
+ nil?: true
286
292
 
287
293
  # @!attribute type
288
294
  # Assistant kind. 'standalone' (default) is a normal assistant, 'multi-step'
@@ -336,7 +342,7 @@ module Revox
336
342
  # @return [Revox::Models::AssistantUpdateParams::Zoho, nil]
337
343
  optional :zoho, -> { Revox::AssistantUpdateParams::Zoho }, nil?: true
338
344
 
339
- # @!method initialize(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: {})
345
+ # @!method initialize(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_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, precall_lookup_url: 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_destinations: nil, type: nil, voice: nil, voicemail_message: nil, voicemail_sms_prompt: nil, warm_transfer_summary_instructions: nil, webhook_url: nil, zoho: nil, request_options: {})
340
346
  # Some parameter documentations has been truncated, see
341
347
  # {Revox::Models::AssistantUpdateParams} for more details.
342
348
  #
@@ -360,8 +366,6 @@ module Revox
360
366
  #
361
367
  # @param email_notification_address [String, nil] Email address(es) to receive notifications when a call ends with a matching outc
362
368
  #
363
- # @param email_notification_language [Symbol, Revox::Models::AssistantUpdateParams::EmailNotificationLanguage] The language used for the notification email content. One of "en" or "fr". Defau
364
- #
365
369
  # @param email_notification_outcomes [Array<Symbol, Revox::Models::AssistantUpdateParams::EmailNotificationOutcome>, nil] Which call outcomes trigger an email notification. E.g. ["interested", "complete
366
370
  #
367
371
  # @param end_of_call_sentence [String] Optional message to say when the agent decides to end the call.
@@ -376,7 +380,7 @@ module Revox
376
380
  #
377
381
  # @param from_phone_number [String, nil] Override the default outbound phone number for calls placed with this assistant.
378
382
  #
379
- # @param human_transfer_mode [Symbol, Revox::Models::AssistantUpdateParams::HumanTransferMode, nil] When transfer_phone_number is set: "warm" (AI bridges) or "cold" (SIP REFER; tru
383
+ # @param human_transfer_mode [Symbol, Revox::Models::AssistantUpdateParams::HumanTransferMode, nil] When transfer_destinations is non-empty: "warm" (AI bridges) or "cold" (SIP REFE
380
384
  #
381
385
  # @param ivr_navigation_enabled [Boolean] Enable IVR navigation tools. When enabled, the assistant can send DTMF tones and
382
386
  #
@@ -392,6 +396,8 @@ module Revox
392
396
  #
393
397
  # @param position [Revox::Models::AssistantUpdateParams::Position, nil] Canvas position of this assistant's node in its multi-step flow editor.
394
398
  #
399
+ # @param precall_lookup_url [String, nil] Inbound calls only. URL fetched over HTTP GET right before the call is answered,
400
+ #
395
401
  # @param prompt [String] The prompt to use for the call. This will be given to the LLM (gpt-4.1)
396
402
  #
397
403
  # @param prompt_flow [Revox::Models::AssistantUpdateParams::PromptFlow, nil] Visual prompt constructor data (nodes, edges, positions). Used by the UI to re-o
@@ -416,7 +422,7 @@ module Revox
416
422
  #
417
423
  # @param thinking_sound_volume [Float] Volume of the thinking sound (0 = silent, 1 = max).
418
424
  #
419
- # @param transfer_phone_number [String, nil] Phone number to transfer calls to when users request to speak to a human agent i
425
+ # @param transfer_destinations [Array<Revox::Models::AssistantUpdateParams::TransferDestination>, nil] Where calls can be transferred to when users ask to speak to a human. With a sin
420
426
  #
421
427
  # @param type [Symbol, Revox::Models::AssistantUpdateParams::Type] Assistant kind. 'standalone' (default) is a normal assistant, 'multi-step' orche
422
428
  #
@@ -441,9 +447,6 @@ module Revox
441
447
  INTERESTED = :interested
442
448
  COMPLETED = :completed
443
449
  REQUESTED_CALLBACK_LATER = :requested_callback_later
444
- REQUESTED_CALLBACK_NEW_NUMBER = :requested_callback_new_number
445
- DO_NOT_CONTACT = :do_not_contact
446
- AI_AVERSE = :ai_averse
447
450
  NONE = :none
448
451
 
449
452
  # @!method self.values
@@ -571,7 +574,8 @@ module Revox
571
574
  required :calling_window_start_time, String
572
575
 
573
576
  # @!attribute retry_delay_seconds
574
- # Delay between retry attempts in seconds. Default: 7200 (2 hours).
577
+ # Delay between retry attempts in seconds. 0 retries as soon as the calling window
578
+ # allows. Default: 7200 (2 hours).
575
579
  #
576
580
  # @return [Integer]
577
581
  required :retry_delay_seconds, Integer
@@ -585,7 +589,7 @@ module Revox
585
589
  #
586
590
  # @param calling_window_start_time [String] Start time for the calling window in the recipient's timezone (or timezone_overr
587
591
  #
588
- # @param retry_delay_seconds [Integer] Delay between retry attempts in seconds. Default: 7200 (2 hours).
592
+ # @param retry_delay_seconds [Integer] Delay between retry attempts in seconds. 0 retries as soon as the calling window
589
593
  end
590
594
  end
591
595
 
@@ -763,18 +767,6 @@ module Revox
763
767
  end
764
768
  end
765
769
 
766
- # The language used for the notification email content. One of "en" or "fr".
767
- # Defaults to "en".
768
- module EmailNotificationLanguage
769
- extend Revox::Internal::Type::Enum
770
-
771
- EN = :en
772
- FR = :fr
773
-
774
- # @!method self.values
775
- # @return [Array<Symbol>]
776
- end
777
-
778
770
  module EmailNotificationOutcome
779
771
  extend Revox::Internal::Type::Enum
780
772
 
@@ -782,9 +774,6 @@ module Revox
782
774
  INTERESTED = :interested
783
775
  COMPLETED = :completed
784
776
  REQUESTED_CALLBACK_LATER = :requested_callback_later
785
- REQUESTED_CALLBACK_NEW_NUMBER = :requested_callback_new_number
786
- DO_NOT_CONTACT = :do_not_contact
787
- AI_AVERSE = :ai_averse
788
777
  NONE = :none
789
778
 
790
779
  # @!method self.values
@@ -822,8 +811,8 @@ module Revox
822
811
  # @return [Array<Symbol>]
823
812
  end
824
813
 
825
- # When transfer_phone_number is set: "warm" (AI bridges) or "cold" (SIP REFER;
826
- # trunk must allow REFER/PSTN). Omit or null when transfer is disabled.
814
+ # When transfer_destinations is non-empty: "warm" (AI bridges) or "cold" (SIP
815
+ # REFER; trunk must allow REFER/PSTN). Omit or null when transfer is disabled.
827
816
  module HumanTransferMode
828
817
  extend Revox::Internal::Type::Enum
829
818
 
@@ -1109,11 +1098,13 @@ module Revox
1109
1098
  end
1110
1099
 
1111
1100
  class Slack < Revox::Internal::Type::BaseModel
1112
- # @!attribute channel_id
1113
- # The Slack channel ID where the notification will be posted.
1101
+ # @!attribute channels
1102
+ # The Slack channels eligible to receive the notification. When more than one is
1103
+ # configured, the agent prompt may define routing rules to narrow it down per
1104
+ # call; with no such rules every channel here is notified.
1114
1105
  #
1115
- # @return [String]
1116
- required :channel_id, String
1106
+ # @return [Array<Revox::Models::AssistantUpdateParams::Slack::Channel>]
1107
+ required :channels, -> { Revox::Internal::Type::ArrayOf[Revox::AssistantUpdateParams::Slack::Channel] }
1117
1108
 
1118
1109
  # @!attribute connection_id
1119
1110
  # The Nango connection ID linking the org's Slack workspace to Revox.
@@ -1129,40 +1120,55 @@ module Revox
1129
1120
  required :outcomes,
1130
1121
  -> { Revox::Internal::Type::ArrayOf[enum: Revox::AssistantUpdateParams::Slack::Outcome] }
1131
1122
 
1132
- # @!attribute channel_name
1133
- # Human-readable Slack channel name, cached for display in the UI.
1134
- #
1135
- # @return [String, nil]
1136
- optional :channel_name, String, nil?: true
1137
-
1138
1123
  # @!attribute template
1139
1124
  # Optional message template. Supports {{summary}}, {{outcome}}, {{phone}},
1140
1125
  # {{call_url}}, {{assistant_name}}, {{campaign_name}}, {{first_name}},
1141
- # {{last_name}}, {{email}}, {{company}}, {{contact_name}}, {{contact_line}}, plus
1142
- # prompt_variables and structured_output keys. When null/empty a default template
1143
- # is used.
1126
+ # {{last_name}}, {{email}}, {{company}}, {{job_title}}, {{contact_name}},
1127
+ # {{contact_line}}, plus prompt_variables and structured_output keys. When
1128
+ # null/empty a default template is used.
1144
1129
  #
1145
1130
  # @return [String, nil]
1146
1131
  optional :template, String, nil?: true
1147
1132
 
1148
- # @!method initialize(channel_id:, connection_id:, outcomes:, channel_name: nil, template: nil)
1133
+ # @!method initialize(channels:, connection_id:, outcomes:, template: nil)
1149
1134
  # Some parameter documentations has been truncated, see
1150
1135
  # {Revox::Models::AssistantUpdateParams::Slack} for more details.
1151
1136
  #
1152
1137
  # Slack notification config. When set, posts a message to the chosen channel after
1153
1138
  # a call ends with one of the configured outcomes.
1154
1139
  #
1155
- # @param channel_id [String] The Slack channel ID where the notification will be posted.
1140
+ # @param channels [Array<Revox::Models::AssistantUpdateParams::Slack::Channel>] The Slack channels eligible to receive the notification. When more than one is c
1156
1141
  #
1157
1142
  # @param connection_id [String] The Nango connection ID linking the org's Slack workspace to Revox.
1158
1143
  #
1159
1144
  # @param outcomes [Array<Symbol, Revox::Models::AssistantUpdateParams::Slack::Outcome>] Which call outcomes trigger a Slack notification (e.g. ['interested', 'none']).
1160
1145
  #
1161
- # @param channel_name [String, nil] Human-readable Slack channel name, cached for display in the UI.
1162
- #
1163
1146
  # @param template [String, nil] Optional message template. Supports {{summary}}, {{outcome}}, {{phone}},
1164
1147
  # {{call\_
1165
1148
 
1149
+ class Channel < Revox::Internal::Type::BaseModel
1150
+ # @!attribute id
1151
+ # The Slack channel ID (e.g. 'C01234567').
1152
+ #
1153
+ # @return [String]
1154
+ required :id, String
1155
+
1156
+ # @!attribute name
1157
+ # Human-readable Slack channel name, cached for display in the UI and given to the
1158
+ # LLM when the agent prompt routes by channel name.
1159
+ #
1160
+ # @return [String, nil]
1161
+ optional :name, String, nil?: true
1162
+
1163
+ # @!method initialize(id:, name: nil)
1164
+ # Some parameter documentations has been truncated, see
1165
+ # {Revox::Models::AssistantUpdateParams::Slack::Channel} for more details.
1166
+ #
1167
+ # @param id [String] The Slack channel ID (e.g. 'C01234567').
1168
+ #
1169
+ # @param name [String, nil] Human-readable Slack channel name, cached for display in the UI and given to the
1170
+ end
1171
+
1166
1172
  module Outcome
1167
1173
  extend Revox::Internal::Type::Enum
1168
1174
 
@@ -1170,9 +1176,6 @@ module Revox
1170
1176
  INTERESTED = :interested
1171
1177
  COMPLETED = :completed
1172
1178
  REQUESTED_CALLBACK_LATER = :requested_callback_later
1173
- REQUESTED_CALLBACK_NEW_NUMBER = :requested_callback_new_number
1174
- DO_NOT_CONTACT = :do_not_contact
1175
- AI_AVERSE = :ai_averse
1176
1179
  NONE = :none
1177
1180
 
1178
1181
  # @!method self.values
@@ -1295,6 +1298,29 @@ module Revox
1295
1298
  # @return [Array<Symbol>]
1296
1299
  end
1297
1300
 
1301
+ class TransferDestination < Revox::Internal::Type::BaseModel
1302
+ # @!attribute label
1303
+ # Human-meaningful name for this destination (e.g. "Sales"). The assistant's
1304
+ # prompt refers to these labels when describing who to transfer to.
1305
+ #
1306
+ # @return [String]
1307
+ required :label, String
1308
+
1309
+ # @!attribute phone_number
1310
+ # Destination phone number in E.164 format (e.g. +1234567890).
1311
+ #
1312
+ # @return [String]
1313
+ required :phone_number, String
1314
+
1315
+ # @!method initialize(label:, phone_number:)
1316
+ # Some parameter documentations has been truncated, see
1317
+ # {Revox::Models::AssistantUpdateParams::TransferDestination} for more details.
1318
+ #
1319
+ # @param label [String] Human-meaningful name for this destination (e.g. "Sales"). The assistant's promp
1320
+ #
1321
+ # @param phone_number [String] Destination phone number in E.164 format (e.g. +1234567890).
1322
+ end
1323
+
1298
1324
  # Assistant kind. 'standalone' (default) is a normal assistant, 'multi-step'
1299
1325
  # orchestrates a flow of sub-assistants, 'sub-assistant' is a step inside a
1300
1326
  # multi-step flow (hidden from the assistants list). Flow transitions are managed
@@ -1332,7 +1358,7 @@ module Revox
1332
1358
 
1333
1359
  # @!attribute speed
1334
1360
  # The speed of the voice. Range depends on provider: Cartesia 0.6–1.5, ElevenLabs
1335
- # 0.7–1.2. Default is 1.0.
1361
+ # 0.7–1.2, Gradium 0.6–1.5. Default is 1.0.
1336
1362
  #
1337
1363
  # @return [Float, nil]
1338
1364
  optional :speed, Float
@@ -1369,6 +1395,7 @@ module Revox
1369
1395
 
1370
1396
  CARTESIA = :cartesia
1371
1397
  ELEVENLABS = :elevenlabs
1398
+ GRADIUM = :gradium
1372
1399
 
1373
1400
  # @!method self.values
1374
1401
  # @return [Array<Symbol>]
@@ -1485,9 +1512,6 @@ module Revox
1485
1512
  INTERESTED = :interested
1486
1513
  COMPLETED = :completed
1487
1514
  REQUESTED_CALLBACK_LATER = :requested_callback_later
1488
- REQUESTED_CALLBACK_NEW_NUMBER = :requested_callback_new_number
1489
- DO_NOT_CONTACT = :do_not_contact
1490
- AI_AVERSE = :ai_averse
1491
1515
  NONE = :none
1492
1516
 
1493
1517
  # @!method self.values
@@ -97,13 +97,6 @@ module Revox
97
97
  # @return [String, nil]
98
98
  required :email_notification_address, String, nil?: true
99
99
 
100
- # @!attribute email_notification_language
101
- # The language used for the notification email content. One of "en" or "fr".
102
- #
103
- # @return [Symbol, Revox::Models::AssistantUpdateResponse::Assistant::EmailNotificationLanguage]
104
- required :email_notification_language,
105
- enum: -> { Revox::Models::AssistantUpdateResponse::Assistant::EmailNotificationLanguage }
106
-
107
100
  # @!attribute email_notification_outcomes
108
101
  # Which call outcomes trigger an email notification. E.g. ["interested",
109
102
  # "completed", "none"]. Use "none" when outcome is null.
@@ -143,8 +136,8 @@ module Revox
143
136
  required :from_phone_number, String, nil?: true
144
137
 
145
138
  # @!attribute human_transfer_mode
146
- # Warm or cold transfer when transfer_phone_number is set; null when transfer is
147
- # not configured.
139
+ # Warm or cold transfer when transfer_destinations is non-empty; null when
140
+ # transfer is not configured.
148
141
  #
149
142
  # @return [Symbol, Revox::Models::AssistantUpdateResponse::Assistant::HumanTransferMode, nil]
150
143
  required :human_transfer_mode,
@@ -200,6 +193,13 @@ module Revox
200
193
  # @return [Revox::Models::AssistantUpdateResponse::Assistant::Position, nil]
201
194
  required :position, -> { Revox::Models::AssistantUpdateResponse::Assistant::Position }, nil?: true
202
195
 
196
+ # @!attribute precall_lookup_url
197
+ # URL fetched before an inbound call is answered to resolve the assistant's prompt
198
+ # variables. Null when no lookup is configured.
199
+ #
200
+ # @return [String, nil]
201
+ required :precall_lookup_url, String, nil?: true
202
+
203
203
  # @!attribute prompt
204
204
  #
205
205
  # @return [String]
@@ -283,11 +283,14 @@ module Revox
283
283
  # @return [Float]
284
284
  required :thinking_sound_volume, Float
285
285
 
286
- # @!attribute transfer_phone_number
287
- # Phone number to transfer calls to when users request to speak to a human agent.
286
+ # @!attribute transfer_destinations
287
+ # Where calls can be transferred to when users ask to speak to a human. Null or
288
+ # empty when transfer is not configured.
288
289
  #
289
- # @return [String, nil]
290
- required :transfer_phone_number, String, nil?: true
290
+ # @return [Array<Revox::Models::AssistantUpdateResponse::Assistant::TransferDestination>, nil]
291
+ required :transfer_destinations,
292
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::AssistantUpdateResponse::Assistant::TransferDestination] },
293
+ nil?: true
291
294
 
292
295
  # @!attribute type
293
296
  #
@@ -348,6 +351,11 @@ module Revox
348
351
  optional :faq_items,
349
352
  -> { Revox::Internal::Type::ArrayOf[Revox::Models::AssistantUpdateResponse::Assistant::FaqItem] }
350
353
 
354
+ # @!attribute is_inbound_receptionist
355
+ #
356
+ # @return [Boolean, nil]
357
+ optional :is_inbound_receptionist, Revox::Internal::Type::Boolean
358
+
351
359
  # @!attribute is_realestate_assistant
352
360
  #
353
361
  # @return [Boolean, nil]
@@ -358,7 +366,7 @@ module Revox
358
366
  # @return [Float, nil]
359
367
  optional :pending_faq_count, Float
360
368
 
361
- # @!method initialize(id:, after_call_sms_outcomes:, after_call_sms_prompt:, background_sound:, background_sound_volume:, calendly:, call_retry_config:, cartesia_dictionary_pronunciation_id:, created_at:, custom_tools:, email_notification_address:, email_notification_language:, email_notification_outcomes:, end_of_call_sentence:, first_sentence:, first_sentence_delay_ms:, first_sentence_mode:, from_phone_number:, human_transfer_mode:, ivr_navigation_enabled:, llm_model:, logo_url:, max_call_duration_secs:, max_duration_end_message:, name:, organization_id:, position:, prompt:, prompt_flow:, slack:, sms_enabled:, sms_template:, structured_output_config:, structured_output_prompt:, stt_context:, stt_model:, thinking_sound:, thinking_sound_probability:, thinking_sound_volume:, transfer_phone_number:, type:, updated_at:, voice:, voicemail_message:, voicemail_sms_prompt:, warm_transfer_summary_instructions:, webhook_url:, zoho:, created_by: nil, faq_items: nil, is_realestate_assistant: nil, pending_faq_count: nil)
369
+ # @!method initialize(id:, after_call_sms_outcomes:, after_call_sms_prompt:, background_sound:, background_sound_volume:, calendly:, call_retry_config:, cartesia_dictionary_pronunciation_id:, created_at:, custom_tools:, email_notification_address:, email_notification_outcomes:, end_of_call_sentence:, first_sentence:, first_sentence_delay_ms:, first_sentence_mode:, from_phone_number:, human_transfer_mode:, ivr_navigation_enabled:, llm_model:, logo_url:, max_call_duration_secs:, max_duration_end_message:, name:, organization_id:, position:, precall_lookup_url:, prompt:, prompt_flow:, slack:, sms_enabled:, sms_template:, structured_output_config:, structured_output_prompt:, stt_context:, stt_model:, thinking_sound:, thinking_sound_probability:, thinking_sound_volume:, transfer_destinations:, type:, updated_at:, voice:, voicemail_message:, voicemail_sms_prompt:, warm_transfer_summary_instructions:, webhook_url:, zoho:, created_by: nil, faq_items: nil, is_inbound_receptionist: nil, is_realestate_assistant: nil, pending_faq_count: nil)
362
370
  # Some parameter documentations has been truncated, see
363
371
  # {Revox::Models::AssistantUpdateResponse::Assistant} for more details.
364
372
  #
@@ -384,8 +392,6 @@ module Revox
384
392
  #
385
393
  # @param email_notification_address [String, nil] Email address(es) to receive notifications when a call ends with a matching outc
386
394
  #
387
- # @param email_notification_language [Symbol, Revox::Models::AssistantUpdateResponse::Assistant::EmailNotificationLanguage] The language used for the notification email content. One of "en" or "fr".
388
- #
389
395
  # @param email_notification_outcomes [Array<Symbol, Revox::Models::AssistantUpdateResponse::Assistant::EmailNotificationOutcome>, nil] Which call outcomes trigger an email notification. E.g. ["interested", "complete
390
396
  #
391
397
  # @param end_of_call_sentence [String, nil]
@@ -398,7 +404,7 @@ module Revox
398
404
  #
399
405
  # @param from_phone_number [String, nil] Override the default outbound phone number for calls placed with this assistant.
400
406
  #
401
- # @param human_transfer_mode [Symbol, Revox::Models::AssistantUpdateResponse::Assistant::HumanTransferMode, nil] Warm or cold transfer when transfer_phone_number is set; null when transfer is n
407
+ # @param human_transfer_mode [Symbol, Revox::Models::AssistantUpdateResponse::Assistant::HumanTransferMode, nil] Warm or cold transfer when transfer_destinations is non-empty; null when transfe
402
408
  #
403
409
  # @param ivr_navigation_enabled [Boolean] Enable IVR navigation tools. When enabled, the assistant can send DTMF tones and
404
410
  #
@@ -416,6 +422,8 @@ module Revox
416
422
  #
417
423
  # @param position [Revox::Models::AssistantUpdateResponse::Assistant::Position, nil]
418
424
  #
425
+ # @param precall_lookup_url [String, nil] URL fetched before an inbound call is answered to resolve the assistant's prompt
426
+ #
419
427
  # @param prompt [String]
420
428
  #
421
429
  # @param prompt_flow [Revox::Models::AssistantUpdateResponse::Assistant::PromptFlow, nil]
@@ -440,7 +448,7 @@ module Revox
440
448
  #
441
449
  # @param thinking_sound_volume [Float] Volume of the thinking sound (0 = silent, 1 = max).
442
450
  #
443
- # @param transfer_phone_number [String, nil] Phone number to transfer calls to when users request to speak to a human agent.
451
+ # @param transfer_destinations [Array<Revox::Models::AssistantUpdateResponse::Assistant::TransferDestination>, nil] Where calls can be transferred to when users ask to speak to a human. Null or em
444
452
  #
445
453
  # @param type [Symbol, Revox::Models::AssistantUpdateResponse::Assistant::Type]
446
454
  #
@@ -462,6 +470,8 @@ module Revox
462
470
  #
463
471
  # @param faq_items [Array<Revox::Models::AssistantUpdateResponse::Assistant::FaqItem>]
464
472
  #
473
+ # @param is_inbound_receptionist [Boolean]
474
+ #
465
475
  # @param is_realestate_assistant [Boolean]
466
476
  #
467
477
  # @param pending_faq_count [Float]
@@ -473,9 +483,6 @@ module Revox
473
483
  INTERESTED = :interested
474
484
  COMPLETED = :completed
475
485
  REQUESTED_CALLBACK_LATER = :requested_callback_later
476
- REQUESTED_CALLBACK_NEW_NUMBER = :requested_callback_new_number
477
- DO_NOT_CONTACT = :do_not_contact
478
- AI_AVERSE = :ai_averse
479
486
  NONE = :none
480
487
 
481
488
  # @!method self.values
@@ -608,7 +615,8 @@ module Revox
608
615
  required :calling_window_start_time, String
609
616
 
610
617
  # @!attribute retry_delay_seconds
611
- # Delay between retry attempts in seconds. Default: 7200 (2 hours).
618
+ # Delay between retry attempts in seconds. 0 retries as soon as the calling window
619
+ # allows. Default: 7200 (2 hours).
612
620
  #
613
621
  # @return [Integer]
614
622
  required :retry_delay_seconds, Integer
@@ -622,7 +630,7 @@ module Revox
622
630
  #
623
631
  # @param calling_window_start_time [String] Start time for the calling window in the recipient's timezone (or timezone_overr
624
632
  #
625
- # @param retry_delay_seconds [Integer] Delay between retry attempts in seconds. Default: 7200 (2 hours).
633
+ # @param retry_delay_seconds [Integer] Delay between retry attempts in seconds. 0 retries as soon as the calling window
626
634
  end
627
635
  end
628
636
 
@@ -805,19 +813,6 @@ module Revox
805
813
  end
806
814
  end
807
815
 
808
- # The language used for the notification email content. One of "en" or "fr".
809
- #
810
- # @see Revox::Models::AssistantUpdateResponse::Assistant#email_notification_language
811
- module EmailNotificationLanguage
812
- extend Revox::Internal::Type::Enum
813
-
814
- EN = :en
815
- FR = :fr
816
-
817
- # @!method self.values
818
- # @return [Array<Symbol>]
819
- end
820
-
821
816
  module EmailNotificationOutcome
822
817
  extend Revox::Internal::Type::Enum
823
818
 
@@ -825,9 +820,6 @@ module Revox
825
820
  INTERESTED = :interested
826
821
  COMPLETED = :completed
827
822
  REQUESTED_CALLBACK_LATER = :requested_callback_later
828
- REQUESTED_CALLBACK_NEW_NUMBER = :requested_callback_new_number
829
- DO_NOT_CONTACT = :do_not_contact
830
- AI_AVERSE = :ai_averse
831
823
  NONE = :none
832
824
 
833
825
  # @!method self.values
@@ -846,8 +838,8 @@ module Revox
846
838
  # @return [Array<Symbol>]
847
839
  end
848
840
 
849
- # Warm or cold transfer when transfer_phone_number is set; null when transfer is
850
- # not configured.
841
+ # Warm or cold transfer when transfer_destinations is non-empty; null when
842
+ # transfer is not configured.
851
843
  #
852
844
  # @see Revox::Models::AssistantUpdateResponse::Assistant#human_transfer_mode
853
845
  module HumanTransferMode
@@ -1137,11 +1129,14 @@ module Revox
1137
1129
 
1138
1130
  # @see Revox::Models::AssistantUpdateResponse::Assistant#slack
1139
1131
  class Slack < Revox::Internal::Type::BaseModel
1140
- # @!attribute channel_id
1141
- # The Slack channel ID where the notification will be posted.
1132
+ # @!attribute channels
1133
+ # The Slack channels eligible to receive the notification. When more than one is
1134
+ # configured, the agent prompt may define routing rules to narrow it down per
1135
+ # call; with no such rules every channel here is notified.
1142
1136
  #
1143
- # @return [String]
1144
- required :channel_id, String
1137
+ # @return [Array<Revox::Models::AssistantUpdateResponse::Assistant::Slack::Channel>]
1138
+ required :channels,
1139
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::AssistantUpdateResponse::Assistant::Slack::Channel] }
1145
1140
 
1146
1141
  # @!attribute connection_id
1147
1142
  # The Nango connection ID linking the org's Slack workspace to Revox.
@@ -1157,37 +1152,53 @@ module Revox
1157
1152
  required :outcomes,
1158
1153
  -> { Revox::Internal::Type::ArrayOf[enum: Revox::Models::AssistantUpdateResponse::Assistant::Slack::Outcome] }
1159
1154
 
1160
- # @!attribute channel_name
1161
- # Human-readable Slack channel name, cached for display in the UI.
1162
- #
1163
- # @return [String, nil]
1164
- optional :channel_name, String, nil?: true
1165
-
1166
1155
  # @!attribute template
1167
1156
  # Optional message template. Supports {{summary}}, {{outcome}}, {{phone}},
1168
1157
  # {{call_url}}, {{assistant_name}}, {{campaign_name}}, {{first_name}},
1169
- # {{last_name}}, {{email}}, {{company}}, {{contact_name}}, {{contact_line}}, plus
1170
- # prompt_variables and structured_output keys. When null/empty a default template
1171
- # is used.
1158
+ # {{last_name}}, {{email}}, {{company}}, {{job_title}}, {{contact_name}},
1159
+ # {{contact_line}}, plus prompt_variables and structured_output keys. When
1160
+ # null/empty a default template is used.
1172
1161
  #
1173
1162
  # @return [String, nil]
1174
1163
  optional :template, String, nil?: true
1175
1164
 
1176
- # @!method initialize(channel_id:, connection_id:, outcomes:, channel_name: nil, template: nil)
1165
+ # @!method initialize(channels:, connection_id:, outcomes:, template: nil)
1177
1166
  # Some parameter documentations has been truncated, see
1178
1167
  # {Revox::Models::AssistantUpdateResponse::Assistant::Slack} for more details.
1179
1168
  #
1180
- # @param channel_id [String] The Slack channel ID where the notification will be posted.
1169
+ # @param channels [Array<Revox::Models::AssistantUpdateResponse::Assistant::Slack::Channel>] The Slack channels eligible to receive the notification. When more than one is c
1181
1170
  #
1182
1171
  # @param connection_id [String] The Nango connection ID linking the org's Slack workspace to Revox.
1183
1172
  #
1184
1173
  # @param outcomes [Array<Symbol, Revox::Models::AssistantUpdateResponse::Assistant::Slack::Outcome>] Which call outcomes trigger a Slack notification (e.g. ['interested', 'none']).
1185
1174
  #
1186
- # @param channel_name [String, nil] Human-readable Slack channel name, cached for display in the UI.
1187
- #
1188
1175
  # @param template [String, nil] Optional message template. Supports {{summary}}, {{outcome}}, {{phone}},
1189
1176
  # {{call\_
1190
1177
 
1178
+ class Channel < Revox::Internal::Type::BaseModel
1179
+ # @!attribute id
1180
+ # The Slack channel ID (e.g. 'C01234567').
1181
+ #
1182
+ # @return [String]
1183
+ required :id, String
1184
+
1185
+ # @!attribute name
1186
+ # Human-readable Slack channel name, cached for display in the UI and given to the
1187
+ # LLM when the agent prompt routes by channel name.
1188
+ #
1189
+ # @return [String, nil]
1190
+ optional :name, String, nil?: true
1191
+
1192
+ # @!method initialize(id:, name: nil)
1193
+ # Some parameter documentations has been truncated, see
1194
+ # {Revox::Models::AssistantUpdateResponse::Assistant::Slack::Channel} for more
1195
+ # details.
1196
+ #
1197
+ # @param id [String] The Slack channel ID (e.g. 'C01234567').
1198
+ #
1199
+ # @param name [String, nil] Human-readable Slack channel name, cached for display in the UI and given to the
1200
+ end
1201
+
1191
1202
  module Outcome
1192
1203
  extend Revox::Internal::Type::Enum
1193
1204
 
@@ -1195,9 +1206,6 @@ module Revox
1195
1206
  INTERESTED = :interested
1196
1207
  COMPLETED = :completed
1197
1208
  REQUESTED_CALLBACK_LATER = :requested_callback_later
1198
- REQUESTED_CALLBACK_NEW_NUMBER = :requested_callback_new_number
1199
- DO_NOT_CONTACT = :do_not_contact
1200
- AI_AVERSE = :ai_averse
1201
1209
  NONE = :none
1202
1210
 
1203
1211
  # @!method self.values
@@ -1325,6 +1333,22 @@ module Revox
1325
1333
  # @return [Array<Symbol>]
1326
1334
  end
1327
1335
 
1336
+ class TransferDestination < Revox::Internal::Type::BaseModel
1337
+ # @!attribute label
1338
+ #
1339
+ # @return [String]
1340
+ required :label, String
1341
+
1342
+ # @!attribute phone_number
1343
+ #
1344
+ # @return [String]
1345
+ required :phone_number, String
1346
+
1347
+ # @!method initialize(label:, phone_number:)
1348
+ # @param label [String]
1349
+ # @param phone_number [String]
1350
+ end
1351
+
1328
1352
  # @see Revox::Models::AssistantUpdateResponse::Assistant#type
1329
1353
  module Type
1330
1354
  extend Revox::Internal::Type::Enum
@@ -1360,7 +1384,7 @@ module Revox
1360
1384
 
1361
1385
  # @!attribute speed
1362
1386
  # The speed of the voice. Range depends on provider: Cartesia 0.6–1.5, ElevenLabs
1363
- # 0.7–1.2. Default is 1.0.
1387
+ # 0.7–1.2, Gradium 0.6–1.5. Default is 1.0.
1364
1388
  #
1365
1389
  # @return [Float, nil]
1366
1390
  optional :speed, Float
@@ -1394,6 +1418,7 @@ module Revox
1394
1418
 
1395
1419
  CARTESIA = :cartesia
1396
1420
  ELEVENLABS = :elevenlabs
1421
+ GRADIUM = :gradium
1397
1422
 
1398
1423
  # @!method self.values
1399
1424
  # @return [Array<Symbol>]
@@ -1508,9 +1533,6 @@ module Revox
1508
1533
  INTERESTED = :interested
1509
1534
  COMPLETED = :completed
1510
1535
  REQUESTED_CALLBACK_LATER = :requested_callback_later
1511
- REQUESTED_CALLBACK_NEW_NUMBER = :requested_callback_new_number
1512
- DO_NOT_CONTACT = :do_not_contact
1513
- AI_AVERSE = :ai_averse
1514
1536
  NONE = :none
1515
1537
 
1516
1538
  # @!method self.values