revox 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +36 -0
- data/README.md +38 -38
- data/lib/revox/client.rb +8 -0
- data/lib/revox/internal/type/base_model.rb +3 -3
- data/lib/revox/models/assistant_clone_params.rb +20 -0
- data/lib/revox/models/assistant_clone_response.rb +1616 -0
- data/lib/revox/models/assistant_create_params.rb +90 -66
- data/lib/revox/models/assistant_create_response.rb +87 -65
- data/lib/revox/models/assistant_list_response.rb +87 -65
- data/lib/revox/models/assistant_retrieve_response.rb +86 -65
- data/lib/revox/models/assistant_update_params.rb +90 -66
- data/lib/revox/models/assistant_update_response.rb +87 -65
- 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 +117 -90
- data/lib/revox/models/call_create_response.rb +680 -90
- data/lib/revox/models/call_export_params.rb +203 -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 +95 -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 +681 -90
- data/lib/revox/models/call_search_params.rb +169 -0
- data/lib/revox/models/call_search_response.rb +3694 -0
- data/lib/revox/models/campaign_create_params.rb +7 -57
- data/lib/revox/models/campaign_create_response.rb +108 -119
- data/lib/revox/models/campaign_get_rows_response.rb +682 -90
- data/lib/revox/models/campaign_list_response.rb +108 -119
- 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 +108 -119
- data/lib/revox/models/campaign_statistics_params.rb +20 -0
- data/lib/revox/models/campaign_statistics_response.rb +514 -0
- data/lib/revox/models/campaign_update_params.rb +165 -0
- data/lib/revox/models/campaign_update_response.rb +2019 -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 +1799 -0
- data/lib/revox/models/phone_number_update_params.rb +32 -0
- data/lib/revox/models/phone_number_update_response.rb +1799 -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 +1 -0
- data/lib/revox/models/voice_preview_params.rb +1 -0
- data/lib/revox/models/voice_retrieve_params.rb +1 -0
- data/lib/revox/models.rb +35 -1
- data/lib/revox/resources/assistants.rb +31 -10
- data/lib/revox/resources/auth_status.rb +32 -0
- data/lib/revox/resources/call.rb +149 -4
- data/lib/revox/resources/campaigns.rb +110 -11
- data/lib/revox/resources/phone_numbers.rb +74 -0
- data/lib/revox/resources/users.rb +17 -3
- data/lib/revox/resources/voices.rb +50 -0
- data/lib/revox/version.rb +1 -1
- data/lib/revox.rb +38 -5
- data/rbi/revox/client.rbi +6 -0
- data/rbi/revox/models/assistant_clone_params.rbi +33 -0
- data/rbi/revox/models/assistant_clone_response.rbi +3351 -0
- data/rbi/revox/models/assistant_create_params.rbi +148 -162
- data/rbi/revox/models/assistant_create_response.rbi +157 -147
- data/rbi/revox/models/assistant_list_response.rbi +157 -147
- data/rbi/revox/models/assistant_retrieve_response.rbi +153 -147
- data/rbi/revox/models/assistant_update_params.rbi +148 -162
- data/rbi/revox/models/assistant_update_response.rbi +157 -147
- 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 +190 -187
- data/rbi/revox/models/call_create_response.rbi +1150 -227
- data/rbi/revox/models/call_export_params.rbi +446 -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 +209 -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 +1150 -227
- data/rbi/revox/models/call_search_params.rbi +281 -0
- data/rbi/revox/models/call_search_response.rbi +7504 -0
- data/rbi/revox/models/campaign_create_params.rbi +9 -87
- data/rbi/revox/models/campaign_create_response.rbi +188 -266
- data/rbi/revox/models/campaign_get_rows_response.rbi +1150 -225
- data/rbi/revox/models/campaign_list_response.rbi +188 -262
- 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 +188 -266
- data/rbi/revox/models/campaign_statistics_params.rbi +33 -0
- data/rbi/revox/models/campaign_statistics_response.rbi +1069 -0
- data/rbi/revox/models/campaign_update_params.rbi +313 -0
- data/rbi/revox/models/campaign_update_response.rbi +4092 -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 +3690 -0
- data/rbi/revox/models/phone_number_update_params.rbi +53 -0
- data/rbi/revox/models/phone_number_update_response.rbi +3693 -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 +5 -0
- data/rbi/revox/models/voice_preview_params.rbi +2 -0
- data/rbi/revox/models/voice_retrieve_params.rbi +2 -0
- data/rbi/revox/models.rbi +35 -1
- data/rbi/revox/resources/assistants.rbi +52 -22
- data/rbi/revox/resources/auth_status.rbi +21 -0
- data/rbi/revox/resources/call.rbi +114 -4
- data/rbi/revox/resources/campaigns.rbi +77 -15
- data/rbi/revox/resources/phone_numbers.rbi +43 -0
- data/rbi/revox/resources/users.rbi +8 -2
- data/rbi/revox/resources/voices.rbi +39 -0
- data/sig/revox/client.rbs +4 -0
- data/sig/revox/models/assistant_clone_params.rbs +20 -0
- data/sig/revox/models/assistant_clone_response.rbs +1310 -0
- data/sig/revox/models/assistant_create_params.rbs +39 -58
- data/sig/revox/models/assistant_create_response.rbs +46 -54
- data/sig/revox/models/assistant_list_response.rbs +46 -54
- data/sig/revox/models/assistant_retrieve_response.rbs +46 -54
- data/sig/revox/models/assistant_update_params.rbs +39 -58
- data/sig/revox/models/assistant_update_response.rbs +46 -54
- 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 +50 -71
- data/sig/revox/models/call_create_response.rbs +473 -77
- data/sig/revox/models/call_export_params.rbs +230 -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 +93 -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 +473 -77
- data/sig/revox/models/call_search_params.rbs +194 -0
- data/sig/revox/models/call_search_response.rbs +3045 -0
- data/sig/revox/models/campaign_create_params.rbs +5 -50
- data/sig/revox/models/campaign_create_response.rbs +62 -98
- data/sig/revox/models/campaign_get_rows_response.rbs +472 -73
- data/sig/revox/models/campaign_list_response.rbs +62 -98
- 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 +62 -98
- data/sig/revox/models/campaign_statistics_params.rbs +20 -0
- data/sig/revox/models/campaign_statistics_response.rbs +489 -0
- data/sig/revox/models/campaign_update_params.rbs +135 -0
- data/sig/revox/models/campaign_update_response.rbs +1658 -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 +1454 -0
- data/sig/revox/models/phone_number_update_params.rbs +32 -0
- data/sig/revox/models/phone_number_update_response.rbs +1452 -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 +2 -1
- data/sig/revox/models/voice_preview_params.rbs +2 -1
- data/sig/revox/models/voice_retrieve_params.rbs +2 -1
- data/sig/revox/models.rbs +35 -1
- data/sig/revox/resources/assistants.rbs +9 -4
- data/sig/revox/resources/auth_status.rbs +11 -0
- data/sig/revox/resources/call.rbs +46 -1
- data/sig/revox/resources/campaigns.rbs +24 -3
- data/sig/revox/resources/phone_numbers.rbs +23 -0
- data/sig/revox/resources/users.rbs +3 -1
- data/sig/revox/resources/voices.rbs +13 -0
- metadata +116 -17
- data/lib/revox/models/users/me_retrieve_params.rb +0 -16
- data/lib/revox/models/users/me_retrieve_response.rb +0 -101
- data/lib/revox/models/users/me_update_params.rb +0 -22
- data/lib/revox/models/users/me_update_response.rb +0 -101
- data/lib/revox/resources/users/me.rb +0 -55
- data/rbi/revox/models/users/me_retrieve_params.rbi +0 -29
- data/rbi/revox/models/users/me_retrieve_response.rbi +0 -149
- data/rbi/revox/models/users/me_update_params.rbi +0 -43
- data/rbi/revox/models/users/me_update_response.rbi +0 -149
- data/rbi/revox/resources/users/me.rbi +0 -33
- data/sig/revox/models/users/me_retrieve_params.rbs +0 -16
- data/sig/revox/models/users/me_retrieve_response.rbs +0 -75
- data/sig/revox/models/users/me_update_params.rbs +0 -28
- data/sig/revox/models/users/me_update_response.rbs +0 -75
- data/sig/revox/resources/users/me.rbs +0 -18
|
@@ -163,6 +163,14 @@ module Revox
|
|
|
163
163
|
# @return [Object]
|
|
164
164
|
required :updated_at, Revox::Internal::Type::Unknown
|
|
165
165
|
|
|
166
|
+
# @!attribute follow_up_emails
|
|
167
|
+
# Extra notification recipients resolved from the agent prompt's own routing
|
|
168
|
+
# rules, when it defines any. Added to the assistant's configured notification
|
|
169
|
+
# recipients; never replaces them. Null when the prompt defines no routing rules.
|
|
170
|
+
#
|
|
171
|
+
# @return [Array<String>, nil]
|
|
172
|
+
optional :follow_up_emails, Revox::Internal::Type::ArrayOf[String], nil?: true
|
|
173
|
+
|
|
166
174
|
# @!attribute outcome
|
|
167
175
|
# Business outcome of the call. Null if not computed or no transcript.
|
|
168
176
|
#
|
|
@@ -175,7 +183,16 @@ module Revox
|
|
|
175
183
|
# @return [String, nil]
|
|
176
184
|
optional :outcome_summary, String, nil?: true
|
|
177
185
|
|
|
178
|
-
# @!
|
|
186
|
+
# @!attribute slack_channel_ids
|
|
187
|
+
# Slack channels resolved from the agent prompt's own routing rules, when it
|
|
188
|
+
# defines any. Always a subset of the channels configured on the assistant. Null
|
|
189
|
+
# when the prompt defines no routing rules, in which case every configured channel
|
|
190
|
+
# is notified.
|
|
191
|
+
#
|
|
192
|
+
# @return [Array<String>, nil]
|
|
193
|
+
optional :slack_channel_ids, Revox::Internal::Type::ArrayOf[String], nil?: true
|
|
194
|
+
|
|
195
|
+
# @!method initialize(id:, assignee:, assistant:, call_attempts:, call_retry_config:, calls_count:, campaign:, contact:, created_at:, direction:, first_sentence_delay_ms:, from_phone_number:, is_cancelled:, is_completed:, last_call_attempt:, llm_model:, metadata:, organization_id:, prompt_variables:, scheduled_at:, status:, to_phone_number:, updated_at:, follow_up_emails: nil, outcome: nil, outcome_summary: nil, slack_channel_ids: nil)
|
|
179
196
|
# Some parameter documentations has been truncated, see
|
|
180
197
|
# {Revox::Models::CallRetrieveResponse::Call} for more details.
|
|
181
198
|
#
|
|
@@ -228,9 +245,13 @@ module Revox
|
|
|
228
245
|
#
|
|
229
246
|
# @param updated_at [Object] The time the call order was last updated (any state change, retry, or analysis r
|
|
230
247
|
#
|
|
248
|
+
# @param follow_up_emails [Array<String>, nil] Extra notification recipients resolved from the agent prompt's own routing rules
|
|
249
|
+
#
|
|
231
250
|
# @param outcome [Symbol, Revox::Models::CallRetrieveResponse::Call::Outcome, nil] Business outcome of the call. Null if not computed or no transcript.
|
|
232
251
|
#
|
|
233
252
|
# @param outcome_summary [String, nil] LLM explanation for the outcome, when outcome was computed from the transcript.
|
|
253
|
+
#
|
|
254
|
+
# @param slack_channel_ids [Array<String>, nil] Slack channels resolved from the agent prompt's own routing rules, when it defin
|
|
234
255
|
|
|
235
256
|
# @see Revox::Models::CallRetrieveResponse::Call#assignee
|
|
236
257
|
class Assignee < Revox::Internal::Type::BaseModel
|
|
@@ -344,13 +365,6 @@ module Revox
|
|
|
344
365
|
# @return [String, nil]
|
|
345
366
|
required :email_notification_address, String, nil?: true
|
|
346
367
|
|
|
347
|
-
# @!attribute email_notification_language
|
|
348
|
-
# The language used for the notification email content. One of "en" or "fr".
|
|
349
|
-
#
|
|
350
|
-
# @return [Symbol, Revox::Models::CallRetrieveResponse::Call::Assistant::EmailNotificationLanguage]
|
|
351
|
-
required :email_notification_language,
|
|
352
|
-
enum: -> { Revox::Models::CallRetrieveResponse::Call::Assistant::EmailNotificationLanguage }
|
|
353
|
-
|
|
354
368
|
# @!attribute email_notification_outcomes
|
|
355
369
|
# Which call outcomes trigger an email notification. E.g. ["interested",
|
|
356
370
|
# "completed", "none"]. Use "none" when outcome is null.
|
|
@@ -390,8 +404,8 @@ module Revox
|
|
|
390
404
|
required :from_phone_number, String, nil?: true
|
|
391
405
|
|
|
392
406
|
# @!attribute human_transfer_mode
|
|
393
|
-
# Warm or cold transfer when
|
|
394
|
-
# not configured.
|
|
407
|
+
# Warm or cold transfer when transfer_destinations is non-empty; null when
|
|
408
|
+
# transfer is not configured.
|
|
395
409
|
#
|
|
396
410
|
# @return [Symbol, Revox::Models::CallRetrieveResponse::Call::Assistant::HumanTransferMode, nil]
|
|
397
411
|
required :human_transfer_mode,
|
|
@@ -447,6 +461,13 @@ module Revox
|
|
|
447
461
|
# @return [Revox::Models::CallRetrieveResponse::Call::Assistant::Position, nil]
|
|
448
462
|
required :position, -> { Revox::Models::CallRetrieveResponse::Call::Assistant::Position }, nil?: true
|
|
449
463
|
|
|
464
|
+
# @!attribute precall_lookup_url
|
|
465
|
+
# URL fetched before an inbound call is answered to resolve the assistant's prompt
|
|
466
|
+
# variables. Null when no lookup is configured.
|
|
467
|
+
#
|
|
468
|
+
# @return [String, nil]
|
|
469
|
+
required :precall_lookup_url, String, nil?: true
|
|
470
|
+
|
|
450
471
|
# @!attribute prompt
|
|
451
472
|
#
|
|
452
473
|
# @return [String]
|
|
@@ -530,11 +551,14 @@ module Revox
|
|
|
530
551
|
# @return [Float]
|
|
531
552
|
required :thinking_sound_volume, Float
|
|
532
553
|
|
|
533
|
-
# @!attribute
|
|
534
|
-
#
|
|
554
|
+
# @!attribute transfer_destinations
|
|
555
|
+
# Where calls can be transferred to when users ask to speak to a human. Null or
|
|
556
|
+
# empty when transfer is not configured.
|
|
535
557
|
#
|
|
536
|
-
# @return [
|
|
537
|
-
required :
|
|
558
|
+
# @return [Array<Revox::Models::CallRetrieveResponse::Call::Assistant::TransferDestination>, nil]
|
|
559
|
+
required :transfer_destinations,
|
|
560
|
+
-> { Revox::Internal::Type::ArrayOf[Revox::Models::CallRetrieveResponse::Call::Assistant::TransferDestination] },
|
|
561
|
+
nil?: true
|
|
538
562
|
|
|
539
563
|
# @!attribute type
|
|
540
564
|
#
|
|
@@ -595,6 +619,11 @@ module Revox
|
|
|
595
619
|
optional :faq_items,
|
|
596
620
|
-> { Revox::Internal::Type::ArrayOf[Revox::Models::CallRetrieveResponse::Call::Assistant::FaqItem] }
|
|
597
621
|
|
|
622
|
+
# @!attribute is_inbound_receptionist
|
|
623
|
+
#
|
|
624
|
+
# @return [Boolean, nil]
|
|
625
|
+
optional :is_inbound_receptionist, Revox::Internal::Type::Boolean
|
|
626
|
+
|
|
598
627
|
# @!attribute is_realestate_assistant
|
|
599
628
|
#
|
|
600
629
|
# @return [Boolean, nil]
|
|
@@ -605,7 +634,7 @@ module Revox
|
|
|
605
634
|
# @return [Float, nil]
|
|
606
635
|
optional :pending_faq_count, Float
|
|
607
636
|
|
|
608
|
-
# @!method initialize(id:, after_call_sms_outcomes:, after_call_sms_prompt:, background_sound:, background_sound_volume:, calendly:, call_retry_config:, cartesia_dictionary_pronunciation_id:, created_at:, custom_tools:, email_notification_address:,
|
|
637
|
+
# @!method initialize(id:, after_call_sms_outcomes:, after_call_sms_prompt:, background_sound:, background_sound_volume:, calendly:, call_retry_config:, cartesia_dictionary_pronunciation_id:, created_at:, custom_tools:, email_notification_address:, email_notification_outcomes:, end_of_call_sentence:, first_sentence:, first_sentence_delay_ms:, first_sentence_mode:, from_phone_number:, human_transfer_mode:, ivr_navigation_enabled:, llm_model:, logo_url:, max_call_duration_secs:, max_duration_end_message:, name:, organization_id:, position:, precall_lookup_url:, prompt:, prompt_flow:, slack:, sms_enabled:, sms_template:, structured_output_config:, structured_output_prompt:, stt_context:, stt_model:, thinking_sound:, thinking_sound_probability:, thinking_sound_volume:, transfer_destinations:, type:, updated_at:, voice:, voicemail_message:, voicemail_sms_prompt:, warm_transfer_summary_instructions:, webhook_url:, zoho:, created_by: nil, faq_items: nil, is_inbound_receptionist: nil, is_realestate_assistant: nil, pending_faq_count: nil)
|
|
609
638
|
# Some parameter documentations has been truncated, see
|
|
610
639
|
# {Revox::Models::CallRetrieveResponse::Call::Assistant} for more details.
|
|
611
640
|
#
|
|
@@ -631,8 +660,6 @@ module Revox
|
|
|
631
660
|
#
|
|
632
661
|
# @param email_notification_address [String, nil] Email address(es) to receive notifications when a call ends with a matching outc
|
|
633
662
|
#
|
|
634
|
-
# @param email_notification_language [Symbol, Revox::Models::CallRetrieveResponse::Call::Assistant::EmailNotificationLanguage] The language used for the notification email content. One of "en" or "fr".
|
|
635
|
-
#
|
|
636
663
|
# @param email_notification_outcomes [Array<Symbol, Revox::Models::CallRetrieveResponse::Call::Assistant::EmailNotificationOutcome>, nil] Which call outcomes trigger an email notification. E.g. ["interested", "complete
|
|
637
664
|
#
|
|
638
665
|
# @param end_of_call_sentence [String, nil]
|
|
@@ -645,7 +672,7 @@ module Revox
|
|
|
645
672
|
#
|
|
646
673
|
# @param from_phone_number [String, nil] Override the default outbound phone number for calls placed with this assistant.
|
|
647
674
|
#
|
|
648
|
-
# @param human_transfer_mode [Symbol, Revox::Models::CallRetrieveResponse::Call::Assistant::HumanTransferMode, nil] Warm or cold transfer when
|
|
675
|
+
# @param human_transfer_mode [Symbol, Revox::Models::CallRetrieveResponse::Call::Assistant::HumanTransferMode, nil] Warm or cold transfer when transfer_destinations is non-empty; null when transfe
|
|
649
676
|
#
|
|
650
677
|
# @param ivr_navigation_enabled [Boolean] Enable IVR navigation tools. When enabled, the assistant can send DTMF tones and
|
|
651
678
|
#
|
|
@@ -663,6 +690,8 @@ module Revox
|
|
|
663
690
|
#
|
|
664
691
|
# @param position [Revox::Models::CallRetrieveResponse::Call::Assistant::Position, nil]
|
|
665
692
|
#
|
|
693
|
+
# @param precall_lookup_url [String, nil] URL fetched before an inbound call is answered to resolve the assistant's prompt
|
|
694
|
+
#
|
|
666
695
|
# @param prompt [String]
|
|
667
696
|
#
|
|
668
697
|
# @param prompt_flow [Revox::Models::CallRetrieveResponse::Call::Assistant::PromptFlow, nil]
|
|
@@ -687,7 +716,7 @@ module Revox
|
|
|
687
716
|
#
|
|
688
717
|
# @param thinking_sound_volume [Float] Volume of the thinking sound (0 = silent, 1 = max).
|
|
689
718
|
#
|
|
690
|
-
# @param
|
|
719
|
+
# @param transfer_destinations [Array<Revox::Models::CallRetrieveResponse::Call::Assistant::TransferDestination>, nil] Where calls can be transferred to when users ask to speak to a human. Null or em
|
|
691
720
|
#
|
|
692
721
|
# @param type [Symbol, Revox::Models::CallRetrieveResponse::Call::Assistant::Type]
|
|
693
722
|
#
|
|
@@ -709,6 +738,8 @@ module Revox
|
|
|
709
738
|
#
|
|
710
739
|
# @param faq_items [Array<Revox::Models::CallRetrieveResponse::Call::Assistant::FaqItem>]
|
|
711
740
|
#
|
|
741
|
+
# @param is_inbound_receptionist [Boolean]
|
|
742
|
+
#
|
|
712
743
|
# @param is_realestate_assistant [Boolean]
|
|
713
744
|
#
|
|
714
745
|
# @param pending_faq_count [Float]
|
|
@@ -720,9 +751,6 @@ module Revox
|
|
|
720
751
|
INTERESTED = :interested
|
|
721
752
|
COMPLETED = :completed
|
|
722
753
|
REQUESTED_CALLBACK_LATER = :requested_callback_later
|
|
723
|
-
REQUESTED_CALLBACK_NEW_NUMBER = :requested_callback_new_number
|
|
724
|
-
DO_NOT_CONTACT = :do_not_contact
|
|
725
|
-
AI_AVERSE = :ai_averse
|
|
726
754
|
NONE = :none
|
|
727
755
|
|
|
728
756
|
# @!method self.values
|
|
@@ -856,7 +884,8 @@ module Revox
|
|
|
856
884
|
required :calling_window_start_time, String
|
|
857
885
|
|
|
858
886
|
# @!attribute retry_delay_seconds
|
|
859
|
-
# Delay between retry attempts in seconds.
|
|
887
|
+
# Delay between retry attempts in seconds. 0 retries as soon as the calling window
|
|
888
|
+
# allows. Default: 7200 (2 hours).
|
|
860
889
|
#
|
|
861
890
|
# @return [Integer]
|
|
862
891
|
required :retry_delay_seconds, Integer
|
|
@@ -870,7 +899,7 @@ module Revox
|
|
|
870
899
|
#
|
|
871
900
|
# @param calling_window_start_time [String] Start time for the calling window in the recipient's timezone (or timezone_overr
|
|
872
901
|
#
|
|
873
|
-
# @param retry_delay_seconds [Integer] Delay between retry attempts in seconds.
|
|
902
|
+
# @param retry_delay_seconds [Integer] Delay between retry attempts in seconds. 0 retries as soon as the calling window
|
|
874
903
|
end
|
|
875
904
|
end
|
|
876
905
|
|
|
@@ -1053,19 +1082,6 @@ module Revox
|
|
|
1053
1082
|
end
|
|
1054
1083
|
end
|
|
1055
1084
|
|
|
1056
|
-
# The language used for the notification email content. One of "en" or "fr".
|
|
1057
|
-
#
|
|
1058
|
-
# @see Revox::Models::CallRetrieveResponse::Call::Assistant#email_notification_language
|
|
1059
|
-
module EmailNotificationLanguage
|
|
1060
|
-
extend Revox::Internal::Type::Enum
|
|
1061
|
-
|
|
1062
|
-
EN = :en
|
|
1063
|
-
FR = :fr
|
|
1064
|
-
|
|
1065
|
-
# @!method self.values
|
|
1066
|
-
# @return [Array<Symbol>]
|
|
1067
|
-
end
|
|
1068
|
-
|
|
1069
1085
|
module EmailNotificationOutcome
|
|
1070
1086
|
extend Revox::Internal::Type::Enum
|
|
1071
1087
|
|
|
@@ -1073,9 +1089,6 @@ module Revox
|
|
|
1073
1089
|
INTERESTED = :interested
|
|
1074
1090
|
COMPLETED = :completed
|
|
1075
1091
|
REQUESTED_CALLBACK_LATER = :requested_callback_later
|
|
1076
|
-
REQUESTED_CALLBACK_NEW_NUMBER = :requested_callback_new_number
|
|
1077
|
-
DO_NOT_CONTACT = :do_not_contact
|
|
1078
|
-
AI_AVERSE = :ai_averse
|
|
1079
1092
|
NONE = :none
|
|
1080
1093
|
|
|
1081
1094
|
# @!method self.values
|
|
@@ -1094,8 +1107,8 @@ module Revox
|
|
|
1094
1107
|
# @return [Array<Symbol>]
|
|
1095
1108
|
end
|
|
1096
1109
|
|
|
1097
|
-
# Warm or cold transfer when
|
|
1098
|
-
# not configured.
|
|
1110
|
+
# Warm or cold transfer when transfer_destinations is non-empty; null when
|
|
1111
|
+
# transfer is not configured.
|
|
1099
1112
|
#
|
|
1100
1113
|
# @see Revox::Models::CallRetrieveResponse::Call::Assistant#human_transfer_mode
|
|
1101
1114
|
module HumanTransferMode
|
|
@@ -1386,11 +1399,14 @@ module Revox
|
|
|
1386
1399
|
|
|
1387
1400
|
# @see Revox::Models::CallRetrieveResponse::Call::Assistant#slack
|
|
1388
1401
|
class Slack < Revox::Internal::Type::BaseModel
|
|
1389
|
-
# @!attribute
|
|
1390
|
-
# The Slack
|
|
1402
|
+
# @!attribute channels
|
|
1403
|
+
# The Slack channels eligible to receive the notification. When more than one is
|
|
1404
|
+
# configured, the agent prompt may define routing rules to narrow it down per
|
|
1405
|
+
# call; with no such rules every channel here is notified.
|
|
1391
1406
|
#
|
|
1392
|
-
# @return [
|
|
1393
|
-
required :
|
|
1407
|
+
# @return [Array<Revox::Models::CallRetrieveResponse::Call::Assistant::Slack::Channel>]
|
|
1408
|
+
required :channels,
|
|
1409
|
+
-> { Revox::Internal::Type::ArrayOf[Revox::Models::CallRetrieveResponse::Call::Assistant::Slack::Channel] }
|
|
1394
1410
|
|
|
1395
1411
|
# @!attribute connection_id
|
|
1396
1412
|
# The Nango connection ID linking the org's Slack workspace to Revox.
|
|
@@ -1406,37 +1422,53 @@ module Revox
|
|
|
1406
1422
|
required :outcomes,
|
|
1407
1423
|
-> { Revox::Internal::Type::ArrayOf[enum: Revox::Models::CallRetrieveResponse::Call::Assistant::Slack::Outcome] }
|
|
1408
1424
|
|
|
1409
|
-
# @!attribute channel_name
|
|
1410
|
-
# Human-readable Slack channel name, cached for display in the UI.
|
|
1411
|
-
#
|
|
1412
|
-
# @return [String, nil]
|
|
1413
|
-
optional :channel_name, String, nil?: true
|
|
1414
|
-
|
|
1415
1425
|
# @!attribute template
|
|
1416
1426
|
# Optional message template. Supports {{summary}}, {{outcome}}, {{phone}},
|
|
1417
1427
|
# {{call_url}}, {{assistant_name}}, {{campaign_name}}, {{first_name}},
|
|
1418
|
-
# {{last_name}}, {{email}}, {{company}}, {{
|
|
1419
|
-
# prompt_variables and structured_output keys. When
|
|
1420
|
-
# is used.
|
|
1428
|
+
# {{last_name}}, {{email}}, {{company}}, {{job_title}}, {{contact_name}},
|
|
1429
|
+
# {{contact_line}}, plus prompt_variables and structured_output keys. When
|
|
1430
|
+
# null/empty a default template is used.
|
|
1421
1431
|
#
|
|
1422
1432
|
# @return [String, nil]
|
|
1423
1433
|
optional :template, String, nil?: true
|
|
1424
1434
|
|
|
1425
|
-
# @!method initialize(
|
|
1435
|
+
# @!method initialize(channels:, connection_id:, outcomes:, template: nil)
|
|
1426
1436
|
# Some parameter documentations has been truncated, see
|
|
1427
1437
|
# {Revox::Models::CallRetrieveResponse::Call::Assistant::Slack} for more details.
|
|
1428
1438
|
#
|
|
1429
|
-
# @param
|
|
1439
|
+
# @param channels [Array<Revox::Models::CallRetrieveResponse::Call::Assistant::Slack::Channel>] The Slack channels eligible to receive the notification. When more than one is c
|
|
1430
1440
|
#
|
|
1431
1441
|
# @param connection_id [String] The Nango connection ID linking the org's Slack workspace to Revox.
|
|
1432
1442
|
#
|
|
1433
1443
|
# @param outcomes [Array<Symbol, Revox::Models::CallRetrieveResponse::Call::Assistant::Slack::Outcome>] Which call outcomes trigger a Slack notification (e.g. ['interested', 'none']).
|
|
1434
1444
|
#
|
|
1435
|
-
# @param channel_name [String, nil] Human-readable Slack channel name, cached for display in the UI.
|
|
1436
|
-
#
|
|
1437
1445
|
# @param template [String, nil] Optional message template. Supports {{summary}}, {{outcome}}, {{phone}},
|
|
1438
1446
|
# {{call\_
|
|
1439
1447
|
|
|
1448
|
+
class Channel < Revox::Internal::Type::BaseModel
|
|
1449
|
+
# @!attribute id
|
|
1450
|
+
# The Slack channel ID (e.g. 'C01234567').
|
|
1451
|
+
#
|
|
1452
|
+
# @return [String]
|
|
1453
|
+
required :id, String
|
|
1454
|
+
|
|
1455
|
+
# @!attribute name
|
|
1456
|
+
# Human-readable Slack channel name, cached for display in the UI and given to the
|
|
1457
|
+
# LLM when the agent prompt routes by channel name.
|
|
1458
|
+
#
|
|
1459
|
+
# @return [String, nil]
|
|
1460
|
+
optional :name, String, nil?: true
|
|
1461
|
+
|
|
1462
|
+
# @!method initialize(id:, name: nil)
|
|
1463
|
+
# Some parameter documentations has been truncated, see
|
|
1464
|
+
# {Revox::Models::CallRetrieveResponse::Call::Assistant::Slack::Channel} for more
|
|
1465
|
+
# details.
|
|
1466
|
+
#
|
|
1467
|
+
# @param id [String] The Slack channel ID (e.g. 'C01234567').
|
|
1468
|
+
#
|
|
1469
|
+
# @param name [String, nil] Human-readable Slack channel name, cached for display in the UI and given to the
|
|
1470
|
+
end
|
|
1471
|
+
|
|
1440
1472
|
module Outcome
|
|
1441
1473
|
extend Revox::Internal::Type::Enum
|
|
1442
1474
|
|
|
@@ -1444,9 +1476,6 @@ module Revox
|
|
|
1444
1476
|
INTERESTED = :interested
|
|
1445
1477
|
COMPLETED = :completed
|
|
1446
1478
|
REQUESTED_CALLBACK_LATER = :requested_callback_later
|
|
1447
|
-
REQUESTED_CALLBACK_NEW_NUMBER = :requested_callback_new_number
|
|
1448
|
-
DO_NOT_CONTACT = :do_not_contact
|
|
1449
|
-
AI_AVERSE = :ai_averse
|
|
1450
1479
|
NONE = :none
|
|
1451
1480
|
|
|
1452
1481
|
# @!method self.values
|
|
@@ -1574,6 +1603,22 @@ module Revox
|
|
|
1574
1603
|
# @return [Array<Symbol>]
|
|
1575
1604
|
end
|
|
1576
1605
|
|
|
1606
|
+
class TransferDestination < Revox::Internal::Type::BaseModel
|
|
1607
|
+
# @!attribute label
|
|
1608
|
+
#
|
|
1609
|
+
# @return [String]
|
|
1610
|
+
required :label, String
|
|
1611
|
+
|
|
1612
|
+
# @!attribute phone_number
|
|
1613
|
+
#
|
|
1614
|
+
# @return [String]
|
|
1615
|
+
required :phone_number, String
|
|
1616
|
+
|
|
1617
|
+
# @!method initialize(label:, phone_number:)
|
|
1618
|
+
# @param label [String]
|
|
1619
|
+
# @param phone_number [String]
|
|
1620
|
+
end
|
|
1621
|
+
|
|
1577
1622
|
# @see Revox::Models::CallRetrieveResponse::Call::Assistant#type
|
|
1578
1623
|
module Type
|
|
1579
1624
|
extend Revox::Internal::Type::Enum
|
|
@@ -1609,7 +1654,7 @@ module Revox
|
|
|
1609
1654
|
|
|
1610
1655
|
# @!attribute speed
|
|
1611
1656
|
# The speed of the voice. Range depends on provider: Cartesia 0.6–1.5, ElevenLabs
|
|
1612
|
-
# 0.7–1.2. Default is 1.0.
|
|
1657
|
+
# 0.7–1.2, Gradium 0.6–1.5. Default is 1.0.
|
|
1613
1658
|
#
|
|
1614
1659
|
# @return [Float, nil]
|
|
1615
1660
|
optional :speed, Float
|
|
@@ -1643,6 +1688,7 @@ module Revox
|
|
|
1643
1688
|
|
|
1644
1689
|
CARTESIA = :cartesia
|
|
1645
1690
|
ELEVENLABS = :elevenlabs
|
|
1691
|
+
GRADIUM = :gradium
|
|
1646
1692
|
|
|
1647
1693
|
# @!method self.values
|
|
1648
1694
|
# @return [Array<Symbol>]
|
|
@@ -1757,9 +1803,6 @@ module Revox
|
|
|
1757
1803
|
INTERESTED = :interested
|
|
1758
1804
|
COMPLETED = :completed
|
|
1759
1805
|
REQUESTED_CALLBACK_LATER = :requested_callback_later
|
|
1760
|
-
REQUESTED_CALLBACK_NEW_NUMBER = :requested_callback_new_number
|
|
1761
|
-
DO_NOT_CONTACT = :do_not_contact
|
|
1762
|
-
AI_AVERSE = :ai_averse
|
|
1763
1806
|
NONE = :none
|
|
1764
1807
|
|
|
1765
1808
|
# @!method self.values
|
|
@@ -1875,6 +1918,29 @@ module Revox
|
|
|
1875
1918
|
# @return [Object]
|
|
1876
1919
|
required :ended_at, Revox::Internal::Type::Unknown
|
|
1877
1920
|
|
|
1921
|
+
# @!attribute handled_by_ai
|
|
1922
|
+
# Whether the AI agent conducted the conversation on this attempt. False for a
|
|
1923
|
+
# silent speed-dial probe (whose agent only detects a human) and for attempts that
|
|
1924
|
+
# were never answered.
|
|
1925
|
+
#
|
|
1926
|
+
# @return [Boolean]
|
|
1927
|
+
required :handled_by_ai, Revox::Internal::Type::Boolean
|
|
1928
|
+
|
|
1929
|
+
# @!attribute handled_by_human
|
|
1930
|
+
# Whether a human operator conducted (part of) this attempt — a jump-in takeover
|
|
1931
|
+
# or a speed-dial operator connection (both stamp human_takeover_at).
|
|
1932
|
+
#
|
|
1933
|
+
# @return [Boolean]
|
|
1934
|
+
required :handled_by_human, Revox::Internal::Type::Boolean
|
|
1935
|
+
|
|
1936
|
+
# @!attribute handled_by_user
|
|
1937
|
+
# The team member responsible for following up on this call.
|
|
1938
|
+
#
|
|
1939
|
+
# @return [Revox::Models::CallRetrieveResponse::Call::CallAttempt::HandledByUser, nil]
|
|
1940
|
+
required :handled_by_user,
|
|
1941
|
+
-> { Revox::Models::CallRetrieveResponse::Call::CallAttempt::HandledByUser },
|
|
1942
|
+
nil?: true
|
|
1943
|
+
|
|
1878
1944
|
# @!attribute phone_number
|
|
1879
1945
|
# The phone number that was called. Formatted in E.164 format. Example:
|
|
1880
1946
|
# +1234567890
|
|
@@ -1911,6 +1977,15 @@ module Revox
|
|
|
1911
1977
|
# @return [Array<String>, nil]
|
|
1912
1978
|
optional :assistants_used, Revox::Internal::Type::ArrayOf[String], nil?: true
|
|
1913
1979
|
|
|
1980
|
+
# @!attribute email_log
|
|
1981
|
+
# Notification emails sent in connection with the call, ordered oldest first
|
|
1982
|
+
# (from/to addresses, subject, sent time).
|
|
1983
|
+
#
|
|
1984
|
+
# @return [Array<Revox::Models::CallRetrieveResponse::Call::CallAttempt::EmailLog>, nil]
|
|
1985
|
+
optional :email_log,
|
|
1986
|
+
-> { Revox::Internal::Type::ArrayOf[Revox::Models::CallRetrieveResponse::Call::CallAttempt::EmailLog] },
|
|
1987
|
+
nil?: true
|
|
1988
|
+
|
|
1914
1989
|
# @!attribute end_reason
|
|
1915
1990
|
# Reason for ending the call when ended_by is 'agent'. E.g. 'tool_end_call',
|
|
1916
1991
|
# 'voicemail', 'transfer', 'ivr_no_navigate'.
|
|
@@ -1948,6 +2023,16 @@ module Revox
|
|
|
1948
2023
|
-> { Revox::Internal::Type::ArrayOf[Revox::Models::CallRetrieveResponse::Call::CallAttempt::SMSLog] },
|
|
1949
2024
|
nil?: true
|
|
1950
2025
|
|
|
2026
|
+
# @!attribute speech_events
|
|
2027
|
+
# Per-turn speech segments (VAD-derived) with timing and pipeline latencies,
|
|
2028
|
+
# ordered by started_speaking_at_ms. Empty for calls recorded before this was
|
|
2029
|
+
# tracked or for realtime sessions that don't emit them.
|
|
2030
|
+
#
|
|
2031
|
+
# @return [Array<Revox::Models::CallRetrieveResponse::Call::CallAttempt::SpeechEvent>, nil]
|
|
2032
|
+
optional :speech_events,
|
|
2033
|
+
-> { Revox::Internal::Type::ArrayOf[Revox::Models::CallRetrieveResponse::Call::CallAttempt::SpeechEvent] },
|
|
2034
|
+
nil?: true
|
|
2035
|
+
|
|
1951
2036
|
# @!attribute structured_output
|
|
1952
2037
|
# The data extracted from the call, using the structured output config from the
|
|
1953
2038
|
# parent call object.
|
|
@@ -1965,7 +2050,7 @@ module Revox
|
|
|
1965
2050
|
-> { Revox::Internal::Type::ArrayOf[Revox::Models::CallRetrieveResponse::Call::CallAttempt::Transcript] },
|
|
1966
2051
|
nil?: true
|
|
1967
2052
|
|
|
1968
|
-
# @!method initialize(id:, answered_at:, dial_error:, ended_at:, phone_number:, recording_url:, result:, started_at:, status:, assistants_used: nil, end_reason: nil, ended_by: nil, post_call_transcript: nil, sms_log: nil, structured_output: nil, transcript: nil)
|
|
2053
|
+
# @!method initialize(id:, answered_at:, dial_error:, ended_at:, handled_by_ai:, handled_by_human:, handled_by_user:, phone_number:, recording_url:, result:, started_at:, status:, assistants_used: nil, email_log: nil, end_reason: nil, ended_by: nil, post_call_transcript: nil, sms_log: nil, speech_events: nil, structured_output: nil, transcript: nil)
|
|
1969
2054
|
# Some parameter documentations has been truncated, see
|
|
1970
2055
|
# {Revox::Models::CallRetrieveResponse::Call::CallAttempt} for more details.
|
|
1971
2056
|
#
|
|
@@ -1980,6 +2065,12 @@ module Revox
|
|
|
1980
2065
|
#
|
|
1981
2066
|
# @param ended_at [Object] The time the call ended.
|
|
1982
2067
|
#
|
|
2068
|
+
# @param handled_by_ai [Boolean] Whether the AI agent conducted the conversation on this attempt. False for a sil
|
|
2069
|
+
#
|
|
2070
|
+
# @param handled_by_human [Boolean] Whether a human operator conducted (part of) this attempt — a jump-in takeover o
|
|
2071
|
+
#
|
|
2072
|
+
# @param handled_by_user [Revox::Models::CallRetrieveResponse::Call::CallAttempt::HandledByUser, nil] The team member responsible for following up on this call.
|
|
2073
|
+
#
|
|
1983
2074
|
# @param phone_number [String] The phone number that was called. Formatted in E.164 format. Example: +123456789
|
|
1984
2075
|
#
|
|
1985
2076
|
# @param recording_url [String, nil] The URL of the audio recording of the call.
|
|
@@ -1992,6 +2083,8 @@ module Revox
|
|
|
1992
2083
|
#
|
|
1993
2084
|
# @param assistants_used [Array<String>, nil] Assistant node ids entered during this attempt, in traversal order.
|
|
1994
2085
|
#
|
|
2086
|
+
# @param email_log [Array<Revox::Models::CallRetrieveResponse::Call::CallAttempt::EmailLog>, nil] Notification emails sent in connection with the call, ordered oldest first (from
|
|
2087
|
+
#
|
|
1995
2088
|
# @param end_reason [Symbol, Revox::Models::CallRetrieveResponse::Call::CallAttempt::EndReason, nil] Reason for ending the call when ended_by is 'agent'. E.g. 'tool_end_call', 'voic
|
|
1996
2089
|
#
|
|
1997
2090
|
# @param ended_by [Symbol, Revox::Models::CallRetrieveResponse::Call::CallAttempt::EndedBy, nil] Who ended the call: 'agent' (AI agent), 'user' (caller/callee hung up), or 'syst
|
|
@@ -2000,6 +2093,8 @@ module Revox
|
|
|
2000
2093
|
#
|
|
2001
2094
|
# @param sms_log [Array<Revox::Models::CallRetrieveResponse::Call::CallAttempt::SMSLog>, nil] Automatic SMS sent after the call (voicemail and after-call), ordered oldest fir
|
|
2002
2095
|
#
|
|
2096
|
+
# @param speech_events [Array<Revox::Models::CallRetrieveResponse::Call::CallAttempt::SpeechEvent>, nil] Per-turn speech segments (VAD-derived) with timing and pipeline latencies, order
|
|
2097
|
+
#
|
|
2003
2098
|
# @param structured_output [Hash{Symbol=>Object}, nil] The data extracted from the call, using the structured output config from the pa
|
|
2004
2099
|
#
|
|
2005
2100
|
# @param transcript [Array<Revox::Models::CallRetrieveResponse::Call::CallAttempt::Transcript>, nil] The live transcript of the call, built in real time.
|
|
@@ -2023,6 +2118,41 @@ module Revox
|
|
|
2023
2118
|
# @return [Array<Symbol>]
|
|
2024
2119
|
end
|
|
2025
2120
|
|
|
2121
|
+
# @see Revox::Models::CallRetrieveResponse::Call::CallAttempt#handled_by_user
|
|
2122
|
+
class HandledByUser < Revox::Internal::Type::BaseModel
|
|
2123
|
+
# @!attribute id
|
|
2124
|
+
# The database user id of the assignee.
|
|
2125
|
+
#
|
|
2126
|
+
# @return [String]
|
|
2127
|
+
required :id, String
|
|
2128
|
+
|
|
2129
|
+
# @!attribute email
|
|
2130
|
+
#
|
|
2131
|
+
# @return [String]
|
|
2132
|
+
required :email, String
|
|
2133
|
+
|
|
2134
|
+
# @!attribute first_name
|
|
2135
|
+
#
|
|
2136
|
+
# @return [String, nil]
|
|
2137
|
+
required :first_name, String, nil?: true
|
|
2138
|
+
|
|
2139
|
+
# @!attribute last_name
|
|
2140
|
+
#
|
|
2141
|
+
# @return [String, nil]
|
|
2142
|
+
required :last_name, String, nil?: true
|
|
2143
|
+
|
|
2144
|
+
# @!method initialize(id:, email:, first_name:, last_name:)
|
|
2145
|
+
# The team member responsible for following up on this call.
|
|
2146
|
+
#
|
|
2147
|
+
# @param id [String] The database user id of the assignee.
|
|
2148
|
+
#
|
|
2149
|
+
# @param email [String]
|
|
2150
|
+
#
|
|
2151
|
+
# @param first_name [String, nil]
|
|
2152
|
+
#
|
|
2153
|
+
# @param last_name [String, nil]
|
|
2154
|
+
end
|
|
2155
|
+
|
|
2026
2156
|
# @see Revox::Models::CallRetrieveResponse::Call::CallAttempt#result
|
|
2027
2157
|
module Result
|
|
2028
2158
|
extend Revox::Internal::Type::Enum
|
|
@@ -2053,6 +2183,52 @@ module Revox
|
|
|
2053
2183
|
# @return [Array<Symbol>]
|
|
2054
2184
|
end
|
|
2055
2185
|
|
|
2186
|
+
class EmailLog < Revox::Internal::Type::BaseModel
|
|
2187
|
+
# @!attribute id
|
|
2188
|
+
#
|
|
2189
|
+
# @return [String]
|
|
2190
|
+
required :id, String
|
|
2191
|
+
|
|
2192
|
+
# @!attribute created_at
|
|
2193
|
+
# When the email was sent.
|
|
2194
|
+
#
|
|
2195
|
+
# @return [Object]
|
|
2196
|
+
required :created_at, Revox::Internal::Type::Unknown
|
|
2197
|
+
|
|
2198
|
+
# @!attribute from_address
|
|
2199
|
+
#
|
|
2200
|
+
# @return [String]
|
|
2201
|
+
required :from_address, String
|
|
2202
|
+
|
|
2203
|
+
# @!attribute resend_message_id
|
|
2204
|
+
#
|
|
2205
|
+
# @return [String, nil]
|
|
2206
|
+
required :resend_message_id, String, nil?: true
|
|
2207
|
+
|
|
2208
|
+
# @!attribute subject
|
|
2209
|
+
#
|
|
2210
|
+
# @return [String]
|
|
2211
|
+
required :subject, String
|
|
2212
|
+
|
|
2213
|
+
# @!attribute to_emails
|
|
2214
|
+
#
|
|
2215
|
+
# @return [Array<String>]
|
|
2216
|
+
required :to_emails, Revox::Internal::Type::ArrayOf[String]
|
|
2217
|
+
|
|
2218
|
+
# @!method initialize(id:, created_at:, from_address:, resend_message_id:, subject:, to_emails:)
|
|
2219
|
+
# @param id [String]
|
|
2220
|
+
#
|
|
2221
|
+
# @param created_at [Object] When the email was sent.
|
|
2222
|
+
#
|
|
2223
|
+
# @param from_address [String]
|
|
2224
|
+
#
|
|
2225
|
+
# @param resend_message_id [String, nil]
|
|
2226
|
+
#
|
|
2227
|
+
# @param subject [String]
|
|
2228
|
+
#
|
|
2229
|
+
# @param to_emails [Array<String>]
|
|
2230
|
+
end
|
|
2231
|
+
|
|
2056
2232
|
# Reason for ending the call when ended_by is 'agent'. E.g. 'tool_end_call',
|
|
2057
2233
|
# 'voicemail', 'transfer', 'ivr_no_navigate'.
|
|
2058
2234
|
#
|
|
@@ -2183,34 +2359,52 @@ module Revox
|
|
|
2183
2359
|
# @return [String]
|
|
2184
2360
|
required :message_body, String
|
|
2185
2361
|
|
|
2186
|
-
# @!attribute
|
|
2362
|
+
# @!attribute provider
|
|
2187
2363
|
#
|
|
2188
|
-
# @return [
|
|
2189
|
-
required :
|
|
2364
|
+
# @return [Symbol, Revox::Models::CallRetrieveResponse::Call::CallAttempt::SMSLog::Provider]
|
|
2365
|
+
required :provider, enum: -> { Revox::Models::CallRetrieveResponse::Call::CallAttempt::SMSLog::Provider }
|
|
2190
2366
|
|
|
2191
|
-
# @!attribute
|
|
2367
|
+
# @!attribute provider_message_id
|
|
2192
2368
|
#
|
|
2193
2369
|
# @return [String, nil]
|
|
2194
|
-
required :
|
|
2370
|
+
required :provider_message_id, String, nil?: true
|
|
2371
|
+
|
|
2372
|
+
# @!attribute to_phone_number
|
|
2373
|
+
#
|
|
2374
|
+
# @return [String]
|
|
2375
|
+
required :to_phone_number, String
|
|
2195
2376
|
|
|
2196
2377
|
# @!attribute type
|
|
2197
2378
|
#
|
|
2198
2379
|
# @return [Symbol, Revox::Models::CallRetrieveResponse::Call::CallAttempt::SMSLog::Type]
|
|
2199
2380
|
required :type, enum: -> { Revox::Models::CallRetrieveResponse::Call::CallAttempt::SMSLog::Type }
|
|
2200
2381
|
|
|
2201
|
-
# @!method initialize(id:, created_at:, message_body:,
|
|
2382
|
+
# @!method initialize(id:, created_at:, message_body:, provider:, provider_message_id:, to_phone_number:, type:)
|
|
2202
2383
|
# @param id [String]
|
|
2203
2384
|
#
|
|
2204
2385
|
# @param created_at [Object] When the SMS was sent.
|
|
2205
2386
|
#
|
|
2206
2387
|
# @param message_body [String]
|
|
2207
2388
|
#
|
|
2208
|
-
# @param
|
|
2389
|
+
# @param provider [Symbol, Revox::Models::CallRetrieveResponse::Call::CallAttempt::SMSLog::Provider]
|
|
2209
2390
|
#
|
|
2210
|
-
# @param
|
|
2391
|
+
# @param provider_message_id [String, nil]
|
|
2392
|
+
#
|
|
2393
|
+
# @param to_phone_number [String]
|
|
2211
2394
|
#
|
|
2212
2395
|
# @param type [Symbol, Revox::Models::CallRetrieveResponse::Call::CallAttempt::SMSLog::Type]
|
|
2213
2396
|
|
|
2397
|
+
# @see Revox::Models::CallRetrieveResponse::Call::CallAttempt::SMSLog#provider
|
|
2398
|
+
module Provider
|
|
2399
|
+
extend Revox::Internal::Type::Enum
|
|
2400
|
+
|
|
2401
|
+
TWILIO = :twilio
|
|
2402
|
+
VONAGE = :vonage
|
|
2403
|
+
|
|
2404
|
+
# @!method self.values
|
|
2405
|
+
# @return [Array<Symbol>]
|
|
2406
|
+
end
|
|
2407
|
+
|
|
2214
2408
|
# @see Revox::Models::CallRetrieveResponse::Call::CallAttempt::SMSLog#type
|
|
2215
2409
|
module Type
|
|
2216
2410
|
extend Revox::Internal::Type::Enum
|
|
@@ -2224,6 +2418,126 @@ module Revox
|
|
|
2224
2418
|
end
|
|
2225
2419
|
end
|
|
2226
2420
|
|
|
2421
|
+
class SpeechEvent < Revox::Internal::Type::BaseModel
|
|
2422
|
+
# @!attribute id
|
|
2423
|
+
#
|
|
2424
|
+
# @return [String]
|
|
2425
|
+
required :id, String
|
|
2426
|
+
|
|
2427
|
+
# @!attribute is_real_turn
|
|
2428
|
+
# False when the segment was flagged as noise/blip rather than a meaningful turn.
|
|
2429
|
+
#
|
|
2430
|
+
# @return [Boolean]
|
|
2431
|
+
required :is_real_turn, Revox::Internal::Type::Boolean
|
|
2432
|
+
|
|
2433
|
+
# @!attribute llm_system_prompt
|
|
2434
|
+
# Agent-only: despite the name, the whole prompt the LLM was given for this turn —
|
|
2435
|
+
# system instructions plus conversation history — as JSON.
|
|
2436
|
+
#
|
|
2437
|
+
# @return [String, nil]
|
|
2438
|
+
required :llm_system_prompt, String, nil?: true
|
|
2439
|
+
|
|
2440
|
+
# @!attribute llm_ttft_ms
|
|
2441
|
+
# Agent-only: LLM time-to-first-token for the reply, in ms.
|
|
2442
|
+
#
|
|
2443
|
+
# @return [Float, nil]
|
|
2444
|
+
required :llm_ttft_ms, Float, nil?: true
|
|
2445
|
+
|
|
2446
|
+
# @!attribute llm_winner_model
|
|
2447
|
+
# Agent-only: the model that produced the reply — the winning leg when the LLM is
|
|
2448
|
+
# a race, which is also the model `llm_ttft_ms` describes.
|
|
2449
|
+
#
|
|
2450
|
+
# @return [String, nil]
|
|
2451
|
+
required :llm_winner_model, String, nil?: true
|
|
2452
|
+
|
|
2453
|
+
# @!attribute speaker
|
|
2454
|
+
# Who was speaking during this segment.
|
|
2455
|
+
#
|
|
2456
|
+
# @return [Symbol, Revox::Models::CallRetrieveResponse::Call::CallAttempt::SpeechEvent::Speaker]
|
|
2457
|
+
required :speaker,
|
|
2458
|
+
enum: -> { Revox::Models::CallRetrieveResponse::Call::CallAttempt::SpeechEvent::Speaker }
|
|
2459
|
+
|
|
2460
|
+
# @!attribute started_speaking_at_ms
|
|
2461
|
+
# Milliseconds since session start when speech began.
|
|
2462
|
+
#
|
|
2463
|
+
# @return [Float]
|
|
2464
|
+
required :started_speaking_at_ms, Float
|
|
2465
|
+
|
|
2466
|
+
# @!attribute stopped_speaking_at_ms
|
|
2467
|
+
# Milliseconds since session start when speech ended. Null when the session ended
|
|
2468
|
+
# before the turn closed.
|
|
2469
|
+
#
|
|
2470
|
+
# @return [Float, nil]
|
|
2471
|
+
required :stopped_speaking_at_ms, Float, nil?: true
|
|
2472
|
+
|
|
2473
|
+
# @!attribute stt_transcription_delay_ms
|
|
2474
|
+
# User-only: time from end-of-speech to final transcript, in ms.
|
|
2475
|
+
#
|
|
2476
|
+
# @return [Float, nil]
|
|
2477
|
+
required :stt_transcription_delay_ms, Float, nil?: true
|
|
2478
|
+
|
|
2479
|
+
# @!attribute transcript
|
|
2480
|
+
# Recognized text for this segment, when available.
|
|
2481
|
+
#
|
|
2482
|
+
# @return [String, nil]
|
|
2483
|
+
required :transcript, String, nil?: true
|
|
2484
|
+
|
|
2485
|
+
# @!attribute tts_ttfb_ms
|
|
2486
|
+
# Agent-only: TTS time-to-first-audio-byte for the reply, in ms.
|
|
2487
|
+
#
|
|
2488
|
+
# @return [Float, nil]
|
|
2489
|
+
required :tts_ttfb_ms, Float, nil?: true
|
|
2490
|
+
|
|
2491
|
+
# @!attribute was_cut
|
|
2492
|
+
# Agent-only: true when the agent's audio was interrupted (real or auto-resumed).
|
|
2493
|
+
# Null on user segments.
|
|
2494
|
+
#
|
|
2495
|
+
# @return [Boolean, nil]
|
|
2496
|
+
required :was_cut, Revox::Internal::Type::Boolean, nil?: true
|
|
2497
|
+
|
|
2498
|
+
# @!method initialize(id:, is_real_turn:, llm_system_prompt:, llm_ttft_ms:, llm_winner_model:, speaker:, started_speaking_at_ms:, stopped_speaking_at_ms:, stt_transcription_delay_ms:, transcript:, tts_ttfb_ms:, was_cut:)
|
|
2499
|
+
# Some parameter documentations has been truncated, see
|
|
2500
|
+
# {Revox::Models::CallRetrieveResponse::Call::CallAttempt::SpeechEvent} for more
|
|
2501
|
+
# details.
|
|
2502
|
+
#
|
|
2503
|
+
# @param id [String]
|
|
2504
|
+
#
|
|
2505
|
+
# @param is_real_turn [Boolean] False when the segment was flagged as noise/blip rather than a meaningful turn.
|
|
2506
|
+
#
|
|
2507
|
+
# @param llm_system_prompt [String, nil] Agent-only: despite the name, the whole prompt the LLM was given for this turn —
|
|
2508
|
+
#
|
|
2509
|
+
# @param llm_ttft_ms [Float, nil] Agent-only: LLM time-to-first-token for the reply, in ms.
|
|
2510
|
+
#
|
|
2511
|
+
# @param llm_winner_model [String, nil] Agent-only: the model that produced the reply — the winning leg when the LLM is
|
|
2512
|
+
#
|
|
2513
|
+
# @param speaker [Symbol, Revox::Models::CallRetrieveResponse::Call::CallAttempt::SpeechEvent::Speaker] Who was speaking during this segment.
|
|
2514
|
+
#
|
|
2515
|
+
# @param started_speaking_at_ms [Float] Milliseconds since session start when speech began.
|
|
2516
|
+
#
|
|
2517
|
+
# @param stopped_speaking_at_ms [Float, nil] Milliseconds since session start when speech ended. Null when the session ended
|
|
2518
|
+
#
|
|
2519
|
+
# @param stt_transcription_delay_ms [Float, nil] User-only: time from end-of-speech to final transcript, in ms.
|
|
2520
|
+
#
|
|
2521
|
+
# @param transcript [String, nil] Recognized text for this segment, when available.
|
|
2522
|
+
#
|
|
2523
|
+
# @param tts_ttfb_ms [Float, nil] Agent-only: TTS time-to-first-audio-byte for the reply, in ms.
|
|
2524
|
+
#
|
|
2525
|
+
# @param was_cut [Boolean, nil] Agent-only: true when the agent's audio was interrupted (real or auto-resumed).
|
|
2526
|
+
|
|
2527
|
+
# Who was speaking during this segment.
|
|
2528
|
+
#
|
|
2529
|
+
# @see Revox::Models::CallRetrieveResponse::Call::CallAttempt::SpeechEvent#speaker
|
|
2530
|
+
module Speaker
|
|
2531
|
+
extend Revox::Internal::Type::Enum
|
|
2532
|
+
|
|
2533
|
+
USER = :user
|
|
2534
|
+
AGENT = :agent
|
|
2535
|
+
|
|
2536
|
+
# @!method self.values
|
|
2537
|
+
# @return [Array<Symbol>]
|
|
2538
|
+
end
|
|
2539
|
+
end
|
|
2540
|
+
|
|
2227
2541
|
class Transcript < Revox::Internal::Type::BaseModel
|
|
2228
2542
|
# @!attribute content
|
|
2229
2543
|
#
|
|
@@ -2383,7 +2697,8 @@ module Revox
|
|
|
2383
2697
|
required :calling_window_start_time, String
|
|
2384
2698
|
|
|
2385
2699
|
# @!attribute retry_delay_seconds
|
|
2386
|
-
# Delay between retry attempts in seconds.
|
|
2700
|
+
# Delay between retry attempts in seconds. 0 retries as soon as the calling window
|
|
2701
|
+
# allows. Default: 7200 (2 hours).
|
|
2387
2702
|
#
|
|
2388
2703
|
# @return [Integer]
|
|
2389
2704
|
required :retry_delay_seconds, Integer
|
|
@@ -2397,7 +2712,7 @@ module Revox
|
|
|
2397
2712
|
#
|
|
2398
2713
|
# @param calling_window_start_time [String] Start time for the calling window in the recipient's timezone (or timezone_overr
|
|
2399
2714
|
#
|
|
2400
|
-
# @param retry_delay_seconds [Integer] Delay between retry attempts in seconds.
|
|
2715
|
+
# @param retry_delay_seconds [Integer] Delay between retry attempts in seconds. 0 retries as soon as the calling window
|
|
2401
2716
|
end
|
|
2402
2717
|
end
|
|
2403
2718
|
|
|
@@ -2435,18 +2750,24 @@ module Revox
|
|
|
2435
2750
|
# @return [String, nil]
|
|
2436
2751
|
required :first_name, String, nil?: true
|
|
2437
2752
|
|
|
2753
|
+
# @!attribute job_title
|
|
2754
|
+
#
|
|
2755
|
+
# @return [String, nil]
|
|
2756
|
+
required :job_title, String, nil?: true
|
|
2757
|
+
|
|
2438
2758
|
# @!attribute last_name
|
|
2439
2759
|
#
|
|
2440
2760
|
# @return [String, nil]
|
|
2441
2761
|
required :last_name, String, nil?: true
|
|
2442
2762
|
|
|
2443
|
-
# @!method initialize(company:, email:, first_name:, last_name:)
|
|
2763
|
+
# @!method initialize(company:, email:, first_name:, job_title:, last_name:)
|
|
2444
2764
|
# Magic contact variables (prospect identity) extracted from the call's input data
|
|
2445
2765
|
# and transcript.
|
|
2446
2766
|
#
|
|
2447
2767
|
# @param company [String, nil]
|
|
2448
2768
|
# @param email [String, nil]
|
|
2449
2769
|
# @param first_name [String, nil]
|
|
2770
|
+
# @param job_title [String, nil]
|
|
2450
2771
|
# @param last_name [String, nil]
|
|
2451
2772
|
end
|
|
2452
2773
|
|
|
@@ -2491,6 +2812,29 @@ module Revox
|
|
|
2491
2812
|
# @return [Object]
|
|
2492
2813
|
required :ended_at, Revox::Internal::Type::Unknown
|
|
2493
2814
|
|
|
2815
|
+
# @!attribute handled_by_ai
|
|
2816
|
+
# Whether the AI agent conducted the conversation on this attempt. False for a
|
|
2817
|
+
# silent speed-dial probe (whose agent only detects a human) and for attempts that
|
|
2818
|
+
# were never answered.
|
|
2819
|
+
#
|
|
2820
|
+
# @return [Boolean]
|
|
2821
|
+
required :handled_by_ai, Revox::Internal::Type::Boolean
|
|
2822
|
+
|
|
2823
|
+
# @!attribute handled_by_human
|
|
2824
|
+
# Whether a human operator conducted (part of) this attempt — a jump-in takeover
|
|
2825
|
+
# or a speed-dial operator connection (both stamp human_takeover_at).
|
|
2826
|
+
#
|
|
2827
|
+
# @return [Boolean]
|
|
2828
|
+
required :handled_by_human, Revox::Internal::Type::Boolean
|
|
2829
|
+
|
|
2830
|
+
# @!attribute handled_by_user
|
|
2831
|
+
# The team member responsible for following up on this call.
|
|
2832
|
+
#
|
|
2833
|
+
# @return [Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::HandledByUser, nil]
|
|
2834
|
+
required :handled_by_user,
|
|
2835
|
+
-> { Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::HandledByUser },
|
|
2836
|
+
nil?: true
|
|
2837
|
+
|
|
2494
2838
|
# @!attribute phone_number
|
|
2495
2839
|
# The phone number that was called. Formatted in E.164 format. Example:
|
|
2496
2840
|
# +1234567890
|
|
@@ -2529,6 +2873,15 @@ module Revox
|
|
|
2529
2873
|
# @return [Array<String>, nil]
|
|
2530
2874
|
optional :assistants_used, Revox::Internal::Type::ArrayOf[String], nil?: true
|
|
2531
2875
|
|
|
2876
|
+
# @!attribute email_log
|
|
2877
|
+
# Notification emails sent in connection with the call, ordered oldest first
|
|
2878
|
+
# (from/to addresses, subject, sent time).
|
|
2879
|
+
#
|
|
2880
|
+
# @return [Array<Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::EmailLog>, nil]
|
|
2881
|
+
optional :email_log,
|
|
2882
|
+
-> { Revox::Internal::Type::ArrayOf[Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::EmailLog] },
|
|
2883
|
+
nil?: true
|
|
2884
|
+
|
|
2532
2885
|
# @!attribute end_reason
|
|
2533
2886
|
# Reason for ending the call when ended_by is 'agent'. E.g. 'tool_end_call',
|
|
2534
2887
|
# 'voicemail', 'transfer', 'ivr_no_navigate'.
|
|
@@ -2566,6 +2919,16 @@ module Revox
|
|
|
2566
2919
|
-> { Revox::Internal::Type::ArrayOf[Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::SMSLog] },
|
|
2567
2920
|
nil?: true
|
|
2568
2921
|
|
|
2922
|
+
# @!attribute speech_events
|
|
2923
|
+
# Per-turn speech segments (VAD-derived) with timing and pipeline latencies,
|
|
2924
|
+
# ordered by started_speaking_at_ms. Empty for calls recorded before this was
|
|
2925
|
+
# tracked or for realtime sessions that don't emit them.
|
|
2926
|
+
#
|
|
2927
|
+
# @return [Array<Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::SpeechEvent>, nil]
|
|
2928
|
+
optional :speech_events,
|
|
2929
|
+
-> { Revox::Internal::Type::ArrayOf[Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::SpeechEvent] },
|
|
2930
|
+
nil?: true
|
|
2931
|
+
|
|
2569
2932
|
# @!attribute structured_output
|
|
2570
2933
|
# The data extracted from the call, using the structured output config from the
|
|
2571
2934
|
# parent call object.
|
|
@@ -2583,7 +2946,7 @@ module Revox
|
|
|
2583
2946
|
-> { Revox::Internal::Type::ArrayOf[Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::Transcript] },
|
|
2584
2947
|
nil?: true
|
|
2585
2948
|
|
|
2586
|
-
# @!method initialize(id:, answered_at:, dial_error:, ended_at:, phone_number:, recording_url:, result:, started_at:, status:, assistants_used: nil, end_reason: nil, ended_by: nil, post_call_transcript: nil, sms_log: nil, structured_output: nil, transcript: nil)
|
|
2949
|
+
# @!method initialize(id:, answered_at:, dial_error:, ended_at:, handled_by_ai:, handled_by_human:, handled_by_user:, phone_number:, recording_url:, result:, started_at:, status:, assistants_used: nil, email_log: nil, end_reason: nil, ended_by: nil, post_call_transcript: nil, sms_log: nil, speech_events: nil, structured_output: nil, transcript: nil)
|
|
2587
2950
|
# Some parameter documentations has been truncated, see
|
|
2588
2951
|
# {Revox::Models::CallRetrieveResponse::Call::LastCallAttempt} for more details.
|
|
2589
2952
|
#
|
|
@@ -2598,6 +2961,12 @@ module Revox
|
|
|
2598
2961
|
#
|
|
2599
2962
|
# @param ended_at [Object] The time the call ended.
|
|
2600
2963
|
#
|
|
2964
|
+
# @param handled_by_ai [Boolean] Whether the AI agent conducted the conversation on this attempt. False for a sil
|
|
2965
|
+
#
|
|
2966
|
+
# @param handled_by_human [Boolean] Whether a human operator conducted (part of) this attempt — a jump-in takeover o
|
|
2967
|
+
#
|
|
2968
|
+
# @param handled_by_user [Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::HandledByUser, nil] The team member responsible for following up on this call.
|
|
2969
|
+
#
|
|
2601
2970
|
# @param phone_number [String] The phone number that was called. Formatted in E.164 format. Example: +123456789
|
|
2602
2971
|
#
|
|
2603
2972
|
# @param recording_url [String, nil] The URL of the audio recording of the call.
|
|
@@ -2610,6 +2979,8 @@ module Revox
|
|
|
2610
2979
|
#
|
|
2611
2980
|
# @param assistants_used [Array<String>, nil] Assistant node ids entered during this attempt, in traversal order.
|
|
2612
2981
|
#
|
|
2982
|
+
# @param email_log [Array<Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::EmailLog>, nil] Notification emails sent in connection with the call, ordered oldest first (from
|
|
2983
|
+
#
|
|
2613
2984
|
# @param end_reason [Symbol, Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::EndReason, nil] Reason for ending the call when ended_by is 'agent'. E.g. 'tool_end_call', 'voic
|
|
2614
2985
|
#
|
|
2615
2986
|
# @param ended_by [Symbol, Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::EndedBy, nil] Who ended the call: 'agent' (AI agent), 'user' (caller/callee hung up), or 'syst
|
|
@@ -2618,6 +2989,8 @@ module Revox
|
|
|
2618
2989
|
#
|
|
2619
2990
|
# @param sms_log [Array<Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::SMSLog>, nil] Automatic SMS sent after the call (voicemail and after-call), ordered oldest fir
|
|
2620
2991
|
#
|
|
2992
|
+
# @param speech_events [Array<Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::SpeechEvent>, nil] Per-turn speech segments (VAD-derived) with timing and pipeline latencies, order
|
|
2993
|
+
#
|
|
2621
2994
|
# @param structured_output [Hash{Symbol=>Object}, nil] The data extracted from the call, using the structured output config from the pa
|
|
2622
2995
|
#
|
|
2623
2996
|
# @param transcript [Array<Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::Transcript>, nil] The live transcript of the call, built in real time.
|
|
@@ -2641,6 +3014,41 @@ module Revox
|
|
|
2641
3014
|
# @return [Array<Symbol>]
|
|
2642
3015
|
end
|
|
2643
3016
|
|
|
3017
|
+
# @see Revox::Models::CallRetrieveResponse::Call::LastCallAttempt#handled_by_user
|
|
3018
|
+
class HandledByUser < Revox::Internal::Type::BaseModel
|
|
3019
|
+
# @!attribute id
|
|
3020
|
+
# The database user id of the assignee.
|
|
3021
|
+
#
|
|
3022
|
+
# @return [String]
|
|
3023
|
+
required :id, String
|
|
3024
|
+
|
|
3025
|
+
# @!attribute email
|
|
3026
|
+
#
|
|
3027
|
+
# @return [String]
|
|
3028
|
+
required :email, String
|
|
3029
|
+
|
|
3030
|
+
# @!attribute first_name
|
|
3031
|
+
#
|
|
3032
|
+
# @return [String, nil]
|
|
3033
|
+
required :first_name, String, nil?: true
|
|
3034
|
+
|
|
3035
|
+
# @!attribute last_name
|
|
3036
|
+
#
|
|
3037
|
+
# @return [String, nil]
|
|
3038
|
+
required :last_name, String, nil?: true
|
|
3039
|
+
|
|
3040
|
+
# @!method initialize(id:, email:, first_name:, last_name:)
|
|
3041
|
+
# The team member responsible for following up on this call.
|
|
3042
|
+
#
|
|
3043
|
+
# @param id [String] The database user id of the assignee.
|
|
3044
|
+
#
|
|
3045
|
+
# @param email [String]
|
|
3046
|
+
#
|
|
3047
|
+
# @param first_name [String, nil]
|
|
3048
|
+
#
|
|
3049
|
+
# @param last_name [String, nil]
|
|
3050
|
+
end
|
|
3051
|
+
|
|
2644
3052
|
# @see Revox::Models::CallRetrieveResponse::Call::LastCallAttempt#result
|
|
2645
3053
|
module Result
|
|
2646
3054
|
extend Revox::Internal::Type::Enum
|
|
@@ -2671,6 +3079,52 @@ module Revox
|
|
|
2671
3079
|
# @return [Array<Symbol>]
|
|
2672
3080
|
end
|
|
2673
3081
|
|
|
3082
|
+
class EmailLog < Revox::Internal::Type::BaseModel
|
|
3083
|
+
# @!attribute id
|
|
3084
|
+
#
|
|
3085
|
+
# @return [String]
|
|
3086
|
+
required :id, String
|
|
3087
|
+
|
|
3088
|
+
# @!attribute created_at
|
|
3089
|
+
# When the email was sent.
|
|
3090
|
+
#
|
|
3091
|
+
# @return [Object]
|
|
3092
|
+
required :created_at, Revox::Internal::Type::Unknown
|
|
3093
|
+
|
|
3094
|
+
# @!attribute from_address
|
|
3095
|
+
#
|
|
3096
|
+
# @return [String]
|
|
3097
|
+
required :from_address, String
|
|
3098
|
+
|
|
3099
|
+
# @!attribute resend_message_id
|
|
3100
|
+
#
|
|
3101
|
+
# @return [String, nil]
|
|
3102
|
+
required :resend_message_id, String, nil?: true
|
|
3103
|
+
|
|
3104
|
+
# @!attribute subject
|
|
3105
|
+
#
|
|
3106
|
+
# @return [String]
|
|
3107
|
+
required :subject, String
|
|
3108
|
+
|
|
3109
|
+
# @!attribute to_emails
|
|
3110
|
+
#
|
|
3111
|
+
# @return [Array<String>]
|
|
3112
|
+
required :to_emails, Revox::Internal::Type::ArrayOf[String]
|
|
3113
|
+
|
|
3114
|
+
# @!method initialize(id:, created_at:, from_address:, resend_message_id:, subject:, to_emails:)
|
|
3115
|
+
# @param id [String]
|
|
3116
|
+
#
|
|
3117
|
+
# @param created_at [Object] When the email was sent.
|
|
3118
|
+
#
|
|
3119
|
+
# @param from_address [String]
|
|
3120
|
+
#
|
|
3121
|
+
# @param resend_message_id [String, nil]
|
|
3122
|
+
#
|
|
3123
|
+
# @param subject [String]
|
|
3124
|
+
#
|
|
3125
|
+
# @param to_emails [Array<String>]
|
|
3126
|
+
end
|
|
3127
|
+
|
|
2674
3128
|
# Reason for ending the call when ended_by is 'agent'. E.g. 'tool_end_call',
|
|
2675
3129
|
# 'voicemail', 'transfer', 'ivr_no_navigate'.
|
|
2676
3130
|
#
|
|
@@ -2801,34 +3255,53 @@ module Revox
|
|
|
2801
3255
|
# @return [String]
|
|
2802
3256
|
required :message_body, String
|
|
2803
3257
|
|
|
2804
|
-
# @!attribute
|
|
3258
|
+
# @!attribute provider
|
|
2805
3259
|
#
|
|
2806
|
-
# @return [
|
|
2807
|
-
required :
|
|
3260
|
+
# @return [Symbol, Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::SMSLog::Provider]
|
|
3261
|
+
required :provider,
|
|
3262
|
+
enum: -> { Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::SMSLog::Provider }
|
|
2808
3263
|
|
|
2809
|
-
# @!attribute
|
|
3264
|
+
# @!attribute provider_message_id
|
|
2810
3265
|
#
|
|
2811
3266
|
# @return [String, nil]
|
|
2812
|
-
required :
|
|
3267
|
+
required :provider_message_id, String, nil?: true
|
|
3268
|
+
|
|
3269
|
+
# @!attribute to_phone_number
|
|
3270
|
+
#
|
|
3271
|
+
# @return [String]
|
|
3272
|
+
required :to_phone_number, String
|
|
2813
3273
|
|
|
2814
3274
|
# @!attribute type
|
|
2815
3275
|
#
|
|
2816
3276
|
# @return [Symbol, Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::SMSLog::Type]
|
|
2817
3277
|
required :type, enum: -> { Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::SMSLog::Type }
|
|
2818
3278
|
|
|
2819
|
-
# @!method initialize(id:, created_at:, message_body:,
|
|
3279
|
+
# @!method initialize(id:, created_at:, message_body:, provider:, provider_message_id:, to_phone_number:, type:)
|
|
2820
3280
|
# @param id [String]
|
|
2821
3281
|
#
|
|
2822
3282
|
# @param created_at [Object] When the SMS was sent.
|
|
2823
3283
|
#
|
|
2824
3284
|
# @param message_body [String]
|
|
2825
3285
|
#
|
|
2826
|
-
# @param
|
|
3286
|
+
# @param provider [Symbol, Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::SMSLog::Provider]
|
|
3287
|
+
#
|
|
3288
|
+
# @param provider_message_id [String, nil]
|
|
2827
3289
|
#
|
|
2828
|
-
# @param
|
|
3290
|
+
# @param to_phone_number [String]
|
|
2829
3291
|
#
|
|
2830
3292
|
# @param type [Symbol, Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::SMSLog::Type]
|
|
2831
3293
|
|
|
3294
|
+
# @see Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::SMSLog#provider
|
|
3295
|
+
module Provider
|
|
3296
|
+
extend Revox::Internal::Type::Enum
|
|
3297
|
+
|
|
3298
|
+
TWILIO = :twilio
|
|
3299
|
+
VONAGE = :vonage
|
|
3300
|
+
|
|
3301
|
+
# @!method self.values
|
|
3302
|
+
# @return [Array<Symbol>]
|
|
3303
|
+
end
|
|
3304
|
+
|
|
2832
3305
|
# @see Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::SMSLog#type
|
|
2833
3306
|
module Type
|
|
2834
3307
|
extend Revox::Internal::Type::Enum
|
|
@@ -2842,6 +3315,126 @@ module Revox
|
|
|
2842
3315
|
end
|
|
2843
3316
|
end
|
|
2844
3317
|
|
|
3318
|
+
class SpeechEvent < Revox::Internal::Type::BaseModel
|
|
3319
|
+
# @!attribute id
|
|
3320
|
+
#
|
|
3321
|
+
# @return [String]
|
|
3322
|
+
required :id, String
|
|
3323
|
+
|
|
3324
|
+
# @!attribute is_real_turn
|
|
3325
|
+
# False when the segment was flagged as noise/blip rather than a meaningful turn.
|
|
3326
|
+
#
|
|
3327
|
+
# @return [Boolean]
|
|
3328
|
+
required :is_real_turn, Revox::Internal::Type::Boolean
|
|
3329
|
+
|
|
3330
|
+
# @!attribute llm_system_prompt
|
|
3331
|
+
# Agent-only: despite the name, the whole prompt the LLM was given for this turn —
|
|
3332
|
+
# system instructions plus conversation history — as JSON.
|
|
3333
|
+
#
|
|
3334
|
+
# @return [String, nil]
|
|
3335
|
+
required :llm_system_prompt, String, nil?: true
|
|
3336
|
+
|
|
3337
|
+
# @!attribute llm_ttft_ms
|
|
3338
|
+
# Agent-only: LLM time-to-first-token for the reply, in ms.
|
|
3339
|
+
#
|
|
3340
|
+
# @return [Float, nil]
|
|
3341
|
+
required :llm_ttft_ms, Float, nil?: true
|
|
3342
|
+
|
|
3343
|
+
# @!attribute llm_winner_model
|
|
3344
|
+
# Agent-only: the model that produced the reply — the winning leg when the LLM is
|
|
3345
|
+
# a race, which is also the model `llm_ttft_ms` describes.
|
|
3346
|
+
#
|
|
3347
|
+
# @return [String, nil]
|
|
3348
|
+
required :llm_winner_model, String, nil?: true
|
|
3349
|
+
|
|
3350
|
+
# @!attribute speaker
|
|
3351
|
+
# Who was speaking during this segment.
|
|
3352
|
+
#
|
|
3353
|
+
# @return [Symbol, Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::SpeechEvent::Speaker]
|
|
3354
|
+
required :speaker,
|
|
3355
|
+
enum: -> { Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::SpeechEvent::Speaker }
|
|
3356
|
+
|
|
3357
|
+
# @!attribute started_speaking_at_ms
|
|
3358
|
+
# Milliseconds since session start when speech began.
|
|
3359
|
+
#
|
|
3360
|
+
# @return [Float]
|
|
3361
|
+
required :started_speaking_at_ms, Float
|
|
3362
|
+
|
|
3363
|
+
# @!attribute stopped_speaking_at_ms
|
|
3364
|
+
# Milliseconds since session start when speech ended. Null when the session ended
|
|
3365
|
+
# before the turn closed.
|
|
3366
|
+
#
|
|
3367
|
+
# @return [Float, nil]
|
|
3368
|
+
required :stopped_speaking_at_ms, Float, nil?: true
|
|
3369
|
+
|
|
3370
|
+
# @!attribute stt_transcription_delay_ms
|
|
3371
|
+
# User-only: time from end-of-speech to final transcript, in ms.
|
|
3372
|
+
#
|
|
3373
|
+
# @return [Float, nil]
|
|
3374
|
+
required :stt_transcription_delay_ms, Float, nil?: true
|
|
3375
|
+
|
|
3376
|
+
# @!attribute transcript
|
|
3377
|
+
# Recognized text for this segment, when available.
|
|
3378
|
+
#
|
|
3379
|
+
# @return [String, nil]
|
|
3380
|
+
required :transcript, String, nil?: true
|
|
3381
|
+
|
|
3382
|
+
# @!attribute tts_ttfb_ms
|
|
3383
|
+
# Agent-only: TTS time-to-first-audio-byte for the reply, in ms.
|
|
3384
|
+
#
|
|
3385
|
+
# @return [Float, nil]
|
|
3386
|
+
required :tts_ttfb_ms, Float, nil?: true
|
|
3387
|
+
|
|
3388
|
+
# @!attribute was_cut
|
|
3389
|
+
# Agent-only: true when the agent's audio was interrupted (real or auto-resumed).
|
|
3390
|
+
# Null on user segments.
|
|
3391
|
+
#
|
|
3392
|
+
# @return [Boolean, nil]
|
|
3393
|
+
required :was_cut, Revox::Internal::Type::Boolean, nil?: true
|
|
3394
|
+
|
|
3395
|
+
# @!method initialize(id:, is_real_turn:, llm_system_prompt:, llm_ttft_ms:, llm_winner_model:, speaker:, started_speaking_at_ms:, stopped_speaking_at_ms:, stt_transcription_delay_ms:, transcript:, tts_ttfb_ms:, was_cut:)
|
|
3396
|
+
# Some parameter documentations has been truncated, see
|
|
3397
|
+
# {Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::SpeechEvent} for
|
|
3398
|
+
# more details.
|
|
3399
|
+
#
|
|
3400
|
+
# @param id [String]
|
|
3401
|
+
#
|
|
3402
|
+
# @param is_real_turn [Boolean] False when the segment was flagged as noise/blip rather than a meaningful turn.
|
|
3403
|
+
#
|
|
3404
|
+
# @param llm_system_prompt [String, nil] Agent-only: despite the name, the whole prompt the LLM was given for this turn —
|
|
3405
|
+
#
|
|
3406
|
+
# @param llm_ttft_ms [Float, nil] Agent-only: LLM time-to-first-token for the reply, in ms.
|
|
3407
|
+
#
|
|
3408
|
+
# @param llm_winner_model [String, nil] Agent-only: the model that produced the reply — the winning leg when the LLM is
|
|
3409
|
+
#
|
|
3410
|
+
# @param speaker [Symbol, Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::SpeechEvent::Speaker] Who was speaking during this segment.
|
|
3411
|
+
#
|
|
3412
|
+
# @param started_speaking_at_ms [Float] Milliseconds since session start when speech began.
|
|
3413
|
+
#
|
|
3414
|
+
# @param stopped_speaking_at_ms [Float, nil] Milliseconds since session start when speech ended. Null when the session ended
|
|
3415
|
+
#
|
|
3416
|
+
# @param stt_transcription_delay_ms [Float, nil] User-only: time from end-of-speech to final transcript, in ms.
|
|
3417
|
+
#
|
|
3418
|
+
# @param transcript [String, nil] Recognized text for this segment, when available.
|
|
3419
|
+
#
|
|
3420
|
+
# @param tts_ttfb_ms [Float, nil] Agent-only: TTS time-to-first-audio-byte for the reply, in ms.
|
|
3421
|
+
#
|
|
3422
|
+
# @param was_cut [Boolean, nil] Agent-only: true when the agent's audio was interrupted (real or auto-resumed).
|
|
3423
|
+
|
|
3424
|
+
# Who was speaking during this segment.
|
|
3425
|
+
#
|
|
3426
|
+
# @see Revox::Models::CallRetrieveResponse::Call::LastCallAttempt::SpeechEvent#speaker
|
|
3427
|
+
module Speaker
|
|
3428
|
+
extend Revox::Internal::Type::Enum
|
|
3429
|
+
|
|
3430
|
+
USER = :user
|
|
3431
|
+
AGENT = :agent
|
|
3432
|
+
|
|
3433
|
+
# @!method self.values
|
|
3434
|
+
# @return [Array<Symbol>]
|
|
3435
|
+
end
|
|
3436
|
+
end
|
|
3437
|
+
|
|
2845
3438
|
class Transcript < Revox::Internal::Type::BaseModel
|
|
2846
3439
|
# @!attribute content
|
|
2847
3440
|
#
|
|
@@ -3076,6 +3669,7 @@ module Revox
|
|
|
3076
3669
|
QUEUED_FOR_CALLING = :queued_for_calling
|
|
3077
3670
|
CALLING = :calling
|
|
3078
3671
|
POST_PROCESSING = :post_processing
|
|
3672
|
+
NOT_LAUNCHED = :not_launched
|
|
3079
3673
|
SCHEDULED = :scheduled
|
|
3080
3674
|
PAUSED = :paused
|
|
3081
3675
|
COMPLETED = :completed
|
|
@@ -3096,9 +3690,6 @@ module Revox
|
|
|
3096
3690
|
INTERESTED = :interested
|
|
3097
3691
|
COMPLETED = :completed
|
|
3098
3692
|
REQUESTED_CALLBACK_LATER = :requested_callback_later
|
|
3099
|
-
REQUESTED_CALLBACK_NEW_NUMBER = :requested_callback_new_number
|
|
3100
|
-
DO_NOT_CONTACT = :do_not_contact
|
|
3101
|
-
AI_AVERSE = :ai_averse
|
|
3102
3693
|
|
|
3103
3694
|
# @!method self.values
|
|
3104
3695
|
# @return [Array<Symbol>]
|