When our digital bot flow hands off a chat to an ACD queue, the participant data set during the bot conversation is lost.
The bot collected the customer’s account number, intent, and sentiment score via slot filling. After the handoff, the agent sees an empty participant data panel. The customer has to repeat everything.
The bot flow must explicitly copy slot values to participant data BEFORE the transfer action.
Use Set Participant Data in the bot flow’s pre-transfer task:
Set Participant Data("accountNumber", slot.accountNumber)
Set Participant Data("customerIntent", slot.intent)
Set Participant Data("sentimentScore", ToString(slot.sentiment))
Transfer to ACD(targetQueue)
Slot values are bot-scoped. Participant data is conversation-scoped.
From an Agent Assist perspective, the lost participant data means the knowledge engine can’t personalize its suggestions.
If the bot detected that the customer’s intent is ‘billing dispute’, Agent Assist should surface billing dispute articles. Without the intent in participant data, the engine falls back to generic keyword matching from the live transcription.
We built a middleware bridge that preserves ALL bot context during handoff.
// Store full bot context in Redis before transfer
public void onBotHandoff(String conversationId, BotContext ctx) {
String key = "bot:" + conversationId;
redisClient.setex(key, 600, gson.toJson(ctx));
}
// Agent desktop retrieves context on conversation accept
public BotContext getBotContext(String conversationId) {
return gson.fromJson(redisClient.get("bot:" + conversationId), BotContext.class);
}
In CXone, the bot-to-agent handoff preserves context natively because the bot and agent share the same conversation object.
GC’s architecture creates a new conversation segment for the agent, which is why the bot’s slot data doesn’t carry over automatically. It is an architectural limitation, not a bug.
From a GDPR perspective, storing bot conversation context in Redis creates a secondary data processing location.
The customer’s account number and intent are now stored in both GC and your Redis instance. Ensure Redis is encrypted at rest, access-logged, and included in your data processing register.