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
@@ -49,21 +49,11 @@ module Revox
49
49
  # @return [Symbol, Revox::Models::CampaignRetrieveResponse::Campaign::Status]
50
50
  required :status, enum: -> { Revox::Models::CampaignRetrieveResponse::Campaign::Status }
51
51
 
52
- # @!attribute type
53
- #
54
- # @return [Symbol, Revox::Models::CampaignRetrieveResponse::Campaign::Type]
55
- required :type, enum: -> { Revox::Models::CampaignRetrieveResponse::Campaign::Type }
56
-
57
52
  # @!attribute updated_at
58
53
  #
59
54
  # @return [Object]
60
55
  required :updated_at, Revox::Internal::Type::Unknown
61
56
 
62
- # @!attribute active_takeover_call_id
63
- #
64
- # @return [String, nil]
65
- optional :active_takeover_call_id, String, nil?: true
66
-
67
57
  # @!attribute assistant
68
58
  #
69
59
  # @return [Revox::Models::CampaignRetrieveResponse::Campaign::Assistant, nil]
@@ -99,17 +89,10 @@ module Revox
99
89
  # @return [Float, nil]
100
90
  optional :max_concurrent_calls, Float, nil?: true
101
91
 
102
- # @!attribute paused_reason
92
+ # @!attribute metadata_keys
103
93
  #
104
- # @return [Symbol, Revox::Models::CampaignRetrieveResponse::Campaign::PausedReason, nil]
105
- optional :paused_reason,
106
- enum: -> { Revox::Models::CampaignRetrieveResponse::Campaign::PausedReason },
107
- nil?: true
108
-
109
- # @!attribute present_count
110
- #
111
- # @return [Float, nil]
112
- optional :present_count, Float
94
+ # @return [Array<String>, nil]
95
+ optional :metadata_keys, Revox::Internal::Type::ArrayOf[String]
113
96
 
114
97
  # @!attribute row_stats
115
98
  #
@@ -128,7 +111,7 @@ module Revox
128
111
  optional :structured_output_extraction,
129
112
  enum: -> { Revox::Models::CampaignRetrieveResponse::Campaign::StructuredOutputExtraction }
130
113
 
131
- # @!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)
114
+ # @!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)
132
115
  # Some parameter documentations has been truncated, see
133
116
  # {Revox::Models::CampaignRetrieveResponse::Campaign} for more details.
134
117
  #
@@ -146,12 +129,8 @@ module Revox
146
129
  #
147
130
  # @param status [Symbol, Revox::Models::CampaignRetrieveResponse::Campaign::Status]
148
131
  #
149
- # @param type [Symbol, Revox::Models::CampaignRetrieveResponse::Campaign::Type]
150
- #
151
132
  # @param updated_at [Object]
152
133
  #
153
- # @param active_takeover_call_id [String, nil]
154
- #
155
134
  # @param assistant [Revox::Models::CampaignRetrieveResponse::Campaign::Assistant]
156
135
  #
157
136
  # @param call_retry_config [Revox::Models::CampaignRetrieveResponse::Campaign::CallRetryConfig, nil] Configuration for call retry behavior including time windows, delays, and max it
@@ -164,9 +143,7 @@ module Revox
164
143
  #
165
144
  # @param max_concurrent_calls [Float, nil]
166
145
  #
167
- # @param paused_reason [Symbol, Revox::Models::CampaignRetrieveResponse::Campaign::PausedReason, nil]
168
- #
169
- # @param present_count [Float]
146
+ # @param metadata_keys [Array<String>]
170
147
  #
171
148
  # @param row_stats [Revox::Models::CampaignRetrieveResponse::Campaign::RowStats]
172
149
  #
@@ -178,7 +155,6 @@ module Revox
178
155
  module Status
179
156
  extend Revox::Internal::Type::Enum
180
157
 
181
- DRAFT = :draft
182
158
  RUNNING = :running
183
159
  PAUSED = :paused
184
160
  COMPLETED = :completed
@@ -187,17 +163,6 @@ module Revox
187
163
  # @return [Array<Symbol>]
188
164
  end
189
165
 
190
- # @see Revox::Models::CampaignRetrieveResponse::Campaign#type
191
- module Type
192
- extend Revox::Internal::Type::Enum
193
-
194
- REGULAR = :regular
195
- JUMP_IN = :jump_in
196
-
197
- # @!method self.values
198
- # @return [Array<Symbol>]
199
- end
200
-
201
166
  # @see Revox::Models::CampaignRetrieveResponse::Campaign#assistant
202
167
  class Assistant < Revox::Internal::Type::BaseModel
203
168
  # @!attribute id
@@ -277,13 +242,6 @@ module Revox
277
242
  # @return [String, nil]
278
243
  required :email_notification_address, String, nil?: true
279
244
 
280
- # @!attribute email_notification_language
281
- # The language used for the notification email content. One of "en" or "fr".
282
- #
283
- # @return [Symbol, Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::EmailNotificationLanguage]
284
- required :email_notification_language,
285
- enum: -> { Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::EmailNotificationLanguage }
286
-
287
245
  # @!attribute email_notification_outcomes
288
246
  # Which call outcomes trigger an email notification. E.g. ["interested",
289
247
  # "completed", "none"]. Use "none" when outcome is null.
@@ -323,8 +281,8 @@ module Revox
323
281
  required :from_phone_number, String, nil?: true
324
282
 
325
283
  # @!attribute human_transfer_mode
326
- # Warm or cold transfer when transfer_phone_number is set; null when transfer is
327
- # not configured.
284
+ # Warm or cold transfer when transfer_destinations is non-empty; null when
285
+ # transfer is not configured.
328
286
  #
329
287
  # @return [Symbol, Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::HumanTransferMode, nil]
330
288
  required :human_transfer_mode,
@@ -382,6 +340,13 @@ module Revox
382
340
  -> { Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Position },
383
341
  nil?: true
384
342
 
343
+ # @!attribute precall_lookup_url
344
+ # URL fetched before an inbound call is answered to resolve the assistant's prompt
345
+ # variables. Null when no lookup is configured.
346
+ #
347
+ # @return [String, nil]
348
+ required :precall_lookup_url, String, nil?: true
349
+
385
350
  # @!attribute prompt
386
351
  #
387
352
  # @return [String]
@@ -469,11 +434,14 @@ module Revox
469
434
  # @return [Float]
470
435
  required :thinking_sound_volume, Float
471
436
 
472
- # @!attribute transfer_phone_number
473
- # Phone number to transfer calls to when users request to speak to a human agent.
437
+ # @!attribute transfer_destinations
438
+ # Where calls can be transferred to when users ask to speak to a human. Null or
439
+ # empty when transfer is not configured.
474
440
  #
475
- # @return [String, nil]
476
- required :transfer_phone_number, String, nil?: true
441
+ # @return [Array<Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::TransferDestination>, nil]
442
+ required :transfer_destinations,
443
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::TransferDestination] },
444
+ nil?: true
477
445
 
478
446
  # @!attribute type
479
447
  #
@@ -536,6 +504,11 @@ module Revox
536
504
  optional :faq_items,
537
505
  -> { Revox::Internal::Type::ArrayOf[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::FaqItem] }
538
506
 
507
+ # @!attribute is_inbound_receptionist
508
+ #
509
+ # @return [Boolean, nil]
510
+ optional :is_inbound_receptionist, Revox::Internal::Type::Boolean
511
+
539
512
  # @!attribute is_realestate_assistant
540
513
  #
541
514
  # @return [Boolean, nil]
@@ -546,7 +519,7 @@ module Revox
546
519
  # @return [Float, nil]
547
520
  optional :pending_faq_count, Float
548
521
 
549
- # @!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)
522
+ # @!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)
550
523
  # Some parameter documentations has been truncated, see
551
524
  # {Revox::Models::CampaignRetrieveResponse::Campaign::Assistant} for more details.
552
525
  #
@@ -572,8 +545,6 @@ module Revox
572
545
  #
573
546
  # @param email_notification_address [String, nil] Email address(es) to receive notifications when a call ends with a matching outc
574
547
  #
575
- # @param email_notification_language [Symbol, Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::EmailNotificationLanguage] The language used for the notification email content. One of "en" or "fr".
576
- #
577
548
  # @param email_notification_outcomes [Array<Symbol, Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::EmailNotificationOutcome>, nil] Which call outcomes trigger an email notification. E.g. ["interested", "complete
578
549
  #
579
550
  # @param end_of_call_sentence [String, nil]
@@ -586,7 +557,7 @@ module Revox
586
557
  #
587
558
  # @param from_phone_number [String, nil] Override the default outbound phone number for calls placed with this assistant.
588
559
  #
589
- # @param human_transfer_mode [Symbol, Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::HumanTransferMode, nil] Warm or cold transfer when transfer_phone_number is set; null when transfer is n
560
+ # @param human_transfer_mode [Symbol, Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::HumanTransferMode, nil] Warm or cold transfer when transfer_destinations is non-empty; null when transfe
590
561
  #
591
562
  # @param ivr_navigation_enabled [Boolean] Enable IVR navigation tools. When enabled, the assistant can send DTMF tones and
592
563
  #
@@ -604,6 +575,8 @@ module Revox
604
575
  #
605
576
  # @param position [Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Position, nil]
606
577
  #
578
+ # @param precall_lookup_url [String, nil] URL fetched before an inbound call is answered to resolve the assistant's prompt
579
+ #
607
580
  # @param prompt [String]
608
581
  #
609
582
  # @param prompt_flow [Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::PromptFlow, nil]
@@ -628,7 +601,7 @@ module Revox
628
601
  #
629
602
  # @param thinking_sound_volume [Float] Volume of the thinking sound (0 = silent, 1 = max).
630
603
  #
631
- # @param transfer_phone_number [String, nil] Phone number to transfer calls to when users request to speak to a human agent.
604
+ # @param transfer_destinations [Array<Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::TransferDestination>, nil] Where calls can be transferred to when users ask to speak to a human. Null or em
632
605
  #
633
606
  # @param type [Symbol, Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Type]
634
607
  #
@@ -650,6 +623,8 @@ module Revox
650
623
  #
651
624
  # @param faq_items [Array<Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::FaqItem>]
652
625
  #
626
+ # @param is_inbound_receptionist [Boolean]
627
+ #
653
628
  # @param is_realestate_assistant [Boolean]
654
629
  #
655
630
  # @param pending_faq_count [Float]
@@ -661,9 +636,6 @@ module Revox
661
636
  INTERESTED = :interested
662
637
  COMPLETED = :completed
663
638
  REQUESTED_CALLBACK_LATER = :requested_callback_later
664
- REQUESTED_CALLBACK_NEW_NUMBER = :requested_callback_new_number
665
- DO_NOT_CONTACT = :do_not_contact
666
- AI_AVERSE = :ai_averse
667
639
  NONE = :none
668
640
 
669
641
  # @!method self.values
@@ -797,7 +769,8 @@ module Revox
797
769
  required :calling_window_start_time, String
798
770
 
799
771
  # @!attribute retry_delay_seconds
800
- # Delay between retry attempts in seconds. Default: 7200 (2 hours).
772
+ # Delay between retry attempts in seconds. 0 retries as soon as the calling window
773
+ # allows. Default: 7200 (2 hours).
801
774
  #
802
775
  # @return [Integer]
803
776
  required :retry_delay_seconds, Integer
@@ -811,7 +784,7 @@ module Revox
811
784
  #
812
785
  # @param calling_window_start_time [String] Start time for the calling window in the recipient's timezone (or timezone_overr
813
786
  #
814
- # @param retry_delay_seconds [Integer] Delay between retry attempts in seconds. Default: 7200 (2 hours).
787
+ # @param retry_delay_seconds [Integer] Delay between retry attempts in seconds. 0 retries as soon as the calling window
815
788
  end
816
789
  end
817
790
 
@@ -994,19 +967,6 @@ module Revox
994
967
  end
995
968
  end
996
969
 
997
- # The language used for the notification email content. One of "en" or "fr".
998
- #
999
- # @see Revox::Models::CampaignRetrieveResponse::Campaign::Assistant#email_notification_language
1000
- module EmailNotificationLanguage
1001
- extend Revox::Internal::Type::Enum
1002
-
1003
- EN = :en
1004
- FR = :fr
1005
-
1006
- # @!method self.values
1007
- # @return [Array<Symbol>]
1008
- end
1009
-
1010
970
  module EmailNotificationOutcome
1011
971
  extend Revox::Internal::Type::Enum
1012
972
 
@@ -1014,9 +974,6 @@ module Revox
1014
974
  INTERESTED = :interested
1015
975
  COMPLETED = :completed
1016
976
  REQUESTED_CALLBACK_LATER = :requested_callback_later
1017
- REQUESTED_CALLBACK_NEW_NUMBER = :requested_callback_new_number
1018
- DO_NOT_CONTACT = :do_not_contact
1019
- AI_AVERSE = :ai_averse
1020
977
  NONE = :none
1021
978
 
1022
979
  # @!method self.values
@@ -1035,8 +992,8 @@ module Revox
1035
992
  # @return [Array<Symbol>]
1036
993
  end
1037
994
 
1038
- # Warm or cold transfer when transfer_phone_number is set; null when transfer is
1039
- # not configured.
995
+ # Warm or cold transfer when transfer_destinations is non-empty; null when
996
+ # transfer is not configured.
1040
997
  #
1041
998
  # @see Revox::Models::CampaignRetrieveResponse::Campaign::Assistant#human_transfer_mode
1042
999
  module HumanTransferMode
@@ -1328,11 +1285,14 @@ module Revox
1328
1285
 
1329
1286
  # @see Revox::Models::CampaignRetrieveResponse::Campaign::Assistant#slack
1330
1287
  class Slack < Revox::Internal::Type::BaseModel
1331
- # @!attribute channel_id
1332
- # The Slack channel ID where the notification will be posted.
1288
+ # @!attribute channels
1289
+ # The Slack channels eligible to receive the notification. When more than one is
1290
+ # configured, the agent prompt may define routing rules to narrow it down per
1291
+ # call; with no such rules every channel here is notified.
1333
1292
  #
1334
- # @return [String]
1335
- required :channel_id, String
1293
+ # @return [Array<Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack::Channel>]
1294
+ required :channels,
1295
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack::Channel] }
1336
1296
 
1337
1297
  # @!attribute connection_id
1338
1298
  # The Nango connection ID linking the org's Slack workspace to Revox.
@@ -1348,38 +1308,54 @@ module Revox
1348
1308
  required :outcomes,
1349
1309
  -> { Revox::Internal::Type::ArrayOf[enum: Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack::Outcome] }
1350
1310
 
1351
- # @!attribute channel_name
1352
- # Human-readable Slack channel name, cached for display in the UI.
1353
- #
1354
- # @return [String, nil]
1355
- optional :channel_name, String, nil?: true
1356
-
1357
1311
  # @!attribute template
1358
1312
  # Optional message template. Supports {{summary}}, {{outcome}}, {{phone}},
1359
1313
  # {{call_url}}, {{assistant_name}}, {{campaign_name}}, {{first_name}},
1360
- # {{last_name}}, {{email}}, {{company}}, {{contact_name}}, {{contact_line}}, plus
1361
- # prompt_variables and structured_output keys. When null/empty a default template
1362
- # is used.
1314
+ # {{last_name}}, {{email}}, {{company}}, {{job_title}}, {{contact_name}},
1315
+ # {{contact_line}}, plus prompt_variables and structured_output keys. When
1316
+ # null/empty a default template is used.
1363
1317
  #
1364
1318
  # @return [String, nil]
1365
1319
  optional :template, String, nil?: true
1366
1320
 
1367
- # @!method initialize(channel_id:, connection_id:, outcomes:, channel_name: nil, template: nil)
1321
+ # @!method initialize(channels:, connection_id:, outcomes:, template: nil)
1368
1322
  # Some parameter documentations has been truncated, see
1369
1323
  # {Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack} for more
1370
1324
  # details.
1371
1325
  #
1372
- # @param channel_id [String] The Slack channel ID where the notification will be posted.
1326
+ # @param channels [Array<Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack::Channel>] The Slack channels eligible to receive the notification. When more than one is c
1373
1327
  #
1374
1328
  # @param connection_id [String] The Nango connection ID linking the org's Slack workspace to Revox.
1375
1329
  #
1376
1330
  # @param outcomes [Array<Symbol, Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack::Outcome>] Which call outcomes trigger a Slack notification (e.g. ['interested', 'none']).
1377
1331
  #
1378
- # @param channel_name [String, nil] Human-readable Slack channel name, cached for display in the UI.
1379
- #
1380
1332
  # @param template [String, nil] Optional message template. Supports {{summary}}, {{outcome}}, {{phone}},
1381
1333
  # {{call\_
1382
1334
 
1335
+ class Channel < Revox::Internal::Type::BaseModel
1336
+ # @!attribute id
1337
+ # The Slack channel ID (e.g. 'C01234567').
1338
+ #
1339
+ # @return [String]
1340
+ required :id, String
1341
+
1342
+ # @!attribute name
1343
+ # Human-readable Slack channel name, cached for display in the UI and given to the
1344
+ # LLM when the agent prompt routes by channel name.
1345
+ #
1346
+ # @return [String, nil]
1347
+ optional :name, String, nil?: true
1348
+
1349
+ # @!method initialize(id:, name: nil)
1350
+ # Some parameter documentations has been truncated, see
1351
+ # {Revox::Models::CampaignRetrieveResponse::Campaign::Assistant::Slack::Channel}
1352
+ # for more details.
1353
+ #
1354
+ # @param id [String] The Slack channel ID (e.g. 'C01234567').
1355
+ #
1356
+ # @param name [String, nil] Human-readable Slack channel name, cached for display in the UI and given to the
1357
+ end
1358
+
1383
1359
  module Outcome
1384
1360
  extend Revox::Internal::Type::Enum
1385
1361
 
@@ -1387,9 +1363,6 @@ module Revox
1387
1363
  INTERESTED = :interested
1388
1364
  COMPLETED = :completed
1389
1365
  REQUESTED_CALLBACK_LATER = :requested_callback_later
1390
- REQUESTED_CALLBACK_NEW_NUMBER = :requested_callback_new_number
1391
- DO_NOT_CONTACT = :do_not_contact
1392
- AI_AVERSE = :ai_averse
1393
1366
  NONE = :none
1394
1367
 
1395
1368
  # @!method self.values
@@ -1517,6 +1490,22 @@ module Revox
1517
1490
  # @return [Array<Symbol>]
1518
1491
  end
1519
1492
 
1493
+ class TransferDestination < Revox::Internal::Type::BaseModel
1494
+ # @!attribute label
1495
+ #
1496
+ # @return [String]
1497
+ required :label, String
1498
+
1499
+ # @!attribute phone_number
1500
+ #
1501
+ # @return [String]
1502
+ required :phone_number, String
1503
+
1504
+ # @!method initialize(label:, phone_number:)
1505
+ # @param label [String]
1506
+ # @param phone_number [String]
1507
+ end
1508
+
1520
1509
  # @see Revox::Models::CampaignRetrieveResponse::Campaign::Assistant#type
1521
1510
  module Type
1522
1511
  extend Revox::Internal::Type::Enum
@@ -1553,7 +1542,7 @@ module Revox
1553
1542
 
1554
1543
  # @!attribute speed
1555
1544
  # The speed of the voice. Range depends on provider: Cartesia 0.6–1.5, ElevenLabs
1556
- # 0.7–1.2. Default is 1.0.
1545
+ # 0.7–1.2, Gradium 0.6–1.5. Default is 1.0.
1557
1546
  #
1558
1547
  # @return [Float, nil]
1559
1548
  optional :speed, Float
@@ -1588,6 +1577,7 @@ module Revox
1588
1577
 
1589
1578
  CARTESIA = :cartesia
1590
1579
  ELEVENLABS = :elevenlabs
1580
+ GRADIUM = :gradium
1591
1581
 
1592
1582
  # @!method self.values
1593
1583
  # @return [Array<Symbol>]
@@ -1703,9 +1693,6 @@ module Revox
1703
1693
  INTERESTED = :interested
1704
1694
  COMPLETED = :completed
1705
1695
  REQUESTED_CALLBACK_LATER = :requested_callback_later
1706
- REQUESTED_CALLBACK_NEW_NUMBER = :requested_callback_new_number
1707
- DO_NOT_CONTACT = :do_not_contact
1708
- AI_AVERSE = :ai_averse
1709
1696
  NONE = :none
1710
1697
 
1711
1698
  # @!method self.values
@@ -1885,7 +1872,8 @@ module Revox
1885
1872
  required :calling_window_start_time, String
1886
1873
 
1887
1874
  # @!attribute retry_delay_seconds
1888
- # Delay between retry attempts in seconds. Default: 7200 (2 hours).
1875
+ # Delay between retry attempts in seconds. 0 retries as soon as the calling window
1876
+ # allows. Default: 7200 (2 hours).
1889
1877
  #
1890
1878
  # @return [Integer]
1891
1879
  required :retry_delay_seconds, Integer
@@ -1899,7 +1887,7 @@ module Revox
1899
1887
  #
1900
1888
  # @param calling_window_start_time [String] Start time for the calling window in the recipient's timezone (or timezone_overr
1901
1889
  #
1902
- # @param retry_delay_seconds [Integer] Delay between retry attempts in seconds. Default: 7200 (2 hours).
1890
+ # @param retry_delay_seconds [Integer] Delay between retry attempts in seconds. 0 retries as soon as the calling window
1903
1891
  end
1904
1892
  end
1905
1893
 
@@ -1961,17 +1949,6 @@ module Revox
1961
1949
  # @param total_leads [Float]
1962
1950
  end
1963
1951
 
1964
- # @see Revox::Models::CampaignRetrieveResponse::Campaign#paused_reason
1965
- module PausedReason
1966
- extend Revox::Internal::Type::Enum
1967
-
1968
- MANUAL = :manual
1969
- NO_PRESENCE = :no_presence
1970
-
1971
- # @!method self.values
1972
- # @return [Array<Symbol>]
1973
- end
1974
-
1975
1952
  # @see Revox::Models::CampaignRetrieveResponse::Campaign#row_stats
1976
1953
  class RowStats < Revox::Internal::Type::BaseModel
1977
1954
  # @!attribute calling
@@ -1989,6 +1966,11 @@ module Revox
1989
1966
  # @return [Float]
1990
1967
  required :failed, Float
1991
1968
 
1969
+ # @!attribute not_launched
1970
+ #
1971
+ # @return [Float]
1972
+ required :not_launched, Float
1973
+
1992
1974
  # @!attribute pending
1993
1975
  #
1994
1976
  # @return [Float]
@@ -1999,17 +1981,24 @@ module Revox
1999
1981
  # @return [Float]
2000
1982
  required :retry_, Float, api_name: :retry
2001
1983
 
1984
+ # @!attribute skipped
1985
+ #
1986
+ # @return [Float]
1987
+ required :skipped, Float
1988
+
2002
1989
  # @!attribute total
2003
1990
  #
2004
1991
  # @return [Float]
2005
1992
  required :total, Float
2006
1993
 
2007
- # @!method initialize(calling:, completed:, failed:, pending:, retry_:, total:)
1994
+ # @!method initialize(calling:, completed:, failed:, not_launched:, pending:, retry_:, skipped:, total:)
2008
1995
  # @param calling [Float]
2009
1996
  # @param completed [Float]
2010
1997
  # @param failed [Float]
1998
+ # @param not_launched [Float]
2011
1999
  # @param pending [Float]
2012
2000
  # @param retry_ [Float]
2001
+ # @param skipped [Float]
2013
2002
  # @param total [Float]
2014
2003
  end
2015
2004
 
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Revox
4
+ module Models
5
+ # @see Revox::Resources::Campaigns#statistics
6
+ class CampaignStatisticsParams < 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