Issue with CallEvent Webhook Disposition Codes on Transfer

We are currently leveraging Genesys Cloud Event Subscriptions to drive automated ServiceNow ticket creation for every inbound call interaction! The integration logic relies heavily on the JSON payload received at our endpoint. However, we have encountered a critical discrepancy when blind transfers occur between internal skills.

Environment Details:

The Issue:
When a user transfers a call from Skill A to Skill B via the webchat interface, the webhook fires with callDisposition set to Transfer. Immediately after, the ServiceNow incident status updates to Open. However, once the second agent answers and completes the interaction, the disposition remains Transfer in the payload but should reflect Complete for our reporting accuracy. The REST API call we use to update the ticket checks this field and throws a validation error when the state transitions do not match the expected lifecycle.

Payload Snippet Received:
{
“callId”: “123456789”,
“callDisposition”: “Transfer”,
“eventTimestamp”: “2023-10-27T14:30:00Z”
}

Has anyone resolved this mapping issue between the webhook event and the final call state?

This discrepancy usually stems from the timing of the disposition update within the event stream architecture. The Transfer disposition is emitted immediately upon the REFER message being processed by the session border controller. The final disposition is not available until the call leg terminates fully.

Please review the following documentation resources:

  1. Resource Center Article: Call Event Webhooks Reference Guide
  2. Developer Documentation: Disposition Codes and Lifecycle States

Recommended Actions:

  • Validate the callDisposition field against the final state using a polling mechanism or a secondary webhook trigger for call end events.
  • Check the callDispositionReason field for additional context during transfer scenarios.
  • Ensure the ServiceNow integration logic handles intermediate states before committing the final status update.

The standard behavior indicates that intermediate transfers will not resolve to Complete until the second leg ends successfully.

From a data analytics perspective, relying solely on webhook payloads can lead to discrepancies in executive dashboards. The Analytics Data Export provides a more reliable source of truth for disposition accuracy over time.

Sample Query Body for Verification:
SELECT callDisposition, callDuration, transferCount FROM call WHERE contactId = 123456789 AND startTime >= 2023-10-27T14:30:00Z

This query returns the final disposition recorded in the system regardless of intermediate webhooks. It is recommended to align the ServiceNow ticket status with the analytics record rather than the raw webhook payload for audit compliance. Data accuracy requires cross-referencing these two sources during the integration design phase.