Hi @Vishwath Reddy Mandadi
Have you already tested using the AcdEndEvent (v2.detail.events.conversation.{id}.acd.end) topic for this scenario?
{
"type": "object",
"id": "urn:jsonschema:acd:end:detail:event:topic:AcdEndEvent",
"$schema": "http://json-schema.org/draft-03/schema#",
"properties": {
"eventTime": {
"type": "integer"
},
"conversationId": {
"type": "string"
},
"participantId": {
"type": "string"
},
"sessionId": {
"type": "string"
},
"disconnectType": {
"type": "string",
"enum": [
"UNKNOWN",
"ENDPOINT",
"CLIENT",
"SYSTEM",
"TRANSFER",
"ERROR",
"PEER",
"OTHER",
"SPAM",
"TIMEOUT",
"TRANSPORT_FAILURE",
"CONFERENCE_TRANSFER",
"CONSULT_TRANSFER",
"FORWARD_TRANSFER",
"NO_ANSWER_TRANSFER",
"NOT_AVAILABLE_TRANSFER",
"UNCALLABLE",
"DND_ENDPOINT",
"DND_TRANSFER",
"INACTIVITY",
"SESSION_EXPIRED",
"TAKEOVER"
]
},
"mediaType": {
"type": "string",
"enum": [
"UNKNOWN",
"VOICE",
"CHAT",
"EMAIL",
"CALLBACK",
"COBROWSE",
"VIDEO",
"SCREENSHARE",
"MESSAGE",
"INTERNALMESSAGE",
"SCREENMONITORING"
]
},
"provider": {
"type": "string"
},
"direction": {
"type": "string",
"enum": [
"UNKNOWN",
"INBOUND",
"OUTBOUND"
]
},
"ani": {
"type": "string"
},
"dnis": {
"type": "string"
},
"addressTo": {
"type": "string"
},
"addressFrom": {
"type": "string"
},
"callbackUserName": {
"type": "string"
},
"callbackNumbers": {
"type": "array",
"items": {
"type": "string"
}
},
"callbackScheduledTime": {
"type": "integer"
},
"subject": {
"type": "string"
},
"messageType": {
"type": "string",
"enum": [
"UNKNOWN",
"SMS",
"TWITTER",
"FACEBOOK",
"LINE",
"WHATSAPP",
"WEBMESSAGING",
"OPEN",
"INSTAGRAM",
"APPLE"
]
},
"queueId": {
"type": "string"
},
"divisionId": {
"type": "string"
},
"acdOutcome": {
"type": "string",
"enum": [
"UNKNOWN",
"ABANDON",
"ANSWERED",
"FLOW_OUT"
]
},
"answeredUserId": {
"type": "string"
},
"requestedRoutings": {
"type": "array",
"items": {
"type": "string",
"enum": [
"UNKNOWN",
"MANUAL",
"PREDICTIVE",
"PREFERRED",
"LAST",
"BULLSEYE",
"STANDARD",
"OTHER",
"CONDITIONAL",
"VIP"
]
}
},
"usedRouting": {
"type": "string",
"enum": [
"UNKNOWN",
"MANUAL",
"PREDICTIVE",
"PREFERRED",
"LAST",
"BULLSEYE",
"STANDARD",
"OTHER",
"CONDITIONAL",
"VIP"
]
},
"requestedRoutingSkillIds": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"requestedSkillExpressionIds": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"requestedLanguageId": {
"type": "string"
},
"requestedRoutingUserIds": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"routingPriority": {
"type": "integer"
},
"connectedDurationMs": {
"type": "integer"
},
"conversationExternalContactIds": {
"type": "array",
"items": {
"type": "string"
}
},
"conversationExternalOrganizationIds": {
"type": "array",
"items": {
"type": "string"
}
},
"utilizationLabel": {
"type": "string"
},
"flowType": {
"type": "string"
}
}
}
Since this event provides fields like direction, mediaType, acdOutcome, disconnectType, and connectedDurationMs, it may offer more reliable filtering for unanswered outbound callbacks.
Please let me know if you've tried this approach and what results you observed.
------------------------------
Luiz Rosa
Full stack developer
------------------------------