Destinations & Activation → Reverse ETL / CDP Sync

Support (Zendesk)

Syncs profile and relationship context into Zendesk so support agents see who they're talking to without switching tools mid-ticket.

High-Level Design

Support context arrives in Zendesk before the agent even opens the ticket.

Data Source
Business Systems
Zendesk is also a source under Data Sources
→
Ingestion
Ingestion Layer
Support system connector — original ticket data in
→
Processing
Transformation & Processing
Identity resolution links tickets to the profile
→
Foundation
Unified Customer Profile
Lifecycle stage, LTV band, relationship context
→
Intelligence
Profile API
Read path this sync pulls from
→
Activation
Support (Zendesk)
Reverse ETL job + real-time webhook → Zendesk sidebar app

💼 Business Context

  • Support agents resolve tickets faster and with better judgment (e.g., escalation priority) when they immediately see a customer's tier and relationship context, without pivoting to another tool mid-conversation
  • Reduces average handle time and improves first-contact resolution for high-value customers
  • Owned by Customer Support Operations / Platform Engineering

🔌 Technical Overview

A hybrid approach: a scheduled Reverse ETL job (Docker container on Azure Container Apps Jobs) bulk-syncs baseline profile fields into Zendesk custom user fields via its Bulk API, while a lighter real-time path — reusing the Journeys & Automation webhook dispatcher — pushes the small set of fields needed for a Zendesk sidebar app to show live context (current LTV band, open household tickets) at ticket-open time, since support interactions are more time-sensitive than a typical CRM sync.

Sync Paths

Bulk field sync (scheduled) Real-time sidebar context (webhook) Household/relationship context

💾 Zendesk Sidebar Context

GET /zendesk-sidebar/context?customer_key=cust_004821

{
  "lifecycle_stage": "active",
  "ltv_band": "gold",
  "open_household_tickets": 1,
  "churn_risk": 0.12
}

🔗 Integration Points

  • Business Systems (Data Sources) — Zendesk as an original ticket-data source, distinct from this reverse sync
  • Journeys & Automation's webhook dispatcher — reused for the real-time sidebar context path
  • Relationships (Identity & Profile Service) — household ticket context surfaced in the sidebar
  • Profile API — underlying data source for both the bulk and real-time paths

🧰 Services Consumed

  • Owning microservice — Cxos.Connectors.Zendesk (write path) (see the Full Application Service Map)
  • No dedicated database — stateless connector (see Platform Connectors above)

⚠️ Non-Functional Considerations

  • Scale: bulk sync covers the full customer base on a schedule; real-time sidebar calls scale with concurrent open tickets, a much smaller number
  • Latency: bulk fields refresh hourly; sidebar context loads within the ticket-open critical path, targeting under 300ms
  • Reliability: sidebar app falls back to the last bulk-synced value if the real-time context call fails, rather than showing a blank panel
  • Security/Privacy: support agents see only fields approved for support-context display — sensitive fields like raw payment data are never included in this sync

🎯 Enterprise Example

A gold-tier customer calls in about a billing issue. Before the agent finishes the greeting, the Zendesk sidebar already shows their tier, churn risk, and a note that another household member has an open ticket — context that used to require three separate lookups across different systems.

← Back to Reverse ETL / CDP Sync