Ingest Zendesk tickets, comments, and Help Center articles into CortexDB.
Zendesk Connector
Captures support ticket activity as CortexDB experiences. Webhooks for real-time; incremental export API as a fallback.
Two ways to run this connector:
- Run it yourself (Free + paid) —
pip install 'cortexdb-connectors[zendesk]'thencortexdb-sync sync zendesk. The connector reads your token from~/.cortexdb/state.json(written bycortexdb init) or from env vars. - Managed sync (Starter and up) — CortexDB runs the connector as a worker on its infrastructure. Configure it once from your dashboard; CortexDB handles webhook registration, retries, backfill, and idempotency.
1. Prepare credentials in Zendesk
Admin Center → Apps and integrations → APIs → Zendesk API → Token access → Add API token. Note your Zendesk subdomain (the acme in acme.zendesk.com).
2. Configure in your CortexDB dashboard
- Sign in at cortexdb.ai/login.
- Settings → Connectors → Add Connector → Zendesk.
- Paste the subdomain, token-owner email (Zendesk wants the form
email@domain/token), and API token. - Pick which sources to enable: tickets, Help Center articles, or both.
- Set the scope template. Default:
org:<your-org>/source:zendesk. - Pick sync mode: Real-time (webhook) or Polling.
- Click Start sync.
What gets written
| Event | Modality | Notes |
|---|---|---|
| Ticket created/updated | document | Subject + description; status/priority as labels |
| Public comment | conversation | role=user for requester, assistant for agent |
| Internal note | conversation | role=assistant; labels include ["internal"] |
| Help Center article | document | Title + body |
idempotency_key shape: zd:<ticket_id>:<event_id>.
Run it yourself
If you'd rather host the connector yourself instead of using CortexDB's managed worker, every connector ships in the cortexdb-connectors PyPI package:
pip install 'cortexdb-connectors[zendesk]'
# Step 1: get a CortexDB token + actor (one-time, free tier)
pip install cortexdb-cli
cortexdb init
# Step 2: supply the connector's third-party credentials
export ZENDESK_SUBDOMAIN=... # required
export ZENDESK_EMAIL=... # required
export ZENDESK_TOKEN=... # required
# Step 3: one-shot sync, or `watch` for a poll loop
cortexdb-sync sync zendesk
cortexdb-sync watch zendesk --interval 60
cortexdb-sync reads your CortexDB token + actor from ~/.cortexdb/state.json automatically. Cursor state is persisted in ~/.cortexdb/connectors-state.json, so re-running picks up where the last cycle left off.