Stay organized with collectionsSave and categorize content based on your preferences.
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. Onlysupport
agentssupport virtual agent
to virtual agent transfers. Other virtual agent types, such asvirtual 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. Thecapture_typesession variable includes thedata_parametersvalue, which is passed to a newly assigned virtual agent.
hide_va_to_va_system_messages: A parameter inPATCH /v1/settings/chatthat 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 section 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_agentmust betrueand 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 thedata_parameterscapture type are passed from the source virtual agent to
the destination virtual agent.
New participant: A new participant is created with awaitingstatus,
and theChatProviderServicemakes the new virtual agent join the chat. TheChatProgressServicethen updates the participant status toconnected.
Status updates: The chat status is updated tova_assigned, and a
connection to Dialogflow is established.
Escalation cancellation: The previous escalation is canceled if it's
escalating inChatbot::EscalationServiceListener::on_escalation_created.
Message suppression:hide_va_to_va_system_messageslets you suppress
chat transfer system messages to end-users using the web SDK and mobile SDKs.
Hide transfer messages in chat sessions
You can configure whether system messages for virtual agent to virtual agent
transfers appear in chat sessions. Hiding the system transfer messages can
create a more seamless experience for the end-user when their chat session is
transferred.
To hide transfer messages in chat sessions, follow these steps:
In the CCAI Platform portal, clickSettings>Chat. If you don't
see theSettingsmenu, clickmenuMenu.
Go to theWeb & Mobile Chat Settingspane.
ForTransfers, select theHide chat transfer system messages to
consumers for VA to VA transferscheckbox.
ClickSave Chat Details.
Dialogflow custom payloads
This section contains examples of Dialogflow custom payloads.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[],[],null,["# Virtual agent to virtual agent transfers\n\nWith Contact Center AI Platform, a virtual agent can transfer a chat session to another\nvirtual agent without intervention by a human agent. This improves scalability\nfor complex multi-flow virtual agent designs. Only [support\nagents](/contact-center/ccai-platform/docs/virtual-agent) support virtual agent\nto virtual agent transfers. Other virtual agent types, such as [virtual task\nassistants](/contact-center/ccai-platform/docs/va-task-assistants), don't\nsupport this type of transfer.\n\nVirtual agent to virtual agent transfers don't work with deflections.\n\nTerminology\n-----------\n\n- **Transfer**: The reassignment of an agent handling a session.\n\n- **Escalation**: A type of transfer where a virtual agent is \"escalated\" to\n another agent.\n\n- **Data parameters** : Parameters passed to a virtual agent when a session\n starts. These are passed to Dialogflow using `/get_welcome_message`.\n\n- **Session variables** : Variables from Intent Response and End\n User Response. Session variables are stored for a call or chat session and\n persist until the session ends. The `capture_type` session variable includes\n the `data_parameters` value, which is passed to a newly assigned virtual\n agent.\n\n- **hide_va_to_va_system_messages** : A parameter in `PATCH /v1/settings/chat`\n that lets you hide from end-users the system messages from the web SDK and\n mobile SDKs for virtual agent to virtual agent transfers.\n\nVirtual agent to virtual agent transfers\n----------------------------------------\n\nThis sections explains virtual agent to virtual agent transfers at a high level.\n\n1. **Initiation** : A virtual agent transfers a chat session to another virtual\n agent assigned to a queue. `allow_virtual_agent` must be `true` and there\n must be a virtual agent available in the destination queue. For more\n information, [Session variable](#session-variable).\n\n2. **Data transfer** : Key-value pairs of session variables with the\n `data_parameters` capture type are passed from the source virtual agent to\n the destination virtual agent.\n\n3. **New participant** : A new participant is created with a `waiting` status, and\n the `ChatProviderService` makes the new virtual agent join the chat. The\n `ChatProgressService` then updates the participant status to `connected`.\n\n4. **Status updates** : The chat status is updated to `va_assigned`, and a\n connection to Dialogflow is established.\n\n5. **Escalation cancellation** : The previous escalation is canceled if it's\n escalating in\n `Chatbot::EscalationServiceListener::on_escalation_created`.\n\n6. **Message suppression** : `hide_va_to_va_system_messages` lets you suppress\n chat transfer system messages to end-users using the web SDK and mobile SDKs.\n\nDialogflow custom payloads\n--------------------------\n\nThis section contains examples of Dialogflow custom payloads.\n\n### Escalation payload\n\nEscalation payload example: \n\n {\n \"ujet\": {\n \"type\": \"action\",\n \"action\": \"escalation\",\n \"escalation_reason\": \"by_virtual_agent\", // \"by_consumer\" or \"by_virtual_agent\"\n \"allow_virtual_agent\": true,\n \"menu_id\": 100,\n \"language\": \"ko\"\n }\n }\n\nSet `allow_virtual_agent` to `true` to allow transfer to a virtual agent.\n\n### Session variable\n\nSession variable example: \n\n {\n \"ujet\": {\n \"session_variable\": {\n \"capture_target\": \"payload\",\n \"capture_type\": [\"comment\", \"data_parameters\"],\n \"payload\": {\n \"value_one\": \"$session.params.payload_value_one\",\n \"value_two\": \"$session.params.payload_value_two\"\n }\n },\n ...\n }\n }\n\nImportant considerations\n------------------------\n\n- **Reporting \\& Metadata** : Using queued status between `va_assigned` ensures correct reporting and metadata."]]