With Contact Center AI Platform, a virtual agent can transfer a chat session to another virtual agent without intervention by a human agent. This improves scalability for complex multi-flow virtual agent designs. Only support agents support virtual agent to virtual agent transfers. Other virtual agent types, such as virtual task assistants, don't support this type of transfer.
Virtual agent to virtual agent transfers don't work with deflections.
Terminology
Transfer: The reassignment of an agent handling a session.
Escalation: A type of transfer where a virtual agent is "escalated" to another agent.
Data parameters: Parameters passed to a virtual agent when a session starts. These are passed to Dialogflow using
/get_welcome_message
.Session variables: Variables from Intent Response and End User Response. Session variables are stored for a call or chat session and persist until the session ends. The
capture_type
session variable includes thedata_parameters
value, which is passed to a newly assigned virtual agent.hide_va_to_va_system_messages: A parameter in
PATCH /v1/settings/chat
that lets you hide from end-users the system messages from the web SDK and mobile SDKs for virtual agent to virtual agent transfers.
Virtual agent to virtual agent transfers
This sections explains virtual agent to virtual agent transfers at a high level.
Initiation: A virtual agent transfers a chat session to another virtual agent assigned to a queue.
allow_virtual_agent
must betrue
and there must be a virtual agent available in the destination queue. For more information, Session variable.Data transfer: Key-value pairs of session variables with the
data_parameters
capture type are passed from the source virtual agent to the destination virtual agent.New participant : A new participant is created with a
waiting
status, and theChatProviderService
makes the new virtual agent join the chat. TheChatProgressService
then updates the participant status toconnected
.Status updates: The chat status is updated to
va_assigned
, and a connection to Dialogflow is established.Escalation cancellation: The previous escalation is canceled if it's escalating in
Chatbot::EscalationServiceListener::on_escalation_created
.Message suppression:
hide_va_to_va_system_messages
lets you suppress chat transfer system messages to end-users using the web SDK and mobile SDKs.
Dialogflow custom payloads
This section contains examples of Dialogflow custom payloads.
Escalation payload
Escalation payload example:
{
"ujet": {
"type": "action",
"action": "escalation",
"escalation_reason": "by_virtual_agent", // "by_consumer" or "by_virtual_agent"
"allow_virtual_agent": true,
"menu_id": 100,
"language": "ko"
}
}
Set allow_virtual_agent
to true
to allow transfer to a virtual agent.
Session variable
Session variable example:
{
"ujet": {
"session_variable": {
"capture_target": "payload",
"capture_type": ["comment", "data_parameters"],
"payload": {
"value_one": "$session.params.payload_value_one",
"value_two": "$session.params.payload_value_two"
}
},
...
}
}
Important considerations
- Reporting & Metadata: Using queued status between
va_assigned
ensures correct reporting and metadata.