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
@@ -19,25 +19,12 @@ module Revox
19
19
  # @return [Array<Revox::Models::CampaignCreateParams::Contact>]
20
20
  required :contacts, -> { Revox::Internal::Type::ArrayOf[Revox::CampaignCreateParams::Contact] }
21
21
 
22
- # @!attribute launch
23
- # Whether to launch the campaign immediately. Set to false to save as a draft.
24
- #
25
- # @return [Boolean]
26
- required :launch, Revox::Internal::Type::Boolean
27
-
28
22
  # @!attribute name
29
23
  # The name of the campaign
30
24
  #
31
25
  # @return [String]
32
26
  required :name, String
33
27
 
34
- # @!attribute type
35
- # Campaign type. 'jump_in' campaigns only dial while someone is on the campaign
36
- # page and auto-pause when unattended.
37
- #
38
- # @return [Symbol, Revox::Models::CampaignCreateParams::Type]
39
- required :type, enum: -> { Revox::CampaignCreateParams::Type }
40
-
41
28
  # @!attribute call_retry_config
42
29
  # Override retry configuration for calls in this campaign. If not provided, uses
43
30
  # the assistant's retry config.
@@ -57,14 +44,7 @@ module Revox
57
44
  # @return [Float, nil]
58
45
  optional :max_concurrent_calls, Float
59
46
 
60
- # @!attribute scheduled_at
61
- # Schedule all calls in this campaign to start at a specific date and time (ISO
62
- # 8601 format)
63
- #
64
- # @return [Time, Object, nil]
65
- optional :scheduled_at, union: -> { Revox::CampaignCreateParams::ScheduledAt }
66
-
67
- # @!method initialize(assistant_id:, contacts:, launch:, name:, type:, call_retry_config: nil, from_phone_number: nil, max_concurrent_calls: nil, scheduled_at: nil, request_options: {})
47
+ # @!method initialize(assistant_id:, contacts:, name:, call_retry_config: nil, from_phone_number: nil, max_concurrent_calls: nil, request_options: {})
68
48
  # Some parameter documentations has been truncated, see
69
49
  # {Revox::Models::CampaignCreateParams} for more details.
70
50
  #
@@ -72,27 +52,21 @@ module Revox
72
52
  #
73
53
  # @param contacts [Array<Revox::Models::CampaignCreateParams::Contact>] The list of contacts to call
74
54
  #
75
- # @param launch [Boolean] Whether to launch the campaign immediately. Set to false to save as a draft.
76
- #
77
55
  # @param name [String] The name of the campaign
78
56
  #
79
- # @param type [Symbol, Revox::Models::CampaignCreateParams::Type] Campaign type. 'jump_in' campaigns only dial while someone is on the campaign pa
80
- #
81
57
  # @param call_retry_config [Revox::Models::CampaignCreateParams::CallRetryConfig] Override retry configuration for calls in this campaign. If not provided, uses t
82
58
  #
83
59
  # @param from_phone_number [String] The phone number to use for outbound calls (E.164 format, e.g., +1234567890)
84
60
  #
85
61
  # @param max_concurrent_calls [Float] Maximum number of concurrent calls allowed for this campaign
86
62
  #
87
- # @param scheduled_at [Time, Object] Schedule all calls in this campaign to start at a specific date and time (ISO 86
88
- #
89
63
  # @param request_options [Revox::RequestOptions, Hash{Symbol=>Object}]
90
64
 
91
65
  class Contact < Revox::Internal::Type::BaseModel
92
66
  # @!attribute prompt_variables
93
67
  #
94
- # @return [Hash{Symbol=>String}]
95
- required :prompt_variables, Revox::Internal::Type::HashOf[String]
68
+ # @return [Object]
69
+ required :prompt_variables, Revox::Internal::Type::Unknown
96
70
 
97
71
  # @!attribute to_phone_number
98
72
  #
@@ -100,22 +74,10 @@ module Revox
100
74
  required :to_phone_number, String
101
75
 
102
76
  # @!method initialize(prompt_variables:, to_phone_number:)
103
- # @param prompt_variables [Hash{Symbol=>String}]
77
+ # @param prompt_variables [Object]
104
78
  # @param to_phone_number [String]
105
79
  end
106
80
 
107
- # Campaign type. 'jump_in' campaigns only dial while someone is on the campaign
108
- # page and auto-pause when unattended.
109
- module Type
110
- extend Revox::Internal::Type::Enum
111
-
112
- REGULAR = :regular
113
- JUMP_IN = :jump_in
114
-
115
- # @!method self.values
116
- # @return [Array<Symbol>]
117
- end
118
-
119
81
  class CallRetryConfig < Revox::Internal::Type::BaseModel
120
82
  # @!attribute allowed_days
121
83
  # Days of the week when calls are allowed, in the recipient's timezone. Default:
@@ -204,7 +166,8 @@ module Revox
204
166
  required :calling_window_start_time, String
205
167
 
206
168
  # @!attribute retry_delay_seconds
207
- # Delay between retry attempts in seconds. Default: 7200 (2 hours).
169
+ # Delay between retry attempts in seconds. 0 retries as soon as the calling window
170
+ # allows. Default: 7200 (2 hours).
208
171
  #
209
172
  # @return [Integer]
210
173
  required :retry_delay_seconds, Integer
@@ -218,22 +181,9 @@ module Revox
218
181
  #
219
182
  # @param calling_window_start_time [String] Start time for the calling window in the recipient's timezone (or timezone_overr
220
183
  #
221
- # @param retry_delay_seconds [Integer] Delay between retry attempts in seconds. Default: 7200 (2 hours).
184
+ # @param retry_delay_seconds [Integer] Delay between retry attempts in seconds. 0 retries as soon as the calling window
222
185
  end
223
186
  end
224
-
225
- # Schedule all calls in this campaign to start at a specific date and time (ISO
226
- # 8601 format)
227
- module ScheduledAt
228
- extend Revox::Internal::Type::Union
229
-
230
- variant Time
231
-
232
- variant Revox::Internal::Type::Unknown
233
-
234
- # @!method self.variants
235
- # @return [Array(Time, Object)]
236
- end
237
187
  end
238
188
  end
239
189
  end
@@ -49,21 +49,11 @@ module Revox
49
49
  # @return [Symbol, Revox::Models::CampaignCreateResponse::Campaign::Status]
50
50
  required :status, enum: -> { Revox::Models::CampaignCreateResponse::Campaign::Status }
51
51
 
52
- # @!attribute type
53
- #
54
- # @return [Symbol, Revox::Models::CampaignCreateResponse::Campaign::Type]
55
- required :type, enum: -> { Revox::Models::CampaignCreateResponse::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::CampaignCreateResponse::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::CampaignCreateResponse::Campaign::PausedReason, nil]
105
- optional :paused_reason,
106
- enum: -> { Revox::Models::CampaignCreateResponse::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::CampaignCreateResponse::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::CampaignCreateResponse::Campaign} for more details.
134
117
  #
@@ -146,12 +129,8 @@ module Revox
146
129
  #
147
130
  # @param status [Symbol, Revox::Models::CampaignCreateResponse::Campaign::Status]
148
131
  #
149
- # @param type [Symbol, Revox::Models::CampaignCreateResponse::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::CampaignCreateResponse::Campaign::Assistant]
156
135
  #
157
136
  # @param call_retry_config [Revox::Models::CampaignCreateResponse::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::CampaignCreateResponse::Campaign::PausedReason, nil]
168
- #
169
- # @param present_count [Float]
146
+ # @param metadata_keys [Array<String>]
170
147
  #
171
148
  # @param row_stats [Revox::Models::CampaignCreateResponse::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::CampaignCreateResponse::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::CampaignCreateResponse::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::CampaignCreateResponse::Campaign::Assistant::EmailNotificationLanguage]
284
- required :email_notification_language,
285
- enum: -> { Revox::Models::CampaignCreateResponse::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::CampaignCreateResponse::Campaign::Assistant::HumanTransferMode, nil]
330
288
  required :human_transfer_mode,
@@ -382,6 +340,13 @@ module Revox
382
340
  -> { Revox::Models::CampaignCreateResponse::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::CampaignCreateResponse::Campaign::Assistant::TransferDestination>, nil]
442
+ required :transfer_destinations,
443
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::CampaignCreateResponse::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::CampaignCreateResponse::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::CampaignCreateResponse::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::CampaignCreateResponse::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::CampaignCreateResponse::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::CampaignCreateResponse::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::CampaignCreateResponse::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::CampaignCreateResponse::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::CampaignCreateResponse::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::CampaignCreateResponse::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::CampaignCreateResponse::Campaign::Assistant::Type]
634
607
  #
@@ -650,6 +623,8 @@ module Revox
650
623
  #
651
624
  # @param faq_items [Array<Revox::Models::CampaignCreateResponse::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::CampaignCreateResponse::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::CampaignCreateResponse::Campaign::Assistant#human_transfer_mode
1042
999
  module HumanTransferMode
@@ -1327,11 +1284,14 @@ module Revox
1327
1284
 
1328
1285
  # @see Revox::Models::CampaignCreateResponse::Campaign::Assistant#slack
1329
1286
  class Slack < Revox::Internal::Type::BaseModel
1330
- # @!attribute channel_id
1331
- # The Slack channel ID where the notification will be posted.
1287
+ # @!attribute channels
1288
+ # The Slack channels eligible to receive the notification. When more than one is
1289
+ # configured, the agent prompt may define routing rules to narrow it down per
1290
+ # call; with no such rules every channel here is notified.
1332
1291
  #
1333
- # @return [String]
1334
- required :channel_id, String
1292
+ # @return [Array<Revox::Models::CampaignCreateResponse::Campaign::Assistant::Slack::Channel>]
1293
+ required :channels,
1294
+ -> { Revox::Internal::Type::ArrayOf[Revox::Models::CampaignCreateResponse::Campaign::Assistant::Slack::Channel] }
1335
1295
 
1336
1296
  # @!attribute connection_id
1337
1297
  # The Nango connection ID linking the org's Slack workspace to Revox.
@@ -1347,38 +1307,54 @@ module Revox
1347
1307
  required :outcomes,
1348
1308
  -> { Revox::Internal::Type::ArrayOf[enum: Revox::Models::CampaignCreateResponse::Campaign::Assistant::Slack::Outcome] }
1349
1309
 
1350
- # @!attribute channel_name
1351
- # Human-readable Slack channel name, cached for display in the UI.
1352
- #
1353
- # @return [String, nil]
1354
- optional :channel_name, String, nil?: true
1355
-
1356
1310
  # @!attribute template
1357
1311
  # Optional message template. Supports {{summary}}, {{outcome}}, {{phone}},
1358
1312
  # {{call_url}}, {{assistant_name}}, {{campaign_name}}, {{first_name}},
1359
- # {{last_name}}, {{email}}, {{company}}, {{contact_name}}, {{contact_line}}, plus
1360
- # prompt_variables and structured_output keys. When null/empty a default template
1361
- # is used.
1313
+ # {{last_name}}, {{email}}, {{company}}, {{job_title}}, {{contact_name}},
1314
+ # {{contact_line}}, plus prompt_variables and structured_output keys. When
1315
+ # null/empty a default template is used.
1362
1316
  #
1363
1317
  # @return [String, nil]
1364
1318
  optional :template, String, nil?: true
1365
1319
 
1366
- # @!method initialize(channel_id:, connection_id:, outcomes:, channel_name: nil, template: nil)
1320
+ # @!method initialize(channels:, connection_id:, outcomes:, template: nil)
1367
1321
  # Some parameter documentations has been truncated, see
1368
1322
  # {Revox::Models::CampaignCreateResponse::Campaign::Assistant::Slack} for more
1369
1323
  # details.
1370
1324
  #
1371
- # @param channel_id [String] The Slack channel ID where the notification will be posted.
1325
+ # @param channels [Array<Revox::Models::CampaignCreateResponse::Campaign::Assistant::Slack::Channel>] The Slack channels eligible to receive the notification. When more than one is c
1372
1326
  #
1373
1327
  # @param connection_id [String] The Nango connection ID linking the org's Slack workspace to Revox.
1374
1328
  #
1375
1329
  # @param outcomes [Array<Symbol, Revox::Models::CampaignCreateResponse::Campaign::Assistant::Slack::Outcome>] Which call outcomes trigger a Slack notification (e.g. ['interested', 'none']).
1376
1330
  #
1377
- # @param channel_name [String, nil] Human-readable Slack channel name, cached for display in the UI.
1378
- #
1379
1331
  # @param template [String, nil] Optional message template. Supports {{summary}}, {{outcome}}, {{phone}},
1380
1332
  # {{call\_
1381
1333
 
1334
+ class Channel < Revox::Internal::Type::BaseModel
1335
+ # @!attribute id
1336
+ # The Slack channel ID (e.g. 'C01234567').
1337
+ #
1338
+ # @return [String]
1339
+ required :id, String
1340
+
1341
+ # @!attribute name
1342
+ # Human-readable Slack channel name, cached for display in the UI and given to the
1343
+ # LLM when the agent prompt routes by channel name.
1344
+ #
1345
+ # @return [String, nil]
1346
+ optional :name, String, nil?: true
1347
+
1348
+ # @!method initialize(id:, name: nil)
1349
+ # Some parameter documentations has been truncated, see
1350
+ # {Revox::Models::CampaignCreateResponse::Campaign::Assistant::Slack::Channel} for
1351
+ # more details.
1352
+ #
1353
+ # @param id [String] The Slack channel ID (e.g. 'C01234567').
1354
+ #
1355
+ # @param name [String, nil] Human-readable Slack channel name, cached for display in the UI and given to the
1356
+ end
1357
+
1382
1358
  module Outcome
1383
1359
  extend Revox::Internal::Type::Enum
1384
1360
 
@@ -1386,9 +1362,6 @@ module Revox
1386
1362
  INTERESTED = :interested
1387
1363
  COMPLETED = :completed
1388
1364
  REQUESTED_CALLBACK_LATER = :requested_callback_later
1389
- REQUESTED_CALLBACK_NEW_NUMBER = :requested_callback_new_number
1390
- DO_NOT_CONTACT = :do_not_contact
1391
- AI_AVERSE = :ai_averse
1392
1365
  NONE = :none
1393
1366
 
1394
1367
  # @!method self.values
@@ -1516,6 +1489,22 @@ module Revox
1516
1489
  # @return [Array<Symbol>]
1517
1490
  end
1518
1491
 
1492
+ class TransferDestination < Revox::Internal::Type::BaseModel
1493
+ # @!attribute label
1494
+ #
1495
+ # @return [String]
1496
+ required :label, String
1497
+
1498
+ # @!attribute phone_number
1499
+ #
1500
+ # @return [String]
1501
+ required :phone_number, String
1502
+
1503
+ # @!method initialize(label:, phone_number:)
1504
+ # @param label [String]
1505
+ # @param phone_number [String]
1506
+ end
1507
+
1519
1508
  # @see Revox::Models::CampaignCreateResponse::Campaign::Assistant#type
1520
1509
  module Type
1521
1510
  extend Revox::Internal::Type::Enum
@@ -1552,7 +1541,7 @@ module Revox
1552
1541
 
1553
1542
  # @!attribute speed
1554
1543
  # The speed of the voice. Range depends on provider: Cartesia 0.6–1.5, ElevenLabs
1555
- # 0.7–1.2. Default is 1.0.
1544
+ # 0.7–1.2, Gradium 0.6–1.5. Default is 1.0.
1556
1545
  #
1557
1546
  # @return [Float, nil]
1558
1547
  optional :speed, Float
@@ -1587,6 +1576,7 @@ module Revox
1587
1576
 
1588
1577
  CARTESIA = :cartesia
1589
1578
  ELEVENLABS = :elevenlabs
1579
+ GRADIUM = :gradium
1590
1580
 
1591
1581
  # @!method self.values
1592
1582
  # @return [Array<Symbol>]
@@ -1702,9 +1692,6 @@ module Revox
1702
1692
  INTERESTED = :interested
1703
1693
  COMPLETED = :completed
1704
1694
  REQUESTED_CALLBACK_LATER = :requested_callback_later
1705
- REQUESTED_CALLBACK_NEW_NUMBER = :requested_callback_new_number
1706
- DO_NOT_CONTACT = :do_not_contact
1707
- AI_AVERSE = :ai_averse
1708
1695
  NONE = :none
1709
1696
 
1710
1697
  # @!method self.values
@@ -1883,7 +1870,8 @@ module Revox
1883
1870
  required :calling_window_start_time, String
1884
1871
 
1885
1872
  # @!attribute retry_delay_seconds
1886
- # Delay between retry attempts in seconds. Default: 7200 (2 hours).
1873
+ # Delay between retry attempts in seconds. 0 retries as soon as the calling window
1874
+ # allows. Default: 7200 (2 hours).
1887
1875
  #
1888
1876
  # @return [Integer]
1889
1877
  required :retry_delay_seconds, Integer
@@ -1897,7 +1885,7 @@ module Revox
1897
1885
  #
1898
1886
  # @param calling_window_start_time [String] Start time for the calling window in the recipient's timezone (or timezone_overr
1899
1887
  #
1900
- # @param retry_delay_seconds [Integer] Delay between retry attempts in seconds. Default: 7200 (2 hours).
1888
+ # @param retry_delay_seconds [Integer] Delay between retry attempts in seconds. 0 retries as soon as the calling window
1901
1889
  end
1902
1890
  end
1903
1891
 
@@ -1959,17 +1947,6 @@ module Revox
1959
1947
  # @param total_leads [Float]
1960
1948
  end
1961
1949
 
1962
- # @see Revox::Models::CampaignCreateResponse::Campaign#paused_reason
1963
- module PausedReason
1964
- extend Revox::Internal::Type::Enum
1965
-
1966
- MANUAL = :manual
1967
- NO_PRESENCE = :no_presence
1968
-
1969
- # @!method self.values
1970
- # @return [Array<Symbol>]
1971
- end
1972
-
1973
1950
  # @see Revox::Models::CampaignCreateResponse::Campaign#row_stats
1974
1951
  class RowStats < Revox::Internal::Type::BaseModel
1975
1952
  # @!attribute calling
@@ -1987,6 +1964,11 @@ module Revox
1987
1964
  # @return [Float]
1988
1965
  required :failed, Float
1989
1966
 
1967
+ # @!attribute not_launched
1968
+ #
1969
+ # @return [Float]
1970
+ required :not_launched, Float
1971
+
1990
1972
  # @!attribute pending
1991
1973
  #
1992
1974
  # @return [Float]
@@ -1997,17 +1979,24 @@ module Revox
1997
1979
  # @return [Float]
1998
1980
  required :retry_, Float, api_name: :retry
1999
1981
 
1982
+ # @!attribute skipped
1983
+ #
1984
+ # @return [Float]
1985
+ required :skipped, Float
1986
+
2000
1987
  # @!attribute total
2001
1988
  #
2002
1989
  # @return [Float]
2003
1990
  required :total, Float
2004
1991
 
2005
- # @!method initialize(calling:, completed:, failed:, pending:, retry_:, total:)
1992
+ # @!method initialize(calling:, completed:, failed:, not_launched:, pending:, retry_:, skipped:, total:)
2006
1993
  # @param calling [Float]
2007
1994
  # @param completed [Float]
2008
1995
  # @param failed [Float]
1996
+ # @param not_launched [Float]
2009
1997
  # @param pending [Float]
2010
1998
  # @param retry_ [Float]
1999
+ # @param skipped [Float]
2011
2000
  # @param total [Float]
2012
2001
  end
2013
2002