revox 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +26 -0
- data/README.md +38 -38
- data/lib/revox/models/assistant_clone_response.rb +87 -65
- 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/call_create_params.rb +117 -90
- data/lib/revox/models/call_create_response.rb +670 -90
- data/lib/revox/models/call_export_params.rb +1 -3
- data/lib/revox/models/call_phone_history_response.rb +0 -3
- data/lib/revox/models/call_retrieve_response.rb +671 -90
- data/lib/revox/models/call_search_params.rb +1 -3
- data/lib/revox/models/call_search_response.rb +670 -90
- 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 +672 -90
- data/lib/revox/models/campaign_list_response.rb +108 -119
- data/lib/revox/models/campaign_retrieve_response.rb +108 -119
- data/lib/revox/models/campaign_statistics_response.rb +51 -23
- data/lib/revox/models/campaign_update_params.rb +9 -78
- data/lib/revox/models/campaign_update_response.rb +108 -119
- data/lib/revox/models/phone_number_list_response.rb +87 -65
- data/lib/revox/models/phone_number_update_response.rb +87 -65
- 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 +0 -2
- data/lib/revox/resources/assistants.rb +10 -10
- data/lib/revox/resources/call.rb +4 -4
- data/lib/revox/resources/campaigns.rb +13 -45
- data/lib/revox/version.rb +1 -1
- data/lib/revox.rb +0 -2
- data/rbi/revox/models/assistant_clone_response.rbi +157 -147
- 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/call_create_params.rbi +190 -187
- data/rbi/revox/models/call_create_response.rbi +1138 -227
- data/rbi/revox/models/call_export_params.rbi +5 -15
- data/rbi/revox/models/call_phone_history_response.rbi +0 -15
- data/rbi/revox/models/call_retrieve_response.rbi +1138 -227
- data/rbi/revox/models/call_search_params.rbi +2 -9
- data/rbi/revox/models/call_search_response.rbi +1138 -227
- 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 +1138 -225
- data/rbi/revox/models/campaign_list_response.rbi +188 -262
- data/rbi/revox/models/campaign_retrieve_response.rbi +188 -266
- data/rbi/revox/models/campaign_statistics_response.rbi +94 -36
- data/rbi/revox/models/campaign_update_params.rbi +10 -128
- data/rbi/revox/models/campaign_update_response.rbi +188 -266
- data/rbi/revox/models/phone_number_list_response.rbi +157 -147
- data/rbi/revox/models/phone_number_update_response.rbi +157 -147
- 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 +0 -2
- data/rbi/revox/resources/assistants.rbi +40 -22
- data/rbi/revox/resources/call.rbi +7 -4
- data/rbi/revox/resources/campaigns.rbi +12 -44
- data/sig/revox/models/assistant_clone_response.rbs +46 -54
- 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/call_create_params.rbs +50 -71
- data/sig/revox/models/call_create_response.rbs +468 -77
- data/sig/revox/models/call_export_params.rbs +2 -6
- data/sig/revox/models/call_phone_history_response.rbs +1 -10
- data/sig/revox/models/call_retrieve_response.rbs +468 -77
- data/sig/revox/models/call_search_params.rbs +2 -6
- data/sig/revox/models/call_search_response.rbs +468 -77
- 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 +467 -73
- data/sig/revox/models/campaign_list_response.rbs +62 -98
- data/sig/revox/models/campaign_retrieve_response.rbs +62 -98
- data/sig/revox/models/campaign_statistics_response.rbs +55 -24
- data/sig/revox/models/campaign_update_params.rbs +1 -69
- data/sig/revox/models/campaign_update_response.rbs +62 -98
- data/sig/revox/models/phone_number_list_response.rbs +46 -54
- data/sig/revox/models/phone_number_update_response.rbs +46 -54
- 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 +0 -2
- data/sig/revox/resources/assistants.rbs +4 -4
- data/sig/revox/resources/call.rbs +1 -1
- data/sig/revox/resources/campaigns.rbs +0 -12
- metadata +2 -8
- data/lib/revox/models/campaign_launch_params.rb +0 -20
- data/lib/revox/models/campaign_launch_response.rb +0 -2030
- data/rbi/revox/models/campaign_launch_params.rbi +0 -33
- data/rbi/revox/models/campaign_launch_response.rbi +0 -4170
- data/sig/revox/models/campaign_launch_params.rbs +0 -20
- data/sig/revox/models/campaign_launch_response.rbs +0 -1694
|
@@ -183,7 +183,16 @@ module Revox
|
|
|
183
183
|
# @return [String, nil]
|
|
184
184
|
optional :outcome_summary, String, nil?: true
|
|
185
185
|
|
|
186
|
-
# @!
|
|
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)
|
|
187
196
|
# Some parameter documentations has been truncated, see
|
|
188
197
|
# {Revox::Models::CallCreateResponse::Call} for more details.
|
|
189
198
|
#
|
|
@@ -241,6 +250,8 @@ module Revox
|
|
|
241
250
|
# @param outcome [Symbol, Revox::Models::CallCreateResponse::Call::Outcome, nil] Business outcome of the call. Null if not computed or no transcript.
|
|
242
251
|
#
|
|
243
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
|
|
244
255
|
|
|
245
256
|
# @see Revox::Models::CallCreateResponse::Call#assignee
|
|
246
257
|
class Assignee < Revox::Internal::Type::BaseModel
|
|
@@ -354,13 +365,6 @@ module Revox
|
|
|
354
365
|
# @return [String, nil]
|
|
355
366
|
required :email_notification_address, String, nil?: true
|
|
356
367
|
|
|
357
|
-
# @!attribute email_notification_language
|
|
358
|
-
# The language used for the notification email content. One of "en" or "fr".
|
|
359
|
-
#
|
|
360
|
-
# @return [Symbol, Revox::Models::CallCreateResponse::Call::Assistant::EmailNotificationLanguage]
|
|
361
|
-
required :email_notification_language,
|
|
362
|
-
enum: -> { Revox::Models::CallCreateResponse::Call::Assistant::EmailNotificationLanguage }
|
|
363
|
-
|
|
364
368
|
# @!attribute email_notification_outcomes
|
|
365
369
|
# Which call outcomes trigger an email notification. E.g. ["interested",
|
|
366
370
|
# "completed", "none"]. Use "none" when outcome is null.
|
|
@@ -400,8 +404,8 @@ module Revox
|
|
|
400
404
|
required :from_phone_number, String, nil?: true
|
|
401
405
|
|
|
402
406
|
# @!attribute human_transfer_mode
|
|
403
|
-
# Warm or cold transfer when
|
|
404
|
-
# not configured.
|
|
407
|
+
# Warm or cold transfer when transfer_destinations is non-empty; null when
|
|
408
|
+
# transfer is not configured.
|
|
405
409
|
#
|
|
406
410
|
# @return [Symbol, Revox::Models::CallCreateResponse::Call::Assistant::HumanTransferMode, nil]
|
|
407
411
|
required :human_transfer_mode,
|
|
@@ -457,6 +461,13 @@ module Revox
|
|
|
457
461
|
# @return [Revox::Models::CallCreateResponse::Call::Assistant::Position, nil]
|
|
458
462
|
required :position, -> { Revox::Models::CallCreateResponse::Call::Assistant::Position }, nil?: true
|
|
459
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
|
+
|
|
460
471
|
# @!attribute prompt
|
|
461
472
|
#
|
|
462
473
|
# @return [String]
|
|
@@ -540,11 +551,14 @@ module Revox
|
|
|
540
551
|
# @return [Float]
|
|
541
552
|
required :thinking_sound_volume, Float
|
|
542
553
|
|
|
543
|
-
# @!attribute
|
|
544
|
-
#
|
|
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.
|
|
545
557
|
#
|
|
546
|
-
# @return [
|
|
547
|
-
required :
|
|
558
|
+
# @return [Array<Revox::Models::CallCreateResponse::Call::Assistant::TransferDestination>, nil]
|
|
559
|
+
required :transfer_destinations,
|
|
560
|
+
-> { Revox::Internal::Type::ArrayOf[Revox::Models::CallCreateResponse::Call::Assistant::TransferDestination] },
|
|
561
|
+
nil?: true
|
|
548
562
|
|
|
549
563
|
# @!attribute type
|
|
550
564
|
#
|
|
@@ -605,6 +619,11 @@ module Revox
|
|
|
605
619
|
optional :faq_items,
|
|
606
620
|
-> { Revox::Internal::Type::ArrayOf[Revox::Models::CallCreateResponse::Call::Assistant::FaqItem] }
|
|
607
621
|
|
|
622
|
+
# @!attribute is_inbound_receptionist
|
|
623
|
+
#
|
|
624
|
+
# @return [Boolean, nil]
|
|
625
|
+
optional :is_inbound_receptionist, Revox::Internal::Type::Boolean
|
|
626
|
+
|
|
608
627
|
# @!attribute is_realestate_assistant
|
|
609
628
|
#
|
|
610
629
|
# @return [Boolean, nil]
|
|
@@ -615,7 +634,7 @@ module Revox
|
|
|
615
634
|
# @return [Float, nil]
|
|
616
635
|
optional :pending_faq_count, Float
|
|
617
636
|
|
|
618
|
-
# @!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)
|
|
619
638
|
# Some parameter documentations has been truncated, see
|
|
620
639
|
# {Revox::Models::CallCreateResponse::Call::Assistant} for more details.
|
|
621
640
|
#
|
|
@@ -641,8 +660,6 @@ module Revox
|
|
|
641
660
|
#
|
|
642
661
|
# @param email_notification_address [String, nil] Email address(es) to receive notifications when a call ends with a matching outc
|
|
643
662
|
#
|
|
644
|
-
# @param email_notification_language [Symbol, Revox::Models::CallCreateResponse::Call::Assistant::EmailNotificationLanguage] The language used for the notification email content. One of "en" or "fr".
|
|
645
|
-
#
|
|
646
663
|
# @param email_notification_outcomes [Array<Symbol, Revox::Models::CallCreateResponse::Call::Assistant::EmailNotificationOutcome>, nil] Which call outcomes trigger an email notification. E.g. ["interested", "complete
|
|
647
664
|
#
|
|
648
665
|
# @param end_of_call_sentence [String, nil]
|
|
@@ -655,7 +672,7 @@ module Revox
|
|
|
655
672
|
#
|
|
656
673
|
# @param from_phone_number [String, nil] Override the default outbound phone number for calls placed with this assistant.
|
|
657
674
|
#
|
|
658
|
-
# @param human_transfer_mode [Symbol, Revox::Models::CallCreateResponse::Call::Assistant::HumanTransferMode, nil] Warm or cold transfer when
|
|
675
|
+
# @param human_transfer_mode [Symbol, Revox::Models::CallCreateResponse::Call::Assistant::HumanTransferMode, nil] Warm or cold transfer when transfer_destinations is non-empty; null when transfe
|
|
659
676
|
#
|
|
660
677
|
# @param ivr_navigation_enabled [Boolean] Enable IVR navigation tools. When enabled, the assistant can send DTMF tones and
|
|
661
678
|
#
|
|
@@ -673,6 +690,8 @@ module Revox
|
|
|
673
690
|
#
|
|
674
691
|
# @param position [Revox::Models::CallCreateResponse::Call::Assistant::Position, nil]
|
|
675
692
|
#
|
|
693
|
+
# @param precall_lookup_url [String, nil] URL fetched before an inbound call is answered to resolve the assistant's prompt
|
|
694
|
+
#
|
|
676
695
|
# @param prompt [String]
|
|
677
696
|
#
|
|
678
697
|
# @param prompt_flow [Revox::Models::CallCreateResponse::Call::Assistant::PromptFlow, nil]
|
|
@@ -697,7 +716,7 @@ module Revox
|
|
|
697
716
|
#
|
|
698
717
|
# @param thinking_sound_volume [Float] Volume of the thinking sound (0 = silent, 1 = max).
|
|
699
718
|
#
|
|
700
|
-
# @param
|
|
719
|
+
# @param transfer_destinations [Array<Revox::Models::CallCreateResponse::Call::Assistant::TransferDestination>, nil] Where calls can be transferred to when users ask to speak to a human. Null or em
|
|
701
720
|
#
|
|
702
721
|
# @param type [Symbol, Revox::Models::CallCreateResponse::Call::Assistant::Type]
|
|
703
722
|
#
|
|
@@ -719,6 +738,8 @@ module Revox
|
|
|
719
738
|
#
|
|
720
739
|
# @param faq_items [Array<Revox::Models::CallCreateResponse::Call::Assistant::FaqItem>]
|
|
721
740
|
#
|
|
741
|
+
# @param is_inbound_receptionist [Boolean]
|
|
742
|
+
#
|
|
722
743
|
# @param is_realestate_assistant [Boolean]
|
|
723
744
|
#
|
|
724
745
|
# @param pending_faq_count [Float]
|
|
@@ -730,9 +751,6 @@ module Revox
|
|
|
730
751
|
INTERESTED = :interested
|
|
731
752
|
COMPLETED = :completed
|
|
732
753
|
REQUESTED_CALLBACK_LATER = :requested_callback_later
|
|
733
|
-
REQUESTED_CALLBACK_NEW_NUMBER = :requested_callback_new_number
|
|
734
|
-
DO_NOT_CONTACT = :do_not_contact
|
|
735
|
-
AI_AVERSE = :ai_averse
|
|
736
754
|
NONE = :none
|
|
737
755
|
|
|
738
756
|
# @!method self.values
|
|
@@ -865,7 +883,8 @@ module Revox
|
|
|
865
883
|
required :calling_window_start_time, String
|
|
866
884
|
|
|
867
885
|
# @!attribute retry_delay_seconds
|
|
868
|
-
# Delay between retry attempts in seconds.
|
|
886
|
+
# Delay between retry attempts in seconds. 0 retries as soon as the calling window
|
|
887
|
+
# allows. Default: 7200 (2 hours).
|
|
869
888
|
#
|
|
870
889
|
# @return [Integer]
|
|
871
890
|
required :retry_delay_seconds, Integer
|
|
@@ -879,7 +898,7 @@ module Revox
|
|
|
879
898
|
#
|
|
880
899
|
# @param calling_window_start_time [String] Start time for the calling window in the recipient's timezone (or timezone_overr
|
|
881
900
|
#
|
|
882
|
-
# @param retry_delay_seconds [Integer] Delay between retry attempts in seconds.
|
|
901
|
+
# @param retry_delay_seconds [Integer] Delay between retry attempts in seconds. 0 retries as soon as the calling window
|
|
883
902
|
end
|
|
884
903
|
end
|
|
885
904
|
|
|
@@ -1062,19 +1081,6 @@ module Revox
|
|
|
1062
1081
|
end
|
|
1063
1082
|
end
|
|
1064
1083
|
|
|
1065
|
-
# The language used for the notification email content. One of "en" or "fr".
|
|
1066
|
-
#
|
|
1067
|
-
# @see Revox::Models::CallCreateResponse::Call::Assistant#email_notification_language
|
|
1068
|
-
module EmailNotificationLanguage
|
|
1069
|
-
extend Revox::Internal::Type::Enum
|
|
1070
|
-
|
|
1071
|
-
EN = :en
|
|
1072
|
-
FR = :fr
|
|
1073
|
-
|
|
1074
|
-
# @!method self.values
|
|
1075
|
-
# @return [Array<Symbol>]
|
|
1076
|
-
end
|
|
1077
|
-
|
|
1078
1084
|
module EmailNotificationOutcome
|
|
1079
1085
|
extend Revox::Internal::Type::Enum
|
|
1080
1086
|
|
|
@@ -1082,9 +1088,6 @@ module Revox
|
|
|
1082
1088
|
INTERESTED = :interested
|
|
1083
1089
|
COMPLETED = :completed
|
|
1084
1090
|
REQUESTED_CALLBACK_LATER = :requested_callback_later
|
|
1085
|
-
REQUESTED_CALLBACK_NEW_NUMBER = :requested_callback_new_number
|
|
1086
|
-
DO_NOT_CONTACT = :do_not_contact
|
|
1087
|
-
AI_AVERSE = :ai_averse
|
|
1088
1091
|
NONE = :none
|
|
1089
1092
|
|
|
1090
1093
|
# @!method self.values
|
|
@@ -1103,8 +1106,8 @@ module Revox
|
|
|
1103
1106
|
# @return [Array<Symbol>]
|
|
1104
1107
|
end
|
|
1105
1108
|
|
|
1106
|
-
# Warm or cold transfer when
|
|
1107
|
-
# not configured.
|
|
1109
|
+
# Warm or cold transfer when transfer_destinations is non-empty; null when
|
|
1110
|
+
# transfer is not configured.
|
|
1108
1111
|
#
|
|
1109
1112
|
# @see Revox::Models::CallCreateResponse::Call::Assistant#human_transfer_mode
|
|
1110
1113
|
module HumanTransferMode
|
|
@@ -1394,11 +1397,14 @@ module Revox
|
|
|
1394
1397
|
|
|
1395
1398
|
# @see Revox::Models::CallCreateResponse::Call::Assistant#slack
|
|
1396
1399
|
class Slack < Revox::Internal::Type::BaseModel
|
|
1397
|
-
# @!attribute
|
|
1398
|
-
# The Slack
|
|
1400
|
+
# @!attribute channels
|
|
1401
|
+
# The Slack channels eligible to receive the notification. When more than one is
|
|
1402
|
+
# configured, the agent prompt may define routing rules to narrow it down per
|
|
1403
|
+
# call; with no such rules every channel here is notified.
|
|
1399
1404
|
#
|
|
1400
|
-
# @return [
|
|
1401
|
-
required :
|
|
1405
|
+
# @return [Array<Revox::Models::CallCreateResponse::Call::Assistant::Slack::Channel>]
|
|
1406
|
+
required :channels,
|
|
1407
|
+
-> { Revox::Internal::Type::ArrayOf[Revox::Models::CallCreateResponse::Call::Assistant::Slack::Channel] }
|
|
1402
1408
|
|
|
1403
1409
|
# @!attribute connection_id
|
|
1404
1410
|
# The Nango connection ID linking the org's Slack workspace to Revox.
|
|
@@ -1414,37 +1420,53 @@ module Revox
|
|
|
1414
1420
|
required :outcomes,
|
|
1415
1421
|
-> { Revox::Internal::Type::ArrayOf[enum: Revox::Models::CallCreateResponse::Call::Assistant::Slack::Outcome] }
|
|
1416
1422
|
|
|
1417
|
-
# @!attribute channel_name
|
|
1418
|
-
# Human-readable Slack channel name, cached for display in the UI.
|
|
1419
|
-
#
|
|
1420
|
-
# @return [String, nil]
|
|
1421
|
-
optional :channel_name, String, nil?: true
|
|
1422
|
-
|
|
1423
1423
|
# @!attribute template
|
|
1424
1424
|
# Optional message template. Supports {{summary}}, {{outcome}}, {{phone}},
|
|
1425
1425
|
# {{call_url}}, {{assistant_name}}, {{campaign_name}}, {{first_name}},
|
|
1426
|
-
# {{last_name}}, {{email}}, {{company}}, {{
|
|
1427
|
-
# prompt_variables and structured_output keys. When
|
|
1428
|
-
# is used.
|
|
1426
|
+
# {{last_name}}, {{email}}, {{company}}, {{job_title}}, {{contact_name}},
|
|
1427
|
+
# {{contact_line}}, plus prompt_variables and structured_output keys. When
|
|
1428
|
+
# null/empty a default template is used.
|
|
1429
1429
|
#
|
|
1430
1430
|
# @return [String, nil]
|
|
1431
1431
|
optional :template, String, nil?: true
|
|
1432
1432
|
|
|
1433
|
-
# @!method initialize(
|
|
1433
|
+
# @!method initialize(channels:, connection_id:, outcomes:, template: nil)
|
|
1434
1434
|
# Some parameter documentations has been truncated, see
|
|
1435
1435
|
# {Revox::Models::CallCreateResponse::Call::Assistant::Slack} for more details.
|
|
1436
1436
|
#
|
|
1437
|
-
# @param
|
|
1437
|
+
# @param channels [Array<Revox::Models::CallCreateResponse::Call::Assistant::Slack::Channel>] The Slack channels eligible to receive the notification. When more than one is c
|
|
1438
1438
|
#
|
|
1439
1439
|
# @param connection_id [String] The Nango connection ID linking the org's Slack workspace to Revox.
|
|
1440
1440
|
#
|
|
1441
1441
|
# @param outcomes [Array<Symbol, Revox::Models::CallCreateResponse::Call::Assistant::Slack::Outcome>] Which call outcomes trigger a Slack notification (e.g. ['interested', 'none']).
|
|
1442
1442
|
#
|
|
1443
|
-
# @param channel_name [String, nil] Human-readable Slack channel name, cached for display in the UI.
|
|
1444
|
-
#
|
|
1445
1443
|
# @param template [String, nil] Optional message template. Supports {{summary}}, {{outcome}}, {{phone}},
|
|
1446
1444
|
# {{call\_
|
|
1447
1445
|
|
|
1446
|
+
class Channel < Revox::Internal::Type::BaseModel
|
|
1447
|
+
# @!attribute id
|
|
1448
|
+
# The Slack channel ID (e.g. 'C01234567').
|
|
1449
|
+
#
|
|
1450
|
+
# @return [String]
|
|
1451
|
+
required :id, String
|
|
1452
|
+
|
|
1453
|
+
# @!attribute name
|
|
1454
|
+
# Human-readable Slack channel name, cached for display in the UI and given to the
|
|
1455
|
+
# LLM when the agent prompt routes by channel name.
|
|
1456
|
+
#
|
|
1457
|
+
# @return [String, nil]
|
|
1458
|
+
optional :name, String, nil?: true
|
|
1459
|
+
|
|
1460
|
+
# @!method initialize(id:, name: nil)
|
|
1461
|
+
# Some parameter documentations has been truncated, see
|
|
1462
|
+
# {Revox::Models::CallCreateResponse::Call::Assistant::Slack::Channel} for more
|
|
1463
|
+
# details.
|
|
1464
|
+
#
|
|
1465
|
+
# @param id [String] The Slack channel ID (e.g. 'C01234567').
|
|
1466
|
+
#
|
|
1467
|
+
# @param name [String, nil] Human-readable Slack channel name, cached for display in the UI and given to the
|
|
1468
|
+
end
|
|
1469
|
+
|
|
1448
1470
|
module Outcome
|
|
1449
1471
|
extend Revox::Internal::Type::Enum
|
|
1450
1472
|
|
|
@@ -1452,9 +1474,6 @@ module Revox
|
|
|
1452
1474
|
INTERESTED = :interested
|
|
1453
1475
|
COMPLETED = :completed
|
|
1454
1476
|
REQUESTED_CALLBACK_LATER = :requested_callback_later
|
|
1455
|
-
REQUESTED_CALLBACK_NEW_NUMBER = :requested_callback_new_number
|
|
1456
|
-
DO_NOT_CONTACT = :do_not_contact
|
|
1457
|
-
AI_AVERSE = :ai_averse
|
|
1458
1477
|
NONE = :none
|
|
1459
1478
|
|
|
1460
1479
|
# @!method self.values
|
|
@@ -1582,6 +1601,22 @@ module Revox
|
|
|
1582
1601
|
# @return [Array<Symbol>]
|
|
1583
1602
|
end
|
|
1584
1603
|
|
|
1604
|
+
class TransferDestination < Revox::Internal::Type::BaseModel
|
|
1605
|
+
# @!attribute label
|
|
1606
|
+
#
|
|
1607
|
+
# @return [String]
|
|
1608
|
+
required :label, String
|
|
1609
|
+
|
|
1610
|
+
# @!attribute phone_number
|
|
1611
|
+
#
|
|
1612
|
+
# @return [String]
|
|
1613
|
+
required :phone_number, String
|
|
1614
|
+
|
|
1615
|
+
# @!method initialize(label:, phone_number:)
|
|
1616
|
+
# @param label [String]
|
|
1617
|
+
# @param phone_number [String]
|
|
1618
|
+
end
|
|
1619
|
+
|
|
1585
1620
|
# @see Revox::Models::CallCreateResponse::Call::Assistant#type
|
|
1586
1621
|
module Type
|
|
1587
1622
|
extend Revox::Internal::Type::Enum
|
|
@@ -1617,7 +1652,7 @@ module Revox
|
|
|
1617
1652
|
|
|
1618
1653
|
# @!attribute speed
|
|
1619
1654
|
# The speed of the voice. Range depends on provider: Cartesia 0.6–1.5, ElevenLabs
|
|
1620
|
-
# 0.7–1.2. Default is 1.0.
|
|
1655
|
+
# 0.7–1.2, Gradium 0.6–1.5. Default is 1.0.
|
|
1621
1656
|
#
|
|
1622
1657
|
# @return [Float, nil]
|
|
1623
1658
|
optional :speed, Float
|
|
@@ -1651,6 +1686,7 @@ module Revox
|
|
|
1651
1686
|
|
|
1652
1687
|
CARTESIA = :cartesia
|
|
1653
1688
|
ELEVENLABS = :elevenlabs
|
|
1689
|
+
GRADIUM = :gradium
|
|
1654
1690
|
|
|
1655
1691
|
# @!method self.values
|
|
1656
1692
|
# @return [Array<Symbol>]
|
|
@@ -1765,9 +1801,6 @@ module Revox
|
|
|
1765
1801
|
INTERESTED = :interested
|
|
1766
1802
|
COMPLETED = :completed
|
|
1767
1803
|
REQUESTED_CALLBACK_LATER = :requested_callback_later
|
|
1768
|
-
REQUESTED_CALLBACK_NEW_NUMBER = :requested_callback_new_number
|
|
1769
|
-
DO_NOT_CONTACT = :do_not_contact
|
|
1770
|
-
AI_AVERSE = :ai_averse
|
|
1771
1804
|
NONE = :none
|
|
1772
1805
|
|
|
1773
1806
|
# @!method self.values
|
|
@@ -1883,6 +1916,29 @@ module Revox
|
|
|
1883
1916
|
# @return [Object]
|
|
1884
1917
|
required :ended_at, Revox::Internal::Type::Unknown
|
|
1885
1918
|
|
|
1919
|
+
# @!attribute handled_by_ai
|
|
1920
|
+
# Whether the AI agent conducted the conversation on this attempt. False for a
|
|
1921
|
+
# silent speed-dial probe (whose agent only detects a human) and for attempts that
|
|
1922
|
+
# were never answered.
|
|
1923
|
+
#
|
|
1924
|
+
# @return [Boolean]
|
|
1925
|
+
required :handled_by_ai, Revox::Internal::Type::Boolean
|
|
1926
|
+
|
|
1927
|
+
# @!attribute handled_by_human
|
|
1928
|
+
# Whether a human operator conducted (part of) this attempt — a jump-in takeover
|
|
1929
|
+
# or a speed-dial operator connection (both stamp human_takeover_at).
|
|
1930
|
+
#
|
|
1931
|
+
# @return [Boolean]
|
|
1932
|
+
required :handled_by_human, Revox::Internal::Type::Boolean
|
|
1933
|
+
|
|
1934
|
+
# @!attribute handled_by_user
|
|
1935
|
+
# The team member responsible for following up on this call.
|
|
1936
|
+
#
|
|
1937
|
+
# @return [Revox::Models::CallCreateResponse::Call::CallAttempt::HandledByUser, nil]
|
|
1938
|
+
required :handled_by_user,
|
|
1939
|
+
-> { Revox::Models::CallCreateResponse::Call::CallAttempt::HandledByUser },
|
|
1940
|
+
nil?: true
|
|
1941
|
+
|
|
1886
1942
|
# @!attribute phone_number
|
|
1887
1943
|
# The phone number that was called. Formatted in E.164 format. Example:
|
|
1888
1944
|
# +1234567890
|
|
@@ -1919,6 +1975,15 @@ module Revox
|
|
|
1919
1975
|
# @return [Array<String>, nil]
|
|
1920
1976
|
optional :assistants_used, Revox::Internal::Type::ArrayOf[String], nil?: true
|
|
1921
1977
|
|
|
1978
|
+
# @!attribute email_log
|
|
1979
|
+
# Notification emails sent in connection with the call, ordered oldest first
|
|
1980
|
+
# (from/to addresses, subject, sent time).
|
|
1981
|
+
#
|
|
1982
|
+
# @return [Array<Revox::Models::CallCreateResponse::Call::CallAttempt::EmailLog>, nil]
|
|
1983
|
+
optional :email_log,
|
|
1984
|
+
-> { Revox::Internal::Type::ArrayOf[Revox::Models::CallCreateResponse::Call::CallAttempt::EmailLog] },
|
|
1985
|
+
nil?: true
|
|
1986
|
+
|
|
1922
1987
|
# @!attribute end_reason
|
|
1923
1988
|
# Reason for ending the call when ended_by is 'agent'. E.g. 'tool_end_call',
|
|
1924
1989
|
# 'voicemail', 'transfer', 'ivr_no_navigate'.
|
|
@@ -1954,6 +2019,16 @@ module Revox
|
|
|
1954
2019
|
-> { Revox::Internal::Type::ArrayOf[Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog] },
|
|
1955
2020
|
nil?: true
|
|
1956
2021
|
|
|
2022
|
+
# @!attribute speech_events
|
|
2023
|
+
# Per-turn speech segments (VAD-derived) with timing and pipeline latencies,
|
|
2024
|
+
# ordered by started_speaking_at_ms. Empty for calls recorded before this was
|
|
2025
|
+
# tracked or for realtime sessions that don't emit them.
|
|
2026
|
+
#
|
|
2027
|
+
# @return [Array<Revox::Models::CallCreateResponse::Call::CallAttempt::SpeechEvent>, nil]
|
|
2028
|
+
optional :speech_events,
|
|
2029
|
+
-> { Revox::Internal::Type::ArrayOf[Revox::Models::CallCreateResponse::Call::CallAttempt::SpeechEvent] },
|
|
2030
|
+
nil?: true
|
|
2031
|
+
|
|
1957
2032
|
# @!attribute structured_output
|
|
1958
2033
|
# The data extracted from the call, using the structured output config from the
|
|
1959
2034
|
# parent call object.
|
|
@@ -1971,7 +2046,7 @@ module Revox
|
|
|
1971
2046
|
-> { Revox::Internal::Type::ArrayOf[Revox::Models::CallCreateResponse::Call::CallAttempt::Transcript] },
|
|
1972
2047
|
nil?: true
|
|
1973
2048
|
|
|
1974
|
-
# @!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)
|
|
2049
|
+
# @!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)
|
|
1975
2050
|
# Some parameter documentations has been truncated, see
|
|
1976
2051
|
# {Revox::Models::CallCreateResponse::Call::CallAttempt} for more details.
|
|
1977
2052
|
#
|
|
@@ -1986,6 +2061,12 @@ module Revox
|
|
|
1986
2061
|
#
|
|
1987
2062
|
# @param ended_at [Object] The time the call ended.
|
|
1988
2063
|
#
|
|
2064
|
+
# @param handled_by_ai [Boolean] Whether the AI agent conducted the conversation on this attempt. False for a sil
|
|
2065
|
+
#
|
|
2066
|
+
# @param handled_by_human [Boolean] Whether a human operator conducted (part of) this attempt — a jump-in takeover o
|
|
2067
|
+
#
|
|
2068
|
+
# @param handled_by_user [Revox::Models::CallCreateResponse::Call::CallAttempt::HandledByUser, nil] The team member responsible for following up on this call.
|
|
2069
|
+
#
|
|
1989
2070
|
# @param phone_number [String] The phone number that was called. Formatted in E.164 format. Example: +123456789
|
|
1990
2071
|
#
|
|
1991
2072
|
# @param recording_url [String, nil] The URL of the audio recording of the call.
|
|
@@ -1998,6 +2079,8 @@ module Revox
|
|
|
1998
2079
|
#
|
|
1999
2080
|
# @param assistants_used [Array<String>, nil] Assistant node ids entered during this attempt, in traversal order.
|
|
2000
2081
|
#
|
|
2082
|
+
# @param email_log [Array<Revox::Models::CallCreateResponse::Call::CallAttempt::EmailLog>, nil] Notification emails sent in connection with the call, ordered oldest first (from
|
|
2083
|
+
#
|
|
2001
2084
|
# @param end_reason [Symbol, Revox::Models::CallCreateResponse::Call::CallAttempt::EndReason, nil] Reason for ending the call when ended_by is 'agent'. E.g. 'tool_end_call', 'voic
|
|
2002
2085
|
#
|
|
2003
2086
|
# @param ended_by [Symbol, Revox::Models::CallCreateResponse::Call::CallAttempt::EndedBy, nil] Who ended the call: 'agent' (AI agent), 'user' (caller/callee hung up), or 'syst
|
|
@@ -2006,6 +2089,8 @@ module Revox
|
|
|
2006
2089
|
#
|
|
2007
2090
|
# @param sms_log [Array<Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog>, nil] Automatic SMS sent after the call (voicemail and after-call), ordered oldest fir
|
|
2008
2091
|
#
|
|
2092
|
+
# @param speech_events [Array<Revox::Models::CallCreateResponse::Call::CallAttempt::SpeechEvent>, nil] Per-turn speech segments (VAD-derived) with timing and pipeline latencies, order
|
|
2093
|
+
#
|
|
2009
2094
|
# @param structured_output [Hash{Symbol=>Object}, nil] The data extracted from the call, using the structured output config from the pa
|
|
2010
2095
|
#
|
|
2011
2096
|
# @param transcript [Array<Revox::Models::CallCreateResponse::Call::CallAttempt::Transcript>, nil] The live transcript of the call, built in real time.
|
|
@@ -2029,6 +2114,41 @@ module Revox
|
|
|
2029
2114
|
# @return [Array<Symbol>]
|
|
2030
2115
|
end
|
|
2031
2116
|
|
|
2117
|
+
# @see Revox::Models::CallCreateResponse::Call::CallAttempt#handled_by_user
|
|
2118
|
+
class HandledByUser < Revox::Internal::Type::BaseModel
|
|
2119
|
+
# @!attribute id
|
|
2120
|
+
# The database user id of the assignee.
|
|
2121
|
+
#
|
|
2122
|
+
# @return [String]
|
|
2123
|
+
required :id, String
|
|
2124
|
+
|
|
2125
|
+
# @!attribute email
|
|
2126
|
+
#
|
|
2127
|
+
# @return [String]
|
|
2128
|
+
required :email, String
|
|
2129
|
+
|
|
2130
|
+
# @!attribute first_name
|
|
2131
|
+
#
|
|
2132
|
+
# @return [String, nil]
|
|
2133
|
+
required :first_name, String, nil?: true
|
|
2134
|
+
|
|
2135
|
+
# @!attribute last_name
|
|
2136
|
+
#
|
|
2137
|
+
# @return [String, nil]
|
|
2138
|
+
required :last_name, String, nil?: true
|
|
2139
|
+
|
|
2140
|
+
# @!method initialize(id:, email:, first_name:, last_name:)
|
|
2141
|
+
# The team member responsible for following up on this call.
|
|
2142
|
+
#
|
|
2143
|
+
# @param id [String] The database user id of the assignee.
|
|
2144
|
+
#
|
|
2145
|
+
# @param email [String]
|
|
2146
|
+
#
|
|
2147
|
+
# @param first_name [String, nil]
|
|
2148
|
+
#
|
|
2149
|
+
# @param last_name [String, nil]
|
|
2150
|
+
end
|
|
2151
|
+
|
|
2032
2152
|
# @see Revox::Models::CallCreateResponse::Call::CallAttempt#result
|
|
2033
2153
|
module Result
|
|
2034
2154
|
extend Revox::Internal::Type::Enum
|
|
@@ -2059,6 +2179,52 @@ module Revox
|
|
|
2059
2179
|
# @return [Array<Symbol>]
|
|
2060
2180
|
end
|
|
2061
2181
|
|
|
2182
|
+
class EmailLog < Revox::Internal::Type::BaseModel
|
|
2183
|
+
# @!attribute id
|
|
2184
|
+
#
|
|
2185
|
+
# @return [String]
|
|
2186
|
+
required :id, String
|
|
2187
|
+
|
|
2188
|
+
# @!attribute created_at
|
|
2189
|
+
# When the email was sent.
|
|
2190
|
+
#
|
|
2191
|
+
# @return [Object]
|
|
2192
|
+
required :created_at, Revox::Internal::Type::Unknown
|
|
2193
|
+
|
|
2194
|
+
# @!attribute from_address
|
|
2195
|
+
#
|
|
2196
|
+
# @return [String]
|
|
2197
|
+
required :from_address, String
|
|
2198
|
+
|
|
2199
|
+
# @!attribute resend_message_id
|
|
2200
|
+
#
|
|
2201
|
+
# @return [String, nil]
|
|
2202
|
+
required :resend_message_id, String, nil?: true
|
|
2203
|
+
|
|
2204
|
+
# @!attribute subject
|
|
2205
|
+
#
|
|
2206
|
+
# @return [String]
|
|
2207
|
+
required :subject, String
|
|
2208
|
+
|
|
2209
|
+
# @!attribute to_emails
|
|
2210
|
+
#
|
|
2211
|
+
# @return [Array<String>]
|
|
2212
|
+
required :to_emails, Revox::Internal::Type::ArrayOf[String]
|
|
2213
|
+
|
|
2214
|
+
# @!method initialize(id:, created_at:, from_address:, resend_message_id:, subject:, to_emails:)
|
|
2215
|
+
# @param id [String]
|
|
2216
|
+
#
|
|
2217
|
+
# @param created_at [Object] When the email was sent.
|
|
2218
|
+
#
|
|
2219
|
+
# @param from_address [String]
|
|
2220
|
+
#
|
|
2221
|
+
# @param resend_message_id [String, nil]
|
|
2222
|
+
#
|
|
2223
|
+
# @param subject [String]
|
|
2224
|
+
#
|
|
2225
|
+
# @param to_emails [Array<String>]
|
|
2226
|
+
end
|
|
2227
|
+
|
|
2062
2228
|
# Reason for ending the call when ended_by is 'agent'. E.g. 'tool_end_call',
|
|
2063
2229
|
# 'voicemail', 'transfer', 'ivr_no_navigate'.
|
|
2064
2230
|
#
|
|
@@ -2189,34 +2355,52 @@ module Revox
|
|
|
2189
2355
|
# @return [String]
|
|
2190
2356
|
required :message_body, String
|
|
2191
2357
|
|
|
2192
|
-
# @!attribute
|
|
2358
|
+
# @!attribute provider
|
|
2193
2359
|
#
|
|
2194
|
-
# @return [
|
|
2195
|
-
required :
|
|
2360
|
+
# @return [Symbol, Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog::Provider]
|
|
2361
|
+
required :provider, enum: -> { Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog::Provider }
|
|
2196
2362
|
|
|
2197
|
-
# @!attribute
|
|
2363
|
+
# @!attribute provider_message_id
|
|
2198
2364
|
#
|
|
2199
2365
|
# @return [String, nil]
|
|
2200
|
-
required :
|
|
2366
|
+
required :provider_message_id, String, nil?: true
|
|
2367
|
+
|
|
2368
|
+
# @!attribute to_phone_number
|
|
2369
|
+
#
|
|
2370
|
+
# @return [String]
|
|
2371
|
+
required :to_phone_number, String
|
|
2201
2372
|
|
|
2202
2373
|
# @!attribute type
|
|
2203
2374
|
#
|
|
2204
2375
|
# @return [Symbol, Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog::Type]
|
|
2205
2376
|
required :type, enum: -> { Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog::Type }
|
|
2206
2377
|
|
|
2207
|
-
# @!method initialize(id:, created_at:, message_body:,
|
|
2378
|
+
# @!method initialize(id:, created_at:, message_body:, provider:, provider_message_id:, to_phone_number:, type:)
|
|
2208
2379
|
# @param id [String]
|
|
2209
2380
|
#
|
|
2210
2381
|
# @param created_at [Object] When the SMS was sent.
|
|
2211
2382
|
#
|
|
2212
2383
|
# @param message_body [String]
|
|
2213
2384
|
#
|
|
2214
|
-
# @param
|
|
2385
|
+
# @param provider [Symbol, Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog::Provider]
|
|
2386
|
+
#
|
|
2387
|
+
# @param provider_message_id [String, nil]
|
|
2215
2388
|
#
|
|
2216
|
-
# @param
|
|
2389
|
+
# @param to_phone_number [String]
|
|
2217
2390
|
#
|
|
2218
2391
|
# @param type [Symbol, Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog::Type]
|
|
2219
2392
|
|
|
2393
|
+
# @see Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog#provider
|
|
2394
|
+
module Provider
|
|
2395
|
+
extend Revox::Internal::Type::Enum
|
|
2396
|
+
|
|
2397
|
+
TWILIO = :twilio
|
|
2398
|
+
VONAGE = :vonage
|
|
2399
|
+
|
|
2400
|
+
# @!method self.values
|
|
2401
|
+
# @return [Array<Symbol>]
|
|
2402
|
+
end
|
|
2403
|
+
|
|
2220
2404
|
# @see Revox::Models::CallCreateResponse::Call::CallAttempt::SMSLog#type
|
|
2221
2405
|
module Type
|
|
2222
2406
|
extend Revox::Internal::Type::Enum
|
|
@@ -2230,6 +2414,125 @@ module Revox
|
|
|
2230
2414
|
end
|
|
2231
2415
|
end
|
|
2232
2416
|
|
|
2417
|
+
class SpeechEvent < Revox::Internal::Type::BaseModel
|
|
2418
|
+
# @!attribute id
|
|
2419
|
+
#
|
|
2420
|
+
# @return [String]
|
|
2421
|
+
required :id, String
|
|
2422
|
+
|
|
2423
|
+
# @!attribute is_real_turn
|
|
2424
|
+
# False when the segment was flagged as noise/blip rather than a meaningful turn.
|
|
2425
|
+
#
|
|
2426
|
+
# @return [Boolean]
|
|
2427
|
+
required :is_real_turn, Revox::Internal::Type::Boolean
|
|
2428
|
+
|
|
2429
|
+
# @!attribute llm_system_prompt
|
|
2430
|
+
# Agent-only: despite the name, the whole prompt the LLM was given for this turn —
|
|
2431
|
+
# system instructions plus conversation history — as JSON.
|
|
2432
|
+
#
|
|
2433
|
+
# @return [String, nil]
|
|
2434
|
+
required :llm_system_prompt, String, nil?: true
|
|
2435
|
+
|
|
2436
|
+
# @!attribute llm_ttft_ms
|
|
2437
|
+
# Agent-only: LLM time-to-first-token for the reply, in ms.
|
|
2438
|
+
#
|
|
2439
|
+
# @return [Float, nil]
|
|
2440
|
+
required :llm_ttft_ms, Float, nil?: true
|
|
2441
|
+
|
|
2442
|
+
# @!attribute llm_winner_model
|
|
2443
|
+
# Agent-only: the model that produced the reply — the winning leg when the LLM is
|
|
2444
|
+
# a race, which is also the model `llm_ttft_ms` describes.
|
|
2445
|
+
#
|
|
2446
|
+
# @return [String, nil]
|
|
2447
|
+
required :llm_winner_model, String, nil?: true
|
|
2448
|
+
|
|
2449
|
+
# @!attribute speaker
|
|
2450
|
+
# Who was speaking during this segment.
|
|
2451
|
+
#
|
|
2452
|
+
# @return [Symbol, Revox::Models::CallCreateResponse::Call::CallAttempt::SpeechEvent::Speaker]
|
|
2453
|
+
required :speaker, enum: -> { Revox::Models::CallCreateResponse::Call::CallAttempt::SpeechEvent::Speaker }
|
|
2454
|
+
|
|
2455
|
+
# @!attribute started_speaking_at_ms
|
|
2456
|
+
# Milliseconds since session start when speech began.
|
|
2457
|
+
#
|
|
2458
|
+
# @return [Float]
|
|
2459
|
+
required :started_speaking_at_ms, Float
|
|
2460
|
+
|
|
2461
|
+
# @!attribute stopped_speaking_at_ms
|
|
2462
|
+
# Milliseconds since session start when speech ended. Null when the session ended
|
|
2463
|
+
# before the turn closed.
|
|
2464
|
+
#
|
|
2465
|
+
# @return [Float, nil]
|
|
2466
|
+
required :stopped_speaking_at_ms, Float, nil?: true
|
|
2467
|
+
|
|
2468
|
+
# @!attribute stt_transcription_delay_ms
|
|
2469
|
+
# User-only: time from end-of-speech to final transcript, in ms.
|
|
2470
|
+
#
|
|
2471
|
+
# @return [Float, nil]
|
|
2472
|
+
required :stt_transcription_delay_ms, Float, nil?: true
|
|
2473
|
+
|
|
2474
|
+
# @!attribute transcript
|
|
2475
|
+
# Recognized text for this segment, when available.
|
|
2476
|
+
#
|
|
2477
|
+
# @return [String, nil]
|
|
2478
|
+
required :transcript, String, nil?: true
|
|
2479
|
+
|
|
2480
|
+
# @!attribute tts_ttfb_ms
|
|
2481
|
+
# Agent-only: TTS time-to-first-audio-byte for the reply, in ms.
|
|
2482
|
+
#
|
|
2483
|
+
# @return [Float, nil]
|
|
2484
|
+
required :tts_ttfb_ms, Float, nil?: true
|
|
2485
|
+
|
|
2486
|
+
# @!attribute was_cut
|
|
2487
|
+
# Agent-only: true when the agent's audio was interrupted (real or auto-resumed).
|
|
2488
|
+
# Null on user segments.
|
|
2489
|
+
#
|
|
2490
|
+
# @return [Boolean, nil]
|
|
2491
|
+
required :was_cut, Revox::Internal::Type::Boolean, nil?: true
|
|
2492
|
+
|
|
2493
|
+
# @!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:)
|
|
2494
|
+
# Some parameter documentations has been truncated, see
|
|
2495
|
+
# {Revox::Models::CallCreateResponse::Call::CallAttempt::SpeechEvent} for more
|
|
2496
|
+
# details.
|
|
2497
|
+
#
|
|
2498
|
+
# @param id [String]
|
|
2499
|
+
#
|
|
2500
|
+
# @param is_real_turn [Boolean] False when the segment was flagged as noise/blip rather than a meaningful turn.
|
|
2501
|
+
#
|
|
2502
|
+
# @param llm_system_prompt [String, nil] Agent-only: despite the name, the whole prompt the LLM was given for this turn —
|
|
2503
|
+
#
|
|
2504
|
+
# @param llm_ttft_ms [Float, nil] Agent-only: LLM time-to-first-token for the reply, in ms.
|
|
2505
|
+
#
|
|
2506
|
+
# @param llm_winner_model [String, nil] Agent-only: the model that produced the reply — the winning leg when the LLM is
|
|
2507
|
+
#
|
|
2508
|
+
# @param speaker [Symbol, Revox::Models::CallCreateResponse::Call::CallAttempt::SpeechEvent::Speaker] Who was speaking during this segment.
|
|
2509
|
+
#
|
|
2510
|
+
# @param started_speaking_at_ms [Float] Milliseconds since session start when speech began.
|
|
2511
|
+
#
|
|
2512
|
+
# @param stopped_speaking_at_ms [Float, nil] Milliseconds since session start when speech ended. Null when the session ended
|
|
2513
|
+
#
|
|
2514
|
+
# @param stt_transcription_delay_ms [Float, nil] User-only: time from end-of-speech to final transcript, in ms.
|
|
2515
|
+
#
|
|
2516
|
+
# @param transcript [String, nil] Recognized text for this segment, when available.
|
|
2517
|
+
#
|
|
2518
|
+
# @param tts_ttfb_ms [Float, nil] Agent-only: TTS time-to-first-audio-byte for the reply, in ms.
|
|
2519
|
+
#
|
|
2520
|
+
# @param was_cut [Boolean, nil] Agent-only: true when the agent's audio was interrupted (real or auto-resumed).
|
|
2521
|
+
|
|
2522
|
+
# Who was speaking during this segment.
|
|
2523
|
+
#
|
|
2524
|
+
# @see Revox::Models::CallCreateResponse::Call::CallAttempt::SpeechEvent#speaker
|
|
2525
|
+
module Speaker
|
|
2526
|
+
extend Revox::Internal::Type::Enum
|
|
2527
|
+
|
|
2528
|
+
USER = :user
|
|
2529
|
+
AGENT = :agent
|
|
2530
|
+
|
|
2531
|
+
# @!method self.values
|
|
2532
|
+
# @return [Array<Symbol>]
|
|
2533
|
+
end
|
|
2534
|
+
end
|
|
2535
|
+
|
|
2233
2536
|
class Transcript < Revox::Internal::Type::BaseModel
|
|
2234
2537
|
# @!attribute content
|
|
2235
2538
|
#
|
|
@@ -2389,7 +2692,8 @@ module Revox
|
|
|
2389
2692
|
required :calling_window_start_time, String
|
|
2390
2693
|
|
|
2391
2694
|
# @!attribute retry_delay_seconds
|
|
2392
|
-
# Delay between retry attempts in seconds.
|
|
2695
|
+
# Delay between retry attempts in seconds. 0 retries as soon as the calling window
|
|
2696
|
+
# allows. Default: 7200 (2 hours).
|
|
2393
2697
|
#
|
|
2394
2698
|
# @return [Integer]
|
|
2395
2699
|
required :retry_delay_seconds, Integer
|
|
@@ -2403,7 +2707,7 @@ module Revox
|
|
|
2403
2707
|
#
|
|
2404
2708
|
# @param calling_window_start_time [String] Start time for the calling window in the recipient's timezone (or timezone_overr
|
|
2405
2709
|
#
|
|
2406
|
-
# @param retry_delay_seconds [Integer] Delay between retry attempts in seconds.
|
|
2710
|
+
# @param retry_delay_seconds [Integer] Delay between retry attempts in seconds. 0 retries as soon as the calling window
|
|
2407
2711
|
end
|
|
2408
2712
|
end
|
|
2409
2713
|
|
|
@@ -2441,18 +2745,24 @@ module Revox
|
|
|
2441
2745
|
# @return [String, nil]
|
|
2442
2746
|
required :first_name, String, nil?: true
|
|
2443
2747
|
|
|
2748
|
+
# @!attribute job_title
|
|
2749
|
+
#
|
|
2750
|
+
# @return [String, nil]
|
|
2751
|
+
required :job_title, String, nil?: true
|
|
2752
|
+
|
|
2444
2753
|
# @!attribute last_name
|
|
2445
2754
|
#
|
|
2446
2755
|
# @return [String, nil]
|
|
2447
2756
|
required :last_name, String, nil?: true
|
|
2448
2757
|
|
|
2449
|
-
# @!method initialize(company:, email:, first_name:, last_name:)
|
|
2758
|
+
# @!method initialize(company:, email:, first_name:, job_title:, last_name:)
|
|
2450
2759
|
# Magic contact variables (prospect identity) extracted from the call's input data
|
|
2451
2760
|
# and transcript.
|
|
2452
2761
|
#
|
|
2453
2762
|
# @param company [String, nil]
|
|
2454
2763
|
# @param email [String, nil]
|
|
2455
2764
|
# @param first_name [String, nil]
|
|
2765
|
+
# @param job_title [String, nil]
|
|
2456
2766
|
# @param last_name [String, nil]
|
|
2457
2767
|
end
|
|
2458
2768
|
|
|
@@ -2497,6 +2807,29 @@ module Revox
|
|
|
2497
2807
|
# @return [Object]
|
|
2498
2808
|
required :ended_at, Revox::Internal::Type::Unknown
|
|
2499
2809
|
|
|
2810
|
+
# @!attribute handled_by_ai
|
|
2811
|
+
# Whether the AI agent conducted the conversation on this attempt. False for a
|
|
2812
|
+
# silent speed-dial probe (whose agent only detects a human) and for attempts that
|
|
2813
|
+
# were never answered.
|
|
2814
|
+
#
|
|
2815
|
+
# @return [Boolean]
|
|
2816
|
+
required :handled_by_ai, Revox::Internal::Type::Boolean
|
|
2817
|
+
|
|
2818
|
+
# @!attribute handled_by_human
|
|
2819
|
+
# Whether a human operator conducted (part of) this attempt — a jump-in takeover
|
|
2820
|
+
# or a speed-dial operator connection (both stamp human_takeover_at).
|
|
2821
|
+
#
|
|
2822
|
+
# @return [Boolean]
|
|
2823
|
+
required :handled_by_human, Revox::Internal::Type::Boolean
|
|
2824
|
+
|
|
2825
|
+
# @!attribute handled_by_user
|
|
2826
|
+
# The team member responsible for following up on this call.
|
|
2827
|
+
#
|
|
2828
|
+
# @return [Revox::Models::CallCreateResponse::Call::LastCallAttempt::HandledByUser, nil]
|
|
2829
|
+
required :handled_by_user,
|
|
2830
|
+
-> { Revox::Models::CallCreateResponse::Call::LastCallAttempt::HandledByUser },
|
|
2831
|
+
nil?: true
|
|
2832
|
+
|
|
2500
2833
|
# @!attribute phone_number
|
|
2501
2834
|
# The phone number that was called. Formatted in E.164 format. Example:
|
|
2502
2835
|
# +1234567890
|
|
@@ -2535,6 +2868,15 @@ module Revox
|
|
|
2535
2868
|
# @return [Array<String>, nil]
|
|
2536
2869
|
optional :assistants_used, Revox::Internal::Type::ArrayOf[String], nil?: true
|
|
2537
2870
|
|
|
2871
|
+
# @!attribute email_log
|
|
2872
|
+
# Notification emails sent in connection with the call, ordered oldest first
|
|
2873
|
+
# (from/to addresses, subject, sent time).
|
|
2874
|
+
#
|
|
2875
|
+
# @return [Array<Revox::Models::CallCreateResponse::Call::LastCallAttempt::EmailLog>, nil]
|
|
2876
|
+
optional :email_log,
|
|
2877
|
+
-> { Revox::Internal::Type::ArrayOf[Revox::Models::CallCreateResponse::Call::LastCallAttempt::EmailLog] },
|
|
2878
|
+
nil?: true
|
|
2879
|
+
|
|
2538
2880
|
# @!attribute end_reason
|
|
2539
2881
|
# Reason for ending the call when ended_by is 'agent'. E.g. 'tool_end_call',
|
|
2540
2882
|
# 'voicemail', 'transfer', 'ivr_no_navigate'.
|
|
@@ -2572,6 +2914,16 @@ module Revox
|
|
|
2572
2914
|
-> { Revox::Internal::Type::ArrayOf[Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog] },
|
|
2573
2915
|
nil?: true
|
|
2574
2916
|
|
|
2917
|
+
# @!attribute speech_events
|
|
2918
|
+
# Per-turn speech segments (VAD-derived) with timing and pipeline latencies,
|
|
2919
|
+
# ordered by started_speaking_at_ms. Empty for calls recorded before this was
|
|
2920
|
+
# tracked or for realtime sessions that don't emit them.
|
|
2921
|
+
#
|
|
2922
|
+
# @return [Array<Revox::Models::CallCreateResponse::Call::LastCallAttempt::SpeechEvent>, nil]
|
|
2923
|
+
optional :speech_events,
|
|
2924
|
+
-> { Revox::Internal::Type::ArrayOf[Revox::Models::CallCreateResponse::Call::LastCallAttempt::SpeechEvent] },
|
|
2925
|
+
nil?: true
|
|
2926
|
+
|
|
2575
2927
|
# @!attribute structured_output
|
|
2576
2928
|
# The data extracted from the call, using the structured output config from the
|
|
2577
2929
|
# parent call object.
|
|
@@ -2589,7 +2941,7 @@ module Revox
|
|
|
2589
2941
|
-> { Revox::Internal::Type::ArrayOf[Revox::Models::CallCreateResponse::Call::LastCallAttempt::Transcript] },
|
|
2590
2942
|
nil?: true
|
|
2591
2943
|
|
|
2592
|
-
# @!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)
|
|
2944
|
+
# @!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)
|
|
2593
2945
|
# Some parameter documentations has been truncated, see
|
|
2594
2946
|
# {Revox::Models::CallCreateResponse::Call::LastCallAttempt} for more details.
|
|
2595
2947
|
#
|
|
@@ -2604,6 +2956,12 @@ module Revox
|
|
|
2604
2956
|
#
|
|
2605
2957
|
# @param ended_at [Object] The time the call ended.
|
|
2606
2958
|
#
|
|
2959
|
+
# @param handled_by_ai [Boolean] Whether the AI agent conducted the conversation on this attempt. False for a sil
|
|
2960
|
+
#
|
|
2961
|
+
# @param handled_by_human [Boolean] Whether a human operator conducted (part of) this attempt — a jump-in takeover o
|
|
2962
|
+
#
|
|
2963
|
+
# @param handled_by_user [Revox::Models::CallCreateResponse::Call::LastCallAttempt::HandledByUser, nil] The team member responsible for following up on this call.
|
|
2964
|
+
#
|
|
2607
2965
|
# @param phone_number [String] The phone number that was called. Formatted in E.164 format. Example: +123456789
|
|
2608
2966
|
#
|
|
2609
2967
|
# @param recording_url [String, nil] The URL of the audio recording of the call.
|
|
@@ -2616,6 +2974,8 @@ module Revox
|
|
|
2616
2974
|
#
|
|
2617
2975
|
# @param assistants_used [Array<String>, nil] Assistant node ids entered during this attempt, in traversal order.
|
|
2618
2976
|
#
|
|
2977
|
+
# @param email_log [Array<Revox::Models::CallCreateResponse::Call::LastCallAttempt::EmailLog>, nil] Notification emails sent in connection with the call, ordered oldest first (from
|
|
2978
|
+
#
|
|
2619
2979
|
# @param end_reason [Symbol, Revox::Models::CallCreateResponse::Call::LastCallAttempt::EndReason, nil] Reason for ending the call when ended_by is 'agent'. E.g. 'tool_end_call', 'voic
|
|
2620
2980
|
#
|
|
2621
2981
|
# @param ended_by [Symbol, Revox::Models::CallCreateResponse::Call::LastCallAttempt::EndedBy, nil] Who ended the call: 'agent' (AI agent), 'user' (caller/callee hung up), or 'syst
|
|
@@ -2624,6 +2984,8 @@ module Revox
|
|
|
2624
2984
|
#
|
|
2625
2985
|
# @param sms_log [Array<Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog>, nil] Automatic SMS sent after the call (voicemail and after-call), ordered oldest fir
|
|
2626
2986
|
#
|
|
2987
|
+
# @param speech_events [Array<Revox::Models::CallCreateResponse::Call::LastCallAttempt::SpeechEvent>, nil] Per-turn speech segments (VAD-derived) with timing and pipeline latencies, order
|
|
2988
|
+
#
|
|
2627
2989
|
# @param structured_output [Hash{Symbol=>Object}, nil] The data extracted from the call, using the structured output config from the pa
|
|
2628
2990
|
#
|
|
2629
2991
|
# @param transcript [Array<Revox::Models::CallCreateResponse::Call::LastCallAttempt::Transcript>, nil] The live transcript of the call, built in real time.
|
|
@@ -2647,6 +3009,41 @@ module Revox
|
|
|
2647
3009
|
# @return [Array<Symbol>]
|
|
2648
3010
|
end
|
|
2649
3011
|
|
|
3012
|
+
# @see Revox::Models::CallCreateResponse::Call::LastCallAttempt#handled_by_user
|
|
3013
|
+
class HandledByUser < Revox::Internal::Type::BaseModel
|
|
3014
|
+
# @!attribute id
|
|
3015
|
+
# The database user id of the assignee.
|
|
3016
|
+
#
|
|
3017
|
+
# @return [String]
|
|
3018
|
+
required :id, String
|
|
3019
|
+
|
|
3020
|
+
# @!attribute email
|
|
3021
|
+
#
|
|
3022
|
+
# @return [String]
|
|
3023
|
+
required :email, String
|
|
3024
|
+
|
|
3025
|
+
# @!attribute first_name
|
|
3026
|
+
#
|
|
3027
|
+
# @return [String, nil]
|
|
3028
|
+
required :first_name, String, nil?: true
|
|
3029
|
+
|
|
3030
|
+
# @!attribute last_name
|
|
3031
|
+
#
|
|
3032
|
+
# @return [String, nil]
|
|
3033
|
+
required :last_name, String, nil?: true
|
|
3034
|
+
|
|
3035
|
+
# @!method initialize(id:, email:, first_name:, last_name:)
|
|
3036
|
+
# The team member responsible for following up on this call.
|
|
3037
|
+
#
|
|
3038
|
+
# @param id [String] The database user id of the assignee.
|
|
3039
|
+
#
|
|
3040
|
+
# @param email [String]
|
|
3041
|
+
#
|
|
3042
|
+
# @param first_name [String, nil]
|
|
3043
|
+
#
|
|
3044
|
+
# @param last_name [String, nil]
|
|
3045
|
+
end
|
|
3046
|
+
|
|
2650
3047
|
# @see Revox::Models::CallCreateResponse::Call::LastCallAttempt#result
|
|
2651
3048
|
module Result
|
|
2652
3049
|
extend Revox::Internal::Type::Enum
|
|
@@ -2677,6 +3074,52 @@ module Revox
|
|
|
2677
3074
|
# @return [Array<Symbol>]
|
|
2678
3075
|
end
|
|
2679
3076
|
|
|
3077
|
+
class EmailLog < Revox::Internal::Type::BaseModel
|
|
3078
|
+
# @!attribute id
|
|
3079
|
+
#
|
|
3080
|
+
# @return [String]
|
|
3081
|
+
required :id, String
|
|
3082
|
+
|
|
3083
|
+
# @!attribute created_at
|
|
3084
|
+
# When the email was sent.
|
|
3085
|
+
#
|
|
3086
|
+
# @return [Object]
|
|
3087
|
+
required :created_at, Revox::Internal::Type::Unknown
|
|
3088
|
+
|
|
3089
|
+
# @!attribute from_address
|
|
3090
|
+
#
|
|
3091
|
+
# @return [String]
|
|
3092
|
+
required :from_address, String
|
|
3093
|
+
|
|
3094
|
+
# @!attribute resend_message_id
|
|
3095
|
+
#
|
|
3096
|
+
# @return [String, nil]
|
|
3097
|
+
required :resend_message_id, String, nil?: true
|
|
3098
|
+
|
|
3099
|
+
# @!attribute subject
|
|
3100
|
+
#
|
|
3101
|
+
# @return [String]
|
|
3102
|
+
required :subject, String
|
|
3103
|
+
|
|
3104
|
+
# @!attribute to_emails
|
|
3105
|
+
#
|
|
3106
|
+
# @return [Array<String>]
|
|
3107
|
+
required :to_emails, Revox::Internal::Type::ArrayOf[String]
|
|
3108
|
+
|
|
3109
|
+
# @!method initialize(id:, created_at:, from_address:, resend_message_id:, subject:, to_emails:)
|
|
3110
|
+
# @param id [String]
|
|
3111
|
+
#
|
|
3112
|
+
# @param created_at [Object] When the email was sent.
|
|
3113
|
+
#
|
|
3114
|
+
# @param from_address [String]
|
|
3115
|
+
#
|
|
3116
|
+
# @param resend_message_id [String, nil]
|
|
3117
|
+
#
|
|
3118
|
+
# @param subject [String]
|
|
3119
|
+
#
|
|
3120
|
+
# @param to_emails [Array<String>]
|
|
3121
|
+
end
|
|
3122
|
+
|
|
2680
3123
|
# Reason for ending the call when ended_by is 'agent'. E.g. 'tool_end_call',
|
|
2681
3124
|
# 'voicemail', 'transfer', 'ivr_no_navigate'.
|
|
2682
3125
|
#
|
|
@@ -2807,34 +3250,53 @@ module Revox
|
|
|
2807
3250
|
# @return [String]
|
|
2808
3251
|
required :message_body, String
|
|
2809
3252
|
|
|
2810
|
-
# @!attribute
|
|
3253
|
+
# @!attribute provider
|
|
2811
3254
|
#
|
|
2812
|
-
# @return [
|
|
2813
|
-
required :
|
|
3255
|
+
# @return [Symbol, Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog::Provider]
|
|
3256
|
+
required :provider,
|
|
3257
|
+
enum: -> { Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog::Provider }
|
|
2814
3258
|
|
|
2815
|
-
# @!attribute
|
|
3259
|
+
# @!attribute provider_message_id
|
|
2816
3260
|
#
|
|
2817
3261
|
# @return [String, nil]
|
|
2818
|
-
required :
|
|
3262
|
+
required :provider_message_id, String, nil?: true
|
|
3263
|
+
|
|
3264
|
+
# @!attribute to_phone_number
|
|
3265
|
+
#
|
|
3266
|
+
# @return [String]
|
|
3267
|
+
required :to_phone_number, String
|
|
2819
3268
|
|
|
2820
3269
|
# @!attribute type
|
|
2821
3270
|
#
|
|
2822
3271
|
# @return [Symbol, Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog::Type]
|
|
2823
3272
|
required :type, enum: -> { Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog::Type }
|
|
2824
3273
|
|
|
2825
|
-
# @!method initialize(id:, created_at:, message_body:,
|
|
3274
|
+
# @!method initialize(id:, created_at:, message_body:, provider:, provider_message_id:, to_phone_number:, type:)
|
|
2826
3275
|
# @param id [String]
|
|
2827
3276
|
#
|
|
2828
3277
|
# @param created_at [Object] When the SMS was sent.
|
|
2829
3278
|
#
|
|
2830
3279
|
# @param message_body [String]
|
|
2831
3280
|
#
|
|
2832
|
-
# @param
|
|
3281
|
+
# @param provider [Symbol, Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog::Provider]
|
|
3282
|
+
#
|
|
3283
|
+
# @param provider_message_id [String, nil]
|
|
2833
3284
|
#
|
|
2834
|
-
# @param
|
|
3285
|
+
# @param to_phone_number [String]
|
|
2835
3286
|
#
|
|
2836
3287
|
# @param type [Symbol, Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog::Type]
|
|
2837
3288
|
|
|
3289
|
+
# @see Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog#provider
|
|
3290
|
+
module Provider
|
|
3291
|
+
extend Revox::Internal::Type::Enum
|
|
3292
|
+
|
|
3293
|
+
TWILIO = :twilio
|
|
3294
|
+
VONAGE = :vonage
|
|
3295
|
+
|
|
3296
|
+
# @!method self.values
|
|
3297
|
+
# @return [Array<Symbol>]
|
|
3298
|
+
end
|
|
3299
|
+
|
|
2838
3300
|
# @see Revox::Models::CallCreateResponse::Call::LastCallAttempt::SMSLog#type
|
|
2839
3301
|
module Type
|
|
2840
3302
|
extend Revox::Internal::Type::Enum
|
|
@@ -2848,6 +3310,126 @@ module Revox
|
|
|
2848
3310
|
end
|
|
2849
3311
|
end
|
|
2850
3312
|
|
|
3313
|
+
class SpeechEvent < Revox::Internal::Type::BaseModel
|
|
3314
|
+
# @!attribute id
|
|
3315
|
+
#
|
|
3316
|
+
# @return [String]
|
|
3317
|
+
required :id, String
|
|
3318
|
+
|
|
3319
|
+
# @!attribute is_real_turn
|
|
3320
|
+
# False when the segment was flagged as noise/blip rather than a meaningful turn.
|
|
3321
|
+
#
|
|
3322
|
+
# @return [Boolean]
|
|
3323
|
+
required :is_real_turn, Revox::Internal::Type::Boolean
|
|
3324
|
+
|
|
3325
|
+
# @!attribute llm_system_prompt
|
|
3326
|
+
# Agent-only: despite the name, the whole prompt the LLM was given for this turn —
|
|
3327
|
+
# system instructions plus conversation history — as JSON.
|
|
3328
|
+
#
|
|
3329
|
+
# @return [String, nil]
|
|
3330
|
+
required :llm_system_prompt, String, nil?: true
|
|
3331
|
+
|
|
3332
|
+
# @!attribute llm_ttft_ms
|
|
3333
|
+
# Agent-only: LLM time-to-first-token for the reply, in ms.
|
|
3334
|
+
#
|
|
3335
|
+
# @return [Float, nil]
|
|
3336
|
+
required :llm_ttft_ms, Float, nil?: true
|
|
3337
|
+
|
|
3338
|
+
# @!attribute llm_winner_model
|
|
3339
|
+
# Agent-only: the model that produced the reply — the winning leg when the LLM is
|
|
3340
|
+
# a race, which is also the model `llm_ttft_ms` describes.
|
|
3341
|
+
#
|
|
3342
|
+
# @return [String, nil]
|
|
3343
|
+
required :llm_winner_model, String, nil?: true
|
|
3344
|
+
|
|
3345
|
+
# @!attribute speaker
|
|
3346
|
+
# Who was speaking during this segment.
|
|
3347
|
+
#
|
|
3348
|
+
# @return [Symbol, Revox::Models::CallCreateResponse::Call::LastCallAttempt::SpeechEvent::Speaker]
|
|
3349
|
+
required :speaker,
|
|
3350
|
+
enum: -> { Revox::Models::CallCreateResponse::Call::LastCallAttempt::SpeechEvent::Speaker }
|
|
3351
|
+
|
|
3352
|
+
# @!attribute started_speaking_at_ms
|
|
3353
|
+
# Milliseconds since session start when speech began.
|
|
3354
|
+
#
|
|
3355
|
+
# @return [Float]
|
|
3356
|
+
required :started_speaking_at_ms, Float
|
|
3357
|
+
|
|
3358
|
+
# @!attribute stopped_speaking_at_ms
|
|
3359
|
+
# Milliseconds since session start when speech ended. Null when the session ended
|
|
3360
|
+
# before the turn closed.
|
|
3361
|
+
#
|
|
3362
|
+
# @return [Float, nil]
|
|
3363
|
+
required :stopped_speaking_at_ms, Float, nil?: true
|
|
3364
|
+
|
|
3365
|
+
# @!attribute stt_transcription_delay_ms
|
|
3366
|
+
# User-only: time from end-of-speech to final transcript, in ms.
|
|
3367
|
+
#
|
|
3368
|
+
# @return [Float, nil]
|
|
3369
|
+
required :stt_transcription_delay_ms, Float, nil?: true
|
|
3370
|
+
|
|
3371
|
+
# @!attribute transcript
|
|
3372
|
+
# Recognized text for this segment, when available.
|
|
3373
|
+
#
|
|
3374
|
+
# @return [String, nil]
|
|
3375
|
+
required :transcript, String, nil?: true
|
|
3376
|
+
|
|
3377
|
+
# @!attribute tts_ttfb_ms
|
|
3378
|
+
# Agent-only: TTS time-to-first-audio-byte for the reply, in ms.
|
|
3379
|
+
#
|
|
3380
|
+
# @return [Float, nil]
|
|
3381
|
+
required :tts_ttfb_ms, Float, nil?: true
|
|
3382
|
+
|
|
3383
|
+
# @!attribute was_cut
|
|
3384
|
+
# Agent-only: true when the agent's audio was interrupted (real or auto-resumed).
|
|
3385
|
+
# Null on user segments.
|
|
3386
|
+
#
|
|
3387
|
+
# @return [Boolean, nil]
|
|
3388
|
+
required :was_cut, Revox::Internal::Type::Boolean, nil?: true
|
|
3389
|
+
|
|
3390
|
+
# @!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:)
|
|
3391
|
+
# Some parameter documentations has been truncated, see
|
|
3392
|
+
# {Revox::Models::CallCreateResponse::Call::LastCallAttempt::SpeechEvent} for more
|
|
3393
|
+
# details.
|
|
3394
|
+
#
|
|
3395
|
+
# @param id [String]
|
|
3396
|
+
#
|
|
3397
|
+
# @param is_real_turn [Boolean] False when the segment was flagged as noise/blip rather than a meaningful turn.
|
|
3398
|
+
#
|
|
3399
|
+
# @param llm_system_prompt [String, nil] Agent-only: despite the name, the whole prompt the LLM was given for this turn —
|
|
3400
|
+
#
|
|
3401
|
+
# @param llm_ttft_ms [Float, nil] Agent-only: LLM time-to-first-token for the reply, in ms.
|
|
3402
|
+
#
|
|
3403
|
+
# @param llm_winner_model [String, nil] Agent-only: the model that produced the reply — the winning leg when the LLM is
|
|
3404
|
+
#
|
|
3405
|
+
# @param speaker [Symbol, Revox::Models::CallCreateResponse::Call::LastCallAttempt::SpeechEvent::Speaker] Who was speaking during this segment.
|
|
3406
|
+
#
|
|
3407
|
+
# @param started_speaking_at_ms [Float] Milliseconds since session start when speech began.
|
|
3408
|
+
#
|
|
3409
|
+
# @param stopped_speaking_at_ms [Float, nil] Milliseconds since session start when speech ended. Null when the session ended
|
|
3410
|
+
#
|
|
3411
|
+
# @param stt_transcription_delay_ms [Float, nil] User-only: time from end-of-speech to final transcript, in ms.
|
|
3412
|
+
#
|
|
3413
|
+
# @param transcript [String, nil] Recognized text for this segment, when available.
|
|
3414
|
+
#
|
|
3415
|
+
# @param tts_ttfb_ms [Float, nil] Agent-only: TTS time-to-first-audio-byte for the reply, in ms.
|
|
3416
|
+
#
|
|
3417
|
+
# @param was_cut [Boolean, nil] Agent-only: true when the agent's audio was interrupted (real or auto-resumed).
|
|
3418
|
+
|
|
3419
|
+
# Who was speaking during this segment.
|
|
3420
|
+
#
|
|
3421
|
+
# @see Revox::Models::CallCreateResponse::Call::LastCallAttempt::SpeechEvent#speaker
|
|
3422
|
+
module Speaker
|
|
3423
|
+
extend Revox::Internal::Type::Enum
|
|
3424
|
+
|
|
3425
|
+
USER = :user
|
|
3426
|
+
AGENT = :agent
|
|
3427
|
+
|
|
3428
|
+
# @!method self.values
|
|
3429
|
+
# @return [Array<Symbol>]
|
|
3430
|
+
end
|
|
3431
|
+
end
|
|
3432
|
+
|
|
2851
3433
|
class Transcript < Revox::Internal::Type::BaseModel
|
|
2852
3434
|
# @!attribute content
|
|
2853
3435
|
#
|
|
@@ -3081,6 +3663,7 @@ module Revox
|
|
|
3081
3663
|
QUEUED_FOR_CALLING = :queued_for_calling
|
|
3082
3664
|
CALLING = :calling
|
|
3083
3665
|
POST_PROCESSING = :post_processing
|
|
3666
|
+
NOT_LAUNCHED = :not_launched
|
|
3084
3667
|
SCHEDULED = :scheduled
|
|
3085
3668
|
PAUSED = :paused
|
|
3086
3669
|
COMPLETED = :completed
|
|
@@ -3101,9 +3684,6 @@ module Revox
|
|
|
3101
3684
|
INTERESTED = :interested
|
|
3102
3685
|
COMPLETED = :completed
|
|
3103
3686
|
REQUESTED_CALLBACK_LATER = :requested_callback_later
|
|
3104
|
-
REQUESTED_CALLBACK_NEW_NUMBER = :requested_callback_new_number
|
|
3105
|
-
DO_NOT_CONTACT = :do_not_contact
|
|
3106
|
-
AI_AVERSE = :ai_averse
|
|
3107
3687
|
|
|
3108
3688
|
# @!method self.values
|
|
3109
3689
|
# @return [Array<Symbol>]
|