Source Zendesk Support: add ticket_events stream from incremental/ticket_events.json
#78114
Replies: 2 comments
-
|
Hi Henrique Pereira (@hpereira98), thank you for the detailed feature request! The proposed Need more help? Join Airbyte Community Slack for peer support, or if you're a Cloud customer, open a support ticket referencing this URL. |
Beta Was this translation helpful? Give feedback.
-
|
Adding context: we've already forked the official connector's manifest and added |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Source Zendesk Support: add
ticket_eventsstream fromincremental/ticket_events.jsonWhat problem are you trying to solve?
The
source-zendesk-supportconnector does not expose the Incremental Ticket Events Export endpoint (GET /api/v2/incremental/ticket_events.json). This leaves a gap in the data model: there is no way to obtain the complete event-level timeline of every Zendesk ticket through the official connector.Data the existing streams do not provide
The connector already exposes adjacent streams, but none of them substitute for
ticket_events:ticket_auditsvia_reference_id, system metadata, and event-typing granularity. Critically, the list endpoint excludes archived tickets (Zendesk auto-archives ~120 days after Closed), so historical data is effectively unavailable through this streamticket_metric_eventsapply_sla,fulfill,reply_time,update_status)Comment,Notification,NotificationGenerated,Create,Cc,External, etc.ticket_commentsticketsThe
ticket_eventsendpoint is the only one that returns the complete chronological stream of every event Zendesk generated (Audit, Comment, Notification, NotificationGenerated, Create, Cc, External, and more), each tagged with the triggering source (via,via_reference_id,system) and the contributing updaters.Zendesk explicitly recommends this endpoint for change-data capture
The Zendesk Ticket Audits API documentation directs users away from the list audits endpoint for this use case:
…and points to the Incremental Ticket Event Export as the recommended alternative. The official Airbyte connector should expose what the Zendesk team themselves recommend as the canonical source for ticket change history.
Use cases blocked today
Without this stream, the following analytics are either impossible or require ugly approximations from other streams:
ticket_auditsbut loses the per-event granularity.via_reference_idon a ticket event lets you trace which trigger or automation produced a given change. Not available anywhere else.NotificationandNotificationGeneratedevents let teams measure outbound communication volume, deliverability proxies, and per-rule notification frequency. Today these events are invisible.ticket_auditsaggregates events per update, losing this granularity.system(client, IP, location) andvia(channel, source) on each event power channel-attribution and abuse-detection analytics.Community impact
Our team has worked around this gap by building custom declarative manifest connectors that duplicate most of
source-zendesk-supportjust to add this one stream. Bringing it into the official connector removes that duplication and gives community-built pipelines:/api/v2/incremental/.*(already correctly rate-limited at 10/min)Proposed solution
Add a new declarative stream
ticket_eventstoairbyte-integrations/connectors/source-zendesk-support/manifest.yaml. It can closely mirror the existingticket_metric_events_stream:incremental/ticket_events.jsontimestamp(Unix epoch seconds, samecursor_incremental_syncformat already used by other incremental_export streams)start_timeidend_of_stream_paginator(cursor-based vianext_pageURL, stop onend_of_stream)DpathExtractoronticket_eventsSchema fields (per Zendesk docs):
id,ticket_id,timestamp,created_at,updater_id,event_type,via,via_reference_id,system,updaters[],child_events[].Important note on cursor semantics
Like the
ticketsstream (see the connector'sCONTRIBUTING.md), this endpoint filters internally ongenerated_timestamp, not on the record'stimestampfield. When a ticket is archived or deleted, all its events are re-stamped with thegenerated_timestampof that operation, so astart_timequery can return events withtimestampvalues from years earlier. This is documented Zendesk behavior. The new stream documentation should call this out so users don't mistake it for a connector bug. De-duplication on the destination side via primary keyidhandles the resulting overlap cleanly.Beta Was this translation helpful? Give feedback.
All reactions