Hey all, relatively new to genesys, hoping to gain some insight into a problem I'm trying to solve.
Summary: I'm looking for a way in which our backend system can determine the outcome of a 'Transfer to Group' action being triggered from an inbound call flow. The 'outcomes' being the customer either connects with an agent (success) or not (failure).
I've identified a few main flows:
- Connected (happy path) - Customer calls in, proceeds through IVR, is transferred to the group, agent successfully picks up
- Transfer failed - Customer calls in, proceeds through IVR, transfer fails (ex: no agents pickup)
- Pre-transfer abandon - Customer calls in, then abandons the IVR before the transfer begins
- In-transfer abandon - Customer calls in, the group transfer begins, then customer abandons before agent picks up
Ive also set up a trigger to emit the v2.detail.events.conversation.{id}.customer.end
events to my backend (Im throwing these into a pubsub that a consumer service then picks up).
So ideally, our backend system would (1) catch the customer.end event, (2) use the conversation ID to retrieve the conversation details, and (3) use that data to determine the "result" of the inbound call that's already ended.
At first I thought this idea had legs, since the IVR is present as its own participant in the conversation object, and its flow
property seemed to have an exitReason
prop that differed on whether it succeeded or failed:
// Call connected
"flow": {
"endingLanguage": "en-us",
"entryReason": "tel:+15550123456",
"entryType": "dnis",
"exitReason": "TRANSFER", // I thought this meant it had succeeded, but I think it only means the transfer has started and hasn't failed yet
"flowId": "XXXX-XX-XX-XXXX",
"flowName": "My Awesome IVR ",
"flowType": "INBOUNDCALL",
"flowVersion": "15.0",
"startingLanguage": "en-us",
"transferTargetAddress": "XXX-XX-XX-XXXX",
"transferTargetName": "Genesys Group #4",
"transferType": "GROUP"
},
// Transfer failed
"flow": {
"endingLanguage": "en-us",
"entryReason": "tel:+15550123456",
"entryType": "dnis",
"exitReason": "DISCONNECT",
"flowId": "XXXX-XX-XX-XXXXX",
"flowName": "My Awesome IVR",
"flowType": "INBOUNDCALL",
"flowVersion": "15.0",
"startingLanguage": "en-us"
},
However in practice it seems like if the user disconnects during the transfer attempt, then the flow
data looks the same as if the call was successful. Which means the exitReason of TRANSFER
probably only means the transfer has begun and never failed (either because it succeeded, or the customer disconnected)
So, is there anything else within the conversation data I could use to glean whether an agent picked up the inbound call during the transfer to group attempt?
Thanks!