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