Transfer the Bot Session to Another Target

If the bot can’t process an incoming request because of but not limited to an error or exception, it can respond with an escalation message. An escalation message is a transfer request from the bot to a different bot, agent, agent queue, Salesforce skill, or Salesforce flow.

Here’s an example of a customer being transferred to an agent queue. The messages array in this response body has the EscalateResponseMessage schema in the API reference doc and escalate type. The QUEUE_ID is a UUID of the queue target set up by the Salesforce admin.

The API itself doesn’t route the bot session to another target. The API only responds with an array of target objects configured by the bot-admin. The client is responsible for transferring the session to one of the targets after receiving an escalation message from the bot. After the client routes the session to another target, the client must send back a transfer success or transfer failed message to the bot.

Let’s consider a “bot to support agent” escalation example. In this example, the Salesforce admin has set up an Omni-Channel queue called “Customer Support Queue”. This queue accepts standard Salesforce Case object records, and support agents can pick up the cases from the queue.

Now, the bot responds to the client with an escalate message type with the value of the targets object set to the corresponding UUID of the “Customer Support Queue”. The client can then call a standard Salesforce API to create a case record with the OwnerId field set to the “Customer Support Queue” UUID. Here’s an example code of how to create this case record.

The case record is then added to the support agent queue, and the Omni-Channel queuing system handles the rest.

If the client successfully creates a case record and adds it to the support agent queue, the client must send a Transfer Success Message to the bot, as described in the next section. If it fails, the client must send a Transfer Failed Message to the bot. The client can then End a Session.

Here’s an example where the client sends a transfer success message to the bot. The messages object in the payload has the TransferSucceededRequestMessage schema in the API reference doc.

If the bot sends an escalation message, but the client isn’t able to transfer to the directed source, the client must send a transfer failed message to the bot.

Here’s an example of a transfer failed message. The message object in the payload has the TransferFailedRequestMessage schema in the API reference doc.

If the transfer fails, the bot moves to the No Agent dialog. You can configure this dialog to route the customer to a different transfer target, a different dialogue, or other options (see Understanding System Bot Dialogs).