This page explains how to incorporate virtual task assistants into chat sessions using a custom app built using the chat API platform. After a human agent transfers a chat session to a virtual task assistant, the virtual task assistant can communicate a message to the end-user without the human agent seeing it. This lets you automate processes like collecting sensitive information or performing data lookups while protecting the end-user's privacy.
Workflow for a virtual task assistant participating in a chat session
Here's the workflow for a virtual task assistant participating in a chat session using a custom app:
- A human agent transfers a chat session in a custom chat app to a virtual task assistant.
The chat app sends the end-user's message using a
POSTrequest to the following endpoint. Authenticate using basic authentication.https://YOUR_CCAAS_HOST/apps/api/v1/chats/CHAT_ID/messageReplace the following:
YOUR_CCAAS_HOST: your Contact Center AI Platform (CCAI Platform) hostCHAT_ID: the chat ID
Request body
The following is an example of a request body:
{ "from_user_id": 12345, "message": { "type": "text", "content": { "text": "Example response from an end-user." } } }If the system detects an active virtual task assistant, it routes the message directly to the virtual task assistant. The message is designated as a
server_messagetype, which hides it from the human agent to protect end-user privacy. If the system doesn't detect an active virtual task assistant, it routes the message to an available human agent.When a virtual task assistant sends a response, your webhook endpoint receives a
message_receivedevent. This webhook payload contains the message from the virtual task assistant in theserver_messageproperty, so you don't need to make another API call to get the message. For more information, see Chat platform API Guide.Example webhook payload
The following is an example webhook payload:
{ "event_type": "message_received", "timestamp": "2025-09-25T14:30:00Z", "chat_id": 37, "body": { "sender": { "id": 71, "type": "task_virtual_agent", "status": "connected" }, "message": { "type": "server_message", "message_id": 1, "visibility": "task_virtual_agent" }, "server_message": { "content": { "type": "text", "content": "Thank you. Please enter the 6-digit code sent to your device." } } } }When the virtual task assistant completes its task, it transfers the chat session back to the human agent.