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.
💼 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
💾 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.