revox 0.3.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 (105) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +26 -0
  3. data/README.md +38 -38
  4. data/lib/revox/models/assistant_clone_response.rb +87 -65
  5. data/lib/revox/models/assistant_create_params.rb +90 -66
  6. data/lib/revox/models/assistant_create_response.rb +87 -65
  7. data/lib/revox/models/assistant_list_response.rb +87 -65
  8. data/lib/revox/models/assistant_retrieve_response.rb +86 -65
  9. data/lib/revox/models/assistant_update_params.rb +90 -66
  10. data/lib/revox/models/assistant_update_response.rb +87 -65
  11. data/lib/revox/models/call_create_params.rb +117 -90
  12. data/lib/revox/models/call_create_response.rb +670 -90
  13. data/lib/revox/models/call_export_params.rb +1 -3
  14. data/lib/revox/models/call_phone_history_response.rb +0 -3
  15. data/lib/revox/models/call_retrieve_response.rb +671 -90
  16. data/lib/revox/models/call_search_params.rb +1 -3
  17. data/lib/revox/models/call_search_response.rb +670 -90
  18. data/lib/revox/models/campaign_create_params.rb +7 -57
  19. data/lib/revox/models/campaign_create_response.rb +108 -119
  20. data/lib/revox/models/campaign_get_rows_response.rb +672 -90
  21. data/lib/revox/models/campaign_list_response.rb +108 -119
  22. data/lib/revox/models/campaign_retrieve_response.rb +108 -119
  23. data/lib/revox/models/campaign_statistics_response.rb +51 -23
  24. data/lib/revox/models/campaign_update_params.rb +9 -78
  25. data/lib/revox/models/campaign_update_response.rb +108 -119
  26. data/lib/revox/models/phone_number_list_response.rb +87 -65
  27. data/lib/revox/models/phone_number_update_response.rb +87 -65
  28. data/lib/revox/models/voice_list_response.rb +1 -0
  29. data/lib/revox/models/voice_preview_params.rb +1 -0
  30. data/lib/revox/models/voice_retrieve_params.rb +1 -0
  31. data/lib/revox/models.rb +0 -2
  32. data/lib/revox/resources/assistants.rb +10 -10
  33. data/lib/revox/resources/call.rb +4 -4
  34. data/lib/revox/resources/campaigns.rb +13 -45
  35. data/lib/revox/version.rb +1 -1
  36. data/lib/revox.rb +0 -2
  37. data/rbi/revox/models/assistant_clone_response.rbi +157 -147
  38. data/rbi/revox/models/assistant_create_params.rbi +148 -162
  39. data/rbi/revox/models/assistant_create_response.rbi +157 -147
  40. data/rbi/revox/models/assistant_list_response.rbi +157 -147
  41. data/rbi/revox/models/assistant_retrieve_response.rbi +153 -147
  42. data/rbi/revox/models/assistant_update_params.rbi +148 -162
  43. data/rbi/revox/models/assistant_update_response.rbi +157 -147
  44. data/rbi/revox/models/call_create_params.rbi +190 -187
  45. data/rbi/revox/models/call_create_response.rbi +1138 -227
  46. data/rbi/revox/models/call_export_params.rbi +5 -15
  47. data/rbi/revox/models/call_phone_history_response.rbi +0 -15
  48. data/rbi/revox/models/call_retrieve_response.rbi +1138 -227
  49. data/rbi/revox/models/call_search_params.rbi +2 -9
  50. data/rbi/revox/models/call_search_response.rbi +1138 -227
  51. data/rbi/revox/models/campaign_create_params.rbi +9 -87
  52. data/rbi/revox/models/campaign_create_response.rbi +188 -266
  53. data/rbi/revox/models/campaign_get_rows_response.rbi +1138 -225
  54. data/rbi/revox/models/campaign_list_response.rbi +188 -262
  55. data/rbi/revox/models/campaign_retrieve_response.rbi +188 -266
  56. data/rbi/revox/models/campaign_statistics_response.rbi +94 -36
  57. data/rbi/revox/models/campaign_update_params.rbi +10 -128
  58. data/rbi/revox/models/campaign_update_response.rbi +188 -266
  59. data/rbi/revox/models/phone_number_list_response.rbi +157 -147
  60. data/rbi/revox/models/phone_number_update_response.rbi +157 -147
  61. data/rbi/revox/models/voice_list_response.rbi +5 -0
  62. data/rbi/revox/models/voice_preview_params.rbi +2 -0
  63. data/rbi/revox/models/voice_retrieve_params.rbi +2 -0
  64. data/rbi/revox/models.rbi +0 -2
  65. data/rbi/revox/resources/assistants.rbi +40 -22
  66. data/rbi/revox/resources/call.rbi +7 -4
  67. data/rbi/revox/resources/campaigns.rbi +12 -44
  68. data/sig/revox/models/assistant_clone_response.rbs +46 -54
  69. data/sig/revox/models/assistant_create_params.rbs +39 -58
  70. data/sig/revox/models/assistant_create_response.rbs +46 -54
  71. data/sig/revox/models/assistant_list_response.rbs +46 -54
  72. data/sig/revox/models/assistant_retrieve_response.rbs +46 -54
  73. data/sig/revox/models/assistant_update_params.rbs +39 -58
  74. data/sig/revox/models/assistant_update_response.rbs +46 -54
  75. data/sig/revox/models/call_create_params.rbs +50 -71
  76. data/sig/revox/models/call_create_response.rbs +468 -77
  77. data/sig/revox/models/call_export_params.rbs +2 -6
  78. data/sig/revox/models/call_phone_history_response.rbs +1 -10
  79. data/sig/revox/models/call_retrieve_response.rbs +468 -77
  80. data/sig/revox/models/call_search_params.rbs +2 -6
  81. data/sig/revox/models/call_search_response.rbs +468 -77
  82. data/sig/revox/models/campaign_create_params.rbs +5 -50
  83. data/sig/revox/models/campaign_create_response.rbs +62 -98
  84. data/sig/revox/models/campaign_get_rows_response.rbs +467 -73
  85. data/sig/revox/models/campaign_list_response.rbs +62 -98
  86. data/sig/revox/models/campaign_retrieve_response.rbs +62 -98
  87. data/sig/revox/models/campaign_statistics_response.rbs +55 -24
  88. data/sig/revox/models/campaign_update_params.rbs +1 -69
  89. data/sig/revox/models/campaign_update_response.rbs +62 -98
  90. data/sig/revox/models/phone_number_list_response.rbs +46 -54
  91. data/sig/revox/models/phone_number_update_response.rbs +46 -54
  92. data/sig/revox/models/voice_list_response.rbs +2 -1
  93. data/sig/revox/models/voice_preview_params.rbs +2 -1
  94. data/sig/revox/models/voice_retrieve_params.rbs +2 -1
  95. data/sig/revox/models.rbs +0 -2
  96. data/sig/revox/resources/assistants.rbs +4 -4
  97. data/sig/revox/resources/call.rbs +1 -1
  98. data/sig/revox/resources/campaigns.rbs +0 -12
  99. metadata +2 -8
  100. data/lib/revox/models/campaign_launch_params.rb +0 -20
  101. data/lib/revox/models/campaign_launch_response.rb +0 -2030
  102. data/rbi/revox/models/campaign_launch_params.rbi +0 -33
  103. data/rbi/revox/models/campaign_launch_response.rbi +0 -4170
  104. data/sig/revox/models/campaign_launch_params.rbs +0 -20
  105. data/sig/revox/models/campaign_launch_response.rbs +0 -1694
@@ -81,7 +81,8 @@ module Revox
81
81
  updated_at: top,
82
82
  follow_up_emails: ::Array[String]?,
83
83
  outcome: Revox::Models::CampaignGetRowsResponse::Row::Call::outcome?,
84
- outcome_summary: String?
84
+ outcome_summary: String?,
85
+ slack_channel_ids: ::Array[String]?
85
86
  }
86
87
 
87
88
  class Call < Revox::Internal::Type::BaseModel
@@ -137,6 +138,8 @@ module Revox
137
138
 
138
139
  attr_accessor outcome_summary: String?
139
140
 
141
+ attr_accessor slack_channel_ids: ::Array[String]?
142
+
140
143
  def initialize: (
141
144
  id: String,
142
145
  assignee: Revox::Models::CampaignGetRowsResponse::Row::Call::Assignee?,
@@ -163,7 +166,8 @@ module Revox
163
166
  updated_at: top,
164
167
  ?follow_up_emails: ::Array[String]?,
165
168
  ?outcome: Revox::Models::CampaignGetRowsResponse::Row::Call::outcome?,
166
- ?outcome_summary: String?
169
+ ?outcome_summary: String?,
170
+ ?slack_channel_ids: ::Array[String]?
167
171
  ) -> void
168
172
 
169
173
  def to_hash: -> {
@@ -192,7 +196,8 @@ module Revox
192
196
  updated_at: top,
193
197
  follow_up_emails: ::Array[String]?,
194
198
  outcome: Revox::Models::CampaignGetRowsResponse::Row::Call::outcome?,
195
- outcome_summary: String?
199
+ outcome_summary: String?,
200
+ slack_channel_ids: ::Array[String]?
196
201
  }
197
202
 
198
203
  type assignee =
@@ -240,7 +245,6 @@ module Revox
240
245
  created_at: top,
241
246
  custom_tools: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool]?,
242
247
  email_notification_address: String?,
243
- email_notification_language: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_language,
244
248
  email_notification_outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_outcome]?,
245
249
  end_of_call_sentence: String?,
246
250
  first_sentence: String?,
@@ -256,6 +260,7 @@ module Revox
256
260
  name: String,
257
261
  organization_id: String,
258
262
  position: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Position?,
263
+ precall_lookup_url: String?,
259
264
  prompt: String,
260
265
  prompt_flow: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow?,
261
266
  slack: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack?,
@@ -268,7 +273,7 @@ module Revox
268
273
  thinking_sound: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::thinking_sound?,
269
274
  thinking_sound_probability: Float,
270
275
  thinking_sound_volume: Float,
271
- transfer_phone_number: String?,
276
+ transfer_destinations: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::TransferDestination]?,
272
277
  type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::type_,
273
278
  updated_at: top,
274
279
  voice: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice?,
@@ -279,6 +284,7 @@ module Revox
279
284
  zoho: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho?,
280
285
  created_by: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CreatedBy?,
281
286
  faq_items: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem],
287
+ is_inbound_receptionist: bool,
282
288
  is_realestate_assistant: bool,
283
289
  pending_faq_count: Float
284
290
  }
@@ -306,8 +312,6 @@ module Revox
306
312
 
307
313
  attr_accessor email_notification_address: String?
308
314
 
309
- attr_accessor email_notification_language: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_language
310
-
311
315
  attr_accessor email_notification_outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_outcome]?
312
316
 
313
317
  attr_accessor end_of_call_sentence: String?
@@ -338,6 +342,8 @@ module Revox
338
342
 
339
343
  attr_accessor position: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Position?
340
344
 
345
+ attr_accessor precall_lookup_url: String?
346
+
341
347
  attr_accessor prompt: String
342
348
 
343
349
  attr_accessor prompt_flow: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow?
@@ -362,7 +368,7 @@ module Revox
362
368
 
363
369
  attr_accessor thinking_sound_volume: Float
364
370
 
365
- attr_accessor transfer_phone_number: String?
371
+ attr_accessor transfer_destinations: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::TransferDestination]?
366
372
 
367
373
  attr_accessor type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::type_
368
374
 
@@ -388,6 +394,10 @@ module Revox
388
394
  ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem]
389
395
  ) -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem]
390
396
 
397
+ attr_reader is_inbound_receptionist: bool?
398
+
399
+ def is_inbound_receptionist=: (bool) -> bool
400
+
391
401
  attr_reader is_realestate_assistant: bool?
392
402
 
393
403
  def is_realestate_assistant=: (bool) -> bool
@@ -408,7 +418,6 @@ module Revox
408
418
  created_at: top,
409
419
  custom_tools: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool]?,
410
420
  email_notification_address: String?,
411
- email_notification_language: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_language,
412
421
  email_notification_outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_outcome]?,
413
422
  end_of_call_sentence: String?,
414
423
  first_sentence: String?,
@@ -424,6 +433,7 @@ module Revox
424
433
  name: String,
425
434
  organization_id: String,
426
435
  position: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Position?,
436
+ precall_lookup_url: String?,
427
437
  prompt: String,
428
438
  prompt_flow: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow?,
429
439
  slack: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack?,
@@ -436,7 +446,7 @@ module Revox
436
446
  thinking_sound: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::thinking_sound?,
437
447
  thinking_sound_probability: Float,
438
448
  thinking_sound_volume: Float,
439
- transfer_phone_number: String?,
449
+ transfer_destinations: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::TransferDestination]?,
440
450
  type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::type_,
441
451
  updated_at: top,
442
452
  voice: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice?,
@@ -447,6 +457,7 @@ module Revox
447
457
  zoho: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho?,
448
458
  ?created_by: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CreatedBy?,
449
459
  ?faq_items: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem],
460
+ ?is_inbound_receptionist: bool,
450
461
  ?is_realestate_assistant: bool,
451
462
  ?pending_faq_count: Float
452
463
  ) -> void
@@ -463,7 +474,6 @@ module Revox
463
474
  created_at: top,
464
475
  custom_tools: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CustomTool]?,
465
476
  email_notification_address: String?,
466
- email_notification_language: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_language,
467
477
  email_notification_outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_outcome]?,
468
478
  end_of_call_sentence: String?,
469
479
  first_sentence: String?,
@@ -479,6 +489,7 @@ module Revox
479
489
  name: String,
480
490
  organization_id: String,
481
491
  position: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Position?,
492
+ precall_lookup_url: String?,
482
493
  prompt: String,
483
494
  prompt_flow: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow?,
484
495
  slack: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack?,
@@ -491,7 +502,7 @@ module Revox
491
502
  thinking_sound: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::thinking_sound?,
492
503
  thinking_sound_probability: Float,
493
504
  thinking_sound_volume: Float,
494
- transfer_phone_number: String?,
505
+ transfer_destinations: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::TransferDestination]?,
495
506
  type: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::type_,
496
507
  updated_at: top,
497
508
  voice: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice?,
@@ -502,6 +513,7 @@ module Revox
502
513
  zoho: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho?,
503
514
  created_by: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::CreatedBy?,
504
515
  faq_items: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem],
516
+ is_inbound_receptionist: bool,
505
517
  is_realestate_assistant: bool,
506
518
  pending_faq_count: Float
507
519
  }
@@ -511,9 +523,6 @@ module Revox
511
523
  | :interested
512
524
  | :completed
513
525
  | :requested_callback_later
514
- | :requested_callback_new_number
515
- | :do_not_contact
516
- | :ai_averse
517
526
  | :none
518
527
 
519
528
  module AfterCallSMSOutcome
@@ -523,9 +532,6 @@ module Revox
523
532
  INTERESTED: :interested
524
533
  COMPLETED: :completed
525
534
  REQUESTED_CALLBACK_LATER: :requested_callback_later
526
- REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
527
- DO_NOT_CONTACT: :do_not_contact
528
- AI_AVERSE: :ai_averse
529
535
  NONE: :none
530
536
 
531
537
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::after_call_sms_outcome]
@@ -790,25 +796,11 @@ module Revox
790
796
  end
791
797
  end
792
798
 
793
- type email_notification_language = :en | :fr
794
-
795
- module EmailNotificationLanguage
796
- extend Revox::Internal::Type::Enum
797
-
798
- EN: :en
799
- FR: :fr
800
-
801
- def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_language]
802
- end
803
-
804
799
  type email_notification_outcome =
805
800
  :not_interested
806
801
  | :interested
807
802
  | :completed
808
803
  | :requested_callback_later
809
- | :requested_callback_new_number
810
- | :do_not_contact
811
- | :ai_averse
812
804
  | :none
813
805
 
814
806
  module EmailNotificationOutcome
@@ -818,9 +810,6 @@ module Revox
818
810
  INTERESTED: :interested
819
811
  COMPLETED: :completed
820
812
  REQUESTED_CALLBACK_LATER: :requested_callback_later
821
- REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
822
- DO_NOT_CONTACT: :do_not_contact
823
- AI_AVERSE: :ai_averse
824
813
  NONE: :none
825
814
 
826
815
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::email_notification_outcome]
@@ -1108,48 +1097,52 @@ module Revox
1108
1097
 
1109
1098
  type slack =
1110
1099
  {
1111
- channel_id: String,
1100
+ channels: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::Channel],
1112
1101
  connection_id: String,
1113
1102
  outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::outcome],
1114
- channel_name: String?,
1115
1103
  template: String?
1116
1104
  }
1117
1105
 
1118
1106
  class Slack < Revox::Internal::Type::BaseModel
1119
- attr_accessor channel_id: String
1107
+ attr_accessor channels: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::Channel]
1120
1108
 
1121
1109
  attr_accessor connection_id: String
1122
1110
 
1123
1111
  attr_accessor outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::outcome]
1124
1112
 
1125
- attr_accessor channel_name: String?
1126
-
1127
1113
  attr_accessor template: String?
1128
1114
 
1129
1115
  def initialize: (
1130
- channel_id: String,
1116
+ channels: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::Channel],
1131
1117
  connection_id: String,
1132
1118
  outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::outcome],
1133
- ?channel_name: String?,
1134
1119
  ?template: String?
1135
1120
  ) -> void
1136
1121
 
1137
1122
  def to_hash: -> {
1138
- channel_id: String,
1123
+ channels: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::Channel],
1139
1124
  connection_id: String,
1140
1125
  outcomes: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::outcome],
1141
- channel_name: String?,
1142
1126
  template: String?
1143
1127
  }
1144
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
+
1145
1141
  type outcome =
1146
1142
  :not_interested
1147
1143
  | :interested
1148
1144
  | :completed
1149
1145
  | :requested_callback_later
1150
- | :requested_callback_new_number
1151
- | :do_not_contact
1152
- | :ai_averse
1153
1146
  | :none
1154
1147
 
1155
1148
  module Outcome
@@ -1159,9 +1152,6 @@ module Revox
1159
1152
  INTERESTED: :interested
1160
1153
  COMPLETED: :completed
1161
1154
  REQUESTED_CALLBACK_LATER: :requested_callback_later
1162
- REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
1163
- DO_NOT_CONTACT: :do_not_contact
1164
- AI_AVERSE: :ai_averse
1165
1155
  NONE: :none
1166
1156
 
1167
1157
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::outcome]
@@ -1293,6 +1283,18 @@ module Revox
1293
1283
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::thinking_sound]
1294
1284
  end
1295
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
+
1296
1298
  type type_ = :standalone | :"multi-step" | :"sub-assistant"
1297
1299
 
1298
1300
  module Type
@@ -1349,13 +1351,14 @@ module Revox
1349
1351
  volume: Float
1350
1352
  }
1351
1353
 
1352
- type provider = :cartesia | :elevenlabs
1354
+ type provider = :cartesia | :elevenlabs | :gradium
1353
1355
 
1354
1356
  module Provider
1355
1357
  extend Revox::Internal::Type::Enum
1356
1358
 
1357
1359
  CARTESIA: :cartesia
1358
1360
  ELEVENLABS: :elevenlabs
1361
+ GRADIUM: :gradium
1359
1362
 
1360
1363
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Voice::provider]
1361
1364
  end
@@ -1430,9 +1433,6 @@ module Revox
1430
1433
  | :interested
1431
1434
  | :completed
1432
1435
  | :requested_callback_later
1433
- | :requested_callback_new_number
1434
- | :do_not_contact
1435
- | :ai_averse
1436
1436
  | :none
1437
1437
 
1438
1438
  module Outcome
@@ -1442,9 +1442,6 @@ module Revox
1442
1442
  INTERESTED: :interested
1443
1443
  COMPLETED: :completed
1444
1444
  REQUESTED_CALLBACK_LATER: :requested_callback_later
1445
- REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
1446
- DO_NOT_CONTACT: :do_not_contact
1447
- AI_AVERSE: :ai_averse
1448
1445
  NONE: :none
1449
1446
 
1450
1447
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Zoho::outcome]
@@ -1546,16 +1543,21 @@ module Revox
1546
1543
  answered_at: top,
1547
1544
  dial_error: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::dial_error?,
1548
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?,
1549
1549
  phone_number: String,
1550
1550
  recording_url: String?,
1551
1551
  result: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::result?,
1552
1552
  started_at: top,
1553
1553
  status: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::status,
1554
1554
  assistants_used: ::Array[String]?,
1555
+ email_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::EmailLog]?,
1555
1556
  end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::end_reason?,
1556
1557
  ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::ended_by?,
1557
1558
  post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript]?,
1558
1559
  sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog]?,
1560
+ speech_events: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SpeechEvent]?,
1559
1561
  structured_output: ::Hash[Symbol, top]?,
1560
1562
  transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript]?
1561
1563
  }
@@ -1569,6 +1571,12 @@ module Revox
1569
1571
 
1570
1572
  attr_accessor ended_at: top
1571
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
+
1572
1580
  attr_accessor phone_number: String
1573
1581
 
1574
1582
  attr_accessor recording_url: String?
@@ -1581,6 +1589,8 @@ module Revox
1581
1589
 
1582
1590
  attr_accessor assistants_used: ::Array[String]?
1583
1591
 
1592
+ attr_accessor email_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::EmailLog]?
1593
+
1584
1594
  attr_accessor end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::end_reason?
1585
1595
 
1586
1596
  attr_accessor ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::ended_by?
@@ -1589,6 +1599,8 @@ module Revox
1589
1599
 
1590
1600
  attr_accessor sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog]?
1591
1601
 
1602
+ attr_accessor speech_events: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SpeechEvent]?
1603
+
1592
1604
  attr_accessor structured_output: ::Hash[Symbol, top]?
1593
1605
 
1594
1606
  attr_accessor transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript]?
@@ -1598,16 +1610,21 @@ module Revox
1598
1610
  answered_at: top,
1599
1611
  dial_error: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::dial_error?,
1600
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?,
1601
1616
  phone_number: String,
1602
1617
  recording_url: String?,
1603
1618
  result: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::result?,
1604
1619
  started_at: top,
1605
1620
  status: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::status,
1606
1621
  ?assistants_used: ::Array[String]?,
1622
+ ?email_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::EmailLog]?,
1607
1623
  ?end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::end_reason?,
1608
1624
  ?ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::ended_by?,
1609
1625
  ?post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript]?,
1610
1626
  ?sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog]?,
1627
+ ?speech_events: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SpeechEvent]?,
1611
1628
  ?structured_output: ::Hash[Symbol, top]?,
1612
1629
  ?transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript]?
1613
1630
  ) -> void
@@ -1617,16 +1634,21 @@ module Revox
1617
1634
  answered_at: top,
1618
1635
  dial_error: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::dial_error?,
1619
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?,
1620
1640
  phone_number: String,
1621
1641
  recording_url: String?,
1622
1642
  result: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::result?,
1623
1643
  started_at: top,
1624
1644
  status: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::status,
1625
1645
  assistants_used: ::Array[String]?,
1646
+ email_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::EmailLog]?,
1626
1647
  end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::end_reason?,
1627
1648
  ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::ended_by?,
1628
1649
  post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::PostCallTranscript]?,
1629
1650
  sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog]?,
1651
+ speech_events: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SpeechEvent]?,
1630
1652
  structured_output: ::Hash[Symbol, top]?,
1631
1653
  transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript]?
1632
1654
  }
@@ -1656,6 +1678,38 @@ module Revox
1656
1678
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::dial_error]
1657
1679
  end
1658
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
+
1659
1713
  type result =
1660
1714
  :IVR | :voicemail | :human | :unknown | :"ios-screening-filter"
1661
1715
 
@@ -1685,6 +1739,48 @@ module Revox
1685
1739
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::status]
1686
1740
  end
1687
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
+
1688
1784
  type end_reason =
1689
1785
  :client_initiated
1690
1786
  | :connection_timeout
@@ -1818,8 +1914,9 @@ module Revox
1818
1914
  id: String,
1819
1915
  created_at: top,
1820
1916
  message_body: String,
1917
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::provider,
1918
+ provider_message_id: String?,
1821
1919
  to_phone_number: String,
1822
- twilio_message_sid: String?,
1823
1920
  type: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::type_
1824
1921
  }
1825
1922
 
@@ -1830,9 +1927,11 @@ module Revox
1830
1927
 
1831
1928
  attr_accessor message_body: String
1832
1929
 
1833
- 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?
1834
1933
 
1835
- attr_accessor twilio_message_sid: String?
1934
+ attr_accessor to_phone_number: String
1836
1935
 
1837
1936
  attr_accessor type: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::type_
1838
1937
 
@@ -1840,8 +1939,9 @@ module Revox
1840
1939
  id: String,
1841
1940
  created_at: top,
1842
1941
  message_body: String,
1942
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::provider,
1943
+ provider_message_id: String?,
1843
1944
  to_phone_number: String,
1844
- twilio_message_sid: String?,
1845
1945
  type: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::type_
1846
1946
  ) -> void
1847
1947
 
@@ -1849,11 +1949,23 @@ module Revox
1849
1949
  id: String,
1850
1950
  created_at: top,
1851
1951
  message_body: String,
1952
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::provider,
1953
+ provider_message_id: String?,
1852
1954
  to_phone_number: String,
1853
- twilio_message_sid: String?,
1854
1955
  type: Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::type_
1855
1956
  }
1856
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
+
1857
1969
  type type_ = :in_call | :voicemail | :after_call
1858
1970
 
1859
1971
  module Type
@@ -1867,6 +1979,89 @@ module Revox
1867
1979
  end
1868
1980
  end
1869
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
+
1870
2065
  type transcript =
1871
2066
  {
1872
2067
  content: String,
@@ -2047,6 +2242,7 @@ module Revox
2047
2242
  company: String?,
2048
2243
  email: String?,
2049
2244
  first_name: String?,
2245
+ job_title: String?,
2050
2246
  last_name: String?
2051
2247
  }
2052
2248
 
@@ -2057,12 +2253,15 @@ module Revox
2057
2253
 
2058
2254
  attr_accessor first_name: String?
2059
2255
 
2256
+ attr_accessor job_title: String?
2257
+
2060
2258
  attr_accessor last_name: String?
2061
2259
 
2062
2260
  def initialize: (
2063
2261
  company: String?,
2064
2262
  email: String?,
2065
2263
  first_name: String?,
2264
+ job_title: String?,
2066
2265
  last_name: String?
2067
2266
  ) -> void
2068
2267
 
@@ -2070,6 +2269,7 @@ module Revox
2070
2269
  company: String?,
2071
2270
  email: String?,
2072
2271
  first_name: String?,
2272
+ job_title: String?,
2073
2273
  last_name: String?
2074
2274
  }
2075
2275
  end
@@ -2091,16 +2291,21 @@ module Revox
2091
2291
  answered_at: top,
2092
2292
  dial_error: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::dial_error?,
2093
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?,
2094
2297
  phone_number: String,
2095
2298
  recording_url: String?,
2096
2299
  result: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::result?,
2097
2300
  started_at: top,
2098
2301
  status: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::status,
2099
2302
  assistants_used: ::Array[String]?,
2303
+ email_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::EmailLog]?,
2100
2304
  end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::end_reason?,
2101
2305
  ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::ended_by?,
2102
2306
  post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript]?,
2103
2307
  sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog]?,
2308
+ speech_events: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SpeechEvent]?,
2104
2309
  structured_output: ::Hash[Symbol, top]?,
2105
2310
  transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript]?
2106
2311
  }
@@ -2114,6 +2319,12 @@ module Revox
2114
2319
 
2115
2320
  attr_accessor ended_at: top
2116
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
+
2117
2328
  attr_accessor phone_number: String
2118
2329
 
2119
2330
  attr_accessor recording_url: String?
@@ -2126,6 +2337,8 @@ module Revox
2126
2337
 
2127
2338
  attr_accessor assistants_used: ::Array[String]?
2128
2339
 
2340
+ attr_accessor email_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::EmailLog]?
2341
+
2129
2342
  attr_accessor end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::end_reason?
2130
2343
 
2131
2344
  attr_accessor ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::ended_by?
@@ -2134,6 +2347,8 @@ module Revox
2134
2347
 
2135
2348
  attr_accessor sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog]?
2136
2349
 
2350
+ attr_accessor speech_events: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SpeechEvent]?
2351
+
2137
2352
  attr_accessor structured_output: ::Hash[Symbol, top]?
2138
2353
 
2139
2354
  attr_accessor transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript]?
@@ -2143,16 +2358,21 @@ module Revox
2143
2358
  answered_at: top,
2144
2359
  dial_error: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::dial_error?,
2145
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?,
2146
2364
  phone_number: String,
2147
2365
  recording_url: String?,
2148
2366
  result: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::result?,
2149
2367
  started_at: top,
2150
2368
  status: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::status,
2151
2369
  ?assistants_used: ::Array[String]?,
2370
+ ?email_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::EmailLog]?,
2152
2371
  ?end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::end_reason?,
2153
2372
  ?ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::ended_by?,
2154
2373
  ?post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript]?,
2155
2374
  ?sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog]?,
2375
+ ?speech_events: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SpeechEvent]?,
2156
2376
  ?structured_output: ::Hash[Symbol, top]?,
2157
2377
  ?transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript]?
2158
2378
  ) -> void
@@ -2162,16 +2382,21 @@ module Revox
2162
2382
  answered_at: top,
2163
2383
  dial_error: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::dial_error?,
2164
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?,
2165
2388
  phone_number: String,
2166
2389
  recording_url: String?,
2167
2390
  result: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::result?,
2168
2391
  started_at: top,
2169
2392
  status: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::status,
2170
2393
  assistants_used: ::Array[String]?,
2394
+ email_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::EmailLog]?,
2171
2395
  end_reason: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::end_reason?,
2172
2396
  ended_by: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::ended_by?,
2173
2397
  post_call_transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::PostCallTranscript]?,
2174
2398
  sms_log: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog]?,
2399
+ speech_events: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SpeechEvent]?,
2175
2400
  structured_output: ::Hash[Symbol, top]?,
2176
2401
  transcript: ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript]?
2177
2402
  }
@@ -2201,6 +2426,38 @@ module Revox
2201
2426
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::dial_error]
2202
2427
  end
2203
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
+
2204
2461
  type result =
2205
2462
  :IVR | :voicemail | :human | :unknown | :"ios-screening-filter"
2206
2463
 
@@ -2230,6 +2487,48 @@ module Revox
2230
2487
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::status]
2231
2488
  end
2232
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
+
2233
2532
  type end_reason =
2234
2533
  :client_initiated
2235
2534
  | :connection_timeout
@@ -2363,8 +2662,9 @@ module Revox
2363
2662
  id: String,
2364
2663
  created_at: top,
2365
2664
  message_body: String,
2665
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::provider,
2666
+ provider_message_id: String?,
2366
2667
  to_phone_number: String,
2367
- twilio_message_sid: String?,
2368
2668
  type: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::type_
2369
2669
  }
2370
2670
 
@@ -2375,9 +2675,11 @@ module Revox
2375
2675
 
2376
2676
  attr_accessor message_body: String
2377
2677
 
2378
- attr_accessor to_phone_number: String
2678
+ attr_accessor provider: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::provider
2379
2679
 
2380
- attr_accessor twilio_message_sid: String?
2680
+ attr_accessor provider_message_id: String?
2681
+
2682
+ attr_accessor to_phone_number: String
2381
2683
 
2382
2684
  attr_accessor type: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::type_
2383
2685
 
@@ -2385,8 +2687,9 @@ module Revox
2385
2687
  id: String,
2386
2688
  created_at: top,
2387
2689
  message_body: String,
2690
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::provider,
2691
+ provider_message_id: String?,
2388
2692
  to_phone_number: String,
2389
- twilio_message_sid: String?,
2390
2693
  type: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::type_
2391
2694
  ) -> void
2392
2695
 
@@ -2394,11 +2697,23 @@ module Revox
2394
2697
  id: String,
2395
2698
  created_at: top,
2396
2699
  message_body: String,
2700
+ provider: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::provider,
2701
+ provider_message_id: String?,
2397
2702
  to_phone_number: String,
2398
- twilio_message_sid: String?,
2399
2703
  type: Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::type_
2400
2704
  }
2401
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
+
2402
2717
  type type_ = :in_call | :voicemail | :after_call
2403
2718
 
2404
2719
  module Type
@@ -2412,6 +2727,89 @@ module Revox
2412
2727
  end
2413
2728
  end
2414
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
+
2415
2813
  type transcript =
2416
2814
  {
2417
2815
  content: String,
@@ -2642,6 +3040,7 @@ module Revox
2642
3040
  | :queued_for_calling
2643
3041
  | :calling
2644
3042
  | :post_processing
3043
+ | :not_launched
2645
3044
  | :scheduled
2646
3045
  | :paused
2647
3046
  | :completed
@@ -2655,6 +3054,7 @@ module Revox
2655
3054
  QUEUED_FOR_CALLING: :queued_for_calling
2656
3055
  CALLING: :calling
2657
3056
  POST_PROCESSING: :post_processing
3057
+ NOT_LAUNCHED: :not_launched
2658
3058
  SCHEDULED: :scheduled
2659
3059
  PAUSED: :paused
2660
3060
  COMPLETED: :completed
@@ -2669,9 +3069,6 @@ module Revox
2669
3069
  | :interested
2670
3070
  | :completed
2671
3071
  | :requested_callback_later
2672
- | :requested_callback_new_number
2673
- | :do_not_contact
2674
- | :ai_averse
2675
3072
 
2676
3073
  module Outcome
2677
3074
  extend Revox::Internal::Type::Enum
@@ -2680,9 +3077,6 @@ module Revox
2680
3077
  INTERESTED: :interested
2681
3078
  COMPLETED: :completed
2682
3079
  REQUESTED_CALLBACK_LATER: :requested_callback_later
2683
- REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
2684
- DO_NOT_CONTACT: :do_not_contact
2685
- AI_AVERSE: :ai_averse
2686
3080
 
2687
3081
  def self?.values: -> ::Array[Revox::Models::CampaignGetRowsResponse::Row::Call::outcome]
2688
3082
  end