revox 0.1.0 → 0.3.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +81 -0
- data/README.md +39 -14
- data/lib/revox/client.rb +23 -1
- data/lib/revox/internal/transport/base_client.rb +5 -0
- data/lib/revox/internal/type/base_model.rb +3 -3
- data/lib/revox/internal/util.rb +22 -7
- data/lib/revox/models/assistant_clone_params.rb +20 -0
- data/lib/revox/models/assistant_clone_response.rb +1594 -0
- data/lib/revox/models/assistant_create_params.rb +1038 -13
- data/lib/revox/models/assistant_create_response.rb +1071 -11
- data/lib/revox/models/assistant_list_response.rb +1070 -11
- data/lib/revox/models/assistant_retrieve_response.rb +1066 -11
- data/lib/revox/models/assistant_update_params.rb +1038 -13
- data/lib/revox/models/assistant_update_response.rb +1097 -12
- data/lib/revox/models/auth_status_retrieve_params.rb +14 -0
- data/lib/revox/models/auth_status_retrieve_response.rb +17 -0
- data/lib/revox/models/call_cancel_params.rb +20 -0
- data/lib/revox/models/call_cancel_response.rb +16 -0
- data/lib/revox/models/call_create_params.rb +1065 -13
- data/lib/revox/models/call_create_response.rb +1820 -98
- data/lib/revox/models/call_export_params.rb +205 -0
- data/lib/revox/models/call_export_response.rb +22 -0
- data/lib/revox/models/call_pause_params.rb +20 -0
- data/lib/revox/models/call_pause_response.rb +16 -0
- data/lib/revox/models/call_phone_history_params.rb +14 -0
- data/lib/revox/models/call_phone_history_response.rb +98 -0
- data/lib/revox/models/call_resume_params.rb +20 -0
- data/lib/revox/models/call_resume_response.rb +16 -0
- data/lib/revox/models/call_retrieve_response.rb +1822 -98
- data/lib/revox/models/call_search_params.rb +171 -0
- data/lib/revox/models/call_search_response.rb +3114 -0
- data/lib/revox/models/campaign_create_params.rb +67 -2
- data/lib/revox/models/campaign_create_response.rb +1314 -59
- data/lib/revox/models/campaign_get_rows_params.rb +1 -46
- data/lib/revox/models/campaign_get_rows_response.rb +1833 -115
- data/lib/revox/models/campaign_launch_params.rb +20 -0
- data/lib/revox/models/campaign_launch_response.rb +2030 -0
- data/lib/revox/models/campaign_list_response.rb +1312 -59
- data/lib/revox/models/campaign_pause_params.rb +20 -0
- data/lib/revox/models/campaign_pause_response.rb +16 -0
- data/lib/revox/models/campaign_resume_params.rb +20 -0
- data/lib/revox/models/campaign_resume_response.rb +16 -0
- data/lib/revox/models/campaign_retrieve_response.rb +1312 -56
- data/lib/revox/models/campaign_statistics_params.rb +20 -0
- data/lib/revox/models/campaign_statistics_response.rb +486 -0
- data/lib/revox/models/campaign_update_params.rb +234 -0
- data/lib/revox/models/campaign_update_response.rb +2030 -0
- data/lib/revox/models/phone_number_delete_params.rb +20 -0
- data/lib/revox/models/phone_number_delete_response.rb +16 -0
- data/lib/revox/models/phone_number_list_params.rb +14 -0
- data/lib/revox/models/phone_number_list_response.rb +1777 -0
- data/lib/revox/models/phone_number_update_params.rb +32 -0
- data/lib/revox/models/phone_number_update_response.rb +1777 -0
- data/lib/revox/models/user_retrieve_params.rb +14 -0
- data/lib/revox/models/user_retrieve_response.rb +99 -0
- data/lib/revox/models/voice_clone_params.rb +78 -0
- data/lib/revox/models/voice_clone_response.rb +40 -0
- data/lib/revox/models/voice_delete_params.rb +20 -0
- data/lib/revox/models/voice_delete_response.rb +16 -0
- data/lib/revox/models/voice_list_response.rb +55 -1
- data/lib/revox/models/voice_preview_params.rb +49 -1
- data/lib/revox/models.rb +36 -2
- data/lib/revox/resources/assistants.rb +137 -8
- data/lib/revox/resources/auth_status.rb +32 -0
- data/lib/revox/resources/call.rb +131 -15
- data/lib/revox/resources/campaigns.rb +143 -17
- data/lib/revox/resources/phone_numbers.rb +74 -0
- data/lib/revox/resources/users.rb +17 -3
- data/lib/revox/resources/voices.rb +66 -10
- data/lib/revox/version.rb +1 -1
- data/lib/revox.rb +40 -7
- data/rbi/revox/client.rbi +6 -0
- data/rbi/revox/internal/util.rbi +8 -0
- data/rbi/revox/models/assistant_clone_params.rbi +33 -0
- data/rbi/revox/models/assistant_clone_response.rbi +3341 -0
- data/rbi/revox/models/assistant_create_params.rbi +2138 -103
- data/rbi/revox/models/assistant_create_response.rbi +2454 -199
- data/rbi/revox/models/assistant_list_response.rbi +2448 -195
- data/rbi/revox/models/assistant_retrieve_response.rbi +2401 -210
- data/rbi/revox/models/assistant_update_params.rbi +2138 -103
- data/rbi/revox/models/assistant_update_response.rbi +2504 -198
- data/rbi/revox/models/auth_status_retrieve_params.rbi +27 -0
- data/rbi/revox/models/auth_status_retrieve_response.rbi +30 -0
- data/rbi/revox/models/call_cancel_params.rbi +33 -0
- data/rbi/revox/models/call_cancel_response.rbi +23 -0
- data/rbi/revox/models/call_create_params.rbi +2382 -225
- data/rbi/revox/models/call_create_response.rbi +4116 -384
- data/rbi/revox/models/call_export_params.rbi +456 -0
- data/rbi/revox/models/call_export_response.rbi +26 -0
- data/rbi/revox/models/call_pause_params.rbi +31 -0
- data/rbi/revox/models/call_pause_response.rbi +23 -0
- data/rbi/revox/models/call_phone_history_params.rbi +27 -0
- data/rbi/revox/models/call_phone_history_response.rbi +224 -0
- data/rbi/revox/models/call_resume_params.rbi +33 -0
- data/rbi/revox/models/call_resume_response.rbi +23 -0
- data/rbi/revox/models/call_retrieve_response.rbi +4133 -399
- data/rbi/revox/models/call_search_params.rbi +288 -0
- data/rbi/revox/models/call_search_response.rbi +6593 -0
- data/rbi/revox/models/campaign_create_params.rbi +136 -0
- data/rbi/revox/models/campaign_create_response.rbi +2911 -231
- data/rbi/revox/models/campaign_get_rows_params.rbi +2 -82
- data/rbi/revox/models/campaign_get_rows_response.rbi +4146 -409
- data/rbi/revox/models/campaign_launch_params.rbi +33 -0
- data/rbi/revox/models/campaign_launch_response.rbi +4170 -0
- data/rbi/revox/models/campaign_list_response.rbi +2904 -230
- data/rbi/revox/models/campaign_pause_params.rbi +33 -0
- data/rbi/revox/models/campaign_pause_response.rbi +23 -0
- data/rbi/revox/models/campaign_resume_params.rbi +33 -0
- data/rbi/revox/models/campaign_resume_response.rbi +23 -0
- data/rbi/revox/models/campaign_retrieve_response.rbi +2911 -231
- data/rbi/revox/models/campaign_statistics_params.rbi +33 -0
- data/rbi/revox/models/campaign_statistics_response.rbi +1011 -0
- data/rbi/revox/models/campaign_update_params.rbi +431 -0
- data/rbi/revox/models/campaign_update_response.rbi +4170 -0
- data/rbi/revox/models/phone_number_delete_params.rbi +33 -0
- data/rbi/revox/models/phone_number_delete_response.rbi +26 -0
- data/rbi/revox/models/phone_number_list_params.rbi +27 -0
- data/rbi/revox/models/phone_number_list_response.rbi +3680 -0
- data/rbi/revox/models/phone_number_update_params.rbi +53 -0
- data/rbi/revox/models/phone_number_update_response.rbi +3683 -0
- data/rbi/revox/models/user_retrieve_params.rbi +27 -0
- data/rbi/revox/models/user_retrieve_response.rbi +140 -0
- data/rbi/revox/models/voice_clone_params.rbi +141 -0
- data/rbi/revox/models/voice_clone_response.rbi +53 -0
- data/rbi/revox/models/voice_delete_params.rbi +33 -0
- data/rbi/revox/models/voice_delete_response.rbi +23 -0
- data/rbi/revox/models/voice_list_response.rbi +105 -3
- data/rbi/revox/models/voice_preview_params.rbi +69 -0
- data/rbi/revox/models.rbi +36 -2
- data/rbi/revox/resources/assistants.rbi +296 -8
- data/rbi/revox/resources/auth_status.rbi +21 -0
- data/rbi/revox/resources/call.rbi +92 -6
- data/rbi/revox/resources/campaigns.rbi +106 -19
- data/rbi/revox/resources/phone_numbers.rbi +43 -0
- data/rbi/revox/resources/users.rbi +8 -2
- data/rbi/revox/resources/voices.rbi +56 -9
- data/sig/revox/client.rbs +4 -0
- data/sig/revox/internal/util.rbs +4 -0
- data/sig/revox/models/assistant_clone_params.rbs +20 -0
- data/sig/revox/models/assistant_clone_response.rbs +1318 -0
- data/sig/revox/models/assistant_create_params.rbs +844 -11
- data/sig/revox/models/assistant_create_response.rbs +860 -3
- data/sig/revox/models/assistant_list_response.rbs +860 -3
- data/sig/revox/models/assistant_retrieve_response.rbs +859 -3
- data/sig/revox/models/assistant_update_params.rbs +844 -11
- data/sig/revox/models/assistant_update_response.rbs +886 -6
- data/sig/revox/models/auth_status_retrieve_params.rbs +15 -0
- data/sig/revox/models/auth_status_retrieve_response.rbs +13 -0
- data/sig/revox/models/call_cancel_params.rbs +20 -0
- data/sig/revox/models/call_cancel_response.rbs +13 -0
- data/sig/revox/models/call_create_params.rbs +847 -13
- data/sig/revox/models/call_create_response.rbs +1519 -34
- data/sig/revox/models/call_export_params.rbs +234 -0
- data/sig/revox/models/call_export_response.rbs +15 -0
- data/sig/revox/models/call_pause_params.rbs +20 -0
- data/sig/revox/models/call_pause_response.rbs +13 -0
- data/sig/revox/models/call_phone_history_params.rbs +15 -0
- data/sig/revox/models/call_phone_history_response.rbs +102 -0
- data/sig/revox/models/call_resume_params.rbs +20 -0
- data/sig/revox/models/call_resume_response.rbs +13 -0
- data/sig/revox/models/call_retrieve_response.rbs +1519 -34
- data/sig/revox/models/call_search_params.rbs +198 -0
- data/sig/revox/models/call_search_response.rbs +2654 -0
- data/sig/revox/models/campaign_create_params.rbs +54 -0
- data/sig/revox/models/campaign_create_response.rbs +1034 -6
- data/sig/revox/models/campaign_get_rows_params.rbs +2 -64
- data/sig/revox/models/campaign_get_rows_response.rbs +1527 -54
- data/sig/revox/models/campaign_launch_params.rbs +20 -0
- data/sig/revox/models/campaign_launch_response.rbs +1694 -0
- data/sig/revox/models/campaign_list_response.rbs +1034 -6
- data/sig/revox/models/campaign_pause_params.rbs +20 -0
- data/sig/revox/models/campaign_pause_response.rbs +13 -0
- data/sig/revox/models/campaign_resume_params.rbs +20 -0
- data/sig/revox/models/campaign_resume_response.rbs +13 -0
- data/sig/revox/models/campaign_retrieve_response.rbs +1034 -6
- data/sig/revox/models/campaign_statistics_params.rbs +20 -0
- data/sig/revox/models/campaign_statistics_response.rbs +458 -0
- data/sig/revox/models/campaign_update_params.rbs +203 -0
- data/sig/revox/models/campaign_update_response.rbs +1694 -0
- data/sig/revox/models/phone_number_delete_params.rbs +20 -0
- data/sig/revox/models/phone_number_delete_response.rbs +13 -0
- data/sig/revox/models/phone_number_list_params.rbs +15 -0
- data/sig/revox/models/phone_number_list_response.rbs +1462 -0
- data/sig/revox/models/phone_number_update_params.rbs +32 -0
- data/sig/revox/models/phone_number_update_response.rbs +1460 -0
- data/sig/revox/models/user_retrieve_params.rbs +14 -0
- data/sig/revox/models/user_retrieve_response.rbs +71 -0
- data/sig/revox/models/voice_clone_params.rbs +79 -0
- data/sig/revox/models/voice_clone_response.rbs +40 -0
- data/sig/revox/models/voice_delete_params.rbs +20 -0
- data/sig/revox/models/voice_delete_response.rbs +13 -0
- data/sig/revox/models/voice_list_response.rbs +45 -3
- data/sig/revox/models/voice_preview_params.rbs +42 -1
- data/sig/revox/models.rbs +36 -2
- data/sig/revox/resources/assistants.rbs +61 -2
- data/sig/revox/resources/auth_status.rbs +11 -0
- data/sig/revox/resources/call.rbs +41 -3
- data/sig/revox/resources/campaigns.rbs +35 -5
- data/sig/revox/resources/phone_numbers.rbs +23 -0
- data/sig/revox/resources/users.rbs +3 -1
- data/sig/revox/resources/voices.rbs +17 -0
- metadata +122 -23
- data/lib/revox/models/call_list_params.rb +0 -52
- data/lib/revox/models/call_list_response.rb +0 -259
- data/lib/revox/models/users/me_retrieve_params.rb +0 -16
- data/lib/revox/models/users/me_retrieve_response.rb +0 -89
- data/lib/revox/models/users/me_update_params.rb +0 -22
- data/lib/revox/models/users/me_update_response.rb +0 -89
- data/lib/revox/resources/users/me.rb +0 -55
- data/rbi/revox/models/call_list_params.rbi +0 -94
- data/rbi/revox/models/call_list_response.rbi +0 -563
- data/rbi/revox/models/users/me_retrieve_params.rbi +0 -29
- data/rbi/revox/models/users/me_retrieve_response.rbi +0 -139
- data/rbi/revox/models/users/me_update_params.rbi +0 -43
- data/rbi/revox/models/users/me_update_response.rbi +0 -139
- data/rbi/revox/resources/users/me.rbi +0 -33
- data/sig/revox/models/call_list_params.rbs +0 -63
- data/sig/revox/models/call_list_response.rbs +0 -226
- data/sig/revox/models/users/me_retrieve_params.rbs +0 -16
- data/sig/revox/models/users/me_retrieve_response.rbs +0 -70
- data/sig/revox/models/users/me_update_params.rbs +0 -28
- data/sig/revox/models/users/me_update_response.rbs +0 -70
- data/sig/revox/resources/users/me.rbs +0 -18
|
@@ -68,9 +68,19 @@ module Revox
|
|
|
68
68
|
end
|
|
69
69
|
attr_accessor :status
|
|
70
70
|
|
|
71
|
+
sig do
|
|
72
|
+
returns(
|
|
73
|
+
Revox::Models::CampaignCreateResponse::Campaign::Type::TaggedSymbol
|
|
74
|
+
)
|
|
75
|
+
end
|
|
76
|
+
attr_accessor :type
|
|
77
|
+
|
|
71
78
|
sig { returns(T.anything) }
|
|
72
79
|
attr_accessor :updated_at
|
|
73
80
|
|
|
81
|
+
sig { returns(T.nilable(String)) }
|
|
82
|
+
attr_accessor :active_takeover_call_id
|
|
83
|
+
|
|
74
84
|
sig do
|
|
75
85
|
returns(
|
|
76
86
|
T.nilable(
|
|
@@ -109,12 +119,64 @@ module Revox
|
|
|
109
119
|
end
|
|
110
120
|
attr_writer :call_retry_config
|
|
111
121
|
|
|
122
|
+
# A member of the current organization.
|
|
123
|
+
sig do
|
|
124
|
+
returns(
|
|
125
|
+
T.nilable(
|
|
126
|
+
Revox::Models::CampaignCreateResponse::Campaign::CreatedBy
|
|
127
|
+
)
|
|
128
|
+
)
|
|
129
|
+
end
|
|
130
|
+
attr_reader :created_by
|
|
131
|
+
|
|
132
|
+
sig do
|
|
133
|
+
params(
|
|
134
|
+
created_by:
|
|
135
|
+
T.nilable(
|
|
136
|
+
Revox::Models::CampaignCreateResponse::Campaign::CreatedBy::OrHash
|
|
137
|
+
)
|
|
138
|
+
).void
|
|
139
|
+
end
|
|
140
|
+
attr_writer :created_by
|
|
141
|
+
|
|
112
142
|
sig { returns(T.nilable(String)) }
|
|
113
143
|
attr_accessor :from_phone_number
|
|
114
144
|
|
|
145
|
+
sig do
|
|
146
|
+
returns(
|
|
147
|
+
T.nilable(
|
|
148
|
+
Revox::Models::CampaignCreateResponse::Campaign::FunnelStats
|
|
149
|
+
)
|
|
150
|
+
)
|
|
151
|
+
end
|
|
152
|
+
attr_reader :funnel_stats
|
|
153
|
+
|
|
154
|
+
sig do
|
|
155
|
+
params(
|
|
156
|
+
funnel_stats:
|
|
157
|
+
Revox::Models::CampaignCreateResponse::Campaign::FunnelStats::OrHash
|
|
158
|
+
).void
|
|
159
|
+
end
|
|
160
|
+
attr_writer :funnel_stats
|
|
161
|
+
|
|
115
162
|
sig { returns(T.nilable(Float)) }
|
|
116
163
|
attr_accessor :max_concurrent_calls
|
|
117
164
|
|
|
165
|
+
sig do
|
|
166
|
+
returns(
|
|
167
|
+
T.nilable(
|
|
168
|
+
Revox::Models::CampaignCreateResponse::Campaign::PausedReason::TaggedSymbol
|
|
169
|
+
)
|
|
170
|
+
)
|
|
171
|
+
end
|
|
172
|
+
attr_accessor :paused_reason
|
|
173
|
+
|
|
174
|
+
sig { returns(T.nilable(Float)) }
|
|
175
|
+
attr_reader :present_count
|
|
176
|
+
|
|
177
|
+
sig { params(present_count: Float).void }
|
|
178
|
+
attr_writer :present_count
|
|
179
|
+
|
|
118
180
|
sig do
|
|
119
181
|
returns(
|
|
120
182
|
T.nilable(Revox::Models::CampaignCreateResponse::Campaign::RowStats)
|
|
@@ -136,6 +198,24 @@ module Revox
|
|
|
136
198
|
sig { params(scheduled_at: T.anything).void }
|
|
137
199
|
attr_writer :scheduled_at
|
|
138
200
|
|
|
201
|
+
# The status of the structured output extraction.
|
|
202
|
+
sig do
|
|
203
|
+
returns(
|
|
204
|
+
T.nilable(
|
|
205
|
+
Revox::Models::CampaignCreateResponse::Campaign::StructuredOutputExtraction::TaggedSymbol
|
|
206
|
+
)
|
|
207
|
+
)
|
|
208
|
+
end
|
|
209
|
+
attr_reader :structured_output_extraction
|
|
210
|
+
|
|
211
|
+
sig do
|
|
212
|
+
params(
|
|
213
|
+
structured_output_extraction:
|
|
214
|
+
Revox::Models::CampaignCreateResponse::Campaign::StructuredOutputExtraction::OrSymbol
|
|
215
|
+
).void
|
|
216
|
+
end
|
|
217
|
+
attr_writer :structured_output_extraction
|
|
218
|
+
|
|
139
219
|
sig do
|
|
140
220
|
params(
|
|
141
221
|
id: String,
|
|
@@ -146,18 +226,34 @@ module Revox
|
|
|
146
226
|
organization_id: String,
|
|
147
227
|
status:
|
|
148
228
|
Revox::Models::CampaignCreateResponse::Campaign::Status::OrSymbol,
|
|
229
|
+
type:
|
|
230
|
+
Revox::Models::CampaignCreateResponse::Campaign::Type::OrSymbol,
|
|
149
231
|
updated_at: T.anything,
|
|
232
|
+
active_takeover_call_id: T.nilable(String),
|
|
150
233
|
assistant:
|
|
151
234
|
Revox::Models::CampaignCreateResponse::Campaign::Assistant::OrHash,
|
|
152
235
|
call_retry_config:
|
|
153
236
|
T.nilable(
|
|
154
237
|
Revox::Models::CampaignCreateResponse::Campaign::CallRetryConfig::OrHash
|
|
155
238
|
),
|
|
239
|
+
created_by:
|
|
240
|
+
T.nilable(
|
|
241
|
+
Revox::Models::CampaignCreateResponse::Campaign::CreatedBy::OrHash
|
|
242
|
+
),
|
|
156
243
|
from_phone_number: T.nilable(String),
|
|
244
|
+
funnel_stats:
|
|
245
|
+
Revox::Models::CampaignCreateResponse::Campaign::FunnelStats::OrHash,
|
|
157
246
|
max_concurrent_calls: T.nilable(Float),
|
|
247
|
+
paused_reason:
|
|
248
|
+
T.nilable(
|
|
249
|
+
Revox::Models::CampaignCreateResponse::Campaign::PausedReason::OrSymbol
|
|
250
|
+
),
|
|
251
|
+
present_count: Float,
|
|
158
252
|
row_stats:
|
|
159
253
|
Revox::Models::CampaignCreateResponse::Campaign::RowStats::OrHash,
|
|
160
|
-
scheduled_at: T.anything
|
|
254
|
+
scheduled_at: T.anything,
|
|
255
|
+
structured_output_extraction:
|
|
256
|
+
Revox::Models::CampaignCreateResponse::Campaign::StructuredOutputExtraction::OrSymbol
|
|
161
257
|
).returns(T.attached_class)
|
|
162
258
|
end
|
|
163
259
|
def self.new(
|
|
@@ -168,15 +264,24 @@ module Revox
|
|
|
168
264
|
name:,
|
|
169
265
|
organization_id:,
|
|
170
266
|
status:,
|
|
267
|
+
type:,
|
|
171
268
|
updated_at:,
|
|
269
|
+
active_takeover_call_id: nil,
|
|
172
270
|
assistant: nil,
|
|
173
271
|
# Configuration for call retry behavior including time windows, delays, and max
|
|
174
272
|
# iterations. If not provided, defaults will be used.
|
|
175
273
|
call_retry_config: nil,
|
|
274
|
+
# A member of the current organization.
|
|
275
|
+
created_by: nil,
|
|
176
276
|
from_phone_number: nil,
|
|
277
|
+
funnel_stats: nil,
|
|
177
278
|
max_concurrent_calls: nil,
|
|
279
|
+
paused_reason: nil,
|
|
280
|
+
present_count: nil,
|
|
178
281
|
row_stats: nil,
|
|
179
|
-
scheduled_at: nil
|
|
282
|
+
scheduled_at: nil,
|
|
283
|
+
# The status of the structured output extraction.
|
|
284
|
+
structured_output_extraction: nil
|
|
180
285
|
)
|
|
181
286
|
end
|
|
182
287
|
|
|
@@ -191,18 +296,34 @@ module Revox
|
|
|
191
296
|
organization_id: String,
|
|
192
297
|
status:
|
|
193
298
|
Revox::Models::CampaignCreateResponse::Campaign::Status::TaggedSymbol,
|
|
299
|
+
type:
|
|
300
|
+
Revox::Models::CampaignCreateResponse::Campaign::Type::TaggedSymbol,
|
|
194
301
|
updated_at: T.anything,
|
|
302
|
+
active_takeover_call_id: T.nilable(String),
|
|
195
303
|
assistant:
|
|
196
304
|
Revox::Models::CampaignCreateResponse::Campaign::Assistant,
|
|
197
305
|
call_retry_config:
|
|
198
306
|
T.nilable(
|
|
199
307
|
Revox::Models::CampaignCreateResponse::Campaign::CallRetryConfig
|
|
200
308
|
),
|
|
309
|
+
created_by:
|
|
310
|
+
T.nilable(
|
|
311
|
+
Revox::Models::CampaignCreateResponse::Campaign::CreatedBy
|
|
312
|
+
),
|
|
201
313
|
from_phone_number: T.nilable(String),
|
|
314
|
+
funnel_stats:
|
|
315
|
+
Revox::Models::CampaignCreateResponse::Campaign::FunnelStats,
|
|
202
316
|
max_concurrent_calls: T.nilable(Float),
|
|
317
|
+
paused_reason:
|
|
318
|
+
T.nilable(
|
|
319
|
+
Revox::Models::CampaignCreateResponse::Campaign::PausedReason::TaggedSymbol
|
|
320
|
+
),
|
|
321
|
+
present_count: Float,
|
|
203
322
|
row_stats:
|
|
204
323
|
Revox::Models::CampaignCreateResponse::Campaign::RowStats,
|
|
205
|
-
scheduled_at: T.anything
|
|
324
|
+
scheduled_at: T.anything,
|
|
325
|
+
structured_output_extraction:
|
|
326
|
+
Revox::Models::CampaignCreateResponse::Campaign::StructuredOutputExtraction::TaggedSymbol
|
|
206
327
|
}
|
|
207
328
|
)
|
|
208
329
|
end
|
|
@@ -253,6 +374,40 @@ module Revox
|
|
|
253
374
|
end
|
|
254
375
|
end
|
|
255
376
|
|
|
377
|
+
module Type
|
|
378
|
+
extend Revox::Internal::Type::Enum
|
|
379
|
+
|
|
380
|
+
TaggedSymbol =
|
|
381
|
+
T.type_alias do
|
|
382
|
+
T.all(
|
|
383
|
+
Symbol,
|
|
384
|
+
Revox::Models::CampaignCreateResponse::Campaign::Type
|
|
385
|
+
)
|
|
386
|
+
end
|
|
387
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
388
|
+
|
|
389
|
+
REGULAR =
|
|
390
|
+
T.let(
|
|
391
|
+
:regular,
|
|
392
|
+
Revox::Models::CampaignCreateResponse::Campaign::Type::TaggedSymbol
|
|
393
|
+
)
|
|
394
|
+
JUMP_IN =
|
|
395
|
+
T.let(
|
|
396
|
+
:jump_in,
|
|
397
|
+
Revox::Models::CampaignCreateResponse::Campaign::Type::TaggedSymbol
|
|
398
|
+
)
|
|
399
|
+
|
|
400
|
+
sig do
|
|
401
|
+
override.returns(
|
|
402
|
+
T::Array[
|
|
403
|
+
Revox::Models::CampaignCreateResponse::Campaign::Type::TaggedSymbol
|
|
404
|
+
]
|
|
405
|
+
)
|
|
406
|
+
end
|
|
407
|
+
def self.values
|
|
408
|
+
end
|
|
409
|
+
end
|
|
410
|
+
|
|
256
411
|
class Assistant < Revox::Internal::Type::BaseModel
|
|
257
412
|
OrHash =
|
|
258
413
|
T.type_alias do
|
|
@@ -265,8 +420,25 @@ module Revox
|
|
|
265
420
|
sig { returns(String) }
|
|
266
421
|
attr_accessor :id
|
|
267
422
|
|
|
268
|
-
#
|
|
269
|
-
#
|
|
423
|
+
# Which call outcomes trigger the after-call SMS. When empty or null, no
|
|
424
|
+
# after-call SMS is sent. Use "none" when outcome is null.
|
|
425
|
+
sig do
|
|
426
|
+
returns(
|
|
427
|
+
T.nilable(
|
|
428
|
+
T::Array[
|
|
429
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
430
|
+
]
|
|
431
|
+
)
|
|
432
|
+
)
|
|
433
|
+
end
|
|
434
|
+
attr_accessor :after_call_sms_outcomes
|
|
435
|
+
|
|
436
|
+
# Prompt / instructions for the after-call SMS. Supports {{variable}}
|
|
437
|
+
# placeholders. When null, no after-call SMS is sent.
|
|
438
|
+
sig { returns(T.nilable(String)) }
|
|
439
|
+
attr_accessor :after_call_sms_prompt
|
|
440
|
+
|
|
441
|
+
# Ambient background sound to play during the call. null disables it.
|
|
270
442
|
sig do
|
|
271
443
|
returns(
|
|
272
444
|
T.nilable(
|
|
@@ -276,6 +448,10 @@ module Revox
|
|
|
276
448
|
end
|
|
277
449
|
attr_accessor :background_sound
|
|
278
450
|
|
|
451
|
+
# Volume of the ambient background sound (0 = silent, 1 = max).
|
|
452
|
+
sig { returns(Float) }
|
|
453
|
+
attr_accessor :background_sound_volume
|
|
454
|
+
|
|
279
455
|
sig do
|
|
280
456
|
returns(
|
|
281
457
|
T.nilable(
|
|
@@ -316,9 +492,51 @@ module Revox
|
|
|
316
492
|
end
|
|
317
493
|
attr_writer :call_retry_config
|
|
318
494
|
|
|
495
|
+
# Optional Cartesia pronunciation dictionary ID linked to this assistant.
|
|
496
|
+
sig { returns(T.nilable(String)) }
|
|
497
|
+
attr_accessor :cartesia_dictionary_pronunciation_id
|
|
498
|
+
|
|
319
499
|
sig { returns(T.anything) }
|
|
320
500
|
attr_accessor :created_at
|
|
321
501
|
|
|
502
|
+
sig do
|
|
503
|
+
returns(
|
|
504
|
+
T.nilable(
|
|
505
|
+
T::Array[
|
|
506
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool
|
|
507
|
+
]
|
|
508
|
+
)
|
|
509
|
+
)
|
|
510
|
+
end
|
|
511
|
+
attr_accessor :custom_tools
|
|
512
|
+
|
|
513
|
+
# Email address(es) to receive notifications when a call ends with a matching
|
|
514
|
+
# outcome. Accepts a single email or a comma-separated list (e.g. "alice@x.com,
|
|
515
|
+
# bob@y.com").
|
|
516
|
+
sig { returns(T.nilable(String)) }
|
|
517
|
+
attr_accessor :email_notification_address
|
|
518
|
+
|
|
519
|
+
# The language used for the notification email content. One of "en" or "fr".
|
|
520
|
+
sig do
|
|
521
|
+
returns(
|
|
522
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::EmailNotificationLanguage::TaggedSymbol
|
|
523
|
+
)
|
|
524
|
+
end
|
|
525
|
+
attr_accessor :email_notification_language
|
|
526
|
+
|
|
527
|
+
# Which call outcomes trigger an email notification. E.g. ["interested",
|
|
528
|
+
# "completed", "none"]. Use "none" when outcome is null.
|
|
529
|
+
sig do
|
|
530
|
+
returns(
|
|
531
|
+
T.nilable(
|
|
532
|
+
T::Array[
|
|
533
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
534
|
+
]
|
|
535
|
+
)
|
|
536
|
+
)
|
|
537
|
+
end
|
|
538
|
+
attr_accessor :email_notification_outcomes
|
|
539
|
+
|
|
322
540
|
sig { returns(T.nilable(String)) }
|
|
323
541
|
attr_accessor :end_of_call_sentence
|
|
324
542
|
|
|
@@ -336,6 +554,22 @@ module Revox
|
|
|
336
554
|
end
|
|
337
555
|
attr_accessor :first_sentence_mode
|
|
338
556
|
|
|
557
|
+
# Override the default outbound phone number for calls placed with this assistant.
|
|
558
|
+
# When null, the organization's default phone number is used.
|
|
559
|
+
sig { returns(T.nilable(String)) }
|
|
560
|
+
attr_accessor :from_phone_number
|
|
561
|
+
|
|
562
|
+
# Warm or cold transfer when transfer_phone_number is set; null when transfer is
|
|
563
|
+
# not configured.
|
|
564
|
+
sig do
|
|
565
|
+
returns(
|
|
566
|
+
T.nilable(
|
|
567
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::HumanTransferMode::TaggedSymbol
|
|
568
|
+
)
|
|
569
|
+
)
|
|
570
|
+
end
|
|
571
|
+
attr_accessor :human_transfer_mode
|
|
572
|
+
|
|
339
573
|
# Enable IVR navigation tools. When enabled, the assistant can send DTMF tones and
|
|
340
574
|
# skip turns to navigate phone menus.
|
|
341
575
|
sig { returns(T::Boolean) }
|
|
@@ -348,20 +582,99 @@ module Revox
|
|
|
348
582
|
end
|
|
349
583
|
attr_accessor :llm_model
|
|
350
584
|
|
|
585
|
+
# Public URL of the brand logo shown on the assistant's demo page. Null when
|
|
586
|
+
# unset.
|
|
587
|
+
sig { returns(T.nilable(String)) }
|
|
588
|
+
attr_accessor :logo_url
|
|
589
|
+
|
|
351
590
|
# The maximum duration of the call in seconds. This is the maximum time the call
|
|
352
591
|
# will be allowed to run.
|
|
353
592
|
sig { returns(Float) }
|
|
354
593
|
attr_accessor :max_call_duration_secs
|
|
355
594
|
|
|
595
|
+
# Optional message the agent will say, without being interruptible, when the call
|
|
596
|
+
# reaches its max duration. Kept short so it fits inside the farewell buffer. If
|
|
597
|
+
# null, the call ends silently.
|
|
598
|
+
sig { returns(T.nilable(String)) }
|
|
599
|
+
attr_accessor :max_duration_end_message
|
|
600
|
+
|
|
356
601
|
sig { returns(String) }
|
|
357
602
|
attr_accessor :name
|
|
358
603
|
|
|
359
604
|
sig { returns(String) }
|
|
360
605
|
attr_accessor :organization_id
|
|
361
606
|
|
|
607
|
+
sig do
|
|
608
|
+
returns(
|
|
609
|
+
T.nilable(
|
|
610
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Position
|
|
611
|
+
)
|
|
612
|
+
)
|
|
613
|
+
end
|
|
614
|
+
attr_reader :position
|
|
615
|
+
|
|
616
|
+
sig do
|
|
617
|
+
params(
|
|
618
|
+
position:
|
|
619
|
+
T.nilable(
|
|
620
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Position::OrHash
|
|
621
|
+
)
|
|
622
|
+
).void
|
|
623
|
+
end
|
|
624
|
+
attr_writer :position
|
|
625
|
+
|
|
362
626
|
sig { returns(String) }
|
|
363
627
|
attr_accessor :prompt
|
|
364
628
|
|
|
629
|
+
sig do
|
|
630
|
+
returns(
|
|
631
|
+
T.nilable(
|
|
632
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::PromptFlow
|
|
633
|
+
)
|
|
634
|
+
)
|
|
635
|
+
end
|
|
636
|
+
attr_reader :prompt_flow
|
|
637
|
+
|
|
638
|
+
sig do
|
|
639
|
+
params(
|
|
640
|
+
prompt_flow:
|
|
641
|
+
T.nilable(
|
|
642
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::PromptFlow::OrHash
|
|
643
|
+
)
|
|
644
|
+
).void
|
|
645
|
+
end
|
|
646
|
+
attr_writer :prompt_flow
|
|
647
|
+
|
|
648
|
+
sig do
|
|
649
|
+
returns(
|
|
650
|
+
T.nilable(
|
|
651
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Slack
|
|
652
|
+
)
|
|
653
|
+
)
|
|
654
|
+
end
|
|
655
|
+
attr_reader :slack
|
|
656
|
+
|
|
657
|
+
sig do
|
|
658
|
+
params(
|
|
659
|
+
slack:
|
|
660
|
+
T.nilable(
|
|
661
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Slack::OrHash
|
|
662
|
+
)
|
|
663
|
+
).void
|
|
664
|
+
end
|
|
665
|
+
attr_writer :slack
|
|
666
|
+
|
|
667
|
+
# Enable SMS tool during calls. When enabled, the agent can send SMS messages to
|
|
668
|
+
# the user on the call.
|
|
669
|
+
sig { returns(T::Boolean) }
|
|
670
|
+
attr_accessor :sms_enabled
|
|
671
|
+
|
|
672
|
+
# Hardcoded SMS template to send during calls. When set, this exact text is sent
|
|
673
|
+
# instead of letting the agent generate the message. Supports {{variable}}
|
|
674
|
+
# placeholders.
|
|
675
|
+
sig { returns(T.nilable(String)) }
|
|
676
|
+
attr_accessor :sms_template
|
|
677
|
+
|
|
365
678
|
# The structured output config to use for the call. This is used to extract the
|
|
366
679
|
# data from the call (like email, name, company name, etc.).
|
|
367
680
|
sig do
|
|
@@ -375,10 +688,73 @@ module Revox
|
|
|
375
688
|
end
|
|
376
689
|
attr_accessor :structured_output_config
|
|
377
690
|
|
|
691
|
+
# Custom prompt for structured data extraction. If not provided, a default prompt
|
|
692
|
+
# is used. Available variables: {{transcript}}, {{call_direction}},
|
|
693
|
+
# {{user_phone_number}}, {{agent_phone_number}}.
|
|
694
|
+
sig { returns(T.nilable(String)) }
|
|
695
|
+
attr_accessor :structured_output_prompt
|
|
696
|
+
|
|
697
|
+
# Assistant-level speech-to-text context: structured `general` key/value pairs
|
|
698
|
+
# plus a list of domain `terms`. Prompt-derived context is merged in without
|
|
699
|
+
# replacing existing entries.
|
|
700
|
+
sig do
|
|
701
|
+
returns(
|
|
702
|
+
T.nilable(
|
|
703
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::SttContext
|
|
704
|
+
)
|
|
705
|
+
)
|
|
706
|
+
end
|
|
707
|
+
attr_reader :stt_context
|
|
708
|
+
|
|
709
|
+
sig do
|
|
710
|
+
params(
|
|
711
|
+
stt_context:
|
|
712
|
+
T.nilable(
|
|
713
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::SttContext::OrHash
|
|
714
|
+
)
|
|
715
|
+
).void
|
|
716
|
+
end
|
|
717
|
+
attr_writer :stt_context
|
|
718
|
+
|
|
719
|
+
# Transcriber (speech-to-text) model used for the assistant.
|
|
720
|
+
sig do
|
|
721
|
+
returns(
|
|
722
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::SttModel::TaggedSymbol
|
|
723
|
+
)
|
|
724
|
+
end
|
|
725
|
+
attr_accessor :stt_model
|
|
726
|
+
|
|
727
|
+
# Audio clip to play while the agent is processing a response. One of the built-in
|
|
728
|
+
# LiveKit audio clips; null disables it.
|
|
729
|
+
sig do
|
|
730
|
+
returns(
|
|
731
|
+
T.nilable(
|
|
732
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::ThinkingSound::TaggedSymbol
|
|
733
|
+
)
|
|
734
|
+
)
|
|
735
|
+
end
|
|
736
|
+
attr_accessor :thinking_sound
|
|
737
|
+
|
|
738
|
+
# Probability [0..1] that the thinking sound plays on any given turn; otherwise
|
|
739
|
+
# the agent is silent while thinking.
|
|
740
|
+
sig { returns(Float) }
|
|
741
|
+
attr_accessor :thinking_sound_probability
|
|
742
|
+
|
|
743
|
+
# Volume of the thinking sound (0 = silent, 1 = max).
|
|
744
|
+
sig { returns(Float) }
|
|
745
|
+
attr_accessor :thinking_sound_volume
|
|
746
|
+
|
|
378
747
|
# Phone number to transfer calls to when users request to speak to a human agent.
|
|
379
748
|
sig { returns(T.nilable(String)) }
|
|
380
749
|
attr_accessor :transfer_phone_number
|
|
381
750
|
|
|
751
|
+
sig do
|
|
752
|
+
returns(
|
|
753
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Type::TaggedSymbol
|
|
754
|
+
)
|
|
755
|
+
end
|
|
756
|
+
attr_accessor :type
|
|
757
|
+
|
|
382
758
|
sig { returns(T.anything) }
|
|
383
759
|
attr_accessor :updated_at
|
|
384
760
|
|
|
@@ -406,10 +782,59 @@ module Revox
|
|
|
406
782
|
sig { returns(T.nilable(String)) }
|
|
407
783
|
attr_accessor :voicemail_message
|
|
408
784
|
|
|
785
|
+
# Prompt / instructions for the voicemail SMS. Supports {{variable}} placeholders.
|
|
786
|
+
# When null, no SMS is sent on voicemail.
|
|
787
|
+
sig { returns(T.nilable(String)) }
|
|
788
|
+
attr_accessor :voicemail_sms_prompt
|
|
789
|
+
|
|
790
|
+
# Warm transfer only: instructions for the supervisor handoff summary; null when
|
|
791
|
+
# not configured or cold transfer.
|
|
792
|
+
sig { returns(T.nilable(String)) }
|
|
793
|
+
attr_accessor :warm_transfer_summary_instructions
|
|
794
|
+
|
|
409
795
|
# The webhook URL to call when the call is completed.
|
|
410
796
|
sig { returns(T.nilable(String)) }
|
|
411
797
|
attr_accessor :webhook_url
|
|
412
798
|
|
|
799
|
+
sig do
|
|
800
|
+
returns(
|
|
801
|
+
T.nilable(
|
|
802
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Zoho
|
|
803
|
+
)
|
|
804
|
+
)
|
|
805
|
+
end
|
|
806
|
+
attr_reader :zoho
|
|
807
|
+
|
|
808
|
+
sig do
|
|
809
|
+
params(
|
|
810
|
+
zoho:
|
|
811
|
+
T.nilable(
|
|
812
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Zoho::OrHash
|
|
813
|
+
)
|
|
814
|
+
).void
|
|
815
|
+
end
|
|
816
|
+
attr_writer :zoho
|
|
817
|
+
|
|
818
|
+
# The user who created the assistant.
|
|
819
|
+
sig do
|
|
820
|
+
returns(
|
|
821
|
+
T.nilable(
|
|
822
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CreatedBy
|
|
823
|
+
)
|
|
824
|
+
)
|
|
825
|
+
end
|
|
826
|
+
attr_reader :created_by
|
|
827
|
+
|
|
828
|
+
sig do
|
|
829
|
+
params(
|
|
830
|
+
created_by:
|
|
831
|
+
T.nilable(
|
|
832
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CreatedBy::OrHash
|
|
833
|
+
)
|
|
834
|
+
).void
|
|
835
|
+
end
|
|
836
|
+
attr_writer :created_by
|
|
837
|
+
|
|
413
838
|
sig do
|
|
414
839
|
returns(
|
|
415
840
|
T.nilable(
|
|
@@ -431,6 +856,12 @@ module Revox
|
|
|
431
856
|
end
|
|
432
857
|
attr_writer :faq_items
|
|
433
858
|
|
|
859
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
860
|
+
attr_reader :is_realestate_assistant
|
|
861
|
+
|
|
862
|
+
sig { params(is_realestate_assistant: T::Boolean).void }
|
|
863
|
+
attr_writer :is_realestate_assistant
|
|
864
|
+
|
|
434
865
|
sig { returns(T.nilable(Float)) }
|
|
435
866
|
attr_reader :pending_faq_count
|
|
436
867
|
|
|
@@ -440,10 +871,18 @@ module Revox
|
|
|
440
871
|
sig do
|
|
441
872
|
params(
|
|
442
873
|
id: String,
|
|
874
|
+
after_call_sms_outcomes:
|
|
875
|
+
T.nilable(
|
|
876
|
+
T::Array[
|
|
877
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::AfterCallSMSOutcome::OrSymbol
|
|
878
|
+
]
|
|
879
|
+
),
|
|
880
|
+
after_call_sms_prompt: T.nilable(String),
|
|
443
881
|
background_sound:
|
|
444
882
|
T.nilable(
|
|
445
883
|
Revox::Models::CampaignCreateResponse::Campaign::Assistant::BackgroundSound::OrSymbol
|
|
446
884
|
),
|
|
885
|
+
background_sound_volume: Float,
|
|
447
886
|
calendly:
|
|
448
887
|
T.nilable(
|
|
449
888
|
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Calendly::OrHash
|
|
@@ -452,81 +891,217 @@ module Revox
|
|
|
452
891
|
T.nilable(
|
|
453
892
|
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CallRetryConfig::OrHash
|
|
454
893
|
),
|
|
894
|
+
cartesia_dictionary_pronunciation_id: T.nilable(String),
|
|
455
895
|
created_at: T.anything,
|
|
896
|
+
custom_tools:
|
|
897
|
+
T.nilable(
|
|
898
|
+
T::Array[
|
|
899
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::OrHash
|
|
900
|
+
]
|
|
901
|
+
),
|
|
902
|
+
email_notification_address: T.nilable(String),
|
|
903
|
+
email_notification_language:
|
|
904
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::EmailNotificationLanguage::OrSymbol,
|
|
905
|
+
email_notification_outcomes:
|
|
906
|
+
T.nilable(
|
|
907
|
+
T::Array[
|
|
908
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::EmailNotificationOutcome::OrSymbol
|
|
909
|
+
]
|
|
910
|
+
),
|
|
456
911
|
end_of_call_sentence: T.nilable(String),
|
|
457
912
|
first_sentence: T.nilable(String),
|
|
458
913
|
first_sentence_delay_ms: Integer,
|
|
459
914
|
first_sentence_mode:
|
|
460
915
|
Revox::Models::CampaignCreateResponse::Campaign::Assistant::FirstSentenceMode::OrSymbol,
|
|
916
|
+
from_phone_number: T.nilable(String),
|
|
917
|
+
human_transfer_mode:
|
|
918
|
+
T.nilable(
|
|
919
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::HumanTransferMode::OrSymbol
|
|
920
|
+
),
|
|
461
921
|
ivr_navigation_enabled: T::Boolean,
|
|
462
922
|
llm_model:
|
|
463
923
|
T.any(
|
|
464
924
|
Revox::Models::CampaignCreateResponse::Campaign::Assistant::LlmModel::UnionMember0::OrHash,
|
|
465
|
-
Revox::Models::CampaignCreateResponse::Campaign::Assistant::LlmModel::UnionMember1::OrHash
|
|
925
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::LlmModel::UnionMember1::OrHash,
|
|
926
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::LlmModel::UnionMember2::OrHash,
|
|
927
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::LlmModel::UnionMember3::OrHash
|
|
466
928
|
),
|
|
929
|
+
logo_url: T.nilable(String),
|
|
467
930
|
max_call_duration_secs: Float,
|
|
931
|
+
max_duration_end_message: T.nilable(String),
|
|
468
932
|
name: String,
|
|
469
933
|
organization_id: String,
|
|
934
|
+
position:
|
|
935
|
+
T.nilable(
|
|
936
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Position::OrHash
|
|
937
|
+
),
|
|
470
938
|
prompt: String,
|
|
939
|
+
prompt_flow:
|
|
940
|
+
T.nilable(
|
|
941
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::PromptFlow::OrHash
|
|
942
|
+
),
|
|
943
|
+
slack:
|
|
944
|
+
T.nilable(
|
|
945
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Slack::OrHash
|
|
946
|
+
),
|
|
947
|
+
sms_enabled: T::Boolean,
|
|
948
|
+
sms_template: T.nilable(String),
|
|
471
949
|
structured_output_config:
|
|
472
950
|
T.nilable(
|
|
473
951
|
T::Array[
|
|
474
952
|
Revox::Models::CampaignCreateResponse::Campaign::Assistant::StructuredOutputConfig::OrHash
|
|
475
953
|
]
|
|
476
954
|
),
|
|
955
|
+
structured_output_prompt: T.nilable(String),
|
|
956
|
+
stt_context:
|
|
957
|
+
T.nilable(
|
|
958
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::SttContext::OrHash
|
|
959
|
+
),
|
|
960
|
+
stt_model:
|
|
961
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::SttModel::OrSymbol,
|
|
962
|
+
thinking_sound:
|
|
963
|
+
T.nilable(
|
|
964
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::ThinkingSound::OrSymbol
|
|
965
|
+
),
|
|
966
|
+
thinking_sound_probability: Float,
|
|
967
|
+
thinking_sound_volume: Float,
|
|
477
968
|
transfer_phone_number: T.nilable(String),
|
|
969
|
+
type:
|
|
970
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Type::OrSymbol,
|
|
478
971
|
updated_at: T.anything,
|
|
479
972
|
voice:
|
|
480
973
|
T.nilable(
|
|
481
974
|
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Voice::OrHash
|
|
482
975
|
),
|
|
483
976
|
voicemail_message: T.nilable(String),
|
|
977
|
+
voicemail_sms_prompt: T.nilable(String),
|
|
978
|
+
warm_transfer_summary_instructions: T.nilable(String),
|
|
484
979
|
webhook_url: T.nilable(String),
|
|
980
|
+
zoho:
|
|
981
|
+
T.nilable(
|
|
982
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Zoho::OrHash
|
|
983
|
+
),
|
|
984
|
+
created_by:
|
|
985
|
+
T.nilable(
|
|
986
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CreatedBy::OrHash
|
|
987
|
+
),
|
|
485
988
|
faq_items:
|
|
486
989
|
T::Array[
|
|
487
990
|
Revox::Models::CampaignCreateResponse::Campaign::Assistant::FaqItem::OrHash
|
|
488
991
|
],
|
|
992
|
+
is_realestate_assistant: T::Boolean,
|
|
489
993
|
pending_faq_count: Float
|
|
490
994
|
).returns(T.attached_class)
|
|
491
995
|
end
|
|
492
996
|
def self.new(
|
|
493
997
|
id:,
|
|
494
|
-
#
|
|
495
|
-
#
|
|
998
|
+
# Which call outcomes trigger the after-call SMS. When empty or null, no
|
|
999
|
+
# after-call SMS is sent. Use "none" when outcome is null.
|
|
1000
|
+
after_call_sms_outcomes:,
|
|
1001
|
+
# Prompt / instructions for the after-call SMS. Supports {{variable}}
|
|
1002
|
+
# placeholders. When null, no after-call SMS is sent.
|
|
1003
|
+
after_call_sms_prompt:,
|
|
1004
|
+
# Ambient background sound to play during the call. null disables it.
|
|
496
1005
|
background_sound:,
|
|
1006
|
+
# Volume of the ambient background sound (0 = silent, 1 = max).
|
|
1007
|
+
background_sound_volume:,
|
|
497
1008
|
calendly:,
|
|
498
1009
|
# Configuration for call retry behavior including time windows, delays, and max
|
|
499
1010
|
# iterations. If not provided, defaults will be used.
|
|
500
1011
|
call_retry_config:,
|
|
1012
|
+
# Optional Cartesia pronunciation dictionary ID linked to this assistant.
|
|
1013
|
+
cartesia_dictionary_pronunciation_id:,
|
|
501
1014
|
created_at:,
|
|
1015
|
+
custom_tools:,
|
|
1016
|
+
# Email address(es) to receive notifications when a call ends with a matching
|
|
1017
|
+
# outcome. Accepts a single email or a comma-separated list (e.g. "alice@x.com,
|
|
1018
|
+
# bob@y.com").
|
|
1019
|
+
email_notification_address:,
|
|
1020
|
+
# The language used for the notification email content. One of "en" or "fr".
|
|
1021
|
+
email_notification_language:,
|
|
1022
|
+
# Which call outcomes trigger an email notification. E.g. ["interested",
|
|
1023
|
+
# "completed", "none"]. Use "none" when outcome is null.
|
|
1024
|
+
email_notification_outcomes:,
|
|
502
1025
|
end_of_call_sentence:,
|
|
503
1026
|
first_sentence:,
|
|
504
1027
|
# Delay in milliseconds before speaking the first sentence. Default: 400.
|
|
505
1028
|
first_sentence_delay_ms:,
|
|
506
1029
|
first_sentence_mode:,
|
|
1030
|
+
# Override the default outbound phone number for calls placed with this assistant.
|
|
1031
|
+
# When null, the organization's default phone number is used.
|
|
1032
|
+
from_phone_number:,
|
|
1033
|
+
# Warm or cold transfer when transfer_phone_number is set; null when transfer is
|
|
1034
|
+
# not configured.
|
|
1035
|
+
human_transfer_mode:,
|
|
507
1036
|
# Enable IVR navigation tools. When enabled, the assistant can send DTMF tones and
|
|
508
1037
|
# skip turns to navigate phone menus.
|
|
509
1038
|
ivr_navigation_enabled:,
|
|
510
1039
|
llm_model:,
|
|
1040
|
+
# Public URL of the brand logo shown on the assistant's demo page. Null when
|
|
1041
|
+
# unset.
|
|
1042
|
+
logo_url:,
|
|
511
1043
|
# The maximum duration of the call in seconds. This is the maximum time the call
|
|
512
1044
|
# will be allowed to run.
|
|
513
1045
|
max_call_duration_secs:,
|
|
1046
|
+
# Optional message the agent will say, without being interruptible, when the call
|
|
1047
|
+
# reaches its max duration. Kept short so it fits inside the farewell buffer. If
|
|
1048
|
+
# null, the call ends silently.
|
|
1049
|
+
max_duration_end_message:,
|
|
514
1050
|
name:,
|
|
515
1051
|
organization_id:,
|
|
1052
|
+
position:,
|
|
516
1053
|
prompt:,
|
|
1054
|
+
prompt_flow:,
|
|
1055
|
+
slack:,
|
|
1056
|
+
# Enable SMS tool during calls. When enabled, the agent can send SMS messages to
|
|
1057
|
+
# the user on the call.
|
|
1058
|
+
sms_enabled:,
|
|
1059
|
+
# Hardcoded SMS template to send during calls. When set, this exact text is sent
|
|
1060
|
+
# instead of letting the agent generate the message. Supports {{variable}}
|
|
1061
|
+
# placeholders.
|
|
1062
|
+
sms_template:,
|
|
517
1063
|
# The structured output config to use for the call. This is used to extract the
|
|
518
1064
|
# data from the call (like email, name, company name, etc.).
|
|
519
1065
|
structured_output_config:,
|
|
1066
|
+
# Custom prompt for structured data extraction. If not provided, a default prompt
|
|
1067
|
+
# is used. Available variables: {{transcript}}, {{call_direction}},
|
|
1068
|
+
# {{user_phone_number}}, {{agent_phone_number}}.
|
|
1069
|
+
structured_output_prompt:,
|
|
1070
|
+
# Assistant-level speech-to-text context: structured `general` key/value pairs
|
|
1071
|
+
# plus a list of domain `terms`. Prompt-derived context is merged in without
|
|
1072
|
+
# replacing existing entries.
|
|
1073
|
+
stt_context:,
|
|
1074
|
+
# Transcriber (speech-to-text) model used for the assistant.
|
|
1075
|
+
stt_model:,
|
|
1076
|
+
# Audio clip to play while the agent is processing a response. One of the built-in
|
|
1077
|
+
# LiveKit audio clips; null disables it.
|
|
1078
|
+
thinking_sound:,
|
|
1079
|
+
# Probability [0..1] that the thinking sound plays on any given turn; otherwise
|
|
1080
|
+
# the agent is silent while thinking.
|
|
1081
|
+
thinking_sound_probability:,
|
|
1082
|
+
# Volume of the thinking sound (0 = silent, 1 = max).
|
|
1083
|
+
thinking_sound_volume:,
|
|
520
1084
|
# Phone number to transfer calls to when users request to speak to a human agent.
|
|
521
1085
|
transfer_phone_number:,
|
|
1086
|
+
type:,
|
|
522
1087
|
updated_at:,
|
|
523
1088
|
voice:,
|
|
524
1089
|
# If set, when voicemail is detected the agent will speak this message then hang
|
|
525
1090
|
# up; if null, hang up immediately.
|
|
526
1091
|
voicemail_message:,
|
|
1092
|
+
# Prompt / instructions for the voicemail SMS. Supports {{variable}} placeholders.
|
|
1093
|
+
# When null, no SMS is sent on voicemail.
|
|
1094
|
+
voicemail_sms_prompt:,
|
|
1095
|
+
# Warm transfer only: instructions for the supervisor handoff summary; null when
|
|
1096
|
+
# not configured or cold transfer.
|
|
1097
|
+
warm_transfer_summary_instructions:,
|
|
527
1098
|
# The webhook URL to call when the call is completed.
|
|
528
1099
|
webhook_url:,
|
|
1100
|
+
zoho:,
|
|
1101
|
+
# The user who created the assistant.
|
|
1102
|
+
created_by: nil,
|
|
529
1103
|
faq_items: nil,
|
|
1104
|
+
is_realestate_assistant: nil,
|
|
530
1105
|
pending_faq_count: nil
|
|
531
1106
|
)
|
|
532
1107
|
end
|
|
@@ -535,10 +1110,18 @@ module Revox
|
|
|
535
1110
|
override.returns(
|
|
536
1111
|
{
|
|
537
1112
|
id: String,
|
|
1113
|
+
after_call_sms_outcomes:
|
|
1114
|
+
T.nilable(
|
|
1115
|
+
T::Array[
|
|
1116
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
1117
|
+
]
|
|
1118
|
+
),
|
|
1119
|
+
after_call_sms_prompt: T.nilable(String),
|
|
538
1120
|
background_sound:
|
|
539
1121
|
T.nilable(
|
|
540
1122
|
Revox::Models::CampaignCreateResponse::Campaign::Assistant::BackgroundSound::TaggedSymbol
|
|
541
1123
|
),
|
|
1124
|
+
background_sound_volume: Float,
|
|
542
1125
|
calendly:
|
|
543
1126
|
T.nilable(
|
|
544
1127
|
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Calendly
|
|
@@ -547,37 +1130,100 @@ module Revox
|
|
|
547
1130
|
T.nilable(
|
|
548
1131
|
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CallRetryConfig
|
|
549
1132
|
),
|
|
1133
|
+
cartesia_dictionary_pronunciation_id: T.nilable(String),
|
|
550
1134
|
created_at: T.anything,
|
|
1135
|
+
custom_tools:
|
|
1136
|
+
T.nilable(
|
|
1137
|
+
T::Array[
|
|
1138
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool
|
|
1139
|
+
]
|
|
1140
|
+
),
|
|
1141
|
+
email_notification_address: T.nilable(String),
|
|
1142
|
+
email_notification_language:
|
|
1143
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::EmailNotificationLanguage::TaggedSymbol,
|
|
1144
|
+
email_notification_outcomes:
|
|
1145
|
+
T.nilable(
|
|
1146
|
+
T::Array[
|
|
1147
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
1148
|
+
]
|
|
1149
|
+
),
|
|
551
1150
|
end_of_call_sentence: T.nilable(String),
|
|
552
1151
|
first_sentence: T.nilable(String),
|
|
553
1152
|
first_sentence_delay_ms: Integer,
|
|
554
1153
|
first_sentence_mode:
|
|
555
1154
|
Revox::Models::CampaignCreateResponse::Campaign::Assistant::FirstSentenceMode::TaggedSymbol,
|
|
1155
|
+
from_phone_number: T.nilable(String),
|
|
1156
|
+
human_transfer_mode:
|
|
1157
|
+
T.nilable(
|
|
1158
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::HumanTransferMode::TaggedSymbol
|
|
1159
|
+
),
|
|
556
1160
|
ivr_navigation_enabled: T::Boolean,
|
|
557
1161
|
llm_model:
|
|
558
1162
|
Revox::Models::CampaignCreateResponse::Campaign::Assistant::LlmModel::Variants,
|
|
1163
|
+
logo_url: T.nilable(String),
|
|
559
1164
|
max_call_duration_secs: Float,
|
|
1165
|
+
max_duration_end_message: T.nilable(String),
|
|
560
1166
|
name: String,
|
|
561
1167
|
organization_id: String,
|
|
1168
|
+
position:
|
|
1169
|
+
T.nilable(
|
|
1170
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Position
|
|
1171
|
+
),
|
|
562
1172
|
prompt: String,
|
|
1173
|
+
prompt_flow:
|
|
1174
|
+
T.nilable(
|
|
1175
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::PromptFlow
|
|
1176
|
+
),
|
|
1177
|
+
slack:
|
|
1178
|
+
T.nilable(
|
|
1179
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Slack
|
|
1180
|
+
),
|
|
1181
|
+
sms_enabled: T::Boolean,
|
|
1182
|
+
sms_template: T.nilable(String),
|
|
563
1183
|
structured_output_config:
|
|
564
1184
|
T.nilable(
|
|
565
1185
|
T::Array[
|
|
566
1186
|
Revox::Models::CampaignCreateResponse::Campaign::Assistant::StructuredOutputConfig
|
|
567
1187
|
]
|
|
568
1188
|
),
|
|
1189
|
+
structured_output_prompt: T.nilable(String),
|
|
1190
|
+
stt_context:
|
|
1191
|
+
T.nilable(
|
|
1192
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::SttContext
|
|
1193
|
+
),
|
|
1194
|
+
stt_model:
|
|
1195
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::SttModel::TaggedSymbol,
|
|
1196
|
+
thinking_sound:
|
|
1197
|
+
T.nilable(
|
|
1198
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::ThinkingSound::TaggedSymbol
|
|
1199
|
+
),
|
|
1200
|
+
thinking_sound_probability: Float,
|
|
1201
|
+
thinking_sound_volume: Float,
|
|
569
1202
|
transfer_phone_number: T.nilable(String),
|
|
1203
|
+
type:
|
|
1204
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Type::TaggedSymbol,
|
|
570
1205
|
updated_at: T.anything,
|
|
571
1206
|
voice:
|
|
572
1207
|
T.nilable(
|
|
573
1208
|
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Voice
|
|
574
1209
|
),
|
|
575
1210
|
voicemail_message: T.nilable(String),
|
|
1211
|
+
voicemail_sms_prompt: T.nilable(String),
|
|
1212
|
+
warm_transfer_summary_instructions: T.nilable(String),
|
|
576
1213
|
webhook_url: T.nilable(String),
|
|
1214
|
+
zoho:
|
|
1215
|
+
T.nilable(
|
|
1216
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Zoho
|
|
1217
|
+
),
|
|
1218
|
+
created_by:
|
|
1219
|
+
T.nilable(
|
|
1220
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CreatedBy
|
|
1221
|
+
),
|
|
577
1222
|
faq_items:
|
|
578
1223
|
T::Array[
|
|
579
1224
|
Revox::Models::CampaignCreateResponse::Campaign::Assistant::FaqItem
|
|
580
1225
|
],
|
|
1226
|
+
is_realestate_assistant: T::Boolean,
|
|
581
1227
|
pending_faq_count: Float
|
|
582
1228
|
}
|
|
583
1229
|
)
|
|
@@ -585,8 +1231,71 @@ module Revox
|
|
|
585
1231
|
def to_hash
|
|
586
1232
|
end
|
|
587
1233
|
|
|
588
|
-
|
|
589
|
-
|
|
1234
|
+
module AfterCallSMSOutcome
|
|
1235
|
+
extend Revox::Internal::Type::Enum
|
|
1236
|
+
|
|
1237
|
+
TaggedSymbol =
|
|
1238
|
+
T.type_alias do
|
|
1239
|
+
T.all(
|
|
1240
|
+
Symbol,
|
|
1241
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::AfterCallSMSOutcome
|
|
1242
|
+
)
|
|
1243
|
+
end
|
|
1244
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1245
|
+
|
|
1246
|
+
NOT_INTERESTED =
|
|
1247
|
+
T.let(
|
|
1248
|
+
:not_interested,
|
|
1249
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
1250
|
+
)
|
|
1251
|
+
INTERESTED =
|
|
1252
|
+
T.let(
|
|
1253
|
+
:interested,
|
|
1254
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
1255
|
+
)
|
|
1256
|
+
COMPLETED =
|
|
1257
|
+
T.let(
|
|
1258
|
+
:completed,
|
|
1259
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
1260
|
+
)
|
|
1261
|
+
REQUESTED_CALLBACK_LATER =
|
|
1262
|
+
T.let(
|
|
1263
|
+
:requested_callback_later,
|
|
1264
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
1265
|
+
)
|
|
1266
|
+
REQUESTED_CALLBACK_NEW_NUMBER =
|
|
1267
|
+
T.let(
|
|
1268
|
+
:requested_callback_new_number,
|
|
1269
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
1270
|
+
)
|
|
1271
|
+
DO_NOT_CONTACT =
|
|
1272
|
+
T.let(
|
|
1273
|
+
:do_not_contact,
|
|
1274
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
1275
|
+
)
|
|
1276
|
+
AI_AVERSE =
|
|
1277
|
+
T.let(
|
|
1278
|
+
:ai_averse,
|
|
1279
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
1280
|
+
)
|
|
1281
|
+
NONE =
|
|
1282
|
+
T.let(
|
|
1283
|
+
:none,
|
|
1284
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
1285
|
+
)
|
|
1286
|
+
|
|
1287
|
+
sig do
|
|
1288
|
+
override.returns(
|
|
1289
|
+
T::Array[
|
|
1290
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::AfterCallSMSOutcome::TaggedSymbol
|
|
1291
|
+
]
|
|
1292
|
+
)
|
|
1293
|
+
end
|
|
1294
|
+
def self.values
|
|
1295
|
+
end
|
|
1296
|
+
end
|
|
1297
|
+
|
|
1298
|
+
# Ambient background sound to play during the call. null disables it.
|
|
590
1299
|
module BackgroundSound
|
|
591
1300
|
extend Revox::Internal::Type::Enum
|
|
592
1301
|
|
|
@@ -664,6 +1373,24 @@ module Revox
|
|
|
664
1373
|
)
|
|
665
1374
|
end
|
|
666
1375
|
|
|
1376
|
+
# Days of the week when calls are allowed, in the recipient's timezone. Default:
|
|
1377
|
+
# Monday through Friday.
|
|
1378
|
+
sig do
|
|
1379
|
+
returns(
|
|
1380
|
+
T::Array[
|
|
1381
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
1382
|
+
]
|
|
1383
|
+
)
|
|
1384
|
+
end
|
|
1385
|
+
attr_accessor :allowed_days
|
|
1386
|
+
|
|
1387
|
+
# If true and max_retry_attempts >= 2, attempt #2 fires immediately (skipping
|
|
1388
|
+
# retry_delay_seconds) when attempt #1 didn't reach a human.
|
|
1389
|
+
# Calling-window/allowed-days checks still apply. Only affects the 1→2 transition.
|
|
1390
|
+
# Default: false.
|
|
1391
|
+
sig { returns(T::Boolean) }
|
|
1392
|
+
attr_accessor :call_twice_in_a_row
|
|
1393
|
+
|
|
667
1394
|
sig do
|
|
668
1395
|
returns(
|
|
669
1396
|
T::Array[
|
|
@@ -687,6 +1414,11 @@ module Revox
|
|
|
687
1414
|
# iterations. If not provided, defaults will be used.
|
|
688
1415
|
sig do
|
|
689
1416
|
params(
|
|
1417
|
+
allowed_days:
|
|
1418
|
+
T::Array[
|
|
1419
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CallRetryConfig::AllowedDay::OrSymbol
|
|
1420
|
+
],
|
|
1421
|
+
call_twice_in_a_row: T::Boolean,
|
|
690
1422
|
calling_windows:
|
|
691
1423
|
T::Array[
|
|
692
1424
|
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CallRetryConfig::CallingWindow::OrHash
|
|
@@ -696,6 +1428,14 @@ module Revox
|
|
|
696
1428
|
).returns(T.attached_class)
|
|
697
1429
|
end
|
|
698
1430
|
def self.new(
|
|
1431
|
+
# Days of the week when calls are allowed, in the recipient's timezone. Default:
|
|
1432
|
+
# Monday through Friday.
|
|
1433
|
+
allowed_days:,
|
|
1434
|
+
# If true and max_retry_attempts >= 2, attempt #2 fires immediately (skipping
|
|
1435
|
+
# retry_delay_seconds) when attempt #1 didn't reach a human.
|
|
1436
|
+
# Calling-window/allowed-days checks still apply. Only affects the 1→2 transition.
|
|
1437
|
+
# Default: false.
|
|
1438
|
+
call_twice_in_a_row:,
|
|
699
1439
|
calling_windows:,
|
|
700
1440
|
# Maximum number of call retry attempts. Default: 3.
|
|
701
1441
|
max_retry_attempts:,
|
|
@@ -709,6 +1449,11 @@ module Revox
|
|
|
709
1449
|
sig do
|
|
710
1450
|
override.returns(
|
|
711
1451
|
{
|
|
1452
|
+
allowed_days:
|
|
1453
|
+
T::Array[
|
|
1454
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
1455
|
+
],
|
|
1456
|
+
call_twice_in_a_row: T::Boolean,
|
|
712
1457
|
calling_windows:
|
|
713
1458
|
T::Array[
|
|
714
1459
|
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CallRetryConfig::CallingWindow
|
|
@@ -721,6 +1466,65 @@ module Revox
|
|
|
721
1466
|
def to_hash
|
|
722
1467
|
end
|
|
723
1468
|
|
|
1469
|
+
module AllowedDay
|
|
1470
|
+
extend Revox::Internal::Type::Enum
|
|
1471
|
+
|
|
1472
|
+
TaggedSymbol =
|
|
1473
|
+
T.type_alias do
|
|
1474
|
+
T.all(
|
|
1475
|
+
Symbol,
|
|
1476
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CallRetryConfig::AllowedDay
|
|
1477
|
+
)
|
|
1478
|
+
end
|
|
1479
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1480
|
+
|
|
1481
|
+
MONDAY =
|
|
1482
|
+
T.let(
|
|
1483
|
+
:monday,
|
|
1484
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
1485
|
+
)
|
|
1486
|
+
TUESDAY =
|
|
1487
|
+
T.let(
|
|
1488
|
+
:tuesday,
|
|
1489
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
1490
|
+
)
|
|
1491
|
+
WEDNESDAY =
|
|
1492
|
+
T.let(
|
|
1493
|
+
:wednesday,
|
|
1494
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
1495
|
+
)
|
|
1496
|
+
THURSDAY =
|
|
1497
|
+
T.let(
|
|
1498
|
+
:thursday,
|
|
1499
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
1500
|
+
)
|
|
1501
|
+
FRIDAY =
|
|
1502
|
+
T.let(
|
|
1503
|
+
:friday,
|
|
1504
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
1505
|
+
)
|
|
1506
|
+
SATURDAY =
|
|
1507
|
+
T.let(
|
|
1508
|
+
:saturday,
|
|
1509
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
1510
|
+
)
|
|
1511
|
+
SUNDAY =
|
|
1512
|
+
T.let(
|
|
1513
|
+
:sunday,
|
|
1514
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
1515
|
+
)
|
|
1516
|
+
|
|
1517
|
+
sig do
|
|
1518
|
+
override.returns(
|
|
1519
|
+
T::Array[
|
|
1520
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
1521
|
+
]
|
|
1522
|
+
)
|
|
1523
|
+
end
|
|
1524
|
+
def self.values
|
|
1525
|
+
end
|
|
1526
|
+
end
|
|
1527
|
+
|
|
724
1528
|
class CallingWindow < Revox::Internal::Type::BaseModel
|
|
725
1529
|
OrHash =
|
|
726
1530
|
T.type_alias do
|
|
@@ -781,124 +1585,289 @@ module Revox
|
|
|
781
1585
|
end
|
|
782
1586
|
end
|
|
783
1587
|
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
TaggedSymbol =
|
|
1588
|
+
class CustomTool < Revox::Internal::Type::BaseModel
|
|
1589
|
+
OrHash =
|
|
788
1590
|
T.type_alias do
|
|
789
|
-
T.
|
|
790
|
-
|
|
791
|
-
Revox::
|
|
1591
|
+
T.any(
|
|
1592
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool,
|
|
1593
|
+
Revox::Internal::AnyHash
|
|
792
1594
|
)
|
|
793
1595
|
end
|
|
794
|
-
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
795
1596
|
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
1597
|
+
# JSON body template for the request. Use quoted {{variable}} placeholders (e.g.
|
|
1598
|
+
# "{{name}}") for dynamic values
|
|
1599
|
+
sig { returns(T.nilable(String)) }
|
|
1600
|
+
attr_accessor :body_template
|
|
1601
|
+
|
|
1602
|
+
# Human-readable description of what the tool does, used by the LLM to decide when
|
|
1603
|
+
# to call it
|
|
1604
|
+
sig { returns(String) }
|
|
1605
|
+
attr_accessor :description
|
|
1606
|
+
|
|
1607
|
+
# HTTP headers to include in the request. Values support {{variable}} placeholders
|
|
1608
|
+
sig do
|
|
1609
|
+
returns(
|
|
1610
|
+
T::Array[
|
|
1611
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::Header
|
|
1612
|
+
]
|
|
800
1613
|
)
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
1614
|
+
end
|
|
1615
|
+
attr_accessor :headers
|
|
1616
|
+
|
|
1617
|
+
# Schema defining the parameters the LLM should extract from the conversation to
|
|
1618
|
+
# pass to this tool
|
|
1619
|
+
sig do
|
|
1620
|
+
returns(
|
|
1621
|
+
T::Array[
|
|
1622
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::InputSchema
|
|
1623
|
+
]
|
|
805
1624
|
)
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
1625
|
+
end
|
|
1626
|
+
attr_accessor :input_schema
|
|
1627
|
+
|
|
1628
|
+
# HTTP method to use when calling the API endpoint
|
|
1629
|
+
sig do
|
|
1630
|
+
returns(
|
|
1631
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::Method::TaggedSymbol
|
|
810
1632
|
)
|
|
1633
|
+
end
|
|
1634
|
+
attr_accessor :method_
|
|
1635
|
+
|
|
1636
|
+
# Unique tool name in lowercase_snake_case (e.g. check_inventory)
|
|
1637
|
+
sig { returns(String) }
|
|
1638
|
+
attr_accessor :name
|
|
811
1639
|
|
|
1640
|
+
# Query string parameters appended to the URL. Values support {{variable}}
|
|
1641
|
+
# placeholders
|
|
812
1642
|
sig do
|
|
813
|
-
|
|
1643
|
+
returns(
|
|
814
1644
|
T::Array[
|
|
815
|
-
Revox::Models::CampaignCreateResponse::Campaign::Assistant::
|
|
1645
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::QueryParam
|
|
816
1646
|
]
|
|
817
1647
|
)
|
|
818
1648
|
end
|
|
819
|
-
|
|
820
|
-
end
|
|
821
|
-
end
|
|
1649
|
+
attr_accessor :query_params
|
|
822
1650
|
|
|
823
|
-
|
|
824
|
-
|
|
1651
|
+
# Full URL of the API endpoint. Supports {{variable}} placeholders for dynamic
|
|
1652
|
+
# values
|
|
1653
|
+
sig { returns(String) }
|
|
1654
|
+
attr_accessor :url
|
|
825
1655
|
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
T.
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
1656
|
+
sig do
|
|
1657
|
+
params(
|
|
1658
|
+
body_template: T.nilable(String),
|
|
1659
|
+
description: String,
|
|
1660
|
+
headers:
|
|
1661
|
+
T::Array[
|
|
1662
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::Header::OrHash
|
|
1663
|
+
],
|
|
1664
|
+
input_schema:
|
|
1665
|
+
T::Array[
|
|
1666
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::InputSchema::OrHash
|
|
1667
|
+
],
|
|
1668
|
+
method_:
|
|
1669
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::Method::OrSymbol,
|
|
1670
|
+
name: String,
|
|
1671
|
+
query_params:
|
|
1672
|
+
T::Array[
|
|
1673
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::QueryParam::OrHash
|
|
1674
|
+
],
|
|
1675
|
+
url: String
|
|
1676
|
+
).returns(T.attached_class)
|
|
1677
|
+
end
|
|
1678
|
+
def self.new(
|
|
1679
|
+
# JSON body template for the request. Use quoted {{variable}} placeholders (e.g.
|
|
1680
|
+
# "{{name}}") for dynamic values
|
|
1681
|
+
body_template:,
|
|
1682
|
+
# Human-readable description of what the tool does, used by the LLM to decide when
|
|
1683
|
+
# to call it
|
|
1684
|
+
description:,
|
|
1685
|
+
# HTTP headers to include in the request. Values support {{variable}} placeholders
|
|
1686
|
+
headers:,
|
|
1687
|
+
# Schema defining the parameters the LLM should extract from the conversation to
|
|
1688
|
+
# pass to this tool
|
|
1689
|
+
input_schema:,
|
|
1690
|
+
# HTTP method to use when calling the API endpoint
|
|
1691
|
+
method_:,
|
|
1692
|
+
# Unique tool name in lowercase_snake_case (e.g. check_inventory)
|
|
1693
|
+
name:,
|
|
1694
|
+
# Query string parameters appended to the URL. Values support {{variable}}
|
|
1695
|
+
# placeholders
|
|
1696
|
+
query_params:,
|
|
1697
|
+
# Full URL of the API endpoint. Supports {{variable}} placeholders for dynamic
|
|
1698
|
+
# values
|
|
1699
|
+
url:
|
|
1700
|
+
)
|
|
1701
|
+
end
|
|
833
1702
|
|
|
834
|
-
|
|
1703
|
+
sig do
|
|
1704
|
+
override.returns(
|
|
1705
|
+
{
|
|
1706
|
+
body_template: T.nilable(String),
|
|
1707
|
+
description: String,
|
|
1708
|
+
headers:
|
|
1709
|
+
T::Array[
|
|
1710
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::Header
|
|
1711
|
+
],
|
|
1712
|
+
input_schema:
|
|
1713
|
+
T::Array[
|
|
1714
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::InputSchema
|
|
1715
|
+
],
|
|
1716
|
+
method_:
|
|
1717
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::Method::TaggedSymbol,
|
|
1718
|
+
name: String,
|
|
1719
|
+
query_params:
|
|
1720
|
+
T::Array[
|
|
1721
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::QueryParam
|
|
1722
|
+
],
|
|
1723
|
+
url: String
|
|
1724
|
+
}
|
|
1725
|
+
)
|
|
1726
|
+
end
|
|
1727
|
+
def to_hash
|
|
1728
|
+
end
|
|
1729
|
+
|
|
1730
|
+
class Header < Revox::Internal::Type::BaseModel
|
|
835
1731
|
OrHash =
|
|
836
1732
|
T.type_alias do
|
|
837
1733
|
T.any(
|
|
838
|
-
Revox::Models::CampaignCreateResponse::Campaign::Assistant::
|
|
1734
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::Header,
|
|
839
1735
|
Revox::Internal::AnyHash
|
|
840
1736
|
)
|
|
841
1737
|
end
|
|
842
1738
|
|
|
1739
|
+
sig { returns(String) }
|
|
1740
|
+
attr_accessor :key
|
|
1741
|
+
|
|
1742
|
+
sig { returns(String) }
|
|
1743
|
+
attr_accessor :value
|
|
1744
|
+
|
|
843
1745
|
sig do
|
|
844
|
-
returns(
|
|
845
|
-
|
|
846
|
-
|
|
1746
|
+
params(key: String, value: String).returns(T.attached_class)
|
|
1747
|
+
end
|
|
1748
|
+
def self.new(key:, value:)
|
|
847
1749
|
end
|
|
848
|
-
attr_accessor :name
|
|
849
1750
|
|
|
850
|
-
sig { returns(
|
|
851
|
-
|
|
1751
|
+
sig { override.returns({ key: String, value: String }) }
|
|
1752
|
+
def to_hash
|
|
1753
|
+
end
|
|
1754
|
+
end
|
|
1755
|
+
|
|
1756
|
+
class InputSchema < Revox::Internal::Type::BaseModel
|
|
1757
|
+
OrHash =
|
|
1758
|
+
T.type_alias do
|
|
1759
|
+
T.any(
|
|
1760
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::InputSchema,
|
|
1761
|
+
Revox::Internal::AnyHash
|
|
1762
|
+
)
|
|
1763
|
+
end
|
|
1764
|
+
|
|
1765
|
+
sig { returns(String) }
|
|
1766
|
+
attr_accessor :name
|
|
1767
|
+
|
|
1768
|
+
sig { returns(T::Boolean) }
|
|
1769
|
+
attr_accessor :required
|
|
1770
|
+
|
|
1771
|
+
sig do
|
|
1772
|
+
returns(
|
|
1773
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::InputSchema::Type::TaggedSymbol
|
|
1774
|
+
)
|
|
1775
|
+
end
|
|
1776
|
+
attr_accessor :type
|
|
1777
|
+
|
|
1778
|
+
sig { returns(T.nilable(String)) }
|
|
1779
|
+
attr_reader :description
|
|
1780
|
+
|
|
1781
|
+
sig { params(description: String).void }
|
|
1782
|
+
attr_writer :description
|
|
1783
|
+
|
|
1784
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
1785
|
+
attr_reader :enum_options
|
|
1786
|
+
|
|
1787
|
+
sig { params(enum_options: T::Array[String]).void }
|
|
1788
|
+
attr_writer :enum_options
|
|
852
1789
|
|
|
853
1790
|
sig do
|
|
854
1791
|
params(
|
|
855
|
-
name:
|
|
856
|
-
|
|
857
|
-
type:
|
|
1792
|
+
name: String,
|
|
1793
|
+
required: T::Boolean,
|
|
1794
|
+
type:
|
|
1795
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::InputSchema::Type::OrSymbol,
|
|
1796
|
+
description: String,
|
|
1797
|
+
enum_options: T::Array[String]
|
|
858
1798
|
).returns(T.attached_class)
|
|
859
1799
|
end
|
|
860
|
-
def self.new(
|
|
1800
|
+
def self.new(
|
|
1801
|
+
name:,
|
|
1802
|
+
required:,
|
|
1803
|
+
type:,
|
|
1804
|
+
description: nil,
|
|
1805
|
+
enum_options: nil
|
|
1806
|
+
)
|
|
861
1807
|
end
|
|
862
1808
|
|
|
863
1809
|
sig do
|
|
864
1810
|
override.returns(
|
|
865
1811
|
{
|
|
866
|
-
name:
|
|
867
|
-
|
|
868
|
-
type:
|
|
1812
|
+
name: String,
|
|
1813
|
+
required: T::Boolean,
|
|
1814
|
+
type:
|
|
1815
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::InputSchema::Type::TaggedSymbol,
|
|
1816
|
+
description: String,
|
|
1817
|
+
enum_options: T::Array[String]
|
|
869
1818
|
}
|
|
870
1819
|
)
|
|
871
1820
|
end
|
|
872
1821
|
def to_hash
|
|
873
1822
|
end
|
|
874
1823
|
|
|
875
|
-
module
|
|
1824
|
+
module Type
|
|
876
1825
|
extend Revox::Internal::Type::Enum
|
|
877
1826
|
|
|
878
1827
|
TaggedSymbol =
|
|
879
1828
|
T.type_alias do
|
|
880
1829
|
T.all(
|
|
881
1830
|
Symbol,
|
|
882
|
-
Revox::Models::CampaignCreateResponse::Campaign::Assistant::
|
|
1831
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::InputSchema::Type
|
|
883
1832
|
)
|
|
884
1833
|
end
|
|
885
1834
|
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
886
1835
|
|
|
887
|
-
|
|
1836
|
+
STRING =
|
|
888
1837
|
T.let(
|
|
889
|
-
:
|
|
890
|
-
Revox::Models::CampaignCreateResponse::Campaign::Assistant::
|
|
1838
|
+
:string,
|
|
1839
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::InputSchema::Type::TaggedSymbol
|
|
891
1840
|
)
|
|
892
|
-
|
|
1841
|
+
NUMBER =
|
|
893
1842
|
T.let(
|
|
894
|
-
:
|
|
895
|
-
Revox::Models::CampaignCreateResponse::Campaign::Assistant::
|
|
1843
|
+
:number,
|
|
1844
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::InputSchema::Type::TaggedSymbol
|
|
1845
|
+
)
|
|
1846
|
+
BOOLEAN =
|
|
1847
|
+
T.let(
|
|
1848
|
+
:boolean,
|
|
1849
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::InputSchema::Type::TaggedSymbol
|
|
1850
|
+
)
|
|
1851
|
+
ENUM =
|
|
1852
|
+
T.let(
|
|
1853
|
+
:enum,
|
|
1854
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::InputSchema::Type::TaggedSymbol
|
|
1855
|
+
)
|
|
1856
|
+
DATE =
|
|
1857
|
+
T.let(
|
|
1858
|
+
:date,
|
|
1859
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::InputSchema::Type::TaggedSymbol
|
|
1860
|
+
)
|
|
1861
|
+
DATETIME =
|
|
1862
|
+
T.let(
|
|
1863
|
+
:datetime,
|
|
1864
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::InputSchema::Type::TaggedSymbol
|
|
896
1865
|
)
|
|
897
1866
|
|
|
898
1867
|
sig do
|
|
899
1868
|
override.returns(
|
|
900
1869
|
T::Array[
|
|
901
|
-
Revox::Models::CampaignCreateResponse::Campaign::Assistant::
|
|
1870
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::InputSchema::Type::TaggedSymbol
|
|
902
1871
|
]
|
|
903
1872
|
)
|
|
904
1873
|
end
|
|
@@ -907,183 +1876,1677 @@ module Revox
|
|
|
907
1876
|
end
|
|
908
1877
|
end
|
|
909
1878
|
|
|
910
|
-
|
|
1879
|
+
# HTTP method to use when calling the API endpoint
|
|
1880
|
+
module Method
|
|
1881
|
+
extend Revox::Internal::Type::Enum
|
|
1882
|
+
|
|
1883
|
+
TaggedSymbol =
|
|
1884
|
+
T.type_alias do
|
|
1885
|
+
T.all(
|
|
1886
|
+
Symbol,
|
|
1887
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::Method
|
|
1888
|
+
)
|
|
1889
|
+
end
|
|
1890
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1891
|
+
|
|
1892
|
+
GET =
|
|
1893
|
+
T.let(
|
|
1894
|
+
:GET,
|
|
1895
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::Method::TaggedSymbol
|
|
1896
|
+
)
|
|
1897
|
+
POST =
|
|
1898
|
+
T.let(
|
|
1899
|
+
:POST,
|
|
1900
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::Method::TaggedSymbol
|
|
1901
|
+
)
|
|
1902
|
+
PUT =
|
|
1903
|
+
T.let(
|
|
1904
|
+
:PUT,
|
|
1905
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::Method::TaggedSymbol
|
|
1906
|
+
)
|
|
1907
|
+
PATCH =
|
|
1908
|
+
T.let(
|
|
1909
|
+
:PATCH,
|
|
1910
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::Method::TaggedSymbol
|
|
1911
|
+
)
|
|
1912
|
+
DELETE =
|
|
1913
|
+
T.let(
|
|
1914
|
+
:DELETE,
|
|
1915
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::Method::TaggedSymbol
|
|
1916
|
+
)
|
|
1917
|
+
|
|
1918
|
+
sig do
|
|
1919
|
+
override.returns(
|
|
1920
|
+
T::Array[
|
|
1921
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::Method::TaggedSymbol
|
|
1922
|
+
]
|
|
1923
|
+
)
|
|
1924
|
+
end
|
|
1925
|
+
def self.values
|
|
1926
|
+
end
|
|
1927
|
+
end
|
|
1928
|
+
|
|
1929
|
+
class QueryParam < Revox::Internal::Type::BaseModel
|
|
911
1930
|
OrHash =
|
|
912
1931
|
T.type_alias do
|
|
913
1932
|
T.any(
|
|
914
|
-
Revox::Models::CampaignCreateResponse::Campaign::Assistant::
|
|
1933
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CustomTool::QueryParam,
|
|
915
1934
|
Revox::Internal::AnyHash
|
|
916
1935
|
)
|
|
917
1936
|
end
|
|
918
1937
|
|
|
919
|
-
# The model ID to use from OpenRouter. eg: openai/gpt-4.1
|
|
920
1938
|
sig { returns(String) }
|
|
921
|
-
attr_accessor :
|
|
1939
|
+
attr_accessor :key
|
|
922
1940
|
|
|
923
|
-
# The provider to use from OpenRouter. eg: nebius, openai, azure, etc.
|
|
924
1941
|
sig { returns(String) }
|
|
925
|
-
attr_accessor :
|
|
926
|
-
|
|
927
|
-
# Use a model from OpenRouter.
|
|
928
|
-
sig { returns(Symbol) }
|
|
929
|
-
attr_accessor :type
|
|
1942
|
+
attr_accessor :value
|
|
930
1943
|
|
|
931
1944
|
sig do
|
|
932
|
-
params(
|
|
933
|
-
openrouter_model_id: String,
|
|
934
|
-
openrouter_provider: String,
|
|
935
|
-
type: Symbol
|
|
936
|
-
).returns(T.attached_class)
|
|
1945
|
+
params(key: String, value: String).returns(T.attached_class)
|
|
937
1946
|
end
|
|
938
|
-
def self.new(
|
|
939
|
-
# The model ID to use from OpenRouter. eg: openai/gpt-4.1
|
|
940
|
-
openrouter_model_id:,
|
|
941
|
-
# The provider to use from OpenRouter. eg: nebius, openai, azure, etc.
|
|
942
|
-
openrouter_provider:,
|
|
943
|
-
# Use a model from OpenRouter.
|
|
944
|
-
type: :openrouter
|
|
945
|
-
)
|
|
1947
|
+
def self.new(key:, value:)
|
|
946
1948
|
end
|
|
947
1949
|
|
|
948
|
-
sig
|
|
949
|
-
override.returns(
|
|
950
|
-
{
|
|
951
|
-
openrouter_model_id: String,
|
|
952
|
-
openrouter_provider: String,
|
|
953
|
-
type: Symbol
|
|
954
|
-
}
|
|
955
|
-
)
|
|
956
|
-
end
|
|
1950
|
+
sig { override.returns({ key: String, value: String }) }
|
|
957
1951
|
def to_hash
|
|
958
1952
|
end
|
|
959
1953
|
end
|
|
1954
|
+
end
|
|
1955
|
+
|
|
1956
|
+
# The language used for the notification email content. One of "en" or "fr".
|
|
1957
|
+
module EmailNotificationLanguage
|
|
1958
|
+
extend Revox::Internal::Type::Enum
|
|
1959
|
+
|
|
1960
|
+
TaggedSymbol =
|
|
1961
|
+
T.type_alias do
|
|
1962
|
+
T.all(
|
|
1963
|
+
Symbol,
|
|
1964
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::EmailNotificationLanguage
|
|
1965
|
+
)
|
|
1966
|
+
end
|
|
1967
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1968
|
+
|
|
1969
|
+
EN =
|
|
1970
|
+
T.let(
|
|
1971
|
+
:en,
|
|
1972
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::EmailNotificationLanguage::TaggedSymbol
|
|
1973
|
+
)
|
|
1974
|
+
FR =
|
|
1975
|
+
T.let(
|
|
1976
|
+
:fr,
|
|
1977
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::EmailNotificationLanguage::TaggedSymbol
|
|
1978
|
+
)
|
|
960
1979
|
|
|
961
1980
|
sig do
|
|
962
1981
|
override.returns(
|
|
963
1982
|
T::Array[
|
|
964
|
-
Revox::Models::CampaignCreateResponse::Campaign::Assistant::
|
|
1983
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::EmailNotificationLanguage::TaggedSymbol
|
|
965
1984
|
]
|
|
966
1985
|
)
|
|
967
1986
|
end
|
|
968
|
-
def self.
|
|
1987
|
+
def self.values
|
|
969
1988
|
end
|
|
970
1989
|
end
|
|
971
1990
|
|
|
972
|
-
|
|
973
|
-
|
|
1991
|
+
module EmailNotificationOutcome
|
|
1992
|
+
extend Revox::Internal::Type::Enum
|
|
1993
|
+
|
|
1994
|
+
TaggedSymbol =
|
|
974
1995
|
T.type_alias do
|
|
975
|
-
T.
|
|
976
|
-
|
|
977
|
-
Revox::
|
|
1996
|
+
T.all(
|
|
1997
|
+
Symbol,
|
|
1998
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::EmailNotificationOutcome
|
|
978
1999
|
)
|
|
979
2000
|
end
|
|
2001
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
980
2002
|
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
2003
|
+
NOT_INTERESTED =
|
|
2004
|
+
T.let(
|
|
2005
|
+
:not_interested,
|
|
2006
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
2007
|
+
)
|
|
2008
|
+
INTERESTED =
|
|
2009
|
+
T.let(
|
|
2010
|
+
:interested,
|
|
2011
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
2012
|
+
)
|
|
2013
|
+
COMPLETED =
|
|
2014
|
+
T.let(
|
|
2015
|
+
:completed,
|
|
2016
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
2017
|
+
)
|
|
2018
|
+
REQUESTED_CALLBACK_LATER =
|
|
2019
|
+
T.let(
|
|
2020
|
+
:requested_callback_later,
|
|
2021
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
2022
|
+
)
|
|
2023
|
+
REQUESTED_CALLBACK_NEW_NUMBER =
|
|
2024
|
+
T.let(
|
|
2025
|
+
:requested_callback_new_number,
|
|
2026
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
2027
|
+
)
|
|
2028
|
+
DO_NOT_CONTACT =
|
|
2029
|
+
T.let(
|
|
2030
|
+
:do_not_contact,
|
|
2031
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
2032
|
+
)
|
|
2033
|
+
AI_AVERSE =
|
|
2034
|
+
T.let(
|
|
2035
|
+
:ai_averse,
|
|
2036
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
2037
|
+
)
|
|
2038
|
+
NONE =
|
|
2039
|
+
T.let(
|
|
2040
|
+
:none,
|
|
2041
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
2042
|
+
)
|
|
986
2043
|
|
|
987
2044
|
sig do
|
|
988
|
-
returns(
|
|
989
|
-
|
|
2045
|
+
override.returns(
|
|
2046
|
+
T::Array[
|
|
2047
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::EmailNotificationOutcome::TaggedSymbol
|
|
2048
|
+
]
|
|
990
2049
|
)
|
|
991
2050
|
end
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
attr_reader :description
|
|
2051
|
+
def self.values
|
|
2052
|
+
end
|
|
2053
|
+
end
|
|
996
2054
|
|
|
997
|
-
|
|
998
|
-
|
|
2055
|
+
module FirstSentenceMode
|
|
2056
|
+
extend Revox::Internal::Type::Enum
|
|
999
2057
|
|
|
1000
|
-
|
|
1001
|
-
|
|
2058
|
+
TaggedSymbol =
|
|
2059
|
+
T.type_alias do
|
|
2060
|
+
T.all(
|
|
2061
|
+
Symbol,
|
|
2062
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::FirstSentenceMode
|
|
2063
|
+
)
|
|
2064
|
+
end
|
|
2065
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1002
2066
|
|
|
1003
|
-
|
|
1004
|
-
|
|
2067
|
+
GENERATED =
|
|
2068
|
+
T.let(
|
|
2069
|
+
:generated,
|
|
2070
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::FirstSentenceMode::TaggedSymbol
|
|
2071
|
+
)
|
|
2072
|
+
STATIC =
|
|
2073
|
+
T.let(
|
|
2074
|
+
:static,
|
|
2075
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::FirstSentenceMode::TaggedSymbol
|
|
2076
|
+
)
|
|
2077
|
+
NONE =
|
|
2078
|
+
T.let(
|
|
2079
|
+
:none,
|
|
2080
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::FirstSentenceMode::TaggedSymbol
|
|
2081
|
+
)
|
|
1005
2082
|
|
|
1006
2083
|
sig do
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
description: String,
|
|
1013
|
-
enum_options: T::Array[String]
|
|
1014
|
-
).returns(T.attached_class)
|
|
2084
|
+
override.returns(
|
|
2085
|
+
T::Array[
|
|
2086
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::FirstSentenceMode::TaggedSymbol
|
|
2087
|
+
]
|
|
2088
|
+
)
|
|
1015
2089
|
end
|
|
1016
|
-
def self.
|
|
1017
|
-
name:,
|
|
1018
|
-
required:,
|
|
1019
|
-
type:,
|
|
1020
|
-
description: nil,
|
|
1021
|
-
enum_options: nil
|
|
1022
|
-
)
|
|
2090
|
+
def self.values
|
|
1023
2091
|
end
|
|
2092
|
+
end
|
|
2093
|
+
|
|
2094
|
+
# Warm or cold transfer when transfer_phone_number is set; null when transfer is
|
|
2095
|
+
# not configured.
|
|
2096
|
+
module HumanTransferMode
|
|
2097
|
+
extend Revox::Internal::Type::Enum
|
|
2098
|
+
|
|
2099
|
+
TaggedSymbol =
|
|
2100
|
+
T.type_alias do
|
|
2101
|
+
T.all(
|
|
2102
|
+
Symbol,
|
|
2103
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::HumanTransferMode
|
|
2104
|
+
)
|
|
2105
|
+
end
|
|
2106
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
2107
|
+
|
|
2108
|
+
WARM =
|
|
2109
|
+
T.let(
|
|
2110
|
+
:warm,
|
|
2111
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::HumanTransferMode::TaggedSymbol
|
|
2112
|
+
)
|
|
2113
|
+
COLD =
|
|
2114
|
+
T.let(
|
|
2115
|
+
:cold,
|
|
2116
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::HumanTransferMode::TaggedSymbol
|
|
2117
|
+
)
|
|
1024
2118
|
|
|
1025
2119
|
sig do
|
|
1026
2120
|
override.returns(
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
2121
|
+
T::Array[
|
|
2122
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::HumanTransferMode::TaggedSymbol
|
|
2123
|
+
]
|
|
2124
|
+
)
|
|
2125
|
+
end
|
|
2126
|
+
def self.values
|
|
2127
|
+
end
|
|
2128
|
+
end
|
|
2129
|
+
|
|
2130
|
+
module LlmModel
|
|
2131
|
+
extend Revox::Internal::Type::Union
|
|
2132
|
+
|
|
2133
|
+
Variants =
|
|
2134
|
+
T.type_alias do
|
|
2135
|
+
T.any(
|
|
2136
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::LlmModel::UnionMember0,
|
|
2137
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::LlmModel::UnionMember1,
|
|
2138
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::LlmModel::UnionMember2,
|
|
2139
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::LlmModel::UnionMember3
|
|
2140
|
+
)
|
|
2141
|
+
end
|
|
2142
|
+
|
|
2143
|
+
class UnionMember0 < Revox::Internal::Type::BaseModel
|
|
2144
|
+
OrHash =
|
|
2145
|
+
T.type_alias do
|
|
2146
|
+
T.any(
|
|
2147
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::LlmModel::UnionMember0,
|
|
2148
|
+
Revox::Internal::AnyHash
|
|
2149
|
+
)
|
|
2150
|
+
end
|
|
2151
|
+
|
|
2152
|
+
sig do
|
|
2153
|
+
returns(
|
|
2154
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::LlmModel::UnionMember0::Name::TaggedSymbol
|
|
2155
|
+
)
|
|
2156
|
+
end
|
|
2157
|
+
attr_accessor :name
|
|
2158
|
+
|
|
2159
|
+
sig { returns(Symbol) }
|
|
2160
|
+
attr_accessor :type
|
|
2161
|
+
|
|
2162
|
+
sig do
|
|
2163
|
+
params(
|
|
2164
|
+
name:
|
|
2165
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::LlmModel::UnionMember0::Name::OrSymbol,
|
|
2166
|
+
type: Symbol
|
|
2167
|
+
).returns(T.attached_class)
|
|
2168
|
+
end
|
|
2169
|
+
def self.new(name:, type: :"dedicated-instance")
|
|
2170
|
+
end
|
|
2171
|
+
|
|
2172
|
+
sig do
|
|
2173
|
+
override.returns(
|
|
2174
|
+
{
|
|
2175
|
+
name:
|
|
2176
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::LlmModel::UnionMember0::Name::TaggedSymbol,
|
|
2177
|
+
type: Symbol
|
|
2178
|
+
}
|
|
2179
|
+
)
|
|
2180
|
+
end
|
|
2181
|
+
def to_hash
|
|
2182
|
+
end
|
|
2183
|
+
|
|
2184
|
+
module Name
|
|
2185
|
+
extend Revox::Internal::Type::Enum
|
|
2186
|
+
|
|
2187
|
+
TaggedSymbol =
|
|
2188
|
+
T.type_alias do
|
|
2189
|
+
T.all(
|
|
2190
|
+
Symbol,
|
|
2191
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::LlmModel::UnionMember0::Name
|
|
2192
|
+
)
|
|
2193
|
+
end
|
|
2194
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
2195
|
+
|
|
2196
|
+
GPT_4_1 =
|
|
2197
|
+
T.let(
|
|
2198
|
+
:"gpt-4.1",
|
|
2199
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::LlmModel::UnionMember0::Name::TaggedSymbol
|
|
2200
|
+
)
|
|
2201
|
+
MINISTRAL_3_8B_INSTRUCT =
|
|
2202
|
+
T.let(
|
|
2203
|
+
:"ministral-3-8b-instruct",
|
|
2204
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::LlmModel::UnionMember0::Name::TaggedSymbol
|
|
2205
|
+
)
|
|
2206
|
+
|
|
2207
|
+
sig do
|
|
2208
|
+
override.returns(
|
|
2209
|
+
T::Array[
|
|
2210
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::LlmModel::UnionMember0::Name::TaggedSymbol
|
|
2211
|
+
]
|
|
2212
|
+
)
|
|
2213
|
+
end
|
|
2214
|
+
def self.values
|
|
2215
|
+
end
|
|
2216
|
+
end
|
|
2217
|
+
end
|
|
2218
|
+
|
|
2219
|
+
class UnionMember1 < Revox::Internal::Type::BaseModel
|
|
2220
|
+
OrHash =
|
|
2221
|
+
T.type_alias do
|
|
2222
|
+
T.any(
|
|
2223
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::LlmModel::UnionMember1,
|
|
2224
|
+
Revox::Internal::AnyHash
|
|
2225
|
+
)
|
|
2226
|
+
end
|
|
2227
|
+
|
|
2228
|
+
# The model ID to use from OpenRouter. eg: openai/gpt-4.1
|
|
2229
|
+
sig { returns(String) }
|
|
2230
|
+
attr_accessor :openrouter_model_id
|
|
2231
|
+
|
|
2232
|
+
# The provider to use from OpenRouter. eg: nebius, openai, azure, etc.
|
|
2233
|
+
sig { returns(String) }
|
|
2234
|
+
attr_accessor :openrouter_provider
|
|
2235
|
+
|
|
2236
|
+
# Use a model from OpenRouter.
|
|
2237
|
+
sig { returns(Symbol) }
|
|
2238
|
+
attr_accessor :type
|
|
2239
|
+
|
|
2240
|
+
sig do
|
|
2241
|
+
params(
|
|
2242
|
+
openrouter_model_id: String,
|
|
2243
|
+
openrouter_provider: String,
|
|
2244
|
+
type: Symbol
|
|
2245
|
+
).returns(T.attached_class)
|
|
2246
|
+
end
|
|
2247
|
+
def self.new(
|
|
2248
|
+
# The model ID to use from OpenRouter. eg: openai/gpt-4.1
|
|
2249
|
+
openrouter_model_id:,
|
|
2250
|
+
# The provider to use from OpenRouter. eg: nebius, openai, azure, etc.
|
|
2251
|
+
openrouter_provider:,
|
|
2252
|
+
# Use a model from OpenRouter.
|
|
2253
|
+
type: :openrouter
|
|
2254
|
+
)
|
|
2255
|
+
end
|
|
2256
|
+
|
|
2257
|
+
sig do
|
|
2258
|
+
override.returns(
|
|
2259
|
+
{
|
|
2260
|
+
openrouter_model_id: String,
|
|
2261
|
+
openrouter_provider: String,
|
|
2262
|
+
type: Symbol
|
|
2263
|
+
}
|
|
2264
|
+
)
|
|
2265
|
+
end
|
|
2266
|
+
def to_hash
|
|
2267
|
+
end
|
|
2268
|
+
end
|
|
2269
|
+
|
|
2270
|
+
class UnionMember2 < Revox::Internal::Type::BaseModel
|
|
2271
|
+
OrHash =
|
|
2272
|
+
T.type_alias do
|
|
2273
|
+
T.any(
|
|
2274
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::LlmModel::UnionMember2,
|
|
2275
|
+
Revox::Internal::AnyHash
|
|
2276
|
+
)
|
|
2277
|
+
end
|
|
2278
|
+
|
|
2279
|
+
# API key sent as Bearer token to the custom endpoint.
|
|
2280
|
+
sig { returns(String) }
|
|
2281
|
+
attr_accessor :api_key
|
|
2282
|
+
|
|
2283
|
+
# Base URL for the OpenAI-compatible API, e.g. https://api.together.xyz/v1
|
|
2284
|
+
sig { returns(String) }
|
|
2285
|
+
attr_accessor :api_url
|
|
2286
|
+
|
|
2287
|
+
# Model name as expected by the provider, e.g. meta-llama/llama-3-70b
|
|
2288
|
+
sig { returns(String) }
|
|
2289
|
+
attr_accessor :model_name
|
|
2290
|
+
|
|
2291
|
+
# OpenAI-compatible chat completions API (bring your own endpoint and key).
|
|
2292
|
+
sig { returns(Symbol) }
|
|
2293
|
+
attr_accessor :type
|
|
2294
|
+
|
|
2295
|
+
sig do
|
|
2296
|
+
params(
|
|
2297
|
+
api_key: String,
|
|
2298
|
+
api_url: String,
|
|
2299
|
+
model_name: String,
|
|
2300
|
+
type: Symbol
|
|
2301
|
+
).returns(T.attached_class)
|
|
2302
|
+
end
|
|
2303
|
+
def self.new(
|
|
2304
|
+
# API key sent as Bearer token to the custom endpoint.
|
|
2305
|
+
api_key:,
|
|
2306
|
+
# Base URL for the OpenAI-compatible API, e.g. https://api.together.xyz/v1
|
|
2307
|
+
api_url:,
|
|
2308
|
+
# Model name as expected by the provider, e.g. meta-llama/llama-3-70b
|
|
2309
|
+
model_name:,
|
|
2310
|
+
# OpenAI-compatible chat completions API (bring your own endpoint and key).
|
|
2311
|
+
type: :custom
|
|
2312
|
+
)
|
|
2313
|
+
end
|
|
2314
|
+
|
|
2315
|
+
sig do
|
|
2316
|
+
override.returns(
|
|
2317
|
+
{
|
|
2318
|
+
api_key: String,
|
|
2319
|
+
api_url: String,
|
|
2320
|
+
model_name: String,
|
|
2321
|
+
type: Symbol
|
|
2322
|
+
}
|
|
2323
|
+
)
|
|
2324
|
+
end
|
|
2325
|
+
def to_hash
|
|
2326
|
+
end
|
|
2327
|
+
end
|
|
2328
|
+
|
|
2329
|
+
class UnionMember3 < Revox::Internal::Type::BaseModel
|
|
2330
|
+
OrHash =
|
|
2331
|
+
T.type_alias do
|
|
2332
|
+
T.any(
|
|
2333
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::LlmModel::UnionMember3,
|
|
2334
|
+
Revox::Internal::AnyHash
|
|
2335
|
+
)
|
|
2336
|
+
end
|
|
2337
|
+
|
|
2338
|
+
# The provider to use from Realtime. eg: openai, google.
|
|
2339
|
+
sig do
|
|
2340
|
+
returns(
|
|
2341
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::LlmModel::UnionMember3::Provider::TaggedSymbol
|
|
2342
|
+
)
|
|
2343
|
+
end
|
|
2344
|
+
attr_accessor :provider
|
|
2345
|
+
|
|
2346
|
+
# The model ID to use from Realtime. eg: gpt-4.1
|
|
2347
|
+
sig { returns(String) }
|
|
2348
|
+
attr_accessor :realtime_model_id
|
|
2349
|
+
|
|
2350
|
+
# Use a model from Realtime.
|
|
2351
|
+
sig { returns(Symbol) }
|
|
2352
|
+
attr_accessor :type
|
|
2353
|
+
|
|
2354
|
+
# Output voice for the realtime provider (e.g. OpenAI: marin; Gemini: Puck).
|
|
2355
|
+
sig { returns(T.nilable(String)) }
|
|
2356
|
+
attr_reader :realtime_voice_id
|
|
2357
|
+
|
|
2358
|
+
sig { params(realtime_voice_id: String).void }
|
|
2359
|
+
attr_writer :realtime_voice_id
|
|
2360
|
+
|
|
2361
|
+
sig do
|
|
2362
|
+
params(
|
|
2363
|
+
provider:
|
|
2364
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::LlmModel::UnionMember3::Provider::OrSymbol,
|
|
2365
|
+
realtime_model_id: String,
|
|
2366
|
+
realtime_voice_id: String,
|
|
2367
|
+
type: Symbol
|
|
2368
|
+
).returns(T.attached_class)
|
|
2369
|
+
end
|
|
2370
|
+
def self.new(
|
|
2371
|
+
# The provider to use from Realtime. eg: openai, google.
|
|
2372
|
+
provider:,
|
|
2373
|
+
# The model ID to use from Realtime. eg: gpt-4.1
|
|
2374
|
+
realtime_model_id:,
|
|
2375
|
+
# Output voice for the realtime provider (e.g. OpenAI: marin; Gemini: Puck).
|
|
2376
|
+
realtime_voice_id: nil,
|
|
2377
|
+
# Use a model from Realtime.
|
|
2378
|
+
type: :realtime
|
|
2379
|
+
)
|
|
2380
|
+
end
|
|
2381
|
+
|
|
2382
|
+
sig do
|
|
2383
|
+
override.returns(
|
|
2384
|
+
{
|
|
2385
|
+
provider:
|
|
2386
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::LlmModel::UnionMember3::Provider::TaggedSymbol,
|
|
2387
|
+
realtime_model_id: String,
|
|
2388
|
+
type: Symbol,
|
|
2389
|
+
realtime_voice_id: String
|
|
2390
|
+
}
|
|
2391
|
+
)
|
|
2392
|
+
end
|
|
2393
|
+
def to_hash
|
|
2394
|
+
end
|
|
2395
|
+
|
|
2396
|
+
# The provider to use from Realtime. eg: openai, google.
|
|
2397
|
+
module Provider
|
|
2398
|
+
extend Revox::Internal::Type::Enum
|
|
2399
|
+
|
|
2400
|
+
TaggedSymbol =
|
|
2401
|
+
T.type_alias do
|
|
2402
|
+
T.all(
|
|
2403
|
+
Symbol,
|
|
2404
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::LlmModel::UnionMember3::Provider
|
|
2405
|
+
)
|
|
2406
|
+
end
|
|
2407
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
2408
|
+
|
|
2409
|
+
OPENAI =
|
|
2410
|
+
T.let(
|
|
2411
|
+
:openai,
|
|
2412
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::LlmModel::UnionMember3::Provider::TaggedSymbol
|
|
2413
|
+
)
|
|
2414
|
+
GOOGLE =
|
|
2415
|
+
T.let(
|
|
2416
|
+
:google,
|
|
2417
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::LlmModel::UnionMember3::Provider::TaggedSymbol
|
|
2418
|
+
)
|
|
2419
|
+
|
|
2420
|
+
sig do
|
|
2421
|
+
override.returns(
|
|
2422
|
+
T::Array[
|
|
2423
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::LlmModel::UnionMember3::Provider::TaggedSymbol
|
|
2424
|
+
]
|
|
2425
|
+
)
|
|
2426
|
+
end
|
|
2427
|
+
def self.values
|
|
2428
|
+
end
|
|
2429
|
+
end
|
|
2430
|
+
end
|
|
2431
|
+
|
|
2432
|
+
sig do
|
|
2433
|
+
override.returns(
|
|
2434
|
+
T::Array[
|
|
2435
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::LlmModel::Variants
|
|
2436
|
+
]
|
|
2437
|
+
)
|
|
2438
|
+
end
|
|
2439
|
+
def self.variants
|
|
2440
|
+
end
|
|
2441
|
+
end
|
|
2442
|
+
|
|
2443
|
+
class Position < Revox::Internal::Type::BaseModel
|
|
2444
|
+
OrHash =
|
|
2445
|
+
T.type_alias do
|
|
2446
|
+
T.any(
|
|
2447
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Position,
|
|
2448
|
+
Revox::Internal::AnyHash
|
|
2449
|
+
)
|
|
2450
|
+
end
|
|
2451
|
+
|
|
2452
|
+
sig { returns(Float) }
|
|
2453
|
+
attr_accessor :x
|
|
2454
|
+
|
|
2455
|
+
sig { returns(Float) }
|
|
2456
|
+
attr_accessor :y_
|
|
2457
|
+
|
|
2458
|
+
sig { params(x: Float, y_: Float).returns(T.attached_class) }
|
|
2459
|
+
def self.new(x:, y_:)
|
|
2460
|
+
end
|
|
2461
|
+
|
|
2462
|
+
sig { override.returns({ x: Float, y_: Float }) }
|
|
2463
|
+
def to_hash
|
|
2464
|
+
end
|
|
2465
|
+
end
|
|
2466
|
+
|
|
2467
|
+
class PromptFlow < Revox::Internal::Type::BaseModel
|
|
2468
|
+
OrHash =
|
|
2469
|
+
T.type_alias do
|
|
2470
|
+
T.any(
|
|
2471
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::PromptFlow,
|
|
2472
|
+
Revox::Internal::AnyHash
|
|
2473
|
+
)
|
|
2474
|
+
end
|
|
2475
|
+
|
|
2476
|
+
sig do
|
|
2477
|
+
returns(
|
|
2478
|
+
T::Array[
|
|
2479
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::PromptFlow::Edge
|
|
2480
|
+
]
|
|
2481
|
+
)
|
|
2482
|
+
end
|
|
2483
|
+
attr_accessor :edges
|
|
2484
|
+
|
|
2485
|
+
sig do
|
|
2486
|
+
returns(
|
|
2487
|
+
T::Array[
|
|
2488
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::PromptFlow::Node
|
|
2489
|
+
]
|
|
2490
|
+
)
|
|
2491
|
+
end
|
|
2492
|
+
attr_accessor :nodes
|
|
2493
|
+
|
|
2494
|
+
sig do
|
|
2495
|
+
params(
|
|
2496
|
+
edges:
|
|
2497
|
+
T::Array[
|
|
2498
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::PromptFlow::Edge::OrHash
|
|
2499
|
+
],
|
|
2500
|
+
nodes:
|
|
2501
|
+
T::Array[
|
|
2502
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::PromptFlow::Node::OrHash
|
|
2503
|
+
]
|
|
2504
|
+
).returns(T.attached_class)
|
|
2505
|
+
end
|
|
2506
|
+
def self.new(edges:, nodes:)
|
|
2507
|
+
end
|
|
2508
|
+
|
|
2509
|
+
sig do
|
|
2510
|
+
override.returns(
|
|
2511
|
+
{
|
|
2512
|
+
edges:
|
|
2513
|
+
T::Array[
|
|
2514
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::PromptFlow::Edge
|
|
2515
|
+
],
|
|
2516
|
+
nodes:
|
|
2517
|
+
T::Array[
|
|
2518
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::PromptFlow::Node
|
|
2519
|
+
]
|
|
2520
|
+
}
|
|
2521
|
+
)
|
|
2522
|
+
end
|
|
2523
|
+
def to_hash
|
|
2524
|
+
end
|
|
2525
|
+
|
|
2526
|
+
class Edge < Revox::Internal::Type::BaseModel
|
|
2527
|
+
OrHash =
|
|
2528
|
+
T.type_alias do
|
|
2529
|
+
T.any(
|
|
2530
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::PromptFlow::Edge,
|
|
2531
|
+
Revox::Internal::AnyHash
|
|
2532
|
+
)
|
|
2533
|
+
end
|
|
2534
|
+
|
|
2535
|
+
sig { returns(String) }
|
|
2536
|
+
attr_accessor :id
|
|
2537
|
+
|
|
2538
|
+
sig { returns(String) }
|
|
2539
|
+
attr_accessor :source
|
|
2540
|
+
|
|
2541
|
+
sig { returns(String) }
|
|
2542
|
+
attr_accessor :target
|
|
2543
|
+
|
|
2544
|
+
sig do
|
|
2545
|
+
params(id: String, source: String, target: String).returns(
|
|
2546
|
+
T.attached_class
|
|
2547
|
+
)
|
|
2548
|
+
end
|
|
2549
|
+
def self.new(id:, source:, target:)
|
|
2550
|
+
end
|
|
2551
|
+
|
|
2552
|
+
sig do
|
|
2553
|
+
override.returns({ id: String, source: String, target: String })
|
|
2554
|
+
end
|
|
2555
|
+
def to_hash
|
|
2556
|
+
end
|
|
2557
|
+
end
|
|
2558
|
+
|
|
2559
|
+
class Node < Revox::Internal::Type::BaseModel
|
|
2560
|
+
OrHash =
|
|
2561
|
+
T.type_alias do
|
|
2562
|
+
T.any(
|
|
2563
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::PromptFlow::Node,
|
|
2564
|
+
Revox::Internal::AnyHash
|
|
2565
|
+
)
|
|
2566
|
+
end
|
|
2567
|
+
|
|
2568
|
+
sig { returns(String) }
|
|
2569
|
+
attr_accessor :id
|
|
2570
|
+
|
|
2571
|
+
sig do
|
|
2572
|
+
returns(
|
|
2573
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::PromptFlow::Node::Data
|
|
2574
|
+
)
|
|
2575
|
+
end
|
|
2576
|
+
attr_reader :data
|
|
2577
|
+
|
|
2578
|
+
sig do
|
|
2579
|
+
params(
|
|
2580
|
+
data:
|
|
2581
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::PromptFlow::Node::Data::OrHash
|
|
2582
|
+
).void
|
|
2583
|
+
end
|
|
2584
|
+
attr_writer :data
|
|
2585
|
+
|
|
2586
|
+
sig do
|
|
2587
|
+
returns(
|
|
2588
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::PromptFlow::Node::Position
|
|
2589
|
+
)
|
|
2590
|
+
end
|
|
2591
|
+
attr_reader :position
|
|
2592
|
+
|
|
2593
|
+
sig do
|
|
2594
|
+
params(
|
|
2595
|
+
position:
|
|
2596
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::PromptFlow::Node::Position::OrHash
|
|
2597
|
+
).void
|
|
2598
|
+
end
|
|
2599
|
+
attr_writer :position
|
|
2600
|
+
|
|
2601
|
+
sig { returns(Symbol) }
|
|
2602
|
+
attr_accessor :type
|
|
2603
|
+
|
|
2604
|
+
sig do
|
|
2605
|
+
params(
|
|
2606
|
+
id: String,
|
|
2607
|
+
data:
|
|
2608
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::PromptFlow::Node::Data::OrHash,
|
|
2609
|
+
position:
|
|
2610
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::PromptFlow::Node::Position::OrHash,
|
|
2611
|
+
type: Symbol
|
|
2612
|
+
).returns(T.attached_class)
|
|
2613
|
+
end
|
|
2614
|
+
def self.new(id:, data:, position:, type: :promptBlock)
|
|
2615
|
+
end
|
|
2616
|
+
|
|
2617
|
+
sig do
|
|
2618
|
+
override.returns(
|
|
2619
|
+
{
|
|
2620
|
+
id: String,
|
|
2621
|
+
data:
|
|
2622
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::PromptFlow::Node::Data,
|
|
2623
|
+
position:
|
|
2624
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::PromptFlow::Node::Position,
|
|
2625
|
+
type: Symbol
|
|
2626
|
+
}
|
|
2627
|
+
)
|
|
2628
|
+
end
|
|
2629
|
+
def to_hash
|
|
2630
|
+
end
|
|
2631
|
+
|
|
2632
|
+
class Data < Revox::Internal::Type::BaseModel
|
|
2633
|
+
OrHash =
|
|
2634
|
+
T.type_alias do
|
|
2635
|
+
T.any(
|
|
2636
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::PromptFlow::Node::Data,
|
|
2637
|
+
Revox::Internal::AnyHash
|
|
2638
|
+
)
|
|
2639
|
+
end
|
|
2640
|
+
|
|
2641
|
+
sig { returns(String) }
|
|
2642
|
+
attr_accessor :body
|
|
2643
|
+
|
|
2644
|
+
sig { returns(String) }
|
|
2645
|
+
attr_accessor :title
|
|
2646
|
+
|
|
2647
|
+
sig do
|
|
2648
|
+
params(body: String, title: String).returns(T.attached_class)
|
|
2649
|
+
end
|
|
2650
|
+
def self.new(body:, title:)
|
|
2651
|
+
end
|
|
2652
|
+
|
|
2653
|
+
sig { override.returns({ body: String, title: String }) }
|
|
2654
|
+
def to_hash
|
|
2655
|
+
end
|
|
2656
|
+
end
|
|
2657
|
+
|
|
2658
|
+
class Position < Revox::Internal::Type::BaseModel
|
|
2659
|
+
OrHash =
|
|
2660
|
+
T.type_alias do
|
|
2661
|
+
T.any(
|
|
2662
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::PromptFlow::Node::Position,
|
|
2663
|
+
Revox::Internal::AnyHash
|
|
2664
|
+
)
|
|
2665
|
+
end
|
|
2666
|
+
|
|
2667
|
+
sig { returns(Float) }
|
|
2668
|
+
attr_accessor :x
|
|
2669
|
+
|
|
2670
|
+
sig { returns(Float) }
|
|
2671
|
+
attr_accessor :y_
|
|
2672
|
+
|
|
2673
|
+
sig { params(x: Float, y_: Float).returns(T.attached_class) }
|
|
2674
|
+
def self.new(x:, y_:)
|
|
2675
|
+
end
|
|
2676
|
+
|
|
2677
|
+
sig { override.returns({ x: Float, y_: Float }) }
|
|
2678
|
+
def to_hash
|
|
2679
|
+
end
|
|
2680
|
+
end
|
|
2681
|
+
end
|
|
2682
|
+
end
|
|
2683
|
+
|
|
2684
|
+
class Slack < Revox::Internal::Type::BaseModel
|
|
2685
|
+
OrHash =
|
|
2686
|
+
T.type_alias do
|
|
2687
|
+
T.any(
|
|
2688
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Slack,
|
|
2689
|
+
Revox::Internal::AnyHash
|
|
2690
|
+
)
|
|
2691
|
+
end
|
|
2692
|
+
|
|
2693
|
+
# The Slack channel ID where the notification will be posted.
|
|
2694
|
+
sig { returns(String) }
|
|
2695
|
+
attr_accessor :channel_id
|
|
2696
|
+
|
|
2697
|
+
# The Nango connection ID linking the org's Slack workspace to Revox.
|
|
2698
|
+
sig { returns(String) }
|
|
2699
|
+
attr_accessor :connection_id
|
|
2700
|
+
|
|
2701
|
+
# Which call outcomes trigger a Slack notification (e.g. ['interested', 'none']).
|
|
2702
|
+
# Use 'none' to notify when outcome is null.
|
|
2703
|
+
sig do
|
|
2704
|
+
returns(
|
|
2705
|
+
T::Array[
|
|
2706
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Slack::Outcome::TaggedSymbol
|
|
2707
|
+
]
|
|
2708
|
+
)
|
|
2709
|
+
end
|
|
2710
|
+
attr_accessor :outcomes
|
|
2711
|
+
|
|
2712
|
+
# Human-readable Slack channel name, cached for display in the UI.
|
|
2713
|
+
sig { returns(T.nilable(String)) }
|
|
2714
|
+
attr_accessor :channel_name
|
|
2715
|
+
|
|
2716
|
+
# Optional message template. Supports {{summary}}, {{outcome}}, {{phone}},
|
|
2717
|
+
# {{call_url}}, {{assistant_name}}, {{campaign_name}}, {{first_name}},
|
|
2718
|
+
# {{last_name}}, {{email}}, {{company}}, {{contact_name}}, {{contact_line}}, plus
|
|
2719
|
+
# prompt_variables and structured_output keys. When null/empty a default template
|
|
2720
|
+
# is used.
|
|
2721
|
+
sig { returns(T.nilable(String)) }
|
|
2722
|
+
attr_accessor :template
|
|
2723
|
+
|
|
2724
|
+
sig do
|
|
2725
|
+
params(
|
|
2726
|
+
channel_id: String,
|
|
2727
|
+
connection_id: String,
|
|
2728
|
+
outcomes:
|
|
2729
|
+
T::Array[
|
|
2730
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Slack::Outcome::OrSymbol
|
|
2731
|
+
],
|
|
2732
|
+
channel_name: T.nilable(String),
|
|
2733
|
+
template: T.nilable(String)
|
|
2734
|
+
).returns(T.attached_class)
|
|
2735
|
+
end
|
|
2736
|
+
def self.new(
|
|
2737
|
+
# The Slack channel ID where the notification will be posted.
|
|
2738
|
+
channel_id:,
|
|
2739
|
+
# The Nango connection ID linking the org's Slack workspace to Revox.
|
|
2740
|
+
connection_id:,
|
|
2741
|
+
# Which call outcomes trigger a Slack notification (e.g. ['interested', 'none']).
|
|
2742
|
+
# Use 'none' to notify when outcome is null.
|
|
2743
|
+
outcomes:,
|
|
2744
|
+
# Human-readable Slack channel name, cached for display in the UI.
|
|
2745
|
+
channel_name: nil,
|
|
2746
|
+
# Optional message template. Supports {{summary}}, {{outcome}}, {{phone}},
|
|
2747
|
+
# {{call_url}}, {{assistant_name}}, {{campaign_name}}, {{first_name}},
|
|
2748
|
+
# {{last_name}}, {{email}}, {{company}}, {{contact_name}}, {{contact_line}}, plus
|
|
2749
|
+
# prompt_variables and structured_output keys. When null/empty a default template
|
|
2750
|
+
# is used.
|
|
2751
|
+
template: nil
|
|
2752
|
+
)
|
|
2753
|
+
end
|
|
2754
|
+
|
|
2755
|
+
sig do
|
|
2756
|
+
override.returns(
|
|
2757
|
+
{
|
|
2758
|
+
channel_id: String,
|
|
2759
|
+
connection_id: String,
|
|
2760
|
+
outcomes:
|
|
2761
|
+
T::Array[
|
|
2762
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Slack::Outcome::TaggedSymbol
|
|
2763
|
+
],
|
|
2764
|
+
channel_name: T.nilable(String),
|
|
2765
|
+
template: T.nilable(String)
|
|
2766
|
+
}
|
|
2767
|
+
)
|
|
2768
|
+
end
|
|
2769
|
+
def to_hash
|
|
2770
|
+
end
|
|
2771
|
+
|
|
2772
|
+
module Outcome
|
|
2773
|
+
extend Revox::Internal::Type::Enum
|
|
2774
|
+
|
|
2775
|
+
TaggedSymbol =
|
|
2776
|
+
T.type_alias do
|
|
2777
|
+
T.all(
|
|
2778
|
+
Symbol,
|
|
2779
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Slack::Outcome
|
|
2780
|
+
)
|
|
2781
|
+
end
|
|
2782
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
2783
|
+
|
|
2784
|
+
NOT_INTERESTED =
|
|
2785
|
+
T.let(
|
|
2786
|
+
:not_interested,
|
|
2787
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Slack::Outcome::TaggedSymbol
|
|
2788
|
+
)
|
|
2789
|
+
INTERESTED =
|
|
2790
|
+
T.let(
|
|
2791
|
+
:interested,
|
|
2792
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Slack::Outcome::TaggedSymbol
|
|
2793
|
+
)
|
|
2794
|
+
COMPLETED =
|
|
2795
|
+
T.let(
|
|
2796
|
+
:completed,
|
|
2797
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Slack::Outcome::TaggedSymbol
|
|
2798
|
+
)
|
|
2799
|
+
REQUESTED_CALLBACK_LATER =
|
|
2800
|
+
T.let(
|
|
2801
|
+
:requested_callback_later,
|
|
2802
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Slack::Outcome::TaggedSymbol
|
|
2803
|
+
)
|
|
2804
|
+
REQUESTED_CALLBACK_NEW_NUMBER =
|
|
2805
|
+
T.let(
|
|
2806
|
+
:requested_callback_new_number,
|
|
2807
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Slack::Outcome::TaggedSymbol
|
|
2808
|
+
)
|
|
2809
|
+
DO_NOT_CONTACT =
|
|
2810
|
+
T.let(
|
|
2811
|
+
:do_not_contact,
|
|
2812
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Slack::Outcome::TaggedSymbol
|
|
2813
|
+
)
|
|
2814
|
+
AI_AVERSE =
|
|
2815
|
+
T.let(
|
|
2816
|
+
:ai_averse,
|
|
2817
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Slack::Outcome::TaggedSymbol
|
|
2818
|
+
)
|
|
2819
|
+
NONE =
|
|
2820
|
+
T.let(
|
|
2821
|
+
:none,
|
|
2822
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Slack::Outcome::TaggedSymbol
|
|
2823
|
+
)
|
|
2824
|
+
|
|
2825
|
+
sig do
|
|
2826
|
+
override.returns(
|
|
2827
|
+
T::Array[
|
|
2828
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Slack::Outcome::TaggedSymbol
|
|
2829
|
+
]
|
|
2830
|
+
)
|
|
2831
|
+
end
|
|
2832
|
+
def self.values
|
|
2833
|
+
end
|
|
2834
|
+
end
|
|
2835
|
+
end
|
|
2836
|
+
|
|
2837
|
+
class StructuredOutputConfig < Revox::Internal::Type::BaseModel
|
|
2838
|
+
OrHash =
|
|
2839
|
+
T.type_alias do
|
|
2840
|
+
T.any(
|
|
2841
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::StructuredOutputConfig,
|
|
2842
|
+
Revox::Internal::AnyHash
|
|
2843
|
+
)
|
|
2844
|
+
end
|
|
2845
|
+
|
|
2846
|
+
sig { returns(String) }
|
|
2847
|
+
attr_accessor :name
|
|
2848
|
+
|
|
2849
|
+
sig { returns(T::Boolean) }
|
|
2850
|
+
attr_accessor :required
|
|
2851
|
+
|
|
2852
|
+
sig do
|
|
2853
|
+
returns(
|
|
2854
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::StructuredOutputConfig::Type::TaggedSymbol
|
|
2855
|
+
)
|
|
2856
|
+
end
|
|
2857
|
+
attr_accessor :type
|
|
2858
|
+
|
|
2859
|
+
sig { returns(T.nilable(String)) }
|
|
2860
|
+
attr_reader :description
|
|
2861
|
+
|
|
2862
|
+
sig { params(description: String).void }
|
|
2863
|
+
attr_writer :description
|
|
2864
|
+
|
|
2865
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
2866
|
+
attr_reader :enum_options
|
|
2867
|
+
|
|
2868
|
+
sig { params(enum_options: T::Array[String]).void }
|
|
2869
|
+
attr_writer :enum_options
|
|
2870
|
+
|
|
2871
|
+
sig do
|
|
2872
|
+
params(
|
|
2873
|
+
name: String,
|
|
2874
|
+
required: T::Boolean,
|
|
2875
|
+
type:
|
|
2876
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::StructuredOutputConfig::Type::OrSymbol,
|
|
2877
|
+
description: String,
|
|
2878
|
+
enum_options: T::Array[String]
|
|
2879
|
+
).returns(T.attached_class)
|
|
2880
|
+
end
|
|
2881
|
+
def self.new(
|
|
2882
|
+
name:,
|
|
2883
|
+
required:,
|
|
2884
|
+
type:,
|
|
2885
|
+
description: nil,
|
|
2886
|
+
enum_options: nil
|
|
2887
|
+
)
|
|
2888
|
+
end
|
|
2889
|
+
|
|
2890
|
+
sig do
|
|
2891
|
+
override.returns(
|
|
2892
|
+
{
|
|
2893
|
+
name: String,
|
|
2894
|
+
required: T::Boolean,
|
|
2895
|
+
type:
|
|
2896
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::StructuredOutputConfig::Type::TaggedSymbol,
|
|
2897
|
+
description: String,
|
|
2898
|
+
enum_options: T::Array[String]
|
|
2899
|
+
}
|
|
2900
|
+
)
|
|
2901
|
+
end
|
|
2902
|
+
def to_hash
|
|
2903
|
+
end
|
|
2904
|
+
|
|
2905
|
+
module Type
|
|
2906
|
+
extend Revox::Internal::Type::Enum
|
|
2907
|
+
|
|
2908
|
+
TaggedSymbol =
|
|
2909
|
+
T.type_alias do
|
|
2910
|
+
T.all(
|
|
2911
|
+
Symbol,
|
|
2912
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::StructuredOutputConfig::Type
|
|
2913
|
+
)
|
|
2914
|
+
end
|
|
2915
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
2916
|
+
|
|
2917
|
+
STRING =
|
|
2918
|
+
T.let(
|
|
2919
|
+
:string,
|
|
2920
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::StructuredOutputConfig::Type::TaggedSymbol
|
|
2921
|
+
)
|
|
2922
|
+
NUMBER =
|
|
2923
|
+
T.let(
|
|
2924
|
+
:number,
|
|
2925
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::StructuredOutputConfig::Type::TaggedSymbol
|
|
2926
|
+
)
|
|
2927
|
+
BOOLEAN =
|
|
2928
|
+
T.let(
|
|
2929
|
+
:boolean,
|
|
2930
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::StructuredOutputConfig::Type::TaggedSymbol
|
|
2931
|
+
)
|
|
2932
|
+
ENUM =
|
|
2933
|
+
T.let(
|
|
2934
|
+
:enum,
|
|
2935
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::StructuredOutputConfig::Type::TaggedSymbol
|
|
2936
|
+
)
|
|
2937
|
+
DATE =
|
|
2938
|
+
T.let(
|
|
2939
|
+
:date,
|
|
2940
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::StructuredOutputConfig::Type::TaggedSymbol
|
|
2941
|
+
)
|
|
2942
|
+
DATETIME =
|
|
2943
|
+
T.let(
|
|
2944
|
+
:datetime,
|
|
2945
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::StructuredOutputConfig::Type::TaggedSymbol
|
|
2946
|
+
)
|
|
2947
|
+
|
|
2948
|
+
sig do
|
|
2949
|
+
override.returns(
|
|
2950
|
+
T::Array[
|
|
2951
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::StructuredOutputConfig::Type::TaggedSymbol
|
|
2952
|
+
]
|
|
2953
|
+
)
|
|
2954
|
+
end
|
|
2955
|
+
def self.values
|
|
2956
|
+
end
|
|
2957
|
+
end
|
|
2958
|
+
end
|
|
2959
|
+
|
|
2960
|
+
class SttContext < Revox::Internal::Type::BaseModel
|
|
2961
|
+
OrHash =
|
|
2962
|
+
T.type_alias do
|
|
2963
|
+
T.any(
|
|
2964
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::SttContext,
|
|
2965
|
+
Revox::Internal::AnyHash
|
|
2966
|
+
)
|
|
2967
|
+
end
|
|
2968
|
+
|
|
2969
|
+
sig do
|
|
2970
|
+
returns(
|
|
2971
|
+
T::Array[
|
|
2972
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::SttContext::General
|
|
2973
|
+
]
|
|
2974
|
+
)
|
|
2975
|
+
end
|
|
2976
|
+
attr_accessor :general
|
|
2977
|
+
|
|
2978
|
+
sig { returns(T::Array[String]) }
|
|
2979
|
+
attr_accessor :terms
|
|
2980
|
+
|
|
2981
|
+
# Assistant-level speech-to-text context: structured `general` key/value pairs
|
|
2982
|
+
# plus a list of domain `terms`. Prompt-derived context is merged in without
|
|
2983
|
+
# replacing existing entries.
|
|
2984
|
+
sig do
|
|
2985
|
+
params(
|
|
2986
|
+
general:
|
|
2987
|
+
T::Array[
|
|
2988
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::SttContext::General::OrHash
|
|
2989
|
+
],
|
|
2990
|
+
terms: T::Array[String]
|
|
2991
|
+
).returns(T.attached_class)
|
|
2992
|
+
end
|
|
2993
|
+
def self.new(general:, terms:)
|
|
2994
|
+
end
|
|
2995
|
+
|
|
2996
|
+
sig do
|
|
2997
|
+
override.returns(
|
|
2998
|
+
{
|
|
2999
|
+
general:
|
|
3000
|
+
T::Array[
|
|
3001
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::SttContext::General
|
|
3002
|
+
],
|
|
3003
|
+
terms: T::Array[String]
|
|
3004
|
+
}
|
|
3005
|
+
)
|
|
3006
|
+
end
|
|
3007
|
+
def to_hash
|
|
3008
|
+
end
|
|
3009
|
+
|
|
3010
|
+
class General < Revox::Internal::Type::BaseModel
|
|
3011
|
+
OrHash =
|
|
3012
|
+
T.type_alias do
|
|
3013
|
+
T.any(
|
|
3014
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::SttContext::General,
|
|
3015
|
+
Revox::Internal::AnyHash
|
|
3016
|
+
)
|
|
3017
|
+
end
|
|
3018
|
+
|
|
3019
|
+
sig { returns(String) }
|
|
3020
|
+
attr_accessor :key
|
|
3021
|
+
|
|
3022
|
+
sig { returns(String) }
|
|
3023
|
+
attr_accessor :value
|
|
3024
|
+
|
|
3025
|
+
sig do
|
|
3026
|
+
params(key: String, value: String).returns(T.attached_class)
|
|
3027
|
+
end
|
|
3028
|
+
def self.new(key:, value:)
|
|
3029
|
+
end
|
|
3030
|
+
|
|
3031
|
+
sig { override.returns({ key: String, value: String }) }
|
|
3032
|
+
def to_hash
|
|
3033
|
+
end
|
|
3034
|
+
end
|
|
3035
|
+
end
|
|
3036
|
+
|
|
3037
|
+
# Transcriber (speech-to-text) model used for the assistant.
|
|
3038
|
+
module SttModel
|
|
3039
|
+
extend Revox::Internal::Type::Enum
|
|
3040
|
+
|
|
3041
|
+
TaggedSymbol =
|
|
3042
|
+
T.type_alias do
|
|
3043
|
+
T.all(
|
|
3044
|
+
Symbol,
|
|
3045
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::SttModel
|
|
3046
|
+
)
|
|
3047
|
+
end
|
|
3048
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
3049
|
+
|
|
3050
|
+
STT_RT_V4 =
|
|
3051
|
+
T.let(
|
|
3052
|
+
:"stt-rt-v4",
|
|
3053
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::SttModel::TaggedSymbol
|
|
3054
|
+
)
|
|
3055
|
+
STT_RT_V5 =
|
|
3056
|
+
T.let(
|
|
3057
|
+
:"stt-rt-v5",
|
|
3058
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::SttModel::TaggedSymbol
|
|
3059
|
+
)
|
|
3060
|
+
|
|
3061
|
+
sig do
|
|
3062
|
+
override.returns(
|
|
3063
|
+
T::Array[
|
|
3064
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::SttModel::TaggedSymbol
|
|
3065
|
+
]
|
|
3066
|
+
)
|
|
3067
|
+
end
|
|
3068
|
+
def self.values
|
|
3069
|
+
end
|
|
3070
|
+
end
|
|
3071
|
+
|
|
3072
|
+
# Audio clip to play while the agent is processing a response. One of the built-in
|
|
3073
|
+
# LiveKit audio clips; null disables it.
|
|
3074
|
+
module ThinkingSound
|
|
3075
|
+
extend Revox::Internal::Type::Enum
|
|
3076
|
+
|
|
3077
|
+
TaggedSymbol =
|
|
3078
|
+
T.type_alias do
|
|
3079
|
+
T.all(
|
|
3080
|
+
Symbol,
|
|
3081
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::ThinkingSound
|
|
3082
|
+
)
|
|
3083
|
+
end
|
|
3084
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
3085
|
+
|
|
3086
|
+
CITY_AMBIENCE_OGG =
|
|
3087
|
+
T.let(
|
|
3088
|
+
:"city-ambience.ogg",
|
|
3089
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::ThinkingSound::TaggedSymbol
|
|
3090
|
+
)
|
|
3091
|
+
FOREST_AMBIENCE_OGG =
|
|
3092
|
+
T.let(
|
|
3093
|
+
:"forest-ambience.ogg",
|
|
3094
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::ThinkingSound::TaggedSymbol
|
|
3095
|
+
)
|
|
3096
|
+
OFFICE_AMBIENCE_OGG =
|
|
3097
|
+
T.let(
|
|
3098
|
+
:"office-ambience.ogg",
|
|
3099
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::ThinkingSound::TaggedSymbol
|
|
3100
|
+
)
|
|
3101
|
+
CROWDED_ROOM_OGG =
|
|
3102
|
+
T.let(
|
|
3103
|
+
:"crowded-room.ogg",
|
|
3104
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::ThinkingSound::TaggedSymbol
|
|
3105
|
+
)
|
|
3106
|
+
KEYBOARD_TYPING_OGG =
|
|
3107
|
+
T.let(
|
|
3108
|
+
:"keyboard-typing.ogg",
|
|
3109
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::ThinkingSound::TaggedSymbol
|
|
3110
|
+
)
|
|
3111
|
+
KEYBOARD_TYPING2_OGG =
|
|
3112
|
+
T.let(
|
|
3113
|
+
:"keyboard-typing2.ogg",
|
|
3114
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::ThinkingSound::TaggedSymbol
|
|
3115
|
+
)
|
|
3116
|
+
HOLD_MUSIC_OGG =
|
|
3117
|
+
T.let(
|
|
3118
|
+
:"hold_music.ogg",
|
|
3119
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::ThinkingSound::TaggedSymbol
|
|
3120
|
+
)
|
|
3121
|
+
|
|
3122
|
+
sig do
|
|
3123
|
+
override.returns(
|
|
3124
|
+
T::Array[
|
|
3125
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::ThinkingSound::TaggedSymbol
|
|
3126
|
+
]
|
|
3127
|
+
)
|
|
3128
|
+
end
|
|
3129
|
+
def self.values
|
|
3130
|
+
end
|
|
3131
|
+
end
|
|
3132
|
+
|
|
3133
|
+
module Type
|
|
3134
|
+
extend Revox::Internal::Type::Enum
|
|
3135
|
+
|
|
3136
|
+
TaggedSymbol =
|
|
3137
|
+
T.type_alias do
|
|
3138
|
+
T.all(
|
|
3139
|
+
Symbol,
|
|
3140
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Type
|
|
3141
|
+
)
|
|
3142
|
+
end
|
|
3143
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
3144
|
+
|
|
3145
|
+
STANDALONE =
|
|
3146
|
+
T.let(
|
|
3147
|
+
:standalone,
|
|
3148
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Type::TaggedSymbol
|
|
3149
|
+
)
|
|
3150
|
+
MULTI_STEP =
|
|
3151
|
+
T.let(
|
|
3152
|
+
:"multi-step",
|
|
3153
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Type::TaggedSymbol
|
|
3154
|
+
)
|
|
3155
|
+
SUB_ASSISTANT =
|
|
3156
|
+
T.let(
|
|
3157
|
+
:"sub-assistant",
|
|
3158
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Type::TaggedSymbol
|
|
3159
|
+
)
|
|
3160
|
+
|
|
3161
|
+
sig do
|
|
3162
|
+
override.returns(
|
|
3163
|
+
T::Array[
|
|
3164
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Type::TaggedSymbol
|
|
3165
|
+
]
|
|
3166
|
+
)
|
|
3167
|
+
end
|
|
3168
|
+
def self.values
|
|
3169
|
+
end
|
|
3170
|
+
end
|
|
3171
|
+
|
|
3172
|
+
class Voice < Revox::Internal::Type::BaseModel
|
|
3173
|
+
OrHash =
|
|
3174
|
+
T.type_alias do
|
|
3175
|
+
T.any(
|
|
3176
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Voice,
|
|
3177
|
+
Revox::Internal::AnyHash
|
|
3178
|
+
)
|
|
3179
|
+
end
|
|
3180
|
+
|
|
3181
|
+
# The ID of the voice.
|
|
3182
|
+
sig { returns(String) }
|
|
3183
|
+
attr_accessor :id
|
|
3184
|
+
|
|
3185
|
+
# The provider of the voice.
|
|
3186
|
+
sig do
|
|
3187
|
+
returns(
|
|
3188
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Voice::Provider::TaggedSymbol
|
|
3189
|
+
)
|
|
3190
|
+
end
|
|
3191
|
+
attr_accessor :provider
|
|
3192
|
+
|
|
3193
|
+
# Cartesia TTS model (Cartesia only). Defaults to sonic-3 when omitted. Ignored
|
|
3194
|
+
# for other providers.
|
|
3195
|
+
sig do
|
|
3196
|
+
returns(
|
|
3197
|
+
T.nilable(
|
|
3198
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Voice::Model::TaggedSymbol
|
|
3199
|
+
)
|
|
3200
|
+
)
|
|
3201
|
+
end
|
|
3202
|
+
attr_reader :model
|
|
3203
|
+
|
|
3204
|
+
sig do
|
|
3205
|
+
params(
|
|
3206
|
+
model:
|
|
3207
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Voice::Model::OrSymbol
|
|
3208
|
+
).void
|
|
3209
|
+
end
|
|
3210
|
+
attr_writer :model
|
|
3211
|
+
|
|
3212
|
+
# The speed of the voice. Range depends on provider: Cartesia 0.6–1.5, ElevenLabs
|
|
3213
|
+
# 0.7–1.2. Default is 1.0.
|
|
3214
|
+
sig { returns(T.nilable(Float)) }
|
|
3215
|
+
attr_reader :speed
|
|
3216
|
+
|
|
3217
|
+
sig { params(speed: Float).void }
|
|
3218
|
+
attr_writer :speed
|
|
3219
|
+
|
|
3220
|
+
# Volume of the voice (Cartesia only). 0.5–2.0, default 1.0. Ignored for other
|
|
3221
|
+
# providers.
|
|
3222
|
+
sig { returns(T.nilable(Float)) }
|
|
3223
|
+
attr_reader :volume
|
|
3224
|
+
|
|
3225
|
+
sig { params(volume: Float).void }
|
|
3226
|
+
attr_writer :volume
|
|
3227
|
+
|
|
3228
|
+
sig do
|
|
3229
|
+
params(
|
|
3230
|
+
id: String,
|
|
3231
|
+
provider:
|
|
3232
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Voice::Provider::OrSymbol,
|
|
3233
|
+
model:
|
|
3234
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Voice::Model::OrSymbol,
|
|
3235
|
+
speed: Float,
|
|
3236
|
+
volume: Float
|
|
3237
|
+
).returns(T.attached_class)
|
|
3238
|
+
end
|
|
3239
|
+
def self.new(
|
|
3240
|
+
# The ID of the voice.
|
|
3241
|
+
id:,
|
|
3242
|
+
# The provider of the voice.
|
|
3243
|
+
provider:,
|
|
3244
|
+
# Cartesia TTS model (Cartesia only). Defaults to sonic-3 when omitted. Ignored
|
|
3245
|
+
# for other providers.
|
|
3246
|
+
model: nil,
|
|
3247
|
+
# The speed of the voice. Range depends on provider: Cartesia 0.6–1.5, ElevenLabs
|
|
3248
|
+
# 0.7–1.2. Default is 1.0.
|
|
3249
|
+
speed: nil,
|
|
3250
|
+
# Volume of the voice (Cartesia only). 0.5–2.0, default 1.0. Ignored for other
|
|
3251
|
+
# providers.
|
|
3252
|
+
volume: nil
|
|
3253
|
+
)
|
|
3254
|
+
end
|
|
3255
|
+
|
|
3256
|
+
sig do
|
|
3257
|
+
override.returns(
|
|
3258
|
+
{
|
|
3259
|
+
id: String,
|
|
3260
|
+
provider:
|
|
3261
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Voice::Provider::TaggedSymbol,
|
|
3262
|
+
model:
|
|
3263
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Voice::Model::TaggedSymbol,
|
|
3264
|
+
speed: Float,
|
|
3265
|
+
volume: Float
|
|
3266
|
+
}
|
|
3267
|
+
)
|
|
3268
|
+
end
|
|
3269
|
+
def to_hash
|
|
3270
|
+
end
|
|
3271
|
+
|
|
3272
|
+
# The provider of the voice.
|
|
3273
|
+
module Provider
|
|
3274
|
+
extend Revox::Internal::Type::Enum
|
|
3275
|
+
|
|
3276
|
+
TaggedSymbol =
|
|
3277
|
+
T.type_alias do
|
|
3278
|
+
T.all(
|
|
3279
|
+
Symbol,
|
|
3280
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Voice::Provider
|
|
3281
|
+
)
|
|
3282
|
+
end
|
|
3283
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
3284
|
+
|
|
3285
|
+
CARTESIA =
|
|
3286
|
+
T.let(
|
|
3287
|
+
:cartesia,
|
|
3288
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Voice::Provider::TaggedSymbol
|
|
3289
|
+
)
|
|
3290
|
+
ELEVENLABS =
|
|
3291
|
+
T.let(
|
|
3292
|
+
:elevenlabs,
|
|
3293
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Voice::Provider::TaggedSymbol
|
|
3294
|
+
)
|
|
3295
|
+
|
|
3296
|
+
sig do
|
|
3297
|
+
override.returns(
|
|
3298
|
+
T::Array[
|
|
3299
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Voice::Provider::TaggedSymbol
|
|
3300
|
+
]
|
|
3301
|
+
)
|
|
3302
|
+
end
|
|
3303
|
+
def self.values
|
|
3304
|
+
end
|
|
3305
|
+
end
|
|
3306
|
+
|
|
3307
|
+
# Cartesia TTS model (Cartesia only). Defaults to sonic-3 when omitted. Ignored
|
|
3308
|
+
# for other providers.
|
|
3309
|
+
module Model
|
|
3310
|
+
extend Revox::Internal::Type::Enum
|
|
3311
|
+
|
|
3312
|
+
TaggedSymbol =
|
|
3313
|
+
T.type_alias do
|
|
3314
|
+
T.all(
|
|
3315
|
+
Symbol,
|
|
3316
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Voice::Model
|
|
3317
|
+
)
|
|
3318
|
+
end
|
|
3319
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
3320
|
+
|
|
3321
|
+
SONIC_3 =
|
|
3322
|
+
T.let(
|
|
3323
|
+
:"sonic-3",
|
|
3324
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Voice::Model::TaggedSymbol
|
|
3325
|
+
)
|
|
3326
|
+
SONIC_3_5 =
|
|
3327
|
+
T.let(
|
|
3328
|
+
:"sonic-3.5",
|
|
3329
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Voice::Model::TaggedSymbol
|
|
3330
|
+
)
|
|
3331
|
+
|
|
3332
|
+
sig do
|
|
3333
|
+
override.returns(
|
|
3334
|
+
T::Array[
|
|
3335
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Voice::Model::TaggedSymbol
|
|
3336
|
+
]
|
|
3337
|
+
)
|
|
3338
|
+
end
|
|
3339
|
+
def self.values
|
|
3340
|
+
end
|
|
3341
|
+
end
|
|
3342
|
+
end
|
|
3343
|
+
|
|
3344
|
+
class Zoho < Revox::Internal::Type::BaseModel
|
|
3345
|
+
OrHash =
|
|
3346
|
+
T.type_alias do
|
|
3347
|
+
T.any(
|
|
3348
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Zoho,
|
|
3349
|
+
Revox::Internal::AnyHash
|
|
3350
|
+
)
|
|
3351
|
+
end
|
|
3352
|
+
|
|
3353
|
+
# The Nango connection ID linking the org's Zoho CRM account to Revox.
|
|
3354
|
+
sig { returns(String) }
|
|
3355
|
+
attr_accessor :connection_id
|
|
3356
|
+
|
|
3357
|
+
# Maps extracted call fields (structured_output / prompt variables) onto Zoho
|
|
3358
|
+
# field API names on the upserted record.
|
|
3359
|
+
sig do
|
|
3360
|
+
returns(
|
|
3361
|
+
T::Array[
|
|
3362
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Zoho::FieldMapping
|
|
3363
|
+
]
|
|
3364
|
+
)
|
|
3365
|
+
end
|
|
3366
|
+
attr_accessor :field_mapping
|
|
3367
|
+
|
|
3368
|
+
# When true, also log the call as a record in Zoho's Calls module (related to the
|
|
3369
|
+
# upserted prospect via Who_Id).
|
|
3370
|
+
sig { returns(T::Boolean) }
|
|
3371
|
+
attr_accessor :log_call_activity
|
|
3372
|
+
|
|
3373
|
+
# Zoho module the prospect record is upserted into (e.g. 'Leads' or 'Contacts').
|
|
3374
|
+
sig { returns(String) }
|
|
3375
|
+
attr_accessor :module_
|
|
3376
|
+
|
|
3377
|
+
# Which call outcomes trigger the Zoho push (e.g. ['interested', 'none']). Use
|
|
3378
|
+
# 'none' to push when outcome is null.
|
|
3379
|
+
sig do
|
|
3380
|
+
returns(
|
|
3381
|
+
T::Array[
|
|
3382
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Zoho::Outcome::TaggedSymbol
|
|
3383
|
+
]
|
|
3384
|
+
)
|
|
3385
|
+
end
|
|
3386
|
+
attr_accessor :outcomes
|
|
3387
|
+
|
|
3388
|
+
# Optional Note body template. Supports {{summary}}, {{outcome}}, {{phone}},
|
|
3389
|
+
# {{call_url}}, {{assistant_name}}, {{campaign_name}}, {{transcript}}, plus
|
|
3390
|
+
# prompt_variables and structured_output keys. When null/empty a default note
|
|
3391
|
+
# (outcome + summary + auto-listed extracted fields) is used.
|
|
3392
|
+
sig { returns(T.nilable(String)) }
|
|
3393
|
+
attr_accessor :template
|
|
3394
|
+
|
|
3395
|
+
sig do
|
|
3396
|
+
params(
|
|
3397
|
+
connection_id: String,
|
|
3398
|
+
field_mapping:
|
|
3399
|
+
T::Array[
|
|
3400
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Zoho::FieldMapping::OrHash
|
|
3401
|
+
],
|
|
3402
|
+
log_call_activity: T::Boolean,
|
|
3403
|
+
module_: String,
|
|
3404
|
+
outcomes:
|
|
3405
|
+
T::Array[
|
|
3406
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Zoho::Outcome::OrSymbol
|
|
3407
|
+
],
|
|
3408
|
+
template: T.nilable(String)
|
|
3409
|
+
).returns(T.attached_class)
|
|
3410
|
+
end
|
|
3411
|
+
def self.new(
|
|
3412
|
+
# The Nango connection ID linking the org's Zoho CRM account to Revox.
|
|
3413
|
+
connection_id:,
|
|
3414
|
+
# Maps extracted call fields (structured_output / prompt variables) onto Zoho
|
|
3415
|
+
# field API names on the upserted record.
|
|
3416
|
+
field_mapping:,
|
|
3417
|
+
# When true, also log the call as a record in Zoho's Calls module (related to the
|
|
3418
|
+
# upserted prospect via Who_Id).
|
|
3419
|
+
log_call_activity:,
|
|
3420
|
+
# Zoho module the prospect record is upserted into (e.g. 'Leads' or 'Contacts').
|
|
3421
|
+
module_:,
|
|
3422
|
+
# Which call outcomes trigger the Zoho push (e.g. ['interested', 'none']). Use
|
|
3423
|
+
# 'none' to push when outcome is null.
|
|
3424
|
+
outcomes:,
|
|
3425
|
+
# Optional Note body template. Supports {{summary}}, {{outcome}}, {{phone}},
|
|
3426
|
+
# {{call_url}}, {{assistant_name}}, {{campaign_name}}, {{transcript}}, plus
|
|
3427
|
+
# prompt_variables and structured_output keys. When null/empty a default note
|
|
3428
|
+
# (outcome + summary + auto-listed extracted fields) is used.
|
|
3429
|
+
template: nil
|
|
3430
|
+
)
|
|
3431
|
+
end
|
|
3432
|
+
|
|
3433
|
+
sig do
|
|
3434
|
+
override.returns(
|
|
3435
|
+
{
|
|
3436
|
+
connection_id: String,
|
|
3437
|
+
field_mapping:
|
|
3438
|
+
T::Array[
|
|
3439
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Zoho::FieldMapping
|
|
3440
|
+
],
|
|
3441
|
+
log_call_activity: T::Boolean,
|
|
3442
|
+
module_: String,
|
|
3443
|
+
outcomes:
|
|
3444
|
+
T::Array[
|
|
3445
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Zoho::Outcome::TaggedSymbol
|
|
3446
|
+
],
|
|
3447
|
+
template: T.nilable(String)
|
|
3448
|
+
}
|
|
1035
3449
|
)
|
|
1036
3450
|
end
|
|
1037
3451
|
def to_hash
|
|
1038
3452
|
end
|
|
1039
3453
|
|
|
1040
|
-
|
|
3454
|
+
class FieldMapping < Revox::Internal::Type::BaseModel
|
|
3455
|
+
OrHash =
|
|
3456
|
+
T.type_alias do
|
|
3457
|
+
T.any(
|
|
3458
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Zoho::FieldMapping,
|
|
3459
|
+
Revox::Internal::AnyHash
|
|
3460
|
+
)
|
|
3461
|
+
end
|
|
3462
|
+
|
|
3463
|
+
# Source key to read from the call: a structured_output field name, falling back
|
|
3464
|
+
# to a prompt variable of the same name.
|
|
3465
|
+
sig { returns(String) }
|
|
3466
|
+
attr_accessor :source
|
|
3467
|
+
|
|
3468
|
+
# Destination Zoho field API name on the upserted record (e.g. 'Email', 'Company',
|
|
3469
|
+
# or a custom 'Budget\_\_c').
|
|
3470
|
+
sig { returns(String) }
|
|
3471
|
+
attr_accessor :zoho_field
|
|
3472
|
+
|
|
3473
|
+
sig do
|
|
3474
|
+
params(source: String, zoho_field: String).returns(
|
|
3475
|
+
T.attached_class
|
|
3476
|
+
)
|
|
3477
|
+
end
|
|
3478
|
+
def self.new(
|
|
3479
|
+
# Source key to read from the call: a structured_output field name, falling back
|
|
3480
|
+
# to a prompt variable of the same name.
|
|
3481
|
+
source:,
|
|
3482
|
+
# Destination Zoho field API name on the upserted record (e.g. 'Email', 'Company',
|
|
3483
|
+
# or a custom 'Budget\_\_c').
|
|
3484
|
+
zoho_field:
|
|
3485
|
+
)
|
|
3486
|
+
end
|
|
3487
|
+
|
|
3488
|
+
sig { override.returns({ source: String, zoho_field: String }) }
|
|
3489
|
+
def to_hash
|
|
3490
|
+
end
|
|
3491
|
+
end
|
|
3492
|
+
|
|
3493
|
+
module Outcome
|
|
1041
3494
|
extend Revox::Internal::Type::Enum
|
|
1042
3495
|
|
|
1043
3496
|
TaggedSymbol =
|
|
1044
3497
|
T.type_alias do
|
|
1045
3498
|
T.all(
|
|
1046
3499
|
Symbol,
|
|
1047
|
-
Revox::Models::CampaignCreateResponse::Campaign::Assistant::
|
|
3500
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Zoho::Outcome
|
|
1048
3501
|
)
|
|
1049
3502
|
end
|
|
1050
3503
|
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1051
3504
|
|
|
1052
|
-
|
|
3505
|
+
NOT_INTERESTED =
|
|
1053
3506
|
T.let(
|
|
1054
|
-
:
|
|
1055
|
-
Revox::Models::CampaignCreateResponse::Campaign::Assistant::
|
|
3507
|
+
:not_interested,
|
|
3508
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Zoho::Outcome::TaggedSymbol
|
|
1056
3509
|
)
|
|
1057
|
-
|
|
3510
|
+
INTERESTED =
|
|
1058
3511
|
T.let(
|
|
1059
|
-
:
|
|
1060
|
-
Revox::Models::CampaignCreateResponse::Campaign::Assistant::
|
|
3512
|
+
:interested,
|
|
3513
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Zoho::Outcome::TaggedSymbol
|
|
1061
3514
|
)
|
|
1062
|
-
|
|
3515
|
+
COMPLETED =
|
|
1063
3516
|
T.let(
|
|
1064
|
-
:
|
|
1065
|
-
Revox::Models::CampaignCreateResponse::Campaign::Assistant::
|
|
3517
|
+
:completed,
|
|
3518
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Zoho::Outcome::TaggedSymbol
|
|
1066
3519
|
)
|
|
1067
|
-
|
|
3520
|
+
REQUESTED_CALLBACK_LATER =
|
|
1068
3521
|
T.let(
|
|
1069
|
-
:
|
|
1070
|
-
Revox::Models::CampaignCreateResponse::Campaign::Assistant::
|
|
3522
|
+
:requested_callback_later,
|
|
3523
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Zoho::Outcome::TaggedSymbol
|
|
1071
3524
|
)
|
|
1072
|
-
|
|
3525
|
+
REQUESTED_CALLBACK_NEW_NUMBER =
|
|
1073
3526
|
T.let(
|
|
1074
|
-
:
|
|
1075
|
-
Revox::Models::CampaignCreateResponse::Campaign::Assistant::
|
|
3527
|
+
:requested_callback_new_number,
|
|
3528
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Zoho::Outcome::TaggedSymbol
|
|
1076
3529
|
)
|
|
1077
|
-
|
|
3530
|
+
DO_NOT_CONTACT =
|
|
1078
3531
|
T.let(
|
|
1079
|
-
:
|
|
1080
|
-
Revox::Models::CampaignCreateResponse::Campaign::Assistant::
|
|
3532
|
+
:do_not_contact,
|
|
3533
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Zoho::Outcome::TaggedSymbol
|
|
3534
|
+
)
|
|
3535
|
+
AI_AVERSE =
|
|
3536
|
+
T.let(
|
|
3537
|
+
:ai_averse,
|
|
3538
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Zoho::Outcome::TaggedSymbol
|
|
3539
|
+
)
|
|
3540
|
+
NONE =
|
|
3541
|
+
T.let(
|
|
3542
|
+
:none,
|
|
3543
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Zoho::Outcome::TaggedSymbol
|
|
1081
3544
|
)
|
|
1082
3545
|
|
|
1083
3546
|
sig do
|
|
1084
3547
|
override.returns(
|
|
1085
3548
|
T::Array[
|
|
1086
|
-
Revox::Models::CampaignCreateResponse::Campaign::Assistant::
|
|
3549
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Zoho::Outcome::TaggedSymbol
|
|
1087
3550
|
]
|
|
1088
3551
|
)
|
|
1089
3552
|
end
|
|
@@ -1092,51 +3555,43 @@ module Revox
|
|
|
1092
3555
|
end
|
|
1093
3556
|
end
|
|
1094
3557
|
|
|
1095
|
-
class
|
|
3558
|
+
class CreatedBy < Revox::Internal::Type::BaseModel
|
|
1096
3559
|
OrHash =
|
|
1097
3560
|
T.type_alias do
|
|
1098
3561
|
T.any(
|
|
1099
|
-
Revox::Models::CampaignCreateResponse::Campaign::Assistant::
|
|
3562
|
+
Revox::Models::CampaignCreateResponse::Campaign::Assistant::CreatedBy,
|
|
1100
3563
|
Revox::Internal::AnyHash
|
|
1101
3564
|
)
|
|
1102
3565
|
end
|
|
1103
3566
|
|
|
1104
|
-
# The
|
|
3567
|
+
# The database user id of the creator.
|
|
1105
3568
|
sig { returns(String) }
|
|
1106
3569
|
attr_accessor :id
|
|
1107
3570
|
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
returns(
|
|
1111
|
-
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Voice::Provider::TaggedSymbol
|
|
1112
|
-
)
|
|
1113
|
-
end
|
|
1114
|
-
attr_accessor :provider
|
|
3571
|
+
sig { returns(String) }
|
|
3572
|
+
attr_accessor :email
|
|
1115
3573
|
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
sig { returns(T.nilable(Float)) }
|
|
1119
|
-
attr_reader :speed
|
|
3574
|
+
sig { returns(T.nilable(String)) }
|
|
3575
|
+
attr_accessor :first_name
|
|
1120
3576
|
|
|
1121
|
-
sig {
|
|
1122
|
-
|
|
3577
|
+
sig { returns(T.nilable(String)) }
|
|
3578
|
+
attr_accessor :last_name
|
|
1123
3579
|
|
|
3580
|
+
# The user who created the assistant.
|
|
1124
3581
|
sig do
|
|
1125
3582
|
params(
|
|
1126
3583
|
id: String,
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
3584
|
+
email: String,
|
|
3585
|
+
first_name: T.nilable(String),
|
|
3586
|
+
last_name: T.nilable(String)
|
|
1130
3587
|
).returns(T.attached_class)
|
|
1131
3588
|
end
|
|
1132
3589
|
def self.new(
|
|
1133
|
-
# The
|
|
3590
|
+
# The database user id of the creator.
|
|
1134
3591
|
id:,
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
# 0.7–1.2. Default is 1.0.
|
|
1139
|
-
speed: nil
|
|
3592
|
+
email:,
|
|
3593
|
+
first_name:,
|
|
3594
|
+
last_name:
|
|
1140
3595
|
)
|
|
1141
3596
|
end
|
|
1142
3597
|
|
|
@@ -1144,49 +3599,14 @@ module Revox
|
|
|
1144
3599
|
override.returns(
|
|
1145
3600
|
{
|
|
1146
3601
|
id: String,
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
3602
|
+
email: String,
|
|
3603
|
+
first_name: T.nilable(String),
|
|
3604
|
+
last_name: T.nilable(String)
|
|
1150
3605
|
}
|
|
1151
3606
|
)
|
|
1152
3607
|
end
|
|
1153
3608
|
def to_hash
|
|
1154
3609
|
end
|
|
1155
|
-
|
|
1156
|
-
# The provider of the voice.
|
|
1157
|
-
module Provider
|
|
1158
|
-
extend Revox::Internal::Type::Enum
|
|
1159
|
-
|
|
1160
|
-
TaggedSymbol =
|
|
1161
|
-
T.type_alias do
|
|
1162
|
-
T.all(
|
|
1163
|
-
Symbol,
|
|
1164
|
-
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Voice::Provider
|
|
1165
|
-
)
|
|
1166
|
-
end
|
|
1167
|
-
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1168
|
-
|
|
1169
|
-
CARTESIA =
|
|
1170
|
-
T.let(
|
|
1171
|
-
:cartesia,
|
|
1172
|
-
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Voice::Provider::TaggedSymbol
|
|
1173
|
-
)
|
|
1174
|
-
ELEVENLABS =
|
|
1175
|
-
T.let(
|
|
1176
|
-
:elevenlabs,
|
|
1177
|
-
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Voice::Provider::TaggedSymbol
|
|
1178
|
-
)
|
|
1179
|
-
|
|
1180
|
-
sig do
|
|
1181
|
-
override.returns(
|
|
1182
|
-
T::Array[
|
|
1183
|
-
Revox::Models::CampaignCreateResponse::Campaign::Assistant::Voice::Provider::TaggedSymbol
|
|
1184
|
-
]
|
|
1185
|
-
)
|
|
1186
|
-
end
|
|
1187
|
-
def self.values
|
|
1188
|
-
end
|
|
1189
|
-
end
|
|
1190
3610
|
end
|
|
1191
3611
|
|
|
1192
3612
|
class FaqItem < Revox::Internal::Type::BaseModel
|
|
@@ -1312,6 +3732,24 @@ module Revox
|
|
|
1312
3732
|
)
|
|
1313
3733
|
end
|
|
1314
3734
|
|
|
3735
|
+
# Days of the week when calls are allowed, in the recipient's timezone. Default:
|
|
3736
|
+
# Monday through Friday.
|
|
3737
|
+
sig do
|
|
3738
|
+
returns(
|
|
3739
|
+
T::Array[
|
|
3740
|
+
Revox::Models::CampaignCreateResponse::Campaign::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
3741
|
+
]
|
|
3742
|
+
)
|
|
3743
|
+
end
|
|
3744
|
+
attr_accessor :allowed_days
|
|
3745
|
+
|
|
3746
|
+
# If true and max_retry_attempts >= 2, attempt #2 fires immediately (skipping
|
|
3747
|
+
# retry_delay_seconds) when attempt #1 didn't reach a human.
|
|
3748
|
+
# Calling-window/allowed-days checks still apply. Only affects the 1→2 transition.
|
|
3749
|
+
# Default: false.
|
|
3750
|
+
sig { returns(T::Boolean) }
|
|
3751
|
+
attr_accessor :call_twice_in_a_row
|
|
3752
|
+
|
|
1315
3753
|
sig do
|
|
1316
3754
|
returns(
|
|
1317
3755
|
T::Array[
|
|
@@ -1335,6 +3773,11 @@ module Revox
|
|
|
1335
3773
|
# iterations. If not provided, defaults will be used.
|
|
1336
3774
|
sig do
|
|
1337
3775
|
params(
|
|
3776
|
+
allowed_days:
|
|
3777
|
+
T::Array[
|
|
3778
|
+
Revox::Models::CampaignCreateResponse::Campaign::CallRetryConfig::AllowedDay::OrSymbol
|
|
3779
|
+
],
|
|
3780
|
+
call_twice_in_a_row: T::Boolean,
|
|
1338
3781
|
calling_windows:
|
|
1339
3782
|
T::Array[
|
|
1340
3783
|
Revox::Models::CampaignCreateResponse::Campaign::CallRetryConfig::CallingWindow::OrHash
|
|
@@ -1344,6 +3787,14 @@ module Revox
|
|
|
1344
3787
|
).returns(T.attached_class)
|
|
1345
3788
|
end
|
|
1346
3789
|
def self.new(
|
|
3790
|
+
# Days of the week when calls are allowed, in the recipient's timezone. Default:
|
|
3791
|
+
# Monday through Friday.
|
|
3792
|
+
allowed_days:,
|
|
3793
|
+
# If true and max_retry_attempts >= 2, attempt #2 fires immediately (skipping
|
|
3794
|
+
# retry_delay_seconds) when attempt #1 didn't reach a human.
|
|
3795
|
+
# Calling-window/allowed-days checks still apply. Only affects the 1→2 transition.
|
|
3796
|
+
# Default: false.
|
|
3797
|
+
call_twice_in_a_row:,
|
|
1347
3798
|
calling_windows:,
|
|
1348
3799
|
# Maximum number of call retry attempts. Default: 3.
|
|
1349
3800
|
max_retry_attempts:,
|
|
@@ -1357,6 +3808,11 @@ module Revox
|
|
|
1357
3808
|
sig do
|
|
1358
3809
|
override.returns(
|
|
1359
3810
|
{
|
|
3811
|
+
allowed_days:
|
|
3812
|
+
T::Array[
|
|
3813
|
+
Revox::Models::CampaignCreateResponse::Campaign::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
3814
|
+
],
|
|
3815
|
+
call_twice_in_a_row: T::Boolean,
|
|
1360
3816
|
calling_windows:
|
|
1361
3817
|
T::Array[
|
|
1362
3818
|
Revox::Models::CampaignCreateResponse::Campaign::CallRetryConfig::CallingWindow
|
|
@@ -1369,6 +3825,65 @@ module Revox
|
|
|
1369
3825
|
def to_hash
|
|
1370
3826
|
end
|
|
1371
3827
|
|
|
3828
|
+
module AllowedDay
|
|
3829
|
+
extend Revox::Internal::Type::Enum
|
|
3830
|
+
|
|
3831
|
+
TaggedSymbol =
|
|
3832
|
+
T.type_alias do
|
|
3833
|
+
T.all(
|
|
3834
|
+
Symbol,
|
|
3835
|
+
Revox::Models::CampaignCreateResponse::Campaign::CallRetryConfig::AllowedDay
|
|
3836
|
+
)
|
|
3837
|
+
end
|
|
3838
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
3839
|
+
|
|
3840
|
+
MONDAY =
|
|
3841
|
+
T.let(
|
|
3842
|
+
:monday,
|
|
3843
|
+
Revox::Models::CampaignCreateResponse::Campaign::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
3844
|
+
)
|
|
3845
|
+
TUESDAY =
|
|
3846
|
+
T.let(
|
|
3847
|
+
:tuesday,
|
|
3848
|
+
Revox::Models::CampaignCreateResponse::Campaign::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
3849
|
+
)
|
|
3850
|
+
WEDNESDAY =
|
|
3851
|
+
T.let(
|
|
3852
|
+
:wednesday,
|
|
3853
|
+
Revox::Models::CampaignCreateResponse::Campaign::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
3854
|
+
)
|
|
3855
|
+
THURSDAY =
|
|
3856
|
+
T.let(
|
|
3857
|
+
:thursday,
|
|
3858
|
+
Revox::Models::CampaignCreateResponse::Campaign::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
3859
|
+
)
|
|
3860
|
+
FRIDAY =
|
|
3861
|
+
T.let(
|
|
3862
|
+
:friday,
|
|
3863
|
+
Revox::Models::CampaignCreateResponse::Campaign::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
3864
|
+
)
|
|
3865
|
+
SATURDAY =
|
|
3866
|
+
T.let(
|
|
3867
|
+
:saturday,
|
|
3868
|
+
Revox::Models::CampaignCreateResponse::Campaign::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
3869
|
+
)
|
|
3870
|
+
SUNDAY =
|
|
3871
|
+
T.let(
|
|
3872
|
+
:sunday,
|
|
3873
|
+
Revox::Models::CampaignCreateResponse::Campaign::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
3874
|
+
)
|
|
3875
|
+
|
|
3876
|
+
sig do
|
|
3877
|
+
override.returns(
|
|
3878
|
+
T::Array[
|
|
3879
|
+
Revox::Models::CampaignCreateResponse::Campaign::CallRetryConfig::AllowedDay::TaggedSymbol
|
|
3880
|
+
]
|
|
3881
|
+
)
|
|
3882
|
+
end
|
|
3883
|
+
def self.values
|
|
3884
|
+
end
|
|
3885
|
+
end
|
|
3886
|
+
|
|
1372
3887
|
class CallingWindow < Revox::Internal::Type::BaseModel
|
|
1373
3888
|
OrHash =
|
|
1374
3889
|
T.type_alias do
|
|
@@ -1429,6 +3944,131 @@ module Revox
|
|
|
1429
3944
|
end
|
|
1430
3945
|
end
|
|
1431
3946
|
|
|
3947
|
+
class CreatedBy < Revox::Internal::Type::BaseModel
|
|
3948
|
+
OrHash =
|
|
3949
|
+
T.type_alias do
|
|
3950
|
+
T.any(
|
|
3951
|
+
Revox::Models::CampaignCreateResponse::Campaign::CreatedBy,
|
|
3952
|
+
Revox::Internal::AnyHash
|
|
3953
|
+
)
|
|
3954
|
+
end
|
|
3955
|
+
|
|
3956
|
+
# The database user id (foreign key target on calls.assignee_id).
|
|
3957
|
+
sig { returns(String) }
|
|
3958
|
+
attr_accessor :id
|
|
3959
|
+
|
|
3960
|
+
sig { returns(String) }
|
|
3961
|
+
attr_accessor :email
|
|
3962
|
+
|
|
3963
|
+
sig { returns(T.nilable(String)) }
|
|
3964
|
+
attr_accessor :first_name
|
|
3965
|
+
|
|
3966
|
+
sig { returns(T.nilable(String)) }
|
|
3967
|
+
attr_accessor :last_name
|
|
3968
|
+
|
|
3969
|
+
# A member of the current organization.
|
|
3970
|
+
sig do
|
|
3971
|
+
params(
|
|
3972
|
+
id: String,
|
|
3973
|
+
email: String,
|
|
3974
|
+
first_name: T.nilable(String),
|
|
3975
|
+
last_name: T.nilable(String)
|
|
3976
|
+
).returns(T.attached_class)
|
|
3977
|
+
end
|
|
3978
|
+
def self.new(
|
|
3979
|
+
# The database user id (foreign key target on calls.assignee_id).
|
|
3980
|
+
id:,
|
|
3981
|
+
email:,
|
|
3982
|
+
first_name:,
|
|
3983
|
+
last_name:
|
|
3984
|
+
)
|
|
3985
|
+
end
|
|
3986
|
+
|
|
3987
|
+
sig do
|
|
3988
|
+
override.returns(
|
|
3989
|
+
{
|
|
3990
|
+
id: String,
|
|
3991
|
+
email: String,
|
|
3992
|
+
first_name: T.nilable(String),
|
|
3993
|
+
last_name: T.nilable(String)
|
|
3994
|
+
}
|
|
3995
|
+
)
|
|
3996
|
+
end
|
|
3997
|
+
def to_hash
|
|
3998
|
+
end
|
|
3999
|
+
end
|
|
4000
|
+
|
|
4001
|
+
class FunnelStats < Revox::Internal::Type::BaseModel
|
|
4002
|
+
OrHash =
|
|
4003
|
+
T.type_alias do
|
|
4004
|
+
T.any(
|
|
4005
|
+
Revox::Models::CampaignCreateResponse::Campaign::FunnelStats,
|
|
4006
|
+
Revox::Internal::AnyHash
|
|
4007
|
+
)
|
|
4008
|
+
end
|
|
4009
|
+
|
|
4010
|
+
sig { returns(Float) }
|
|
4011
|
+
attr_accessor :hot
|
|
4012
|
+
|
|
4013
|
+
sig { returns(Float) }
|
|
4014
|
+
attr_accessor :talked_to_human
|
|
4015
|
+
|
|
4016
|
+
sig { returns(Float) }
|
|
4017
|
+
attr_accessor :total_leads
|
|
4018
|
+
|
|
4019
|
+
sig do
|
|
4020
|
+
params(
|
|
4021
|
+
hot: Float,
|
|
4022
|
+
talked_to_human: Float,
|
|
4023
|
+
total_leads: Float
|
|
4024
|
+
).returns(T.attached_class)
|
|
4025
|
+
end
|
|
4026
|
+
def self.new(hot:, talked_to_human:, total_leads:)
|
|
4027
|
+
end
|
|
4028
|
+
|
|
4029
|
+
sig do
|
|
4030
|
+
override.returns(
|
|
4031
|
+
{ hot: Float, talked_to_human: Float, total_leads: Float }
|
|
4032
|
+
)
|
|
4033
|
+
end
|
|
4034
|
+
def to_hash
|
|
4035
|
+
end
|
|
4036
|
+
end
|
|
4037
|
+
|
|
4038
|
+
module PausedReason
|
|
4039
|
+
extend Revox::Internal::Type::Enum
|
|
4040
|
+
|
|
4041
|
+
TaggedSymbol =
|
|
4042
|
+
T.type_alias do
|
|
4043
|
+
T.all(
|
|
4044
|
+
Symbol,
|
|
4045
|
+
Revox::Models::CampaignCreateResponse::Campaign::PausedReason
|
|
4046
|
+
)
|
|
4047
|
+
end
|
|
4048
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
4049
|
+
|
|
4050
|
+
MANUAL =
|
|
4051
|
+
T.let(
|
|
4052
|
+
:manual,
|
|
4053
|
+
Revox::Models::CampaignCreateResponse::Campaign::PausedReason::TaggedSymbol
|
|
4054
|
+
)
|
|
4055
|
+
NO_PRESENCE =
|
|
4056
|
+
T.let(
|
|
4057
|
+
:no_presence,
|
|
4058
|
+
Revox::Models::CampaignCreateResponse::Campaign::PausedReason::TaggedSymbol
|
|
4059
|
+
)
|
|
4060
|
+
|
|
4061
|
+
sig do
|
|
4062
|
+
override.returns(
|
|
4063
|
+
T::Array[
|
|
4064
|
+
Revox::Models::CampaignCreateResponse::Campaign::PausedReason::TaggedSymbol
|
|
4065
|
+
]
|
|
4066
|
+
)
|
|
4067
|
+
end
|
|
4068
|
+
def self.values
|
|
4069
|
+
end
|
|
4070
|
+
end
|
|
4071
|
+
|
|
1432
4072
|
class RowStats < Revox::Internal::Type::BaseModel
|
|
1433
4073
|
OrHash =
|
|
1434
4074
|
T.type_alias do
|
|
@@ -1484,6 +4124,46 @@ module Revox
|
|
|
1484
4124
|
def to_hash
|
|
1485
4125
|
end
|
|
1486
4126
|
end
|
|
4127
|
+
|
|
4128
|
+
# The status of the structured output extraction.
|
|
4129
|
+
module StructuredOutputExtraction
|
|
4130
|
+
extend Revox::Internal::Type::Enum
|
|
4131
|
+
|
|
4132
|
+
TaggedSymbol =
|
|
4133
|
+
T.type_alias do
|
|
4134
|
+
T.all(
|
|
4135
|
+
Symbol,
|
|
4136
|
+
Revox::Models::CampaignCreateResponse::Campaign::StructuredOutputExtraction
|
|
4137
|
+
)
|
|
4138
|
+
end
|
|
4139
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
4140
|
+
|
|
4141
|
+
NONE =
|
|
4142
|
+
T.let(
|
|
4143
|
+
:none,
|
|
4144
|
+
Revox::Models::CampaignCreateResponse::Campaign::StructuredOutputExtraction::TaggedSymbol
|
|
4145
|
+
)
|
|
4146
|
+
RUNNING =
|
|
4147
|
+
T.let(
|
|
4148
|
+
:running,
|
|
4149
|
+
Revox::Models::CampaignCreateResponse::Campaign::StructuredOutputExtraction::TaggedSymbol
|
|
4150
|
+
)
|
|
4151
|
+
COMPLETED =
|
|
4152
|
+
T.let(
|
|
4153
|
+
:completed,
|
|
4154
|
+
Revox::Models::CampaignCreateResponse::Campaign::StructuredOutputExtraction::TaggedSymbol
|
|
4155
|
+
)
|
|
4156
|
+
|
|
4157
|
+
sig do
|
|
4158
|
+
override.returns(
|
|
4159
|
+
T::Array[
|
|
4160
|
+
Revox::Models::CampaignCreateResponse::Campaign::StructuredOutputExtraction::TaggedSymbol
|
|
4161
|
+
]
|
|
4162
|
+
)
|
|
4163
|
+
end
|
|
4164
|
+
def self.values
|
|
4165
|
+
end
|
|
4166
|
+
end
|
|
1487
4167
|
end
|
|
1488
4168
|
end
|
|
1489
4169
|
end
|