Skip to main content
Configure the source at AI Training → Data Sources. This is separate from the Ticketing integration, though you can reuse the same API token.

Set up the sync

1

Open Data Sources

Go to AI Training → Data Sources in the OpenCX dashboard.
2

Add a Zendesk source

Click Add source → Zendesk. Paste the credentials below (each field label and placeholder mirrors the dashboard form).
FieldExampleWhere to get it
Subdomainyour-company (from company.zendesk.com)The instance name, not the public Help Center URL.
Email[email protected]The Zendesk user email the API token belongs to.
API Token••••••••Learn how to create an API token. Any admin-level token with read access works.
You can reuse the API token from the Ticketing integration. The token just needs to be able to read Help Center articles.
3

Start the sync

Click Connect. The first run pulls every article across every locale — minutes to a few hours depending on catalog size.
4

Verify in AI Instructions

Open AI Training → AI Instructions. Articles appear grouped under Zendesk. Filter by visibility to confirm the eye icon matches expectations — see the visibility rules below.

What gets synced

Published, , and articles are all fetched. Each locale is stored as its own entry so the AI answers in the right language.
Every synced article is tagged public or internal based on Zendesk’s own signals. This mirrors Zendesk’s access model — you don’t configure it twice.
Article state in ZendeskVisibility in OpenCX
Published with no user-segment restrictionPublic — AI cites it in customer replies
Restricted to a Internal — AI uses it only in agent-facing surfaces like Assist Mode
DraftInternal — same as above
The eye icon in AI Instructions shows the final visibility. Override per-article if you need to.
After the initial pull, only articles whose updated_at changed since the last run are fetched. Outdated articles marked outdated: true in Zendesk are filtered out before ingestion.

Re-sync, disconnect, and re-connect

  • Sync now on the source row pulls only articles changed since the last run. Use after a bulk edit in Zendesk.
  • Remove on the source row deletes the connection and the synced items. The articles in Zendesk aren’t touched.
  • Re-adding the source re-pulls everything from scratch.

Limits

Value
Streams syncedarticles (includes all_article_variants — drafts, archived, published)
Sync modeincremental_deduped_history on updated_at
Sync cadenceAirbyte polling — typically every few hours, configurable on the connection schedule
Credential typeSubdomain + admin email + API token (no OAuth)
Multi-Help-CenterNot supported today. One Help Center per Zendesk account is synced.
Archived articlesFetched; show as INTERNAL unless also a draft. Delete in Zendesk to remove.
Selective scopingNot supported today. Whole Help Center syncs. Use Website crawler with include_paths if you need to scope to a subset.

Zendesk overview

Scope and dual-presence context.

Troubleshooting

Auth failures, visibility surprises, archived content.

Zendesk integration

Ticketing, Assist Mode, channels.

Assist Mode

Where internal articles surface to agents.