Zendesk export vs gc analytics api mismatch

Just noticed that the agent handle time metrics from our zendesk export don’t match the genesys cloud analytics api response. using sdk v3.2.0 in eu-west-1. the gc api returns 200 ok but the duration is 300ms shorter than zendesk. is this a known discrepancy during migration? need to align reporting for stakeholders.

Check your metric definitions in the Analytics API query. Genesys Cloud calculates handle time from answer to wrap-up, whereas Zendesk often includes initial wait time.

Review the genesys object in your webhook payload to confirm the timestamp source. Aligning these definitions in ServiceNow Data Actions usually resolves the discrepancy.

To fix this easily, this is…

  • Align the metric field in your query to agent.handle.time instead of agent.talk.time.
  • Verify the timestamp source in the genesys object matches the Zendesk ticket created_at field.
  • Use Terraform to enforce consistent metric definitions across environments.

Pretty sure the discrepancy stems from how each system defines the start and end points of a session, particularly for digital channels.

Just noticed that the agent handle time metrics from our zendesk export don’t match the genesys cloud analytics api response. using sdk v3.2.0 in eu-west-1. the gc api returns 200 ok but the duration is 300ms shorter than zendesk. is this a known discrepancy during migration? need to align reporting for stakeholders.

In my experience with bulk exports for legal discovery, Genesys Cloud strictly calculates agent.handle.time from the moment the agent accepts the interaction until the wrap-up code is applied. Zendesk, however, often includes the initial queue wait time or the time between ticket creation and the first agent reply, depending on your trigger configuration.

To verify this, check the raw JSON payload from the Genesys Cloud Analytics API. Look specifically at the start_time and end_time fields within the interactions array. Compare these against the created_at and updated_at timestamps in the Zendesk export.

Here is a sample query structure to isolate the handle time metric precisely:

{
 "metrics": [
 {
 "name": "agent.handle.time",
 "function": "SUM"
 }
 ],
 "dimensions": [
 "interaction.id",
 "routing.queue.id"
 ],
 "filter": {
 "type": "or",
 "predicates": [
 {
 "dimension": "interaction.type",
 "operator": "eq",
 "value": "chat"
 }
 ]
 }
}

Ensure that the interaction.type matches your specific digital channel (e.g., chat, webchat). If the 300ms difference persists after aligning the metric definitions, it may be due to network latency recorded differently by the two systems. For legal holds, always document the exact metric definition used to maintain chain of custody integrity.