Virtual agent to virtual agent transfers

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 the data_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.

  1. Initiation: A virtual agent transfers a chat session to another virtual agent assigned to a queue. allow_virtual_agent must be true and there must be a virtual agent available in the destination queue. For more information, Session variable.

  2. 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.

  3. New participant : A new participant is created with a waiting status, and the ChatProviderService makes the new virtual agent join the chat. The ChatProgressService then updates the participant status to connected.

  4. Status updates: The chat status is updated to va_assigned, and a connection to Dialogflow is established.

  5. Escalation cancellation: The previous escalation is canceled if it's escalating in Chatbot::EscalationServiceListener::on_escalation_created.

  6. 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.