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
@@ -79,8 +79,10 @@ module Revox
79
79
  status: Revox::Models::CampaignGetRowsResponse::Row::Call::status,
80
80
  to_phone_number: String,
81
81
  updated_at: top,
82
+ follow_up_emails: ::Array[String]?,
82
83
  outcome: Revox::Models::CampaignGetRowsResponse::Row::Call::outcome?,
83
- outcome_summary: String?
84
+ outcome_summary: String?,
85
+ slack_channel_ids: ::Array[String]?
84
86
  }
85
87
 
86
88
  class Call < Revox::Internal::Type::BaseModel
@@ -130,10 +132,14 @@ module Revox
130
132
 
131
133
  attr_accessor updated_at: top
132
134
 
135
+ attr_accessor follow_up_emails: ::Array[String]?
136
+
133
137
  attr_accessor outcome: Revox::Models::CampaignGetRowsResponse::Row::Call::outcome?
134
138
 
135
139
  attr_accessor outcome_summary: String?
136
140
 
141
+ attr_accessor slack_channel_ids: ::Array[String]?
142
+
137
143
  def initialize: (
138
144
  id: String,
139
145
  assignee: Revox::Models::CampaignGetRowsResponse::Row::Call::Assignee?,
@@ -158,8 +164,10 @@ module Revox
158
164
  status: Revox::Models::CampaignGetRowsResponse::Row::Call::status,
159
165
  to_phone_number: String,
160
166
  updated_at: top,
167
+ ?follow_up_emails: ::Array[String]?,
161
168
  ?outcome: Revox::Models::CampaignGetRowsResponse::Row::Call::outcome?,
162
- ?outcome_summary: String?
169
+ ?outcome_summary: String?,
170
+ ?slack_channel_ids: ::Array[String]?
163
171
  ) -> void
164
172
 
165
173
  def to_hash: -> {
@@ -186,8 +194,10 @@ module Revox
186
194
  status: Revox::Models::CampaignGetRowsResponse::Row::Call::status,
187
195
  to_phone_number: String,
188
196
  updated_at: top,
197
+ follow_up_emails: ::Array[String]?,
189
198
  outcome: Revox::Models::CampaignGetRowsResponse::Row::Call::outcome?,
190
- outcome_summary: String?
199
+ outcome_summary: String?,
200
+ slack_channel_ids: ::Array[String]?
191
201
  }
192
202
 
193
203
  type assignee =
@@ -235,7 +245,6 @@ module Revox
235
245
  created_at: top,
236
246
  custom_tools: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool]?,
237
247
  email_notification_address: String?,
238
- email_notification_language: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_language,
239
248
  email_notification_outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_outcome]?,
240
249
  end_of_call_sentence: String?,
241
250
  first_sentence: String?,
@@ -251,6 +260,7 @@ module Revox
251
260
  name: String,
252
261
  organization_id: String,
253
262
  position: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Position?,
263
+ precall_lookup_url: String?,
254
264
  prompt: String,
255
265
  prompt_flow: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow?,
256
266
  slack: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack?,
@@ -263,7 +273,7 @@ module Revox
263
273
  thinking_sound: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::thinking_sound?,
264
274
  thinking_sound_probability: Float,
265
275
  thinking_sound_volume: Float,
266
- transfer_phone_number: String?,
276
+ transfer_destinations: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::TransferDestination]?,
267
277
  type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::type_,
268
278
  updated_at: top,
269
279
  voice: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice?,
@@ -274,6 +284,7 @@ module Revox
274
284
  zoho: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho?,
275
285
  created_by: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CreatedBy?,
276
286
  faq_items: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem],
287
+ is_inbound_receptionist: bool,
277
288
  is_realestate_assistant: bool,
278
289
  pending_faq_count: Float
279
290
  }
@@ -301,8 +312,6 @@ module Revox
301
312
 
302
313
  attr_accessor email_notification_address: String?
303
314
 
304
- attr_accessor email_notification_language: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_language
305
-
306
315
  attr_accessor email_notification_outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_outcome]?
307
316
 
308
317
  attr_accessor end_of_call_sentence: String?
@@ -333,6 +342,8 @@ module Revox
333
342
 
334
343
  attr_accessor position: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Position?
335
344
 
345
+ attr_accessor precall_lookup_url: String?
346
+
336
347
  attr_accessor prompt: String
337
348
 
338
349
  attr_accessor prompt_flow: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow?
@@ -357,7 +368,7 @@ module Revox
357
368
 
358
369
  attr_accessor thinking_sound_volume: Float
359
370
 
360
- attr_accessor transfer_phone_number: String?
371
+ attr_accessor transfer_destinations: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::TransferDestination]?
361
372
 
362
373
  attr_accessor type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::type_
363
374
 
@@ -383,6 +394,10 @@ module Revox
383
394
  ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem]
384
395
  ) -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem]
385
396
 
397
+ attr_reader is_inbound_receptionist: bool?
398
+
399
+ def is_inbound_receptionist=: (bool) -> bool
400
+
386
401
  attr_reader is_realestate_assistant: bool?
387
402
 
388
403
  def is_realestate_assistant=: (bool) -> bool
@@ -403,7 +418,6 @@ module Revox
403
418
  created_at: top,
404
419
  custom_tools: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool]?,
405
420
  email_notification_address: String?,
406
- email_notification_language: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_language,
407
421
  email_notification_outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_outcome]?,
408
422
  end_of_call_sentence: String?,
409
423
  first_sentence: String?,
@@ -419,6 +433,7 @@ module Revox
419
433
  name: String,
420
434
  organization_id: String,
421
435
  position: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Position?,
436
+ precall_lookup_url: String?,
422
437
  prompt: String,
423
438
  prompt_flow: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow?,
424
439
  slack: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack?,
@@ -431,7 +446,7 @@ module Revox
431
446
  thinking_sound: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::thinking_sound?,
432
447
  thinking_sound_probability: Float,
433
448
  thinking_sound_volume: Float,
434
- transfer_phone_number: String?,
449
+ transfer_destinations: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::TransferDestination]?,
435
450
  type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::type_,
436
451
  updated_at: top,
437
452
  voice: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice?,
@@ -442,6 +457,7 @@ module Revox
442
457
  zoho: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho?,
443
458
  ?created_by: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CreatedBy?,
444
459
  ?faq_items: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem],
460
+ ?is_inbound_receptionist: bool,
445
461
  ?is_realestate_assistant: bool,
446
462
  ?pending_faq_count: Float
447
463
  ) -> void
@@ -458,7 +474,6 @@ module Revox
458
474
  created_at: top,
459
475
  custom_tools: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool]?,
460
476
  email_notification_address: String?,
461
- email_notification_language: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_language,
462
477
  email_notification_outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_outcome]?,
463
478
  end_of_call_sentence: String?,
464
479
  first_sentence: String?,
@@ -474,6 +489,7 @@ module Revox
474
489
  name: String,
475
490
  organization_id: String,
476
491
  position: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Position?,
492
+ precall_lookup_url: String?,
477
493
  prompt: String,
478
494
  prompt_flow: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow?,
479
495
  slack: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack?,
@@ -486,7 +502,7 @@ module Revox
486
502
  thinking_sound: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::thinking_sound?,
487
503
  thinking_sound_probability: Float,
488
504
  thinking_sound_volume: Float,
489
- transfer_phone_number: String?,
505
+ transfer_destinations: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::TransferDestination]?,
490
506
  type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::type_,
491
507
  updated_at: top,
492
508
  voice: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice?,
@@ -497,6 +513,7 @@ module Revox
497
513
  zoho: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho?,
498
514
  created_by: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CreatedBy?,
499
515
  faq_items: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem],
516
+ is_inbound_receptionist: bool,
500
517
  is_realestate_assistant: bool,
501
518
  pending_faq_count: Float
502
519
  }
@@ -506,9 +523,6 @@ module Revox
506
523
  | :interested
507
524
  | :completed
508
525
  | :requested_callback_later
509
- | :requested_callback_new_number
510
- | :do_not_contact
511
- | :ai_averse
512
526
  | :none
513
527
 
514
528
  module AfterCallSMSOutcome
@@ -518,9 +532,6 @@ module Revox
518
532
  INTERESTED: :interested
519
533
  COMPLETED: :completed
520
534
  REQUESTED_CALLBACK_LATER: :requested_callback_later
521
- REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
522
- DO_NOT_CONTACT: :do_not_contact
523
- AI_AVERSE: :ai_averse
524
535
  NONE: :none
525
536
 
526
537
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::after_call_sms_outcome]
@@ -785,25 +796,11 @@ module Revox
785
796
  end
786
797
  end
787
798
 
788
- type email_notification_language = :en | :fr
789
-
790
- module EmailNotificationLanguage
791
- extend Revox::Internal::Type::Enum
792
-
793
- EN: :en
794
- FR: :fr
795
-
796
- def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_language]
797
- end
798
-
799
799
  type email_notification_outcome =
800
800
  :not_interested
801
801
  | :interested
802
802
  | :completed
803
803
  | :requested_callback_later
804
- | :requested_callback_new_number
805
- | :do_not_contact
806
- | :ai_averse
807
804
  | :none
808
805
 
809
806
  module EmailNotificationOutcome
@@ -813,9 +810,6 @@ module Revox
813
810
  INTERESTED: :interested
814
811
  COMPLETED: :completed
815
812
  REQUESTED_CALLBACK_LATER: :requested_callback_later
816
- REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
817
- DO_NOT_CONTACT: :do_not_contact
818
- AI_AVERSE: :ai_averse
819
813
  NONE: :none
820
814
 
821
815
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_outcome]
@@ -1103,48 +1097,52 @@ module Revox
1103
1097
 
1104
1098
  type slack =
1105
1099
  {
1106
- channel_id: String,
1100
+ channels: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::Channel],
1107
1101
  connection_id: String,
1108
1102
  outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::outcome],
1109
- channel_name: String?,
1110
1103
  template: String?
1111
1104
  }
1112
1105
 
1113
1106
  class Slack < Revox::Internal::Type::BaseModel
1114
- attr_accessor channel_id: String
1107
+ attr_accessor channels: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::Channel]
1115
1108
 
1116
1109
  attr_accessor connection_id: String
1117
1110
 
1118
1111
  attr_accessor outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::outcome]
1119
1112
 
1120
- attr_accessor channel_name: String?
1121
-
1122
1113
  attr_accessor template: String?
1123
1114
 
1124
1115
  def initialize: (
1125
- channel_id: String,
1116
+ channels: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::Channel],
1126
1117
  connection_id: String,
1127
1118
  outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::outcome],
1128
- ?channel_name: String?,
1129
1119
  ?template: String?
1130
1120
  ) -> void
1131
1121
 
1132
1122
  def to_hash: -> {
1133
- channel_id: String,
1123
+ channels: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::Channel],
1134
1124
  connection_id: String,
1135
1125
  outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::outcome],
1136
- channel_name: String?,
1137
1126
  template: String?
1138
1127
  }
1139
1128
 
1129
+ type channel = { id: String, name: String? }
1130
+
1131
+ class Channel < Revox::Internal::Type::BaseModel
1132
+ attr_accessor id: String
1133
+
1134
+ attr_accessor name: String?
1135
+
1136
+ def initialize: (id: String, ?name: String?) -> void
1137
+
1138
+ def to_hash: -> { id: String, name: String? }
1139
+ end
1140
+
1140
1141
  type outcome =
1141
1142
  :not_interested
1142
1143
  | :interested
1143
1144
  | :completed
1144
1145
  | :requested_callback_later
1145
- | :requested_callback_new_number
1146
- | :do_not_contact
1147
- | :ai_averse
1148
1146
  | :none
1149
1147
 
1150
1148
  module Outcome
@@ -1154,9 +1152,6 @@ module Revox
1154
1152
  INTERESTED: :interested
1155
1153
  COMPLETED: :completed
1156
1154
  REQUESTED_CALLBACK_LATER: :requested_callback_later
1157
- REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
1158
- DO_NOT_CONTACT: :do_not_contact
1159
- AI_AVERSE: :ai_averse
1160
1155
  NONE: :none
1161
1156
 
1162
1157
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::outcome]
@@ -1288,6 +1283,18 @@ module Revox
1288
1283
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::thinking_sound]
1289
1284
  end
1290
1285
 
1286
+ type transfer_destination = { label: String, phone_number: String }
1287
+
1288
+ class TransferDestination < Revox::Internal::Type::BaseModel
1289
+ attr_accessor label: String
1290
+
1291
+ attr_accessor phone_number: String
1292
+
1293
+ def initialize: (label: String, phone_number: String) -> void
1294
+
1295
+ def to_hash: -> { label: String, phone_number: String }
1296
+ end
1297
+
1291
1298
  type type_ = :standalone | :"multi-step" | :"sub-assistant"
1292
1299
 
1293
1300
  module Type
@@ -1344,13 +1351,14 @@ module Revox
1344
1351
  volume: Float
1345
1352
  }
1346
1353
 
1347
- type provider = :cartesia | :elevenlabs
1354
+ type provider = :cartesia | :elevenlabs | :gradium
1348
1355
 
1349
1356
  module Provider
1350
1357
  extend Revox::Internal::Type::Enum
1351
1358
 
1352
1359
  CARTESIA: :cartesia
1353
1360
  ELEVENLABS: :elevenlabs
1361
+ GRADIUM: :gradium
1354
1362
 
1355
1363
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::provider]
1356
1364
  end
@@ -1425,9 +1433,6 @@ module Revox
1425
1433
  | :interested
1426
1434
  | :completed
1427
1435
  | :requested_callback_later
1428
- | :requested_callback_new_number
1429
- | :do_not_contact
1430
- | :ai_averse
1431
1436
  | :none
1432
1437
 
1433
1438
  module Outcome
@@ -1437,9 +1442,6 @@ module Revox
1437
1442
  INTERESTED: :interested
1438
1443
  COMPLETED: :completed
1439
1444
  REQUESTED_CALLBACK_LATER: :requested_callback_later
1440
- REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
1441
- DO_NOT_CONTACT: :do_not_contact
1442
- AI_AVERSE: :ai_averse
1443
1445
  NONE: :none
1444
1446
 
1445
1447
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho::outcome]
@@ -1541,16 +1543,21 @@ module Revox
1541
1543
  answered_at: top,
1542
1544
  dial_error: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::dial_error?,
1543
1545
  ended_at: top,
1546
+ handled_by_ai: bool,
1547
+ handled_by_human: bool,
1548
+ handled_by_user: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::HandledByUser?,
1544
1549
  phone_number: String,
1545
1550
  recording_url: String?,
1546
1551
  result: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::result?,
1547
1552
  started_at: top,
1548
1553
  status: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::status,
1549
1554
  assistants_used: ::Array[String]?,
1555
+ email_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::EmailLog]?,
1550
1556
  end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::end_reason?,
1551
1557
  ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::ended_by?,
1552
1558
  post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript]?,
1553
1559
  sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog]?,
1560
+ speech_events: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SpeechEvent]?,
1554
1561
  structured_output: ::Hash[Symbol, top]?,
1555
1562
  transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript]?
1556
1563
  }
@@ -1564,6 +1571,12 @@ module Revox
1564
1571
 
1565
1572
  attr_accessor ended_at: top
1566
1573
 
1574
+ attr_accessor handled_by_ai: bool
1575
+
1576
+ attr_accessor handled_by_human: bool
1577
+
1578
+ attr_accessor handled_by_user: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::HandledByUser?
1579
+
1567
1580
  attr_accessor phone_number: String
1568
1581
 
1569
1582
  attr_accessor recording_url: String?
@@ -1576,6 +1589,8 @@ module Revox
1576
1589
 
1577
1590
  attr_accessor assistants_used: ::Array[String]?
1578
1591
 
1592
+ attr_accessor email_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::EmailLog]?
1593
+
1579
1594
  attr_accessor end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::end_reason?
1580
1595
 
1581
1596
  attr_accessor ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::ended_by?
@@ -1584,6 +1599,8 @@ module Revox
1584
1599
 
1585
1600
  attr_accessor sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog]?
1586
1601
 
1602
+ attr_accessor speech_events: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SpeechEvent]?
1603
+
1587
1604
  attr_accessor structured_output: ::Hash[Symbol, top]?
1588
1605
 
1589
1606
  attr_accessor transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript]?
@@ -1593,16 +1610,21 @@ module Revox
1593
1610
  answered_at: top,
1594
1611
  dial_error: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::dial_error?,
1595
1612
  ended_at: top,
1613
+ handled_by_ai: bool,
1614
+ handled_by_human: bool,
1615
+ handled_by_user: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::HandledByUser?,
1596
1616
  phone_number: String,
1597
1617
  recording_url: String?,
1598
1618
  result: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::result?,
1599
1619
  started_at: top,
1600
1620
  status: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::status,
1601
1621
  ?assistants_used: ::Array[String]?,
1622
+ ?email_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::EmailLog]?,
1602
1623
  ?end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::end_reason?,
1603
1624
  ?ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::ended_by?,
1604
1625
  ?post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript]?,
1605
1626
  ?sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog]?,
1627
+ ?speech_events: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SpeechEvent]?,
1606
1628
  ?structured_output: ::Hash[Symbol, top]?,
1607
1629
  ?transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript]?
1608
1630
  ) -> void
@@ -1612,16 +1634,21 @@ module Revox
1612
1634
  answered_at: top,
1613
1635
  dial_error: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::dial_error?,
1614
1636
  ended_at: top,
1637
+ handled_by_ai: bool,
1638
+ handled_by_human: bool,
1639
+ handled_by_user: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::HandledByUser?,
1615
1640
  phone_number: String,
1616
1641
  recording_url: String?,
1617
1642
  result: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::result?,
1618
1643
  started_at: top,
1619
1644
  status: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::status,
1620
1645
  assistants_used: ::Array[String]?,
1646
+ email_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::EmailLog]?,
1621
1647
  end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::end_reason?,
1622
1648
  ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::ended_by?,
1623
1649
  post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript]?,
1624
1650
  sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog]?,
1651
+ speech_events: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SpeechEvent]?,
1625
1652
  structured_output: ::Hash[Symbol, top]?,
1626
1653
  transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript]?
1627
1654
  }
@@ -1651,6 +1678,38 @@ module Revox
1651
1678
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::dial_error]
1652
1679
  end
1653
1680
 
1681
+ type handled_by_user =
1682
+ {
1683
+ id: String,
1684
+ email: String,
1685
+ first_name: String?,
1686
+ last_name: String?
1687
+ }
1688
+
1689
+ class HandledByUser < Revox::Internal::Type::BaseModel
1690
+ attr_accessor id: String
1691
+
1692
+ attr_accessor email: String
1693
+
1694
+ attr_accessor first_name: String?
1695
+
1696
+ attr_accessor last_name: String?
1697
+
1698
+ def initialize: (
1699
+ id: String,
1700
+ email: String,
1701
+ first_name: String?,
1702
+ last_name: String?
1703
+ ) -> void
1704
+
1705
+ def to_hash: -> {
1706
+ id: String,
1707
+ email: String,
1708
+ first_name: String?,
1709
+ last_name: String?
1710
+ }
1711
+ end
1712
+
1654
1713
  type result =
1655
1714
  :IVR | :voicemail | :human | :unknown | :"ios-screening-filter"
1656
1715
 
@@ -1680,6 +1739,48 @@ module Revox
1680
1739
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::status]
1681
1740
  end
1682
1741
 
1742
+ type email_log =
1743
+ {
1744
+ id: String,
1745
+ created_at: top,
1746
+ from_address: String,
1747
+ resend_message_id: String?,
1748
+ subject: String,
1749
+ to_emails: ::Array[String]
1750
+ }
1751
+
1752
+ class EmailLog < Revox::Internal::Type::BaseModel
1753
+ attr_accessor id: String
1754
+
1755
+ attr_accessor created_at: top
1756
+
1757
+ attr_accessor from_address: String
1758
+
1759
+ attr_accessor resend_message_id: String?
1760
+
1761
+ attr_accessor subject: String
1762
+
1763
+ attr_accessor to_emails: ::Array[String]
1764
+
1765
+ def initialize: (
1766
+ id: String,
1767
+ created_at: top,
1768
+ from_address: String,
1769
+ resend_message_id: String?,
1770
+ subject: String,
1771
+ to_emails: ::Array[String]
1772
+ ) -> void
1773
+
1774
+ def to_hash: -> {
1775
+ id: String,
1776
+ created_at: top,
1777
+ from_address: String,
1778
+ resend_message_id: String?,
1779
+ subject: String,
1780
+ to_emails: ::Array[String]
1781
+ }
1782
+ end
1783
+
1683
1784
  type end_reason =
1684
1785
  :client_initiated
1685
1786
  | :connection_timeout
@@ -1813,8 +1914,9 @@ module Revox
1813
1914
  id: String,
1814
1915
  created_at: top,
1815
1916
  message_body: String,
1917
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::provider,
1918
+ provider_message_id: String?,
1816
1919
  to_phone_number: String,
1817
- twilio_message_sid: String?,
1818
1920
  type: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::type_
1819
1921
  }
1820
1922
 
@@ -1825,9 +1927,11 @@ module Revox
1825
1927
 
1826
1928
  attr_accessor message_body: String
1827
1929
 
1828
- attr_accessor to_phone_number: String
1930
+ attr_accessor provider: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::provider
1931
+
1932
+ attr_accessor provider_message_id: String?
1829
1933
 
1830
- attr_accessor twilio_message_sid: String?
1934
+ attr_accessor to_phone_number: String
1831
1935
 
1832
1936
  attr_accessor type: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::type_
1833
1937
 
@@ -1835,8 +1939,9 @@ module Revox
1835
1939
  id: String,
1836
1940
  created_at: top,
1837
1941
  message_body: String,
1942
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::provider,
1943
+ provider_message_id: String?,
1838
1944
  to_phone_number: String,
1839
- twilio_message_sid: String?,
1840
1945
  type: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::type_
1841
1946
  ) -> void
1842
1947
 
@@ -1844,11 +1949,23 @@ module Revox
1844
1949
  id: String,
1845
1950
  created_at: top,
1846
1951
  message_body: String,
1952
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::provider,
1953
+ provider_message_id: String?,
1847
1954
  to_phone_number: String,
1848
- twilio_message_sid: String?,
1849
1955
  type: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::type_
1850
1956
  }
1851
1957
 
1958
+ type provider = :twilio | :vonage
1959
+
1960
+ module Provider
1961
+ extend Revox::Internal::Type::Enum
1962
+
1963
+ TWILIO: :twilio
1964
+ VONAGE: :vonage
1965
+
1966
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::provider]
1967
+ end
1968
+
1852
1969
  type type_ = :in_call | :voicemail | :after_call
1853
1970
 
1854
1971
  module Type
@@ -1862,6 +1979,89 @@ module Revox
1862
1979
  end
1863
1980
  end
1864
1981
 
1982
+ type speech_event =
1983
+ {
1984
+ id: String,
1985
+ is_real_turn: bool,
1986
+ llm_system_prompt: String?,
1987
+ llm_ttft_ms: Float?,
1988
+ llm_winner_model: String?,
1989
+ speaker: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SpeechEvent::speaker,
1990
+ started_speaking_at_ms: Float,
1991
+ stopped_speaking_at_ms: Float?,
1992
+ stt_transcription_delay_ms: Float?,
1993
+ transcript: String?,
1994
+ tts_ttfb_ms: Float?,
1995
+ was_cut: bool?
1996
+ }
1997
+
1998
+ class SpeechEvent < Revox::Internal::Type::BaseModel
1999
+ attr_accessor id: String
2000
+
2001
+ attr_accessor is_real_turn: bool
2002
+
2003
+ attr_accessor llm_system_prompt: String?
2004
+
2005
+ attr_accessor llm_ttft_ms: Float?
2006
+
2007
+ attr_accessor llm_winner_model: String?
2008
+
2009
+ attr_accessor speaker: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SpeechEvent::speaker
2010
+
2011
+ attr_accessor started_speaking_at_ms: Float
2012
+
2013
+ attr_accessor stopped_speaking_at_ms: Float?
2014
+
2015
+ attr_accessor stt_transcription_delay_ms: Float?
2016
+
2017
+ attr_accessor transcript: String?
2018
+
2019
+ attr_accessor tts_ttfb_ms: Float?
2020
+
2021
+ attr_accessor was_cut: bool?
2022
+
2023
+ def initialize: (
2024
+ id: String,
2025
+ is_real_turn: bool,
2026
+ llm_system_prompt: String?,
2027
+ llm_ttft_ms: Float?,
2028
+ llm_winner_model: String?,
2029
+ speaker: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SpeechEvent::speaker,
2030
+ started_speaking_at_ms: Float,
2031
+ stopped_speaking_at_ms: Float?,
2032
+ stt_transcription_delay_ms: Float?,
2033
+ transcript: String?,
2034
+ tts_ttfb_ms: Float?,
2035
+ was_cut: bool?
2036
+ ) -> void
2037
+
2038
+ def to_hash: -> {
2039
+ id: String,
2040
+ is_real_turn: bool,
2041
+ llm_system_prompt: String?,
2042
+ llm_ttft_ms: Float?,
2043
+ llm_winner_model: String?,
2044
+ speaker: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SpeechEvent::speaker,
2045
+ started_speaking_at_ms: Float,
2046
+ stopped_speaking_at_ms: Float?,
2047
+ stt_transcription_delay_ms: Float?,
2048
+ transcript: String?,
2049
+ tts_ttfb_ms: Float?,
2050
+ was_cut: bool?
2051
+ }
2052
+
2053
+ type speaker = :user | :agent
2054
+
2055
+ module Speaker
2056
+ extend Revox::Internal::Type::Enum
2057
+
2058
+ USER: :user
2059
+ AGENT: :agent
2060
+
2061
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SpeechEvent::speaker]
2062
+ end
2063
+ end
2064
+
1865
2065
  type transcript =
1866
2066
  {
1867
2067
  content: String,
@@ -2042,6 +2242,7 @@ module Revox
2042
2242
  company: String?,
2043
2243
  email: String?,
2044
2244
  first_name: String?,
2245
+ job_title: String?,
2045
2246
  last_name: String?
2046
2247
  }
2047
2248
 
@@ -2052,12 +2253,15 @@ module Revox
2052
2253
 
2053
2254
  attr_accessor first_name: String?
2054
2255
 
2256
+ attr_accessor job_title: String?
2257
+
2055
2258
  attr_accessor last_name: String?
2056
2259
 
2057
2260
  def initialize: (
2058
2261
  company: String?,
2059
2262
  email: String?,
2060
2263
  first_name: String?,
2264
+ job_title: String?,
2061
2265
  last_name: String?
2062
2266
  ) -> void
2063
2267
 
@@ -2065,6 +2269,7 @@ module Revox
2065
2269
  company: String?,
2066
2270
  email: String?,
2067
2271
  first_name: String?,
2272
+ job_title: String?,
2068
2273
  last_name: String?
2069
2274
  }
2070
2275
  end
@@ -2086,16 +2291,21 @@ module Revox
2086
2291
  answered_at: top,
2087
2292
  dial_error: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::dial_error?,
2088
2293
  ended_at: top,
2294
+ handled_by_ai: bool,
2295
+ handled_by_human: bool,
2296
+ handled_by_user: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::HandledByUser?,
2089
2297
  phone_number: String,
2090
2298
  recording_url: String?,
2091
2299
  result: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::result?,
2092
2300
  started_at: top,
2093
2301
  status: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::status,
2094
2302
  assistants_used: ::Array[String]?,
2303
+ email_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::EmailLog]?,
2095
2304
  end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::end_reason?,
2096
2305
  ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::ended_by?,
2097
2306
  post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript]?,
2098
2307
  sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog]?,
2308
+ speech_events: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SpeechEvent]?,
2099
2309
  structured_output: ::Hash[Symbol, top]?,
2100
2310
  transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript]?
2101
2311
  }
@@ -2109,6 +2319,12 @@ module Revox
2109
2319
 
2110
2320
  attr_accessor ended_at: top
2111
2321
 
2322
+ attr_accessor handled_by_ai: bool
2323
+
2324
+ attr_accessor handled_by_human: bool
2325
+
2326
+ attr_accessor handled_by_user: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::HandledByUser?
2327
+
2112
2328
  attr_accessor phone_number: String
2113
2329
 
2114
2330
  attr_accessor recording_url: String?
@@ -2121,6 +2337,8 @@ module Revox
2121
2337
 
2122
2338
  attr_accessor assistants_used: ::Array[String]?
2123
2339
 
2340
+ attr_accessor email_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::EmailLog]?
2341
+
2124
2342
  attr_accessor end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::end_reason?
2125
2343
 
2126
2344
  attr_accessor ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::ended_by?
@@ -2129,6 +2347,8 @@ module Revox
2129
2347
 
2130
2348
  attr_accessor sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog]?
2131
2349
 
2350
+ attr_accessor speech_events: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SpeechEvent]?
2351
+
2132
2352
  attr_accessor structured_output: ::Hash[Symbol, top]?
2133
2353
 
2134
2354
  attr_accessor transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript]?
@@ -2138,16 +2358,21 @@ module Revox
2138
2358
  answered_at: top,
2139
2359
  dial_error: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::dial_error?,
2140
2360
  ended_at: top,
2361
+ handled_by_ai: bool,
2362
+ handled_by_human: bool,
2363
+ handled_by_user: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::HandledByUser?,
2141
2364
  phone_number: String,
2142
2365
  recording_url: String?,
2143
2366
  result: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::result?,
2144
2367
  started_at: top,
2145
2368
  status: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::status,
2146
2369
  ?assistants_used: ::Array[String]?,
2370
+ ?email_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::EmailLog]?,
2147
2371
  ?end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::end_reason?,
2148
2372
  ?ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::ended_by?,
2149
2373
  ?post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript]?,
2150
2374
  ?sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog]?,
2375
+ ?speech_events: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SpeechEvent]?,
2151
2376
  ?structured_output: ::Hash[Symbol, top]?,
2152
2377
  ?transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript]?
2153
2378
  ) -> void
@@ -2157,16 +2382,21 @@ module Revox
2157
2382
  answered_at: top,
2158
2383
  dial_error: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::dial_error?,
2159
2384
  ended_at: top,
2385
+ handled_by_ai: bool,
2386
+ handled_by_human: bool,
2387
+ handled_by_user: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::HandledByUser?,
2160
2388
  phone_number: String,
2161
2389
  recording_url: String?,
2162
2390
  result: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::result?,
2163
2391
  started_at: top,
2164
2392
  status: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::status,
2165
2393
  assistants_used: ::Array[String]?,
2394
+ email_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::EmailLog]?,
2166
2395
  end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::end_reason?,
2167
2396
  ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::ended_by?,
2168
2397
  post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript]?,
2169
2398
  sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog]?,
2399
+ speech_events: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SpeechEvent]?,
2170
2400
  structured_output: ::Hash[Symbol, top]?,
2171
2401
  transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript]?
2172
2402
  }
@@ -2196,6 +2426,38 @@ module Revox
2196
2426
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::dial_error]
2197
2427
  end
2198
2428
 
2429
+ type handled_by_user =
2430
+ {
2431
+ id: String,
2432
+ email: String,
2433
+ first_name: String?,
2434
+ last_name: String?
2435
+ }
2436
+
2437
+ class HandledByUser < Revox::Internal::Type::BaseModel
2438
+ attr_accessor id: String
2439
+
2440
+ attr_accessor email: String
2441
+
2442
+ attr_accessor first_name: String?
2443
+
2444
+ attr_accessor last_name: String?
2445
+
2446
+ def initialize: (
2447
+ id: String,
2448
+ email: String,
2449
+ first_name: String?,
2450
+ last_name: String?
2451
+ ) -> void
2452
+
2453
+ def to_hash: -> {
2454
+ id: String,
2455
+ email: String,
2456
+ first_name: String?,
2457
+ last_name: String?
2458
+ }
2459
+ end
2460
+
2199
2461
  type result =
2200
2462
  :IVR | :voicemail | :human | :unknown | :"ios-screening-filter"
2201
2463
 
@@ -2225,6 +2487,48 @@ module Revox
2225
2487
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::status]
2226
2488
  end
2227
2489
 
2490
+ type email_log =
2491
+ {
2492
+ id: String,
2493
+ created_at: top,
2494
+ from_address: String,
2495
+ resend_message_id: String?,
2496
+ subject: String,
2497
+ to_emails: ::Array[String]
2498
+ }
2499
+
2500
+ class EmailLog < Revox::Internal::Type::BaseModel
2501
+ attr_accessor id: String
2502
+
2503
+ attr_accessor created_at: top
2504
+
2505
+ attr_accessor from_address: String
2506
+
2507
+ attr_accessor resend_message_id: String?
2508
+
2509
+ attr_accessor subject: String
2510
+
2511
+ attr_accessor to_emails: ::Array[String]
2512
+
2513
+ def initialize: (
2514
+ id: String,
2515
+ created_at: top,
2516
+ from_address: String,
2517
+ resend_message_id: String?,
2518
+ subject: String,
2519
+ to_emails: ::Array[String]
2520
+ ) -> void
2521
+
2522
+ def to_hash: -> {
2523
+ id: String,
2524
+ created_at: top,
2525
+ from_address: String,
2526
+ resend_message_id: String?,
2527
+ subject: String,
2528
+ to_emails: ::Array[String]
2529
+ }
2530
+ end
2531
+
2228
2532
  type end_reason =
2229
2533
  :client_initiated
2230
2534
  | :connection_timeout
@@ -2358,8 +2662,9 @@ module Revox
2358
2662
  id: String,
2359
2663
  created_at: top,
2360
2664
  message_body: String,
2665
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::provider,
2666
+ provider_message_id: String?,
2361
2667
  to_phone_number: String,
2362
- twilio_message_sid: String?,
2363
2668
  type: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::type_
2364
2669
  }
2365
2670
 
@@ -2370,9 +2675,11 @@ module Revox
2370
2675
 
2371
2676
  attr_accessor message_body: String
2372
2677
 
2373
- attr_accessor to_phone_number: String
2678
+ attr_accessor provider: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::provider
2374
2679
 
2375
- attr_accessor twilio_message_sid: String?
2680
+ attr_accessor provider_message_id: String?
2681
+
2682
+ attr_accessor to_phone_number: String
2376
2683
 
2377
2684
  attr_accessor type: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::type_
2378
2685
 
@@ -2380,8 +2687,9 @@ module Revox
2380
2687
  id: String,
2381
2688
  created_at: top,
2382
2689
  message_body: String,
2690
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::provider,
2691
+ provider_message_id: String?,
2383
2692
  to_phone_number: String,
2384
- twilio_message_sid: String?,
2385
2693
  type: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::type_
2386
2694
  ) -> void
2387
2695
 
@@ -2389,11 +2697,23 @@ module Revox
2389
2697
  id: String,
2390
2698
  created_at: top,
2391
2699
  message_body: String,
2700
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::provider,
2701
+ provider_message_id: String?,
2392
2702
  to_phone_number: String,
2393
- twilio_message_sid: String?,
2394
2703
  type: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::type_
2395
2704
  }
2396
2705
 
2706
+ type provider = :twilio | :vonage
2707
+
2708
+ module Provider
2709
+ extend Revox::Internal::Type::Enum
2710
+
2711
+ TWILIO: :twilio
2712
+ VONAGE: :vonage
2713
+
2714
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::provider]
2715
+ end
2716
+
2397
2717
  type type_ = :in_call | :voicemail | :after_call
2398
2718
 
2399
2719
  module Type
@@ -2407,6 +2727,89 @@ module Revox
2407
2727
  end
2408
2728
  end
2409
2729
 
2730
+ type speech_event =
2731
+ {
2732
+ id: String,
2733
+ is_real_turn: bool,
2734
+ llm_system_prompt: String?,
2735
+ llm_ttft_ms: Float?,
2736
+ llm_winner_model: String?,
2737
+ speaker: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SpeechEvent::speaker,
2738
+ started_speaking_at_ms: Float,
2739
+ stopped_speaking_at_ms: Float?,
2740
+ stt_transcription_delay_ms: Float?,
2741
+ transcript: String?,
2742
+ tts_ttfb_ms: Float?,
2743
+ was_cut: bool?
2744
+ }
2745
+
2746
+ class SpeechEvent < Revox::Internal::Type::BaseModel
2747
+ attr_accessor id: String
2748
+
2749
+ attr_accessor is_real_turn: bool
2750
+
2751
+ attr_accessor llm_system_prompt: String?
2752
+
2753
+ attr_accessor llm_ttft_ms: Float?
2754
+
2755
+ attr_accessor llm_winner_model: String?
2756
+
2757
+ attr_accessor speaker: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SpeechEvent::speaker
2758
+
2759
+ attr_accessor started_speaking_at_ms: Float
2760
+
2761
+ attr_accessor stopped_speaking_at_ms: Float?
2762
+
2763
+ attr_accessor stt_transcription_delay_ms: Float?
2764
+
2765
+ attr_accessor transcript: String?
2766
+
2767
+ attr_accessor tts_ttfb_ms: Float?
2768
+
2769
+ attr_accessor was_cut: bool?
2770
+
2771
+ def initialize: (
2772
+ id: String,
2773
+ is_real_turn: bool,
2774
+ llm_system_prompt: String?,
2775
+ llm_ttft_ms: Float?,
2776
+ llm_winner_model: String?,
2777
+ speaker: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SpeechEvent::speaker,
2778
+ started_speaking_at_ms: Float,
2779
+ stopped_speaking_at_ms: Float?,
2780
+ stt_transcription_delay_ms: Float?,
2781
+ transcript: String?,
2782
+ tts_ttfb_ms: Float?,
2783
+ was_cut: bool?
2784
+ ) -> void
2785
+
2786
+ def to_hash: -> {
2787
+ id: String,
2788
+ is_real_turn: bool,
2789
+ llm_system_prompt: String?,
2790
+ llm_ttft_ms: Float?,
2791
+ llm_winner_model: String?,
2792
+ speaker: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SpeechEvent::speaker,
2793
+ started_speaking_at_ms: Float,
2794
+ stopped_speaking_at_ms: Float?,
2795
+ stt_transcription_delay_ms: Float?,
2796
+ transcript: String?,
2797
+ tts_ttfb_ms: Float?,
2798
+ was_cut: bool?
2799
+ }
2800
+
2801
+ type speaker = :user | :agent
2802
+
2803
+ module Speaker
2804
+ extend Revox::Internal::Type::Enum
2805
+
2806
+ USER: :user
2807
+ AGENT: :agent
2808
+
2809
+ def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SpeechEvent::speaker]
2810
+ end
2811
+ end
2812
+
2410
2813
  type transcript =
2411
2814
  {
2412
2815
  content: String,
@@ -2637,6 +3040,7 @@ module Revox
2637
3040
  | :queued_for_calling
2638
3041
  | :calling
2639
3042
  | :post_processing
3043
+ | :not_launched
2640
3044
  | :scheduled
2641
3045
  | :paused
2642
3046
  | :completed
@@ -2650,6 +3054,7 @@ module Revox
2650
3054
  QUEUED_FOR_CALLING: :queued_for_calling
2651
3055
  CALLING: :calling
2652
3056
  POST_PROCESSING: :post_processing
3057
+ NOT_LAUNCHED: :not_launched
2653
3058
  SCHEDULED: :scheduled
2654
3059
  PAUSED: :paused
2655
3060
  COMPLETED: :completed
@@ -2664,9 +3069,6 @@ module Revox
2664
3069
  | :interested
2665
3070
  | :completed
2666
3071
  | :requested_callback_later
2667
- | :requested_callback_new_number
2668
- | :do_not_contact
2669
- | :ai_averse
2670
3072
 
2671
3073
  module Outcome
2672
3074
  extend Revox::Internal::Type::Enum
@@ -2675,9 +3077,6 @@ module Revox
2675
3077
  INTERESTED: :interested
2676
3078
  COMPLETED: :completed
2677
3079
  REQUESTED_CALLBACK_LATER: :requested_callback_later
2678
- REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
2679
- DO_NOT_CONTACT: :do_not_contact
2680
- AI_AVERSE: :ai_averse
2681
3080
 
2682
3081
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::outcome]
2683
3082
  end