Linking Klaus as a source

Alpha release

This source is currently in alpha. The interface and available tables may change.

The Klaus connector syncs your Zendesk QA (formerly Klaus) quality assurance data – conversation reviews, AutoQA results, CSAT responses, disputes, scorecards, calibration sessions, and quizzes – into PostHog.

Prerequisites

You need a Zendesk QA account with API access. Only admins and account managers can create the API token the connector uses.

Adding a data source

  1. In PostHog, go to the Sources tab of the data pipeline section.
  2. Click + New source and click Link next to this source.
  3. Enter your credentials (see Configuration below) and click Next.
  4. Select the tables you want to sync, choose a sync method and frequency, then click Import.

Once the syncs are complete, you can start querying this data in PostHog.

When linking Zendesk QA, you'll need:

  • Zendesk subdomain – the first part of your Zendesk URL. For yourcompany.zendesk.com, enter yourcompany.
  • API token – created by an admin or account manager in Zendesk QA under Settings > Auto QA and integrations > API.

Sync modes

Each table can be synced in one of several modes, depending on what the source supports:

  • Webhook (when available) – the source pushes changes to PostHog in real time. Fastest freshness, lowest ongoing cost, and the only mode that reliably captures updates and deletes.
  • Incremental – only new or updated rows are synced on each run, using a cursor field (such as an updated_at timestamp). Cheaper than a full refresh, but deletes aren't captured.
  • Append only – new rows are appended using a cursor field; existing rows are never updated. Ideal for immutable, append-only tables like event logs.
  • Full refresh – the whole table is reloaded on every sync. Use it when a table has no reliable cursor or when you need deletions reflected.

See sync methods for a full explanation of how each mode works and how to choose between them.

The Zendesk QA public API is heavily rate limited, so large initial syncs can take a while. Syncs pace themselves around the rate limit and resume automatically if interrupted. We recommend incremental sync where available to keep follow-up syncs small.

Configuration

OptionTypeRequired
Zendesk subdomaintextYes
API tokenpasswordYes

Supported tables

TableDescriptionSync methodIncremental fieldPrimary key
reviews

Reviewed conversations with their manual reviews and comments, one row per conversation.

Incremental, Full refreshcreatedAtISO
autoqa_reviews

AutoQA (automatic quality assurance) reviews, one row per automatically reviewed conversation.

Incremental, Full refreshconversationCreatedAt
autoqa_ratings

Per-category AutoQA rating rows, one row per rated category per AutoQA review.

Incremental, Full refreshconversationCreatedAt
csat

CSAT (customer satisfaction) survey responses on tickets.

Incremental, Full refreshticketCreatedAt
users

Users in the Zendesk QA account.

Full refresh
workspaces

Workspaces in the Zendesk QA account.

Full refresh
quizzes

Quizzes created in the account, with participation statistics.

Full refresh
scorecards

Scorecards configured in each workspace, with their rating categories and groups.

Full refresh
disputes

Disputes raised against reviews in each workspace.

Full refresh
calibration_sessions

Calibration sessions in each workspace, used to align reviewers on grading.

Incremental, Full refreshcreatedAt

Troubleshooting

  • Invalid credentials: check the subdomain matches your Zendesk URL and that the API token was created by an admin or account manager and hasn't been revoked.
  • Slow syncs: the Zendesk QA public API enforces a strict rate limit, so a full history import can take hours on large accounts. Later incremental syncs only fetch recent data and finish much faster.

If your sync is failing or data looks wrong, see the Data warehouse troubleshooting guide. If that doesn't help, contact support – we're happy to help.

Community questions

Was this page useful?