Hi there,
We’re encountering an issue on our platform where a new conversation arrives and an available agent in the queue clicks “Reject,” the conversation is requeued to another agent. However, at this point, we are receiving the following event:
{ id: v2.detail.events.conversation.${conversationId}.user.end
}
This event is misleading, indicating that the chat has ended, even though it’s only being transferred. We also rely on other events like:
{ id: v2.detail.events.conversation.${conversationId}.wrapup
}
{ id: v2.detail.events.conversation.${conversationId}.customer.end
}
However, none of these seem to clearly indicate when a conversation has been requeued instead of actually ending.
We’ve been attempting to distinguish transfers using logic like:
message?.eventBody?.disconnectType !== "TRANSFER"
This helps us identify if the conversation is being transferred to another queue. Additionally, we had to resubscribe to the Notifications API socket after each queue transfer to keep receiving updates, which isn’t clearly documented.
About the original issue, we receive .user.end without any follow-up event when the chat is reassigned. Worse, once we receive .user.end, we don’t get any updates on the conversation status afterwards, even if another agent picks it up.
Given this, could anyone provide guidance on:
-
Which event should we track to know whether a conversation has ended or is required reliably?
-
Any better indicators in the event payload to distinguish between a true end and a requeue?
-
Best practices for maintaining socket subscriptions when conversations are transferred?
We’ve done some reverse engineering, but we’re hoping for a more definitive solution or better documentation on how these events behave.
Thanks in advance for any assistance!