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
|
@@ -204,6 +204,14 @@ module Revox
|
|
|
204
204
|
# @return [Object]
|
|
205
205
|
required :updated_at, Revox::Internal::Type::Unknown
|
|
206
206
|
|
|
207
|
+
# @!attribute follow_up_emails
|
|
208
|
+
# Extra notification recipients resolved from the agent prompt's own routing
|
|
209
|
+
# rules, when it defines any. Added to the assistant's configured notification
|
|
210
|
+
# recipients; never replaces them. Null when the prompt defines no routing rules.
|
|
211
|
+
#
|
|
212
|
+
# @return [Array<String>, nil]
|
|
213
|
+
optional :follow_up_emails, Revox::Internal::Type::ArrayOf[String], nil?: true
|
|
214
|
+
|
|
207
215
|
# @!attribute outcome
|
|
208
216
|
# Business outcome of the call. Null if not computed or no transcript.
|
|
209
217
|
#
|
|
@@ -216,7 +224,16 @@ module Revox
|
|
|
216
224
|
# @return [String, nil]
|
|
217
225
|
optional :outcome_summary, String, nil?: true
|
|
218
226
|
|
|
219
|
-
# @!
|
|
227
|
+
# @!attribute slack_channel_ids
|
|
228
|
+
# Slack channels resolved from the agent prompt's own routing rules, when it
|
|
229
|
+
# defines any. Always a subset of the channels configured on the assistant. Null
|
|
230
|
+
# when the prompt defines no routing rules, in which case every configured channel
|
|
231
|
+
# is notified.
|
|
232
|
+
#
|
|
233
|
+
# @return [Array<String>, nil]
|
|
234
|
+
optional :slack_channel_ids, Revox::Internal::Type::ArrayOf[String], nil?: true
|
|
235
|
+
|
|
236
|
+
# @!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)
|
|
220
237
|
# Some parameter documentations has been truncated, see
|
|
221
238
|
# {Revox::Models::CampaignGetRowsResponse::Row::Call} for more details.
|
|
222
239
|
#
|
|
@@ -269,9 +286,13 @@ module Revox
|
|
|
269
286
|
#
|
|
270
287
|
# @param updated_at [Object] The time the call order was last updated (any state change, retry, or analysis r
|
|
271
288
|
#
|
|
289
|
+
# @param follow_up_emails [Array<String>, nil] Extra notification recipients resolved from the agent prompt's own routing rules
|
|
290
|
+
#
|
|
272
291
|
# @param outcome [Symbol, Revox::Models::CampaignGetRowsResponse::Row::Call::Outcome, nil] Business outcome of the call. Null if not computed or no transcript.
|
|
273
292
|
#
|
|
274
293
|
# @param outcome_summary [String, nil] LLM explanation for the outcome, when outcome was computed from the transcript.
|
|
294
|
+
#
|
|
295
|
+
# @param slack_channel_ids [Array<String>, nil] Slack channels resolved from the agent prompt's own routing rules, when it defin
|
|
275
296
|
|
|
276
297
|
# @see Revox::Models::CampaignGetRowsResponse::Row::Call#assignee
|
|
277
298
|
class Assignee < Revox::Internal::Type::BaseModel
|
|
@@ -387,13 +408,6 @@ module Revox
|
|
|
387
408
|
# @return [String, nil]
|
|
388
409
|
required :email_notification_address, String, nil?: true
|
|
389
410
|
|
|
390
|
-
# @!attribute email_notification_language
|
|
391
|
-
# The language used for the notification email content. One of "en" or "fr".
|
|
392
|
-
#
|
|
393
|
-
# @return [Symbol, Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::EmailNotificationLanguage]
|
|
394
|
-
required :email_notification_language,
|
|
395
|
-
enum: -> { Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::EmailNotificationLanguage }
|
|
396
|
-
|
|
397
411
|
# @!attribute email_notification_outcomes
|
|
398
412
|
# Which call outcomes trigger an email notification. E.g. ["interested",
|
|
399
413
|
# "completed", "none"]. Use "none" when outcome is null.
|
|
@@ -433,8 +447,8 @@ module Revox
|
|
|
433
447
|
required :from_phone_number, String, nil?: true
|
|
434
448
|
|
|
435
449
|
# @!attribute human_transfer_mode
|
|
436
|
-
# Warm or cold transfer when
|
|
437
|
-
# not configured.
|
|
450
|
+
# Warm or cold transfer when transfer_destinations is non-empty; null when
|
|
451
|
+
# transfer is not configured.
|
|
438
452
|
#
|
|
439
453
|
# @return [Symbol, Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::HumanTransferMode, nil]
|
|
440
454
|
required :human_transfer_mode,
|
|
@@ -492,6 +506,13 @@ module Revox
|
|
|
492
506
|
-> { Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Position },
|
|
493
507
|
nil?: true
|
|
494
508
|
|
|
509
|
+
# @!attribute precall_lookup_url
|
|
510
|
+
# URL fetched before an inbound call is answered to resolve the assistant's prompt
|
|
511
|
+
# variables. Null when no lookup is configured.
|
|
512
|
+
#
|
|
513
|
+
# @return [String, nil]
|
|
514
|
+
required :precall_lookup_url, String, nil?: true
|
|
515
|
+
|
|
495
516
|
# @!attribute prompt
|
|
496
517
|
#
|
|
497
518
|
# @return [String]
|
|
@@ -579,11 +600,14 @@ module Revox
|
|
|
579
600
|
# @return [Float]
|
|
580
601
|
required :thinking_sound_volume, Float
|
|
581
602
|
|
|
582
|
-
# @!attribute
|
|
583
|
-
#
|
|
603
|
+
# @!attribute transfer_destinations
|
|
604
|
+
# Where calls can be transferred to when users ask to speak to a human. Null or
|
|
605
|
+
# empty when transfer is not configured.
|
|
584
606
|
#
|
|
585
|
-
# @return [
|
|
586
|
-
required :
|
|
607
|
+
# @return [Array<Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::TransferDestination>, nil]
|
|
608
|
+
required :transfer_destinations,
|
|
609
|
+
-> { Revox::Internal::Type::ArrayOf[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::TransferDestination] },
|
|
610
|
+
nil?: true
|
|
587
611
|
|
|
588
612
|
# @!attribute type
|
|
589
613
|
#
|
|
@@ -646,6 +670,11 @@ module Revox
|
|
|
646
670
|
optional :faq_items,
|
|
647
671
|
-> { Revox::Internal::Type::ArrayOf[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem] }
|
|
648
672
|
|
|
673
|
+
# @!attribute is_inbound_receptionist
|
|
674
|
+
#
|
|
675
|
+
# @return [Boolean, nil]
|
|
676
|
+
optional :is_inbound_receptionist, Revox::Internal::Type::Boolean
|
|
677
|
+
|
|
649
678
|
# @!attribute is_realestate_assistant
|
|
650
679
|
#
|
|
651
680
|
# @return [Boolean, nil]
|
|
@@ -656,7 +685,7 @@ module Revox
|
|
|
656
685
|
# @return [Float, nil]
|
|
657
686
|
optional :pending_faq_count, Float
|
|
658
687
|
|
|
659
|
-
# @!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:,
|
|
688
|
+
# @!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)
|
|
660
689
|
# Some parameter documentations has been truncated, see
|
|
661
690
|
# {Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant} for more details.
|
|
662
691
|
#
|
|
@@ -682,8 +711,6 @@ module Revox
|
|
|
682
711
|
#
|
|
683
712
|
# @param email_notification_address [String, nil] Email address(es) to receive notifications when a call ends with a matching outc
|
|
684
713
|
#
|
|
685
|
-
# @param email_notification_language [Symbol, Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::EmailNotificationLanguage] The language used for the notification email content. One of "en" or "fr".
|
|
686
|
-
#
|
|
687
714
|
# @param email_notification_outcomes [Array<Symbol, Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::EmailNotificationOutcome>, nil] Which call outcomes trigger an email notification. E.g. ["interested", "complete
|
|
688
715
|
#
|
|
689
716
|
# @param end_of_call_sentence [String, nil]
|
|
@@ -696,7 +723,7 @@ module Revox
|
|
|
696
723
|
#
|
|
697
724
|
# @param from_phone_number [String, nil] Override the default outbound phone number for calls placed with this assistant.
|
|
698
725
|
#
|
|
699
|
-
# @param human_transfer_mode [Symbol, Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::HumanTransferMode, nil] Warm or cold transfer when
|
|
726
|
+
# @param human_transfer_mode [Symbol, Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::HumanTransferMode, nil] Warm or cold transfer when transfer_destinations is non-empty; null when transfe
|
|
700
727
|
#
|
|
701
728
|
# @param ivr_navigation_enabled [Boolean] Enable IVR navigation tools. When enabled, the assistant can send DTMF tones and
|
|
702
729
|
#
|
|
@@ -714,6 +741,8 @@ module Revox
|
|
|
714
741
|
#
|
|
715
742
|
# @param position [Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Position, nil]
|
|
716
743
|
#
|
|
744
|
+
# @param precall_lookup_url [String, nil] URL fetched before an inbound call is answered to resolve the assistant's prompt
|
|
745
|
+
#
|
|
717
746
|
# @param prompt [String]
|
|
718
747
|
#
|
|
719
748
|
# @param prompt_flow [Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::PromptFlow, nil]
|
|
@@ -738,7 +767,7 @@ module Revox
|
|
|
738
767
|
#
|
|
739
768
|
# @param thinking_sound_volume [Float] Volume of the thinking sound (0 = silent, 1 = max).
|
|
740
769
|
#
|
|
741
|
-
# @param
|
|
770
|
+
# @param transfer_destinations [Array<Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::TransferDestination>, nil] Where calls can be transferred to when users ask to speak to a human. Null or em
|
|
742
771
|
#
|
|
743
772
|
# @param type [Symbol, Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Type]
|
|
744
773
|
#
|
|
@@ -760,6 +789,8 @@ module Revox
|
|
|
760
789
|
#
|
|
761
790
|
# @param faq_items [Array<Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::FaqItem>]
|
|
762
791
|
#
|
|
792
|
+
# @param is_inbound_receptionist [Boolean]
|
|
793
|
+
#
|
|
763
794
|
# @param is_realestate_assistant [Boolean]
|
|
764
795
|
#
|
|
765
796
|
# @param pending_faq_count [Float]
|
|
@@ -771,9 +802,6 @@ module Revox
|
|
|
771
802
|
INTERESTED = :interested
|
|
772
803
|
COMPLETED = :completed
|
|
773
804
|
REQUESTED_CALLBACK_LATER = :requested_callback_later
|
|
774
|
-
REQUESTED_CALLBACK_NEW_NUMBER = :requested_callback_new_number
|
|
775
|
-
DO_NOT_CONTACT = :do_not_contact
|
|
776
|
-
AI_AVERSE = :ai_averse
|
|
777
805
|
NONE = :none
|
|
778
806
|
|
|
779
807
|
# @!method self.values
|
|
@@ -907,7 +935,8 @@ module Revox
|
|
|
907
935
|
required :calling_window_start_time, String
|
|
908
936
|
|
|
909
937
|
# @!attribute retry_delay_seconds
|
|
910
|
-
# Delay between retry attempts in seconds.
|
|
938
|
+
# Delay between retry attempts in seconds. 0 retries as soon as the calling window
|
|
939
|
+
# allows. Default: 7200 (2 hours).
|
|
911
940
|
#
|
|
912
941
|
# @return [Integer]
|
|
913
942
|
required :retry_delay_seconds, Integer
|
|
@@ -921,7 +950,7 @@ module Revox
|
|
|
921
950
|
#
|
|
922
951
|
# @param calling_window_start_time [String] Start time for the calling window in the recipient's timezone (or timezone_overr
|
|
923
952
|
#
|
|
924
|
-
# @param retry_delay_seconds [Integer] Delay between retry attempts in seconds.
|
|
953
|
+
# @param retry_delay_seconds [Integer] Delay between retry attempts in seconds. 0 retries as soon as the calling window
|
|
925
954
|
end
|
|
926
955
|
end
|
|
927
956
|
|
|
@@ -1104,19 +1133,6 @@ module Revox
|
|
|
1104
1133
|
end
|
|
1105
1134
|
end
|
|
1106
1135
|
|
|
1107
|
-
# The language used for the notification email content. One of "en" or "fr".
|
|
1108
|
-
#
|
|
1109
|
-
# @see Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant#email_notification_language
|
|
1110
|
-
module EmailNotificationLanguage
|
|
1111
|
-
extend Revox::Internal::Type::Enum
|
|
1112
|
-
|
|
1113
|
-
EN = :en
|
|
1114
|
-
FR = :fr
|
|
1115
|
-
|
|
1116
|
-
# @!method self.values
|
|
1117
|
-
# @return [Array<Symbol>]
|
|
1118
|
-
end
|
|
1119
|
-
|
|
1120
1136
|
module EmailNotificationOutcome
|
|
1121
1137
|
extend Revox::Internal::Type::Enum
|
|
1122
1138
|
|
|
@@ -1124,9 +1140,6 @@ module Revox
|
|
|
1124
1140
|
INTERESTED = :interested
|
|
1125
1141
|
COMPLETED = :completed
|
|
1126
1142
|
REQUESTED_CALLBACK_LATER = :requested_callback_later
|
|
1127
|
-
REQUESTED_CALLBACK_NEW_NUMBER = :requested_callback_new_number
|
|
1128
|
-
DO_NOT_CONTACT = :do_not_contact
|
|
1129
|
-
AI_AVERSE = :ai_averse
|
|
1130
1143
|
NONE = :none
|
|
1131
1144
|
|
|
1132
1145
|
# @!method self.values
|
|
@@ -1145,8 +1158,8 @@ module Revox
|
|
|
1145
1158
|
# @return [Array<Symbol>]
|
|
1146
1159
|
end
|
|
1147
1160
|
|
|
1148
|
-
# Warm or cold transfer when
|
|
1149
|
-
# not configured.
|
|
1161
|
+
# Warm or cold transfer when transfer_destinations is non-empty; null when
|
|
1162
|
+
# transfer is not configured.
|
|
1150
1163
|
#
|
|
1151
1164
|
# @see Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant#human_transfer_mode
|
|
1152
1165
|
module HumanTransferMode
|
|
@@ -1438,11 +1451,14 @@ module Revox
|
|
|
1438
1451
|
|
|
1439
1452
|
# @see Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant#slack
|
|
1440
1453
|
class Slack < Revox::Internal::Type::BaseModel
|
|
1441
|
-
# @!attribute
|
|
1442
|
-
# The Slack
|
|
1454
|
+
# @!attribute channels
|
|
1455
|
+
# The Slack channels eligible to receive the notification. When more than one is
|
|
1456
|
+
# configured, the agent prompt may define routing rules to narrow it down per
|
|
1457
|
+
# call; with no such rules every channel here is notified.
|
|
1443
1458
|
#
|
|
1444
|
-
# @return [
|
|
1445
|
-
required :
|
|
1459
|
+
# @return [Array<Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::Channel>]
|
|
1460
|
+
required :channels,
|
|
1461
|
+
-> { Revox::Internal::Type::ArrayOf[Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::Channel] }
|
|
1446
1462
|
|
|
1447
1463
|
# @!attribute connection_id
|
|
1448
1464
|
# The Nango connection ID linking the org's Slack workspace to Revox.
|
|
@@ -1458,38 +1474,54 @@ module Revox
|
|
|
1458
1474
|
required :outcomes,
|
|
1459
1475
|
-> { Revox::Internal::Type::ArrayOf[enum: Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::Outcome] }
|
|
1460
1476
|
|
|
1461
|
-
# @!attribute channel_name
|
|
1462
|
-
# Human-readable Slack channel name, cached for display in the UI.
|
|
1463
|
-
#
|
|
1464
|
-
# @return [String, nil]
|
|
1465
|
-
optional :channel_name, String, nil?: true
|
|
1466
|
-
|
|
1467
1477
|
# @!attribute template
|
|
1468
1478
|
# Optional message template. Supports {{summary}}, {{outcome}}, {{phone}},
|
|
1469
1479
|
# {{call_url}}, {{assistant_name}}, {{campaign_name}}, {{first_name}},
|
|
1470
|
-
# {{last_name}}, {{email}}, {{company}}, {{
|
|
1471
|
-
# prompt_variables and structured_output keys. When
|
|
1472
|
-
# is used.
|
|
1480
|
+
# {{last_name}}, {{email}}, {{company}}, {{job_title}}, {{contact_name}},
|
|
1481
|
+
# {{contact_line}}, plus prompt_variables and structured_output keys. When
|
|
1482
|
+
# null/empty a default template is used.
|
|
1473
1483
|
#
|
|
1474
1484
|
# @return [String, nil]
|
|
1475
1485
|
optional :template, String, nil?: true
|
|
1476
1486
|
|
|
1477
|
-
# @!method initialize(
|
|
1487
|
+
# @!method initialize(channels:, connection_id:, outcomes:, template: nil)
|
|
1478
1488
|
# Some parameter documentations has been truncated, see
|
|
1479
1489
|
# {Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack} for more
|
|
1480
1490
|
# details.
|
|
1481
1491
|
#
|
|
1482
|
-
# @param
|
|
1492
|
+
# @param channels [Array<Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::Channel>] The Slack channels eligible to receive the notification. When more than one is c
|
|
1483
1493
|
#
|
|
1484
1494
|
# @param connection_id [String] The Nango connection ID linking the org's Slack workspace to Revox.
|
|
1485
1495
|
#
|
|
1486
1496
|
# @param outcomes [Array<Symbol, Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::Outcome>] Which call outcomes trigger a Slack notification (e.g. ['interested', 'none']).
|
|
1487
1497
|
#
|
|
1488
|
-
# @param channel_name [String, nil] Human-readable Slack channel name, cached for display in the UI.
|
|
1489
|
-
#
|
|
1490
1498
|
# @param template [String, nil] Optional message template. Supports {{summary}}, {{outcome}}, {{phone}},
|
|
1491
1499
|
# {{call\_
|
|
1492
1500
|
|
|
1501
|
+
class Channel < Revox::Internal::Type::BaseModel
|
|
1502
|
+
# @!attribute id
|
|
1503
|
+
# The Slack channel ID (e.g. 'C01234567').
|
|
1504
|
+
#
|
|
1505
|
+
# @return [String]
|
|
1506
|
+
required :id, String
|
|
1507
|
+
|
|
1508
|
+
# @!attribute name
|
|
1509
|
+
# Human-readable Slack channel name, cached for display in the UI and given to the
|
|
1510
|
+
# LLM when the agent prompt routes by channel name.
|
|
1511
|
+
#
|
|
1512
|
+
# @return [String, nil]
|
|
1513
|
+
optional :name, String, nil?: true
|
|
1514
|
+
|
|
1515
|
+
# @!method initialize(id:, name: nil)
|
|
1516
|
+
# Some parameter documentations has been truncated, see
|
|
1517
|
+
# {Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant::Slack::Channel}
|
|
1518
|
+
# for more details.
|
|
1519
|
+
#
|
|
1520
|
+
# @param id [String] The Slack channel ID (e.g. 'C01234567').
|
|
1521
|
+
#
|
|
1522
|
+
# @param name [String, nil] Human-readable Slack channel name, cached for display in the UI and given to the
|
|
1523
|
+
end
|
|
1524
|
+
|
|
1493
1525
|
module Outcome
|
|
1494
1526
|
extend Revox::Internal::Type::Enum
|
|
1495
1527
|
|
|
@@ -1497,9 +1529,6 @@ module Revox
|
|
|
1497
1529
|
INTERESTED = :interested
|
|
1498
1530
|
COMPLETED = :completed
|
|
1499
1531
|
REQUESTED_CALLBACK_LATER = :requested_callback_later
|
|
1500
|
-
REQUESTED_CALLBACK_NEW_NUMBER = :requested_callback_new_number
|
|
1501
|
-
DO_NOT_CONTACT = :do_not_contact
|
|
1502
|
-
AI_AVERSE = :ai_averse
|
|
1503
1532
|
NONE = :none
|
|
1504
1533
|
|
|
1505
1534
|
# @!method self.values
|
|
@@ -1627,6 +1656,22 @@ module Revox
|
|
|
1627
1656
|
# @return [Array<Symbol>]
|
|
1628
1657
|
end
|
|
1629
1658
|
|
|
1659
|
+
class TransferDestination < Revox::Internal::Type::BaseModel
|
|
1660
|
+
# @!attribute label
|
|
1661
|
+
#
|
|
1662
|
+
# @return [String]
|
|
1663
|
+
required :label, String
|
|
1664
|
+
|
|
1665
|
+
# @!attribute phone_number
|
|
1666
|
+
#
|
|
1667
|
+
# @return [String]
|
|
1668
|
+
required :phone_number, String
|
|
1669
|
+
|
|
1670
|
+
# @!method initialize(label:, phone_number:)
|
|
1671
|
+
# @param label [String]
|
|
1672
|
+
# @param phone_number [String]
|
|
1673
|
+
end
|
|
1674
|
+
|
|
1630
1675
|
# @see Revox::Models::CampaignGetRowsResponse::Row::Call::Assistant#type
|
|
1631
1676
|
module Type
|
|
1632
1677
|
extend Revox::Internal::Type::Enum
|
|
@@ -1663,7 +1708,7 @@ module Revox
|
|
|
1663
1708
|
|
|
1664
1709
|
# @!attribute speed
|
|
1665
1710
|
# The speed of the voice. Range depends on provider: Cartesia 0.6–1.5, ElevenLabs
|
|
1666
|
-
# 0.7–1.2. Default is 1.0.
|
|
1711
|
+
# 0.7–1.2, Gradium 0.6–1.5. Default is 1.0.
|
|
1667
1712
|
#
|
|
1668
1713
|
# @return [Float, nil]
|
|
1669
1714
|
optional :speed, Float
|
|
@@ -1698,6 +1743,7 @@ module Revox
|
|
|
1698
1743
|
|
|
1699
1744
|
CARTESIA = :cartesia
|
|
1700
1745
|
ELEVENLABS = :elevenlabs
|
|
1746
|
+
GRADIUM = :gradium
|
|
1701
1747
|
|
|
1702
1748
|
# @!method self.values
|
|
1703
1749
|
# @return [Array<Symbol>]
|
|
@@ -1813,9 +1859,6 @@ module Revox
|
|
|
1813
1859
|
INTERESTED = :interested
|
|
1814
1860
|
COMPLETED = :completed
|
|
1815
1861
|
REQUESTED_CALLBACK_LATER = :requested_callback_later
|
|
1816
|
-
REQUESTED_CALLBACK_NEW_NUMBER = :requested_callback_new_number
|
|
1817
|
-
DO_NOT_CONTACT = :do_not_contact
|
|
1818
|
-
AI_AVERSE = :ai_averse
|
|
1819
1862
|
NONE = :none
|
|
1820
1863
|
|
|
1821
1864
|
# @!method self.values
|
|
@@ -1932,6 +1975,29 @@ module Revox
|
|
|
1932
1975
|
# @return [Object]
|
|
1933
1976
|
required :ended_at, Revox::Internal::Type::Unknown
|
|
1934
1977
|
|
|
1978
|
+
# @!attribute handled_by_ai
|
|
1979
|
+
# Whether the AI agent conducted the conversation on this attempt. False for a
|
|
1980
|
+
# silent speed-dial probe (whose agent only detects a human) and for attempts that
|
|
1981
|
+
# were never answered.
|
|
1982
|
+
#
|
|
1983
|
+
# @return [Boolean]
|
|
1984
|
+
required :handled_by_ai, Revox::Internal::Type::Boolean
|
|
1985
|
+
|
|
1986
|
+
# @!attribute handled_by_human
|
|
1987
|
+
# Whether a human operator conducted (part of) this attempt — a jump-in takeover
|
|
1988
|
+
# or a speed-dial operator connection (both stamp human_takeover_at).
|
|
1989
|
+
#
|
|
1990
|
+
# @return [Boolean]
|
|
1991
|
+
required :handled_by_human, Revox::Internal::Type::Boolean
|
|
1992
|
+
|
|
1993
|
+
# @!attribute handled_by_user
|
|
1994
|
+
# The team member responsible for following up on this call.
|
|
1995
|
+
#
|
|
1996
|
+
# @return [Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::HandledByUser, nil]
|
|
1997
|
+
required :handled_by_user,
|
|
1998
|
+
-> { Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::HandledByUser },
|
|
1999
|
+
nil?: true
|
|
2000
|
+
|
|
1935
2001
|
# @!attribute phone_number
|
|
1936
2002
|
# The phone number that was called. Formatted in E.164 format. Example:
|
|
1937
2003
|
# +1234567890
|
|
@@ -1970,6 +2036,15 @@ module Revox
|
|
|
1970
2036
|
# @return [Array<String>, nil]
|
|
1971
2037
|
optional :assistants_used, Revox::Internal::Type::ArrayOf[String], nil?: true
|
|
1972
2038
|
|
|
2039
|
+
# @!attribute email_log
|
|
2040
|
+
# Notification emails sent in connection with the call, ordered oldest first
|
|
2041
|
+
# (from/to addresses, subject, sent time).
|
|
2042
|
+
#
|
|
2043
|
+
# @return [Array<Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::EmailLog>, nil]
|
|
2044
|
+
optional :email_log,
|
|
2045
|
+
-> { Revox::Internal::Type::ArrayOf[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::EmailLog] },
|
|
2046
|
+
nil?: true
|
|
2047
|
+
|
|
1973
2048
|
# @!attribute end_reason
|
|
1974
2049
|
# Reason for ending the call when ended_by is 'agent'. E.g. 'tool_end_call',
|
|
1975
2050
|
# 'voicemail', 'transfer', 'ivr_no_navigate'.
|
|
@@ -2007,6 +2082,16 @@ module Revox
|
|
|
2007
2082
|
-> { Revox::Internal::Type::ArrayOf[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog] },
|
|
2008
2083
|
nil?: true
|
|
2009
2084
|
|
|
2085
|
+
# @!attribute speech_events
|
|
2086
|
+
# Per-turn speech segments (VAD-derived) with timing and pipeline latencies,
|
|
2087
|
+
# ordered by started_speaking_at_ms. Empty for calls recorded before this was
|
|
2088
|
+
# tracked or for realtime sessions that don't emit them.
|
|
2089
|
+
#
|
|
2090
|
+
# @return [Array<Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SpeechEvent>, nil]
|
|
2091
|
+
optional :speech_events,
|
|
2092
|
+
-> { Revox::Internal::Type::ArrayOf[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SpeechEvent] },
|
|
2093
|
+
nil?: true
|
|
2094
|
+
|
|
2010
2095
|
# @!attribute structured_output
|
|
2011
2096
|
# The data extracted from the call, using the structured output config from the
|
|
2012
2097
|
# parent call object.
|
|
@@ -2024,7 +2109,7 @@ module Revox
|
|
|
2024
2109
|
-> { Revox::Internal::Type::ArrayOf[Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript] },
|
|
2025
2110
|
nil?: true
|
|
2026
2111
|
|
|
2027
|
-
# @!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)
|
|
2112
|
+
# @!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)
|
|
2028
2113
|
# Some parameter documentations has been truncated, see
|
|
2029
2114
|
# {Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt} for more
|
|
2030
2115
|
# details.
|
|
@@ -2040,6 +2125,12 @@ module Revox
|
|
|
2040
2125
|
#
|
|
2041
2126
|
# @param ended_at [Object] The time the call ended.
|
|
2042
2127
|
#
|
|
2128
|
+
# @param handled_by_ai [Boolean] Whether the AI agent conducted the conversation on this attempt. False for a sil
|
|
2129
|
+
#
|
|
2130
|
+
# @param handled_by_human [Boolean] Whether a human operator conducted (part of) this attempt — a jump-in takeover o
|
|
2131
|
+
#
|
|
2132
|
+
# @param handled_by_user [Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::HandledByUser, nil] The team member responsible for following up on this call.
|
|
2133
|
+
#
|
|
2043
2134
|
# @param phone_number [String] The phone number that was called. Formatted in E.164 format. Example: +123456789
|
|
2044
2135
|
#
|
|
2045
2136
|
# @param recording_url [String, nil] The URL of the audio recording of the call.
|
|
@@ -2052,6 +2143,8 @@ module Revox
|
|
|
2052
2143
|
#
|
|
2053
2144
|
# @param assistants_used [Array<String>, nil] Assistant node ids entered during this attempt, in traversal order.
|
|
2054
2145
|
#
|
|
2146
|
+
# @param email_log [Array<Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::EmailLog>, nil] Notification emails sent in connection with the call, ordered oldest first (from
|
|
2147
|
+
#
|
|
2055
2148
|
# @param end_reason [Symbol, Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::EndReason, nil] Reason for ending the call when ended_by is 'agent'. E.g. 'tool_end_call', 'voic
|
|
2056
2149
|
#
|
|
2057
2150
|
# @param ended_by [Symbol, Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::EndedBy, nil] Who ended the call: 'agent' (AI agent), 'user' (caller/callee hung up), or 'syst
|
|
@@ -2060,6 +2153,8 @@ module Revox
|
|
|
2060
2153
|
#
|
|
2061
2154
|
# @param sms_log [Array<Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog>, nil] Automatic SMS sent after the call (voicemail and after-call), ordered oldest fir
|
|
2062
2155
|
#
|
|
2156
|
+
# @param speech_events [Array<Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SpeechEvent>, nil] Per-turn speech segments (VAD-derived) with timing and pipeline latencies, order
|
|
2157
|
+
#
|
|
2063
2158
|
# @param structured_output [Hash{Symbol=>Object}, nil] The data extracted from the call, using the structured output config from the pa
|
|
2064
2159
|
#
|
|
2065
2160
|
# @param transcript [Array<Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::Transcript>, nil] The live transcript of the call, built in real time.
|
|
@@ -2083,6 +2178,41 @@ module Revox
|
|
|
2083
2178
|
# @return [Array<Symbol>]
|
|
2084
2179
|
end
|
|
2085
2180
|
|
|
2181
|
+
# @see Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt#handled_by_user
|
|
2182
|
+
class HandledByUser < Revox::Internal::Type::BaseModel
|
|
2183
|
+
# @!attribute id
|
|
2184
|
+
# The database user id of the assignee.
|
|
2185
|
+
#
|
|
2186
|
+
# @return [String]
|
|
2187
|
+
required :id, String
|
|
2188
|
+
|
|
2189
|
+
# @!attribute email
|
|
2190
|
+
#
|
|
2191
|
+
# @return [String]
|
|
2192
|
+
required :email, String
|
|
2193
|
+
|
|
2194
|
+
# @!attribute first_name
|
|
2195
|
+
#
|
|
2196
|
+
# @return [String, nil]
|
|
2197
|
+
required :first_name, String, nil?: true
|
|
2198
|
+
|
|
2199
|
+
# @!attribute last_name
|
|
2200
|
+
#
|
|
2201
|
+
# @return [String, nil]
|
|
2202
|
+
required :last_name, String, nil?: true
|
|
2203
|
+
|
|
2204
|
+
# @!method initialize(id:, email:, first_name:, last_name:)
|
|
2205
|
+
# The team member responsible for following up on this call.
|
|
2206
|
+
#
|
|
2207
|
+
# @param id [String] The database user id of the assignee.
|
|
2208
|
+
#
|
|
2209
|
+
# @param email [String]
|
|
2210
|
+
#
|
|
2211
|
+
# @param first_name [String, nil]
|
|
2212
|
+
#
|
|
2213
|
+
# @param last_name [String, nil]
|
|
2214
|
+
end
|
|
2215
|
+
|
|
2086
2216
|
# @see Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt#result
|
|
2087
2217
|
module Result
|
|
2088
2218
|
extend Revox::Internal::Type::Enum
|
|
@@ -2113,6 +2243,52 @@ module Revox
|
|
|
2113
2243
|
# @return [Array<Symbol>]
|
|
2114
2244
|
end
|
|
2115
2245
|
|
|
2246
|
+
class EmailLog < Revox::Internal::Type::BaseModel
|
|
2247
|
+
# @!attribute id
|
|
2248
|
+
#
|
|
2249
|
+
# @return [String]
|
|
2250
|
+
required :id, String
|
|
2251
|
+
|
|
2252
|
+
# @!attribute created_at
|
|
2253
|
+
# When the email was sent.
|
|
2254
|
+
#
|
|
2255
|
+
# @return [Object]
|
|
2256
|
+
required :created_at, Revox::Internal::Type::Unknown
|
|
2257
|
+
|
|
2258
|
+
# @!attribute from_address
|
|
2259
|
+
#
|
|
2260
|
+
# @return [String]
|
|
2261
|
+
required :from_address, String
|
|
2262
|
+
|
|
2263
|
+
# @!attribute resend_message_id
|
|
2264
|
+
#
|
|
2265
|
+
# @return [String, nil]
|
|
2266
|
+
required :resend_message_id, String, nil?: true
|
|
2267
|
+
|
|
2268
|
+
# @!attribute subject
|
|
2269
|
+
#
|
|
2270
|
+
# @return [String]
|
|
2271
|
+
required :subject, String
|
|
2272
|
+
|
|
2273
|
+
# @!attribute to_emails
|
|
2274
|
+
#
|
|
2275
|
+
# @return [Array<String>]
|
|
2276
|
+
required :to_emails, Revox::Internal::Type::ArrayOf[String]
|
|
2277
|
+
|
|
2278
|
+
# @!method initialize(id:, created_at:, from_address:, resend_message_id:, subject:, to_emails:)
|
|
2279
|
+
# @param id [String]
|
|
2280
|
+
#
|
|
2281
|
+
# @param created_at [Object] When the email was sent.
|
|
2282
|
+
#
|
|
2283
|
+
# @param from_address [String]
|
|
2284
|
+
#
|
|
2285
|
+
# @param resend_message_id [String, nil]
|
|
2286
|
+
#
|
|
2287
|
+
# @param subject [String]
|
|
2288
|
+
#
|
|
2289
|
+
# @param to_emails [Array<String>]
|
|
2290
|
+
end
|
|
2291
|
+
|
|
2116
2292
|
# Reason for ending the call when ended_by is 'agent'. E.g. 'tool_end_call',
|
|
2117
2293
|
# 'voicemail', 'transfer', 'ivr_no_navigate'.
|
|
2118
2294
|
#
|
|
@@ -2243,34 +2419,53 @@ module Revox
|
|
|
2243
2419
|
# @return [String]
|
|
2244
2420
|
required :message_body, String
|
|
2245
2421
|
|
|
2246
|
-
# @!attribute
|
|
2422
|
+
# @!attribute provider
|
|
2247
2423
|
#
|
|
2248
|
-
# @return [
|
|
2249
|
-
required :
|
|
2424
|
+
# @return [Symbol, Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::Provider]
|
|
2425
|
+
required :provider,
|
|
2426
|
+
enum: -> { Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::Provider }
|
|
2250
2427
|
|
|
2251
|
-
# @!attribute
|
|
2428
|
+
# @!attribute provider_message_id
|
|
2252
2429
|
#
|
|
2253
2430
|
# @return [String, nil]
|
|
2254
|
-
required :
|
|
2431
|
+
required :provider_message_id, String, nil?: true
|
|
2432
|
+
|
|
2433
|
+
# @!attribute to_phone_number
|
|
2434
|
+
#
|
|
2435
|
+
# @return [String]
|
|
2436
|
+
required :to_phone_number, String
|
|
2255
2437
|
|
|
2256
2438
|
# @!attribute type
|
|
2257
2439
|
#
|
|
2258
2440
|
# @return [Symbol, Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::Type]
|
|
2259
2441
|
required :type, enum: -> { Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::Type }
|
|
2260
2442
|
|
|
2261
|
-
# @!method initialize(id:, created_at:, message_body:,
|
|
2443
|
+
# @!method initialize(id:, created_at:, message_body:, provider:, provider_message_id:, to_phone_number:, type:)
|
|
2262
2444
|
# @param id [String]
|
|
2263
2445
|
#
|
|
2264
2446
|
# @param created_at [Object] When the SMS was sent.
|
|
2265
2447
|
#
|
|
2266
2448
|
# @param message_body [String]
|
|
2267
2449
|
#
|
|
2268
|
-
# @param
|
|
2450
|
+
# @param provider [Symbol, Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::Provider]
|
|
2451
|
+
#
|
|
2452
|
+
# @param provider_message_id [String, nil]
|
|
2269
2453
|
#
|
|
2270
|
-
# @param
|
|
2454
|
+
# @param to_phone_number [String]
|
|
2271
2455
|
#
|
|
2272
2456
|
# @param type [Symbol, Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog::Type]
|
|
2273
2457
|
|
|
2458
|
+
# @see Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog#provider
|
|
2459
|
+
module Provider
|
|
2460
|
+
extend Revox::Internal::Type::Enum
|
|
2461
|
+
|
|
2462
|
+
TWILIO = :twilio
|
|
2463
|
+
VONAGE = :vonage
|
|
2464
|
+
|
|
2465
|
+
# @!method self.values
|
|
2466
|
+
# @return [Array<Symbol>]
|
|
2467
|
+
end
|
|
2468
|
+
|
|
2274
2469
|
# @see Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SMSLog#type
|
|
2275
2470
|
module Type
|
|
2276
2471
|
extend Revox::Internal::Type::Enum
|
|
@@ -2284,6 +2479,126 @@ module Revox
|
|
|
2284
2479
|
end
|
|
2285
2480
|
end
|
|
2286
2481
|
|
|
2482
|
+
class SpeechEvent < Revox::Internal::Type::BaseModel
|
|
2483
|
+
# @!attribute id
|
|
2484
|
+
#
|
|
2485
|
+
# @return [String]
|
|
2486
|
+
required :id, String
|
|
2487
|
+
|
|
2488
|
+
# @!attribute is_real_turn
|
|
2489
|
+
# False when the segment was flagged as noise/blip rather than a meaningful turn.
|
|
2490
|
+
#
|
|
2491
|
+
# @return [Boolean]
|
|
2492
|
+
required :is_real_turn, Revox::Internal::Type::Boolean
|
|
2493
|
+
|
|
2494
|
+
# @!attribute llm_system_prompt
|
|
2495
|
+
# Agent-only: despite the name, the whole prompt the LLM was given for this turn —
|
|
2496
|
+
# system instructions plus conversation history — as JSON.
|
|
2497
|
+
#
|
|
2498
|
+
# @return [String, nil]
|
|
2499
|
+
required :llm_system_prompt, String, nil?: true
|
|
2500
|
+
|
|
2501
|
+
# @!attribute llm_ttft_ms
|
|
2502
|
+
# Agent-only: LLM time-to-first-token for the reply, in ms.
|
|
2503
|
+
#
|
|
2504
|
+
# @return [Float, nil]
|
|
2505
|
+
required :llm_ttft_ms, Float, nil?: true
|
|
2506
|
+
|
|
2507
|
+
# @!attribute llm_winner_model
|
|
2508
|
+
# Agent-only: the model that produced the reply — the winning leg when the LLM is
|
|
2509
|
+
# a race, which is also the model `llm_ttft_ms` describes.
|
|
2510
|
+
#
|
|
2511
|
+
# @return [String, nil]
|
|
2512
|
+
required :llm_winner_model, String, nil?: true
|
|
2513
|
+
|
|
2514
|
+
# @!attribute speaker
|
|
2515
|
+
# Who was speaking during this segment.
|
|
2516
|
+
#
|
|
2517
|
+
# @return [Symbol, Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SpeechEvent::Speaker]
|
|
2518
|
+
required :speaker,
|
|
2519
|
+
enum: -> { Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SpeechEvent::Speaker }
|
|
2520
|
+
|
|
2521
|
+
# @!attribute started_speaking_at_ms
|
|
2522
|
+
# Milliseconds since session start when speech began.
|
|
2523
|
+
#
|
|
2524
|
+
# @return [Float]
|
|
2525
|
+
required :started_speaking_at_ms, Float
|
|
2526
|
+
|
|
2527
|
+
# @!attribute stopped_speaking_at_ms
|
|
2528
|
+
# Milliseconds since session start when speech ended. Null when the session ended
|
|
2529
|
+
# before the turn closed.
|
|
2530
|
+
#
|
|
2531
|
+
# @return [Float, nil]
|
|
2532
|
+
required :stopped_speaking_at_ms, Float, nil?: true
|
|
2533
|
+
|
|
2534
|
+
# @!attribute stt_transcription_delay_ms
|
|
2535
|
+
# User-only: time from end-of-speech to final transcript, in ms.
|
|
2536
|
+
#
|
|
2537
|
+
# @return [Float, nil]
|
|
2538
|
+
required :stt_transcription_delay_ms, Float, nil?: true
|
|
2539
|
+
|
|
2540
|
+
# @!attribute transcript
|
|
2541
|
+
# Recognized text for this segment, when available.
|
|
2542
|
+
#
|
|
2543
|
+
# @return [String, nil]
|
|
2544
|
+
required :transcript, String, nil?: true
|
|
2545
|
+
|
|
2546
|
+
# @!attribute tts_ttfb_ms
|
|
2547
|
+
# Agent-only: TTS time-to-first-audio-byte for the reply, in ms.
|
|
2548
|
+
#
|
|
2549
|
+
# @return [Float, nil]
|
|
2550
|
+
required :tts_ttfb_ms, Float, nil?: true
|
|
2551
|
+
|
|
2552
|
+
# @!attribute was_cut
|
|
2553
|
+
# Agent-only: true when the agent's audio was interrupted (real or auto-resumed).
|
|
2554
|
+
# Null on user segments.
|
|
2555
|
+
#
|
|
2556
|
+
# @return [Boolean, nil]
|
|
2557
|
+
required :was_cut, Revox::Internal::Type::Boolean, nil?: true
|
|
2558
|
+
|
|
2559
|
+
# @!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:)
|
|
2560
|
+
# Some parameter documentations has been truncated, see
|
|
2561
|
+
# {Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SpeechEvent}
|
|
2562
|
+
# for more details.
|
|
2563
|
+
#
|
|
2564
|
+
# @param id [String]
|
|
2565
|
+
#
|
|
2566
|
+
# @param is_real_turn [Boolean] False when the segment was flagged as noise/blip rather than a meaningful turn.
|
|
2567
|
+
#
|
|
2568
|
+
# @param llm_system_prompt [String, nil] Agent-only: despite the name, the whole prompt the LLM was given for this turn —
|
|
2569
|
+
#
|
|
2570
|
+
# @param llm_ttft_ms [Float, nil] Agent-only: LLM time-to-first-token for the reply, in ms.
|
|
2571
|
+
#
|
|
2572
|
+
# @param llm_winner_model [String, nil] Agent-only: the model that produced the reply — the winning leg when the LLM is
|
|
2573
|
+
#
|
|
2574
|
+
# @param speaker [Symbol, Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SpeechEvent::Speaker] Who was speaking during this segment.
|
|
2575
|
+
#
|
|
2576
|
+
# @param started_speaking_at_ms [Float] Milliseconds since session start when speech began.
|
|
2577
|
+
#
|
|
2578
|
+
# @param stopped_speaking_at_ms [Float, nil] Milliseconds since session start when speech ended. Null when the session ended
|
|
2579
|
+
#
|
|
2580
|
+
# @param stt_transcription_delay_ms [Float, nil] User-only: time from end-of-speech to final transcript, in ms.
|
|
2581
|
+
#
|
|
2582
|
+
# @param transcript [String, nil] Recognized text for this segment, when available.
|
|
2583
|
+
#
|
|
2584
|
+
# @param tts_ttfb_ms [Float, nil] Agent-only: TTS time-to-first-audio-byte for the reply, in ms.
|
|
2585
|
+
#
|
|
2586
|
+
# @param was_cut [Boolean, nil] Agent-only: true when the agent's audio was interrupted (real or auto-resumed).
|
|
2587
|
+
|
|
2588
|
+
# Who was speaking during this segment.
|
|
2589
|
+
#
|
|
2590
|
+
# @see Revox::Models::CampaignGetRowsResponse::Row::Call::CallAttempt::SpeechEvent#speaker
|
|
2591
|
+
module Speaker
|
|
2592
|
+
extend Revox::Internal::Type::Enum
|
|
2593
|
+
|
|
2594
|
+
USER = :user
|
|
2595
|
+
AGENT = :agent
|
|
2596
|
+
|
|
2597
|
+
# @!method self.values
|
|
2598
|
+
# @return [Array<Symbol>]
|
|
2599
|
+
end
|
|
2600
|
+
end
|
|
2601
|
+
|
|
2287
2602
|
class Transcript < Revox::Internal::Type::BaseModel
|
|
2288
2603
|
# @!attribute content
|
|
2289
2604
|
#
|
|
@@ -2445,7 +2760,8 @@ module Revox
|
|
|
2445
2760
|
required :calling_window_start_time, String
|
|
2446
2761
|
|
|
2447
2762
|
# @!attribute retry_delay_seconds
|
|
2448
|
-
# Delay between retry attempts in seconds.
|
|
2763
|
+
# Delay between retry attempts in seconds. 0 retries as soon as the calling window
|
|
2764
|
+
# allows. Default: 7200 (2 hours).
|
|
2449
2765
|
#
|
|
2450
2766
|
# @return [Integer]
|
|
2451
2767
|
required :retry_delay_seconds, Integer
|
|
@@ -2459,7 +2775,7 @@ module Revox
|
|
|
2459
2775
|
#
|
|
2460
2776
|
# @param calling_window_start_time [String] Start time for the calling window in the recipient's timezone (or timezone_overr
|
|
2461
2777
|
#
|
|
2462
|
-
# @param retry_delay_seconds [Integer] Delay between retry attempts in seconds.
|
|
2778
|
+
# @param retry_delay_seconds [Integer] Delay between retry attempts in seconds. 0 retries as soon as the calling window
|
|
2463
2779
|
end
|
|
2464
2780
|
end
|
|
2465
2781
|
|
|
@@ -2497,18 +2813,24 @@ module Revox
|
|
|
2497
2813
|
# @return [String, nil]
|
|
2498
2814
|
required :first_name, String, nil?: true
|
|
2499
2815
|
|
|
2816
|
+
# @!attribute job_title
|
|
2817
|
+
#
|
|
2818
|
+
# @return [String, nil]
|
|
2819
|
+
required :job_title, String, nil?: true
|
|
2820
|
+
|
|
2500
2821
|
# @!attribute last_name
|
|
2501
2822
|
#
|
|
2502
2823
|
# @return [String, nil]
|
|
2503
2824
|
required :last_name, String, nil?: true
|
|
2504
2825
|
|
|
2505
|
-
# @!method initialize(company:, email:, first_name:, last_name:)
|
|
2826
|
+
# @!method initialize(company:, email:, first_name:, job_title:, last_name:)
|
|
2506
2827
|
# Magic contact variables (prospect identity) extracted from the call's input data
|
|
2507
2828
|
# and transcript.
|
|
2508
2829
|
#
|
|
2509
2830
|
# @param company [String, nil]
|
|
2510
2831
|
# @param email [String, nil]
|
|
2511
2832
|
# @param first_name [String, nil]
|
|
2833
|
+
# @param job_title [String, nil]
|
|
2512
2834
|
# @param last_name [String, nil]
|
|
2513
2835
|
end
|
|
2514
2836
|
|
|
@@ -2553,6 +2875,29 @@ module Revox
|
|
|
2553
2875
|
# @return [Object]
|
|
2554
2876
|
required :ended_at, Revox::Internal::Type::Unknown
|
|
2555
2877
|
|
|
2878
|
+
# @!attribute handled_by_ai
|
|
2879
|
+
# Whether the AI agent conducted the conversation on this attempt. False for a
|
|
2880
|
+
# silent speed-dial probe (whose agent only detects a human) and for attempts that
|
|
2881
|
+
# were never answered.
|
|
2882
|
+
#
|
|
2883
|
+
# @return [Boolean]
|
|
2884
|
+
required :handled_by_ai, Revox::Internal::Type::Boolean
|
|
2885
|
+
|
|
2886
|
+
# @!attribute handled_by_human
|
|
2887
|
+
# Whether a human operator conducted (part of) this attempt — a jump-in takeover
|
|
2888
|
+
# or a speed-dial operator connection (both stamp human_takeover_at).
|
|
2889
|
+
#
|
|
2890
|
+
# @return [Boolean]
|
|
2891
|
+
required :handled_by_human, Revox::Internal::Type::Boolean
|
|
2892
|
+
|
|
2893
|
+
# @!attribute handled_by_user
|
|
2894
|
+
# The team member responsible for following up on this call.
|
|
2895
|
+
#
|
|
2896
|
+
# @return [Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::HandledByUser, nil]
|
|
2897
|
+
required :handled_by_user,
|
|
2898
|
+
-> { Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::HandledByUser },
|
|
2899
|
+
nil?: true
|
|
2900
|
+
|
|
2556
2901
|
# @!attribute phone_number
|
|
2557
2902
|
# The phone number that was called. Formatted in E.164 format. Example:
|
|
2558
2903
|
# +1234567890
|
|
@@ -2591,6 +2936,15 @@ module Revox
|
|
|
2591
2936
|
# @return [Array<String>, nil]
|
|
2592
2937
|
optional :assistants_used, Revox::Internal::Type::ArrayOf[String], nil?: true
|
|
2593
2938
|
|
|
2939
|
+
# @!attribute email_log
|
|
2940
|
+
# Notification emails sent in connection with the call, ordered oldest first
|
|
2941
|
+
# (from/to addresses, subject, sent time).
|
|
2942
|
+
#
|
|
2943
|
+
# @return [Array<Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::EmailLog>, nil]
|
|
2944
|
+
optional :email_log,
|
|
2945
|
+
-> { Revox::Internal::Type::ArrayOf[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::EmailLog] },
|
|
2946
|
+
nil?: true
|
|
2947
|
+
|
|
2594
2948
|
# @!attribute end_reason
|
|
2595
2949
|
# Reason for ending the call when ended_by is 'agent'. E.g. 'tool_end_call',
|
|
2596
2950
|
# 'voicemail', 'transfer', 'ivr_no_navigate'.
|
|
@@ -2628,6 +2982,16 @@ module Revox
|
|
|
2628
2982
|
-> { Revox::Internal::Type::ArrayOf[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog] },
|
|
2629
2983
|
nil?: true
|
|
2630
2984
|
|
|
2985
|
+
# @!attribute speech_events
|
|
2986
|
+
# Per-turn speech segments (VAD-derived) with timing and pipeline latencies,
|
|
2987
|
+
# ordered by started_speaking_at_ms. Empty for calls recorded before this was
|
|
2988
|
+
# tracked or for realtime sessions that don't emit them.
|
|
2989
|
+
#
|
|
2990
|
+
# @return [Array<Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SpeechEvent>, nil]
|
|
2991
|
+
optional :speech_events,
|
|
2992
|
+
-> { Revox::Internal::Type::ArrayOf[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SpeechEvent] },
|
|
2993
|
+
nil?: true
|
|
2994
|
+
|
|
2631
2995
|
# @!attribute structured_output
|
|
2632
2996
|
# The data extracted from the call, using the structured output config from the
|
|
2633
2997
|
# parent call object.
|
|
@@ -2645,7 +3009,7 @@ module Revox
|
|
|
2645
3009
|
-> { Revox::Internal::Type::ArrayOf[Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript] },
|
|
2646
3010
|
nil?: true
|
|
2647
3011
|
|
|
2648
|
-
# @!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)
|
|
3012
|
+
# @!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)
|
|
2649
3013
|
# Some parameter documentations has been truncated, see
|
|
2650
3014
|
# {Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt} for more
|
|
2651
3015
|
# details.
|
|
@@ -2661,6 +3025,12 @@ module Revox
|
|
|
2661
3025
|
#
|
|
2662
3026
|
# @param ended_at [Object] The time the call ended.
|
|
2663
3027
|
#
|
|
3028
|
+
# @param handled_by_ai [Boolean] Whether the AI agent conducted the conversation on this attempt. False for a sil
|
|
3029
|
+
#
|
|
3030
|
+
# @param handled_by_human [Boolean] Whether a human operator conducted (part of) this attempt — a jump-in takeover o
|
|
3031
|
+
#
|
|
3032
|
+
# @param handled_by_user [Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::HandledByUser, nil] The team member responsible for following up on this call.
|
|
3033
|
+
#
|
|
2664
3034
|
# @param phone_number [String] The phone number that was called. Formatted in E.164 format. Example: +123456789
|
|
2665
3035
|
#
|
|
2666
3036
|
# @param recording_url [String, nil] The URL of the audio recording of the call.
|
|
@@ -2673,6 +3043,8 @@ module Revox
|
|
|
2673
3043
|
#
|
|
2674
3044
|
# @param assistants_used [Array<String>, nil] Assistant node ids entered during this attempt, in traversal order.
|
|
2675
3045
|
#
|
|
3046
|
+
# @param email_log [Array<Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::EmailLog>, nil] Notification emails sent in connection with the call, ordered oldest first (from
|
|
3047
|
+
#
|
|
2676
3048
|
# @param end_reason [Symbol, Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::EndReason, nil] Reason for ending the call when ended_by is 'agent'. E.g. 'tool_end_call', 'voic
|
|
2677
3049
|
#
|
|
2678
3050
|
# @param ended_by [Symbol, Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::EndedBy, nil] Who ended the call: 'agent' (AI agent), 'user' (caller/callee hung up), or 'syst
|
|
@@ -2681,6 +3053,8 @@ module Revox
|
|
|
2681
3053
|
#
|
|
2682
3054
|
# @param sms_log [Array<Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog>, nil] Automatic SMS sent after the call (voicemail and after-call), ordered oldest fir
|
|
2683
3055
|
#
|
|
3056
|
+
# @param speech_events [Array<Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SpeechEvent>, nil] Per-turn speech segments (VAD-derived) with timing and pipeline latencies, order
|
|
3057
|
+
#
|
|
2684
3058
|
# @param structured_output [Hash{Symbol=>Object}, nil] The data extracted from the call, using the structured output config from the pa
|
|
2685
3059
|
#
|
|
2686
3060
|
# @param transcript [Array<Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::Transcript>, nil] The live transcript of the call, built in real time.
|
|
@@ -2704,6 +3078,41 @@ module Revox
|
|
|
2704
3078
|
# @return [Array<Symbol>]
|
|
2705
3079
|
end
|
|
2706
3080
|
|
|
3081
|
+
# @see Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt#handled_by_user
|
|
3082
|
+
class HandledByUser < Revox::Internal::Type::BaseModel
|
|
3083
|
+
# @!attribute id
|
|
3084
|
+
# The database user id of the assignee.
|
|
3085
|
+
#
|
|
3086
|
+
# @return [String]
|
|
3087
|
+
required :id, String
|
|
3088
|
+
|
|
3089
|
+
# @!attribute email
|
|
3090
|
+
#
|
|
3091
|
+
# @return [String]
|
|
3092
|
+
required :email, String
|
|
3093
|
+
|
|
3094
|
+
# @!attribute first_name
|
|
3095
|
+
#
|
|
3096
|
+
# @return [String, nil]
|
|
3097
|
+
required :first_name, String, nil?: true
|
|
3098
|
+
|
|
3099
|
+
# @!attribute last_name
|
|
3100
|
+
#
|
|
3101
|
+
# @return [String, nil]
|
|
3102
|
+
required :last_name, String, nil?: true
|
|
3103
|
+
|
|
3104
|
+
# @!method initialize(id:, email:, first_name:, last_name:)
|
|
3105
|
+
# The team member responsible for following up on this call.
|
|
3106
|
+
#
|
|
3107
|
+
# @param id [String] The database user id of the assignee.
|
|
3108
|
+
#
|
|
3109
|
+
# @param email [String]
|
|
3110
|
+
#
|
|
3111
|
+
# @param first_name [String, nil]
|
|
3112
|
+
#
|
|
3113
|
+
# @param last_name [String, nil]
|
|
3114
|
+
end
|
|
3115
|
+
|
|
2707
3116
|
# @see Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt#result
|
|
2708
3117
|
module Result
|
|
2709
3118
|
extend Revox::Internal::Type::Enum
|
|
@@ -2734,6 +3143,52 @@ module Revox
|
|
|
2734
3143
|
# @return [Array<Symbol>]
|
|
2735
3144
|
end
|
|
2736
3145
|
|
|
3146
|
+
class EmailLog < Revox::Internal::Type::BaseModel
|
|
3147
|
+
# @!attribute id
|
|
3148
|
+
#
|
|
3149
|
+
# @return [String]
|
|
3150
|
+
required :id, String
|
|
3151
|
+
|
|
3152
|
+
# @!attribute created_at
|
|
3153
|
+
# When the email was sent.
|
|
3154
|
+
#
|
|
3155
|
+
# @return [Object]
|
|
3156
|
+
required :created_at, Revox::Internal::Type::Unknown
|
|
3157
|
+
|
|
3158
|
+
# @!attribute from_address
|
|
3159
|
+
#
|
|
3160
|
+
# @return [String]
|
|
3161
|
+
required :from_address, String
|
|
3162
|
+
|
|
3163
|
+
# @!attribute resend_message_id
|
|
3164
|
+
#
|
|
3165
|
+
# @return [String, nil]
|
|
3166
|
+
required :resend_message_id, String, nil?: true
|
|
3167
|
+
|
|
3168
|
+
# @!attribute subject
|
|
3169
|
+
#
|
|
3170
|
+
# @return [String]
|
|
3171
|
+
required :subject, String
|
|
3172
|
+
|
|
3173
|
+
# @!attribute to_emails
|
|
3174
|
+
#
|
|
3175
|
+
# @return [Array<String>]
|
|
3176
|
+
required :to_emails, Revox::Internal::Type::ArrayOf[String]
|
|
3177
|
+
|
|
3178
|
+
# @!method initialize(id:, created_at:, from_address:, resend_message_id:, subject:, to_emails:)
|
|
3179
|
+
# @param id [String]
|
|
3180
|
+
#
|
|
3181
|
+
# @param created_at [Object] When the email was sent.
|
|
3182
|
+
#
|
|
3183
|
+
# @param from_address [String]
|
|
3184
|
+
#
|
|
3185
|
+
# @param resend_message_id [String, nil]
|
|
3186
|
+
#
|
|
3187
|
+
# @param subject [String]
|
|
3188
|
+
#
|
|
3189
|
+
# @param to_emails [Array<String>]
|
|
3190
|
+
end
|
|
3191
|
+
|
|
2737
3192
|
# Reason for ending the call when ended_by is 'agent'. E.g. 'tool_end_call',
|
|
2738
3193
|
# 'voicemail', 'transfer', 'ivr_no_navigate'.
|
|
2739
3194
|
#
|
|
@@ -2864,15 +3319,21 @@ module Revox
|
|
|
2864
3319
|
# @return [String]
|
|
2865
3320
|
required :message_body, String
|
|
2866
3321
|
|
|
2867
|
-
# @!attribute
|
|
3322
|
+
# @!attribute provider
|
|
2868
3323
|
#
|
|
2869
|
-
# @return [
|
|
2870
|
-
required :
|
|
3324
|
+
# @return [Symbol, Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::Provider]
|
|
3325
|
+
required :provider,
|
|
3326
|
+
enum: -> { Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::Provider }
|
|
2871
3327
|
|
|
2872
|
-
# @!attribute
|
|
3328
|
+
# @!attribute provider_message_id
|
|
2873
3329
|
#
|
|
2874
3330
|
# @return [String, nil]
|
|
2875
|
-
required :
|
|
3331
|
+
required :provider_message_id, String, nil?: true
|
|
3332
|
+
|
|
3333
|
+
# @!attribute to_phone_number
|
|
3334
|
+
#
|
|
3335
|
+
# @return [String]
|
|
3336
|
+
required :to_phone_number, String
|
|
2876
3337
|
|
|
2877
3338
|
# @!attribute type
|
|
2878
3339
|
#
|
|
@@ -2880,19 +3341,32 @@ module Revox
|
|
|
2880
3341
|
required :type,
|
|
2881
3342
|
enum: -> { Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::Type }
|
|
2882
3343
|
|
|
2883
|
-
# @!method initialize(id:, created_at:, message_body:,
|
|
3344
|
+
# @!method initialize(id:, created_at:, message_body:, provider:, provider_message_id:, to_phone_number:, type:)
|
|
2884
3345
|
# @param id [String]
|
|
2885
3346
|
#
|
|
2886
3347
|
# @param created_at [Object] When the SMS was sent.
|
|
2887
3348
|
#
|
|
2888
3349
|
# @param message_body [String]
|
|
2889
3350
|
#
|
|
2890
|
-
# @param
|
|
3351
|
+
# @param provider [Symbol, Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::Provider]
|
|
2891
3352
|
#
|
|
2892
|
-
# @param
|
|
3353
|
+
# @param provider_message_id [String, nil]
|
|
3354
|
+
#
|
|
3355
|
+
# @param to_phone_number [String]
|
|
2893
3356
|
#
|
|
2894
3357
|
# @param type [Symbol, Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog::Type]
|
|
2895
3358
|
|
|
3359
|
+
# @see Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog#provider
|
|
3360
|
+
module Provider
|
|
3361
|
+
extend Revox::Internal::Type::Enum
|
|
3362
|
+
|
|
3363
|
+
TWILIO = :twilio
|
|
3364
|
+
VONAGE = :vonage
|
|
3365
|
+
|
|
3366
|
+
# @!method self.values
|
|
3367
|
+
# @return [Array<Symbol>]
|
|
3368
|
+
end
|
|
3369
|
+
|
|
2896
3370
|
# @see Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SMSLog#type
|
|
2897
3371
|
module Type
|
|
2898
3372
|
extend Revox::Internal::Type::Enum
|
|
@@ -2906,6 +3380,126 @@ module Revox
|
|
|
2906
3380
|
end
|
|
2907
3381
|
end
|
|
2908
3382
|
|
|
3383
|
+
class SpeechEvent < Revox::Internal::Type::BaseModel
|
|
3384
|
+
# @!attribute id
|
|
3385
|
+
#
|
|
3386
|
+
# @return [String]
|
|
3387
|
+
required :id, String
|
|
3388
|
+
|
|
3389
|
+
# @!attribute is_real_turn
|
|
3390
|
+
# False when the segment was flagged as noise/blip rather than a meaningful turn.
|
|
3391
|
+
#
|
|
3392
|
+
# @return [Boolean]
|
|
3393
|
+
required :is_real_turn, Revox::Internal::Type::Boolean
|
|
3394
|
+
|
|
3395
|
+
# @!attribute llm_system_prompt
|
|
3396
|
+
# Agent-only: despite the name, the whole prompt the LLM was given for this turn —
|
|
3397
|
+
# system instructions plus conversation history — as JSON.
|
|
3398
|
+
#
|
|
3399
|
+
# @return [String, nil]
|
|
3400
|
+
required :llm_system_prompt, String, nil?: true
|
|
3401
|
+
|
|
3402
|
+
# @!attribute llm_ttft_ms
|
|
3403
|
+
# Agent-only: LLM time-to-first-token for the reply, in ms.
|
|
3404
|
+
#
|
|
3405
|
+
# @return [Float, nil]
|
|
3406
|
+
required :llm_ttft_ms, Float, nil?: true
|
|
3407
|
+
|
|
3408
|
+
# @!attribute llm_winner_model
|
|
3409
|
+
# Agent-only: the model that produced the reply — the winning leg when the LLM is
|
|
3410
|
+
# a race, which is also the model `llm_ttft_ms` describes.
|
|
3411
|
+
#
|
|
3412
|
+
# @return [String, nil]
|
|
3413
|
+
required :llm_winner_model, String, nil?: true
|
|
3414
|
+
|
|
3415
|
+
# @!attribute speaker
|
|
3416
|
+
# Who was speaking during this segment.
|
|
3417
|
+
#
|
|
3418
|
+
# @return [Symbol, Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SpeechEvent::Speaker]
|
|
3419
|
+
required :speaker,
|
|
3420
|
+
enum: -> { Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SpeechEvent::Speaker }
|
|
3421
|
+
|
|
3422
|
+
# @!attribute started_speaking_at_ms
|
|
3423
|
+
# Milliseconds since session start when speech began.
|
|
3424
|
+
#
|
|
3425
|
+
# @return [Float]
|
|
3426
|
+
required :started_speaking_at_ms, Float
|
|
3427
|
+
|
|
3428
|
+
# @!attribute stopped_speaking_at_ms
|
|
3429
|
+
# Milliseconds since session start when speech ended. Null when the session ended
|
|
3430
|
+
# before the turn closed.
|
|
3431
|
+
#
|
|
3432
|
+
# @return [Float, nil]
|
|
3433
|
+
required :stopped_speaking_at_ms, Float, nil?: true
|
|
3434
|
+
|
|
3435
|
+
# @!attribute stt_transcription_delay_ms
|
|
3436
|
+
# User-only: time from end-of-speech to final transcript, in ms.
|
|
3437
|
+
#
|
|
3438
|
+
# @return [Float, nil]
|
|
3439
|
+
required :stt_transcription_delay_ms, Float, nil?: true
|
|
3440
|
+
|
|
3441
|
+
# @!attribute transcript
|
|
3442
|
+
# Recognized text for this segment, when available.
|
|
3443
|
+
#
|
|
3444
|
+
# @return [String, nil]
|
|
3445
|
+
required :transcript, String, nil?: true
|
|
3446
|
+
|
|
3447
|
+
# @!attribute tts_ttfb_ms
|
|
3448
|
+
# Agent-only: TTS time-to-first-audio-byte for the reply, in ms.
|
|
3449
|
+
#
|
|
3450
|
+
# @return [Float, nil]
|
|
3451
|
+
required :tts_ttfb_ms, Float, nil?: true
|
|
3452
|
+
|
|
3453
|
+
# @!attribute was_cut
|
|
3454
|
+
# Agent-only: true when the agent's audio was interrupted (real or auto-resumed).
|
|
3455
|
+
# Null on user segments.
|
|
3456
|
+
#
|
|
3457
|
+
# @return [Boolean, nil]
|
|
3458
|
+
required :was_cut, Revox::Internal::Type::Boolean, nil?: true
|
|
3459
|
+
|
|
3460
|
+
# @!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:)
|
|
3461
|
+
# Some parameter documentations has been truncated, see
|
|
3462
|
+
# {Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SpeechEvent}
|
|
3463
|
+
# for more details.
|
|
3464
|
+
#
|
|
3465
|
+
# @param id [String]
|
|
3466
|
+
#
|
|
3467
|
+
# @param is_real_turn [Boolean] False when the segment was flagged as noise/blip rather than a meaningful turn.
|
|
3468
|
+
#
|
|
3469
|
+
# @param llm_system_prompt [String, nil] Agent-only: despite the name, the whole prompt the LLM was given for this turn —
|
|
3470
|
+
#
|
|
3471
|
+
# @param llm_ttft_ms [Float, nil] Agent-only: LLM time-to-first-token for the reply, in ms.
|
|
3472
|
+
#
|
|
3473
|
+
# @param llm_winner_model [String, nil] Agent-only: the model that produced the reply — the winning leg when the LLM is
|
|
3474
|
+
#
|
|
3475
|
+
# @param speaker [Symbol, Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SpeechEvent::Speaker] Who was speaking during this segment.
|
|
3476
|
+
#
|
|
3477
|
+
# @param started_speaking_at_ms [Float] Milliseconds since session start when speech began.
|
|
3478
|
+
#
|
|
3479
|
+
# @param stopped_speaking_at_ms [Float, nil] Milliseconds since session start when speech ended. Null when the session ended
|
|
3480
|
+
#
|
|
3481
|
+
# @param stt_transcription_delay_ms [Float, nil] User-only: time from end-of-speech to final transcript, in ms.
|
|
3482
|
+
#
|
|
3483
|
+
# @param transcript [String, nil] Recognized text for this segment, when available.
|
|
3484
|
+
#
|
|
3485
|
+
# @param tts_ttfb_ms [Float, nil] Agent-only: TTS time-to-first-audio-byte for the reply, in ms.
|
|
3486
|
+
#
|
|
3487
|
+
# @param was_cut [Boolean, nil] Agent-only: true when the agent's audio was interrupted (real or auto-resumed).
|
|
3488
|
+
|
|
3489
|
+
# Who was speaking during this segment.
|
|
3490
|
+
#
|
|
3491
|
+
# @see Revox::Models::CampaignGetRowsResponse::Row::Call::LastCallAttempt::SpeechEvent#speaker
|
|
3492
|
+
module Speaker
|
|
3493
|
+
extend Revox::Internal::Type::Enum
|
|
3494
|
+
|
|
3495
|
+
USER = :user
|
|
3496
|
+
AGENT = :agent
|
|
3497
|
+
|
|
3498
|
+
# @!method self.values
|
|
3499
|
+
# @return [Array<Symbol>]
|
|
3500
|
+
end
|
|
3501
|
+
end
|
|
3502
|
+
|
|
2909
3503
|
class Transcript < Revox::Internal::Type::BaseModel
|
|
2910
3504
|
# @!attribute content
|
|
2911
3505
|
#
|
|
@@ -3142,6 +3736,7 @@ module Revox
|
|
|
3142
3736
|
QUEUED_FOR_CALLING = :queued_for_calling
|
|
3143
3737
|
CALLING = :calling
|
|
3144
3738
|
POST_PROCESSING = :post_processing
|
|
3739
|
+
NOT_LAUNCHED = :not_launched
|
|
3145
3740
|
SCHEDULED = :scheduled
|
|
3146
3741
|
PAUSED = :paused
|
|
3147
3742
|
COMPLETED = :completed
|
|
@@ -3162,9 +3757,6 @@ module Revox
|
|
|
3162
3757
|
INTERESTED = :interested
|
|
3163
3758
|
COMPLETED = :completed
|
|
3164
3759
|
REQUESTED_CALLBACK_LATER = :requested_callback_later
|
|
3165
|
-
REQUESTED_CALLBACK_NEW_NUMBER = :requested_callback_new_number
|
|
3166
|
-
DO_NOT_CONTACT = :do_not_contact
|
|
3167
|
-
AI_AVERSE = :ai_averse
|
|
3168
3760
|
|
|
3169
3761
|
# @!method self.values
|
|
3170
3762
|
# @return [Array<Symbol>]
|