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
@@ -48,21 +48,11 @@ module Revox
48
48
  # @return [Symbol, Revox::Models::CampaignListResponse::Campaign::Status]
49
49
  required :status, enum: -> { Revox::Models::CampaignListResponse::Campaign::Status }
50
50
 
51
- # @!attribute type
52
- #
53
- # @return [Symbol, Revox::Models::CampaignListResponse::Campaign::Type]
54
- required :type, enum: -> { Revox::Models::CampaignListResponse::Campaign::Type }
55
-
56
51
  # @!attribute updated_at
57
52
  #
58
53
  # @return [Object]
59
54
  required :updated_at, Revox::Internal::Type::Unknown
60
55
 
61
- # @!attribute active_takeover_call_id
62
- #
63
- # @return [String, nil]
64
- optional :active_takeover_call_id, String, nil?: true
65
-
66
56
  # @!attribute assistant
67
57
  #
68
58
  # @return [Revox::Models::CampaignListResponse::Campaign::Assistant, nil]
@@ -98,17 +88,10 @@ module Revox
98
88
  # @return [Float, nil]
99
89
  optional :max_concurrent_calls, Float, nil?: true
100
90
 
101
- # @!attribute paused_reason
91
+ # @!attribute metadata_keys
102
92
  #
103
- # @return [Symbol, Revox::Models::CampaignListResponse::Campaign::PausedReason, nil]
104
- optional :paused_reason,
105
- enum: -> { Revox::Models::CampaignListResponse::Campaign::PausedReason },
106
- nil?: true
107
-
108
- # @!attribute present_count
109
- #
110
- # @return [Float, nil]
111
- optional :present_count, Float
93
+ # @return [Array<String>, nil]
94
+ optional :metadata_keys, Revox::Internal::Type::ArrayOf[String]
112
95
 
113
96
  # @!attribute row_stats
114
97
  #
@@ -127,7 +110,7 @@ module Revox
127
110
  optional :structured_output_extraction,
128
111
  enum: -> { Revox::Models::CampaignListResponse::Campaign::StructuredOutputExtraction }
129
112
 
130
- # @!method initialize(id:, assistant_id:, created_at:, is_cancelled:, name:, organization_id:, status:, type:, updated_at:, active_takeover_call_id: nil, assistant: nil, call_retry_config: nil, created_by: nil, from_phone_number: nil, funnel_stats: nil, max_concurrent_calls: nil, paused_reason: nil, present_count: nil, row_stats: nil, scheduled_at: nil, structured_output_extraction: nil)
113
+ # @!method initialize(id:, assistant_id:, created_at:, is_cancelled:, name:, organization_id:, status:, updated_at:, assistant: nil, call_retry_config: nil, created_by: nil, from_phone_number: nil, funnel_stats: nil, max_concurrent_calls: nil, metadata_keys: nil, row_stats: nil, scheduled_at: nil, structured_output_extraction: nil)
131
114
  # Some parameter documentations has been truncated, see
132
115
  # {Revox::Models::CampaignListResponse::Campaign} for more details.
133
116
  #
@@ -145,12 +128,8 @@ module Revox
145
128
  #
146
129
  # @param status [Symbol, Revox::Models::CampaignListResponse::Campaign::Status]
147
130
  #
148
- # @param type [Symbol, Revox::Models::CampaignListResponse::Campaign::Type]
149
- #
150
131
  # @param updated_at [Object]
151
132
  #
152
- # @param active_takeover_call_id [String, nil]
153
- #
154
133
  # @param assistant [Revox::Models::CampaignListResponse::Campaign::Assistant]
155
134
  #
156
135
  # @param call_retry_config [Revox::Models::CampaignListResponse::Campaign::CallRetryConfig, nil] Configuration for call retry behavior including time windows, delays, and max it
@@ -163,9 +142,7 @@ module Revox
163
142
  #
164
143
  # @param max_concurrent_calls [Float, nil]
165
144
  #
166
- # @param paused_reason [Symbol, Revox::Models::CampaignListResponse::Campaign::PausedReason, nil]
167
- #
168
- # @param present_count [Float]
145
+ # @param metadata_keys [Array<String>]
169
146
  #
170
147
  # @param row_stats [Revox::Models::CampaignListResponse::Campaign::RowStats]
171
148
  #
@@ -177,7 +154,6 @@ module Revox
177
154
  module Status
178
155
  extend Revox::Internal::Type::Enum
179
156
 
180
- DRAFT = :draft
181
157
  RUNNING = :running
182
158
  PAUSED = :paused
183
159
  COMPLETED = :completed
@@ -186,17 +162,6 @@ module Revox
186
162
  # @return [Array<Symbol>]
187
163
  end
188
164
 
189
- # @see Revox::Models::CampaignListResponse::Campaign#type
190
- module Type
191
- extend Revox::Internal::Type::Enum
192
-
193
- REGULAR = :regular
194
- JUMP_IN = :jump_in
195
-
196
- # @!method self.values
197
- # @return [Array<Symbol>]
198
- end
199
-
200
165
  # @see Revox::Models::CampaignListResponse::Campaign#assistant
201
166
  class Assistant < Revox::Internal::Type::BaseModel
202
167
  # @!attribute id
@@ -274,13 +239,6 @@ module Revox
274
239
  # @return [String, nil]
275
240
  required :email_notification_address, String, nil?: true
276
241
 
277
- # @!attribute email_notification_language
278
- # The language used for the notification email content. One of "en" or "fr".
279
- #
280
- # @return [Symbol, Revox::Models::CampaignListResponse::Campaign::Assistant::EmailNotificationLanguage]
281
- required :email_notification_language,
282
- enum: -> { Revox::Models::CampaignListResponse::Campaign::Assistant::EmailNotificationLanguage }
283
-
284
242
  # @!attribute email_notification_outcomes
285
243
  # Which call outcomes trigger an email notification. E.g. ["interested",
286
244
  # "completed", "none"]. Use "none" when outcome is null.
@@ -320,8 +278,8 @@ module Revox
320
278
  required :from_phone_number, String, nil?: true
321
279
 
322
280
  # @!attribute human_transfer_mode
323
- # Warm or cold transfer when transfer_phone_number is set; null when transfer is
324
- # not configured.
281
+ # Warm or cold transfer when transfer_destinations is non-empty; null when
282
+ # transfer is not configured.
325
283
  #
326
284
  # @return [Symbol, Revox::Models::CampaignListResponse::Campaign::Assistant::HumanTransferMode, nil]
327
285
  required :human_transfer_mode,
@@ -377,6 +335,13 @@ module Revox
377
335
  # @return [Revox::Models::CampaignListResponse::Campaign::Assistant::Position, nil]
378
336
  required :position, -> { Revox::Models::CampaignListResponse::Campaign::Assistant::Position }, nil?: true
379
337
 
338
+ # @!attribute precall_lookup_url
339
+ # URL fetched before an inbound call is answered to resolve the assistant's prompt
340
+ # variables. Null when no lookup is configured.
341
+ #
342
+ # @return [String, nil]
343
+ required :precall_lookup_url, String, nil?: true
344
+
380
345
  # @!attribute prompt
381
346
  #
382
347
  # @return [String]
@@ -464,11 +429,14 @@ module Revox
464
429
  # @return [Float]
465
430
  required :thinking_sound_volume, Float
466
431
 
467
- # @!attribute transfer_phone_number
468
- # Phone number to transfer calls to when users request to speak to a human agent.
432
+ # @!attribute transfer_destinations
433
+ # Where calls can be transferred to when users ask to speak to a human. Null or
434
+ # empty when transfer is not configured.
469
435
  #
470
- # @return [String, nil]
471
- required :transfer_phone_number, String, nil?: true
436
+ # @return [Array<Revox::Models::CampaignListResponse::Campaign::Assistant::TransferDestination>, nil]
437
+ required :transfer_destinations,
438
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::CampaignListResponse::Campaign::Assistant::TransferDestination] },
439
+ nil?: true
472
440
 
473
441
  # @!attribute type
474
442
  #
@@ -531,6 +499,11 @@ module Revox
531
499
  optional :faq_items,
532
500
  -> { Revox::Internal::Type::ArrayOf[Revox::Models::CampaignListResponse::Campaign::Assistant::FaqItem] }
533
501
 
502
+ # @!attribute is_inbound_receptionist
503
+ #
504
+ # @return [Boolean, nil]
505
+ optional :is_inbound_receptionist, Revox::Internal::Type::Boolean
506
+
534
507
  # @!attribute is_realestate_assistant
535
508
  #
536
509
  # @return [Boolean, nil]
@@ -541,7 +514,7 @@ module Revox
541
514
  # @return [Float, nil]
542
515
  optional :pending_faq_count, Float
543
516
 
544
- # @!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)
517
+ # @!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)
545
518
  # Some parameter documentations has been truncated, see
546
519
  # {Revox::Models::CampaignListResponse::Campaign::Assistant} for more details.
547
520
  #
@@ -567,8 +540,6 @@ module Revox
567
540
  #
568
541
  # @param email_notification_address [String, nil] Email address(es) to receive notifications when a call ends with a matching outc
569
542
  #
570
- # @param email_notification_language [Symbol, Revox::Models::CampaignListResponse::Campaign::Assistant::EmailNotificationLanguage] The language used for the notification email content. One of "en" or "fr".
571
- #
572
543
  # @param email_notification_outcomes [Array<Symbol, Revox::Models::CampaignListResponse::Campaign::Assistant::EmailNotificationOutcome>, nil] Which call outcomes trigger an email notification. E.g. ["interested", "complete
573
544
  #
574
545
  # @param end_of_call_sentence [String, nil]
@@ -581,7 +552,7 @@ module Revox
581
552
  #
582
553
  # @param from_phone_number [String, nil] Override the default outbound phone number for calls placed with this assistant.
583
554
  #
584
- # @param human_transfer_mode [Symbol, Revox::Models::CampaignListResponse::Campaign::Assistant::HumanTransferMode, nil] Warm or cold transfer when transfer_phone_number is set; null when transfer is n
555
+ # @param human_transfer_mode [Symbol, Revox::Models::CampaignListResponse::Campaign::Assistant::HumanTransferMode, nil] Warm or cold transfer when transfer_destinations is non-empty; null when transfe
585
556
  #
586
557
  # @param ivr_navigation_enabled [Boolean] Enable IVR navigation tools. When enabled, the assistant can send DTMF tones and
587
558
  #
@@ -599,6 +570,8 @@ module Revox
599
570
  #
600
571
  # @param position [Revox::Models::CampaignListResponse::Campaign::Assistant::Position, nil]
601
572
  #
573
+ # @param precall_lookup_url [String, nil] URL fetched before an inbound call is answered to resolve the assistant's prompt
574
+ #
602
575
  # @param prompt [String]
603
576
  #
604
577
  # @param prompt_flow [Revox::Models::CampaignListResponse::Campaign::Assistant::PromptFlow, nil]
@@ -623,7 +596,7 @@ module Revox
623
596
  #
624
597
  # @param thinking_sound_volume [Float] Volume of the thinking sound (0 = silent, 1 = max).
625
598
  #
626
- # @param transfer_phone_number [String, nil] Phone number to transfer calls to when users request to speak to a human agent.
599
+ # @param transfer_destinations [Array<Revox::Models::CampaignListResponse::Campaign::Assistant::TransferDestination>, nil] Where calls can be transferred to when users ask to speak to a human. Null or em
627
600
  #
628
601
  # @param type [Symbol, Revox::Models::CampaignListResponse::Campaign::Assistant::Type]
629
602
  #
@@ -645,6 +618,8 @@ module Revox
645
618
  #
646
619
  # @param faq_items [Array<Revox::Models::CampaignListResponse::Campaign::Assistant::FaqItem>]
647
620
  #
621
+ # @param is_inbound_receptionist [Boolean]
622
+ #
648
623
  # @param is_realestate_assistant [Boolean]
649
624
  #
650
625
  # @param pending_faq_count [Float]
@@ -656,9 +631,6 @@ module Revox
656
631
  INTERESTED = :interested
657
632
  COMPLETED = :completed
658
633
  REQUESTED_CALLBACK_LATER = :requested_callback_later
659
- REQUESTED_CALLBACK_NEW_NUMBER = :requested_callback_new_number
660
- DO_NOT_CONTACT = :do_not_contact
661
- AI_AVERSE = :ai_averse
662
634
  NONE = :none
663
635
 
664
636
  # @!method self.values
@@ -792,7 +764,8 @@ module Revox
792
764
  required :calling_window_start_time, String
793
765
 
794
766
  # @!attribute retry_delay_seconds
795
- # Delay between retry attempts in seconds. Default: 7200 (2 hours).
767
+ # Delay between retry attempts in seconds. 0 retries as soon as the calling window
768
+ # allows. Default: 7200 (2 hours).
796
769
  #
797
770
  # @return [Integer]
798
771
  required :retry_delay_seconds, Integer
@@ -806,7 +779,7 @@ module Revox
806
779
  #
807
780
  # @param calling_window_start_time [String] Start time for the calling window in the recipient's timezone (or timezone_overr
808
781
  #
809
- # @param retry_delay_seconds [Integer] Delay between retry attempts in seconds. Default: 7200 (2 hours).
782
+ # @param retry_delay_seconds [Integer] Delay between retry attempts in seconds. 0 retries as soon as the calling window
810
783
  end
811
784
  end
812
785
 
@@ -989,19 +962,6 @@ module Revox
989
962
  end
990
963
  end
991
964
 
992
- # The language used for the notification email content. One of "en" or "fr".
993
- #
994
- # @see Revox::Models::CampaignListResponse::Campaign::Assistant#email_notification_language
995
- module EmailNotificationLanguage
996
- extend Revox::Internal::Type::Enum
997
-
998
- EN = :en
999
- FR = :fr
1000
-
1001
- # @!method self.values
1002
- # @return [Array<Symbol>]
1003
- end
1004
-
1005
965
  module EmailNotificationOutcome
1006
966
  extend Revox::Internal::Type::Enum
1007
967
 
@@ -1009,9 +969,6 @@ module Revox
1009
969
  INTERESTED = :interested
1010
970
  COMPLETED = :completed
1011
971
  REQUESTED_CALLBACK_LATER = :requested_callback_later
1012
- REQUESTED_CALLBACK_NEW_NUMBER = :requested_callback_new_number
1013
- DO_NOT_CONTACT = :do_not_contact
1014
- AI_AVERSE = :ai_averse
1015
972
  NONE = :none
1016
973
 
1017
974
  # @!method self.values
@@ -1030,8 +987,8 @@ module Revox
1030
987
  # @return [Array<Symbol>]
1031
988
  end
1032
989
 
1033
- # Warm or cold transfer when transfer_phone_number is set; null when transfer is
1034
- # not configured.
990
+ # Warm or cold transfer when transfer_destinations is non-empty; null when
991
+ # transfer is not configured.
1035
992
  #
1036
993
  # @see Revox::Models::CampaignListResponse::Campaign::Assistant#human_transfer_mode
1037
994
  module HumanTransferMode
@@ -1322,11 +1279,14 @@ module Revox
1322
1279
 
1323
1280
  # @see Revox::Models::CampaignListResponse::Campaign::Assistant#slack
1324
1281
  class Slack < Revox::Internal::Type::BaseModel
1325
- # @!attribute channel_id
1326
- # The Slack channel ID where the notification will be posted.
1282
+ # @!attribute channels
1283
+ # The Slack channels eligible to receive the notification. When more than one is
1284
+ # configured, the agent prompt may define routing rules to narrow it down per
1285
+ # call; with no such rules every channel here is notified.
1327
1286
  #
1328
- # @return [String]
1329
- required :channel_id, String
1287
+ # @return [Array<Revox::Models::CampaignListResponse::Campaign::Assistant::Slack::Channel>]
1288
+ required :channels,
1289
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::CampaignListResponse::Campaign::Assistant::Slack::Channel] }
1330
1290
 
1331
1291
  # @!attribute connection_id
1332
1292
  # The Nango connection ID linking the org's Slack workspace to Revox.
@@ -1342,38 +1302,54 @@ module Revox
1342
1302
  required :outcomes,
1343
1303
  -> { Revox::Internal::Type::ArrayOf[enum: Revox::Models::CampaignListResponse::Campaign::Assistant::Slack::Outcome] }
1344
1304
 
1345
- # @!attribute channel_name
1346
- # Human-readable Slack channel name, cached for display in the UI.
1347
- #
1348
- # @return [String, nil]
1349
- optional :channel_name, String, nil?: true
1350
-
1351
1305
  # @!attribute template
1352
1306
  # Optional message template. Supports {{summary}}, {{outcome}}, {{phone}},
1353
1307
  # {{call_url}}, {{assistant_name}}, {{campaign_name}}, {{first_name}},
1354
- # {{last_name}}, {{email}}, {{company}}, {{contact_name}}, {{contact_line}}, plus
1355
- # prompt_variables and structured_output keys. When null/empty a default template
1356
- # is used.
1308
+ # {{last_name}}, {{email}}, {{company}}, {{job_title}}, {{contact_name}},
1309
+ # {{contact_line}}, plus prompt_variables and structured_output keys. When
1310
+ # null/empty a default template is used.
1357
1311
  #
1358
1312
  # @return [String, nil]
1359
1313
  optional :template, String, nil?: true
1360
1314
 
1361
- # @!method initialize(channel_id:, connection_id:, outcomes:, channel_name: nil, template: nil)
1315
+ # @!method initialize(channels:, connection_id:, outcomes:, template: nil)
1362
1316
  # Some parameter documentations has been truncated, see
1363
1317
  # {Revox::Models::CampaignListResponse::Campaign::Assistant::Slack} for more
1364
1318
  # details.
1365
1319
  #
1366
- # @param channel_id [String] The Slack channel ID where the notification will be posted.
1320
+ # @param channels [Array<Revox::Models::CampaignListResponse::Campaign::Assistant::Slack::Channel>] The Slack channels eligible to receive the notification. When more than one is c
1367
1321
  #
1368
1322
  # @param connection_id [String] The Nango connection ID linking the org's Slack workspace to Revox.
1369
1323
  #
1370
1324
  # @param outcomes [Array<Symbol, Revox::Models::CampaignListResponse::Campaign::Assistant::Slack::Outcome>] Which call outcomes trigger a Slack notification (e.g. ['interested', 'none']).
1371
1325
  #
1372
- # @param channel_name [String, nil] Human-readable Slack channel name, cached for display in the UI.
1373
- #
1374
1326
  # @param template [String, nil] Optional message template. Supports {{summary}}, {{outcome}}, {{phone}},
1375
1327
  # {{call\_
1376
1328
 
1329
+ class Channel < Revox::Internal::Type::BaseModel
1330
+ # @!attribute id
1331
+ # The Slack channel ID (e.g. 'C01234567').
1332
+ #
1333
+ # @return [String]
1334
+ required :id, String
1335
+
1336
+ # @!attribute name
1337
+ # Human-readable Slack channel name, cached for display in the UI and given to the
1338
+ # LLM when the agent prompt routes by channel name.
1339
+ #
1340
+ # @return [String, nil]
1341
+ optional :name, String, nil?: true
1342
+
1343
+ # @!method initialize(id:, name: nil)
1344
+ # Some parameter documentations has been truncated, see
1345
+ # {Revox::Models::CampaignListResponse::Campaign::Assistant::Slack::Channel} for
1346
+ # more details.
1347
+ #
1348
+ # @param id [String] The Slack channel ID (e.g. 'C01234567').
1349
+ #
1350
+ # @param name [String, nil] Human-readable Slack channel name, cached for display in the UI and given to the
1351
+ end
1352
+
1377
1353
  module Outcome
1378
1354
  extend Revox::Internal::Type::Enum
1379
1355
 
@@ -1381,9 +1357,6 @@ module Revox
1381
1357
  INTERESTED = :interested
1382
1358
  COMPLETED = :completed
1383
1359
  REQUESTED_CALLBACK_LATER = :requested_callback_later
1384
- REQUESTED_CALLBACK_NEW_NUMBER = :requested_callback_new_number
1385
- DO_NOT_CONTACT = :do_not_contact
1386
- AI_AVERSE = :ai_averse
1387
1360
  NONE = :none
1388
1361
 
1389
1362
  # @!method self.values
@@ -1511,6 +1484,22 @@ module Revox
1511
1484
  # @return [Array<Symbol>]
1512
1485
  end
1513
1486
 
1487
+ class TransferDestination < Revox::Internal::Type::BaseModel
1488
+ # @!attribute label
1489
+ #
1490
+ # @return [String]
1491
+ required :label, String
1492
+
1493
+ # @!attribute phone_number
1494
+ #
1495
+ # @return [String]
1496
+ required :phone_number, String
1497
+
1498
+ # @!method initialize(label:, phone_number:)
1499
+ # @param label [String]
1500
+ # @param phone_number [String]
1501
+ end
1502
+
1514
1503
  # @see Revox::Models::CampaignListResponse::Campaign::Assistant#type
1515
1504
  module Type
1516
1505
  extend Revox::Internal::Type::Enum
@@ -1546,7 +1535,7 @@ module Revox
1546
1535
 
1547
1536
  # @!attribute speed
1548
1537
  # The speed of the voice. Range depends on provider: Cartesia 0.6–1.5, ElevenLabs
1549
- # 0.7–1.2. Default is 1.0.
1538
+ # 0.7–1.2, Gradium 0.6–1.5. Default is 1.0.
1550
1539
  #
1551
1540
  # @return [Float, nil]
1552
1541
  optional :speed, Float
@@ -1581,6 +1570,7 @@ module Revox
1581
1570
 
1582
1571
  CARTESIA = :cartesia
1583
1572
  ELEVENLABS = :elevenlabs
1573
+ GRADIUM = :gradium
1584
1574
 
1585
1575
  # @!method self.values
1586
1576
  # @return [Array<Symbol>]
@@ -1696,9 +1686,6 @@ module Revox
1696
1686
  INTERESTED = :interested
1697
1687
  COMPLETED = :completed
1698
1688
  REQUESTED_CALLBACK_LATER = :requested_callback_later
1699
- REQUESTED_CALLBACK_NEW_NUMBER = :requested_callback_new_number
1700
- DO_NOT_CONTACT = :do_not_contact
1701
- AI_AVERSE = :ai_averse
1702
1689
  NONE = :none
1703
1690
 
1704
1691
  # @!method self.values
@@ -1877,7 +1864,8 @@ module Revox
1877
1864
  required :calling_window_start_time, String
1878
1865
 
1879
1866
  # @!attribute retry_delay_seconds
1880
- # Delay between retry attempts in seconds. Default: 7200 (2 hours).
1867
+ # Delay between retry attempts in seconds. 0 retries as soon as the calling window
1868
+ # allows. Default: 7200 (2 hours).
1881
1869
  #
1882
1870
  # @return [Integer]
1883
1871
  required :retry_delay_seconds, Integer
@@ -1891,7 +1879,7 @@ module Revox
1891
1879
  #
1892
1880
  # @param calling_window_start_time [String] Start time for the calling window in the recipient's timezone (or timezone_overr
1893
1881
  #
1894
- # @param retry_delay_seconds [Integer] Delay between retry attempts in seconds. Default: 7200 (2 hours).
1882
+ # @param retry_delay_seconds [Integer] Delay between retry attempts in seconds. 0 retries as soon as the calling window
1895
1883
  end
1896
1884
  end
1897
1885
 
@@ -1953,17 +1941,6 @@ module Revox
1953
1941
  # @param total_leads [Float]
1954
1942
  end
1955
1943
 
1956
- # @see Revox::Models::CampaignListResponse::Campaign#paused_reason
1957
- module PausedReason
1958
- extend Revox::Internal::Type::Enum
1959
-
1960
- MANUAL = :manual
1961
- NO_PRESENCE = :no_presence
1962
-
1963
- # @!method self.values
1964
- # @return [Array<Symbol>]
1965
- end
1966
-
1967
1944
  # @see Revox::Models::CampaignListResponse::Campaign#row_stats
1968
1945
  class RowStats < Revox::Internal::Type::BaseModel
1969
1946
  # @!attribute calling
@@ -1981,6 +1958,11 @@ module Revox
1981
1958
  # @return [Float]
1982
1959
  required :failed, Float
1983
1960
 
1961
+ # @!attribute not_launched
1962
+ #
1963
+ # @return [Float]
1964
+ required :not_launched, Float
1965
+
1984
1966
  # @!attribute pending
1985
1967
  #
1986
1968
  # @return [Float]
@@ -1991,17 +1973,24 @@ module Revox
1991
1973
  # @return [Float]
1992
1974
  required :retry_, Float, api_name: :retry
1993
1975
 
1976
+ # @!attribute skipped
1977
+ #
1978
+ # @return [Float]
1979
+ required :skipped, Float
1980
+
1994
1981
  # @!attribute total
1995
1982
  #
1996
1983
  # @return [Float]
1997
1984
  required :total, Float
1998
1985
 
1999
- # @!method initialize(calling:, completed:, failed:, pending:, retry_:, total:)
1986
+ # @!method initialize(calling:, completed:, failed:, not_launched:, pending:, retry_:, skipped:, total:)
2000
1987
  # @param calling [Float]
2001
1988
  # @param completed [Float]
2002
1989
  # @param failed [Float]
1990
+ # @param not_launched [Float]
2003
1991
  # @param pending [Float]
2004
1992
  # @param retry_ [Float]
1993
+ # @param skipped [Float]
2005
1994
  # @param total [Float]
2006
1995
  end
2007
1996
 
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Revox
4
+ module Models
5
+ # @see Revox::Resources::Campaigns#pause
6
+ class CampaignPauseParams < Revox::Internal::Type::BaseModel
7
+ extend Revox::Internal::Type::RequestParameters::Converter
8
+ include Revox::Internal::Type::RequestParameters
9
+
10
+ # @!attribute id
11
+ #
12
+ # @return [String]
13
+ required :id, String
14
+
15
+ # @!method initialize(id:, request_options: {})
16
+ # @param id [String]
17
+ # @param request_options [Revox::RequestOptions, Hash{Symbol=>Object}]
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Revox
4
+ module Models
5
+ # @see Revox::Resources::Campaigns#pause
6
+ class CampaignPauseResponse < Revox::Internal::Type::BaseModel
7
+ # @!attribute success
8
+ #
9
+ # @return [Boolean]
10
+ required :success, Revox::Internal::Type::Boolean
11
+
12
+ # @!method initialize(success:)
13
+ # @param success [Boolean]
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Revox
4
+ module Models
5
+ # @see Revox::Resources::Campaigns#resume
6
+ class CampaignResumeParams < Revox::Internal::Type::BaseModel
7
+ extend Revox::Internal::Type::RequestParameters::Converter
8
+ include Revox::Internal::Type::RequestParameters
9
+
10
+ # @!attribute id
11
+ #
12
+ # @return [String]
13
+ required :id, String
14
+
15
+ # @!method initialize(id:, request_options: {})
16
+ # @param id [String]
17
+ # @param request_options [Revox::RequestOptions, Hash{Symbol=>Object}]
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Revox
4
+ module Models
5
+ # @see Revox::Resources::Campaigns#resume
6
+ class CampaignResumeResponse < Revox::Internal::Type::BaseModel
7
+ # @!attribute success
8
+ #
9
+ # @return [Boolean]
10
+ required :success, Revox::Internal::Type::Boolean
11
+
12
+ # @!method initialize(success:)
13
+ # @param success [Boolean]
14
+ end
15
+ end
16
+ end