Zendesk

Knowi connects directly to your Zendesk Support instance to pull tickets, users, satisfaction ratings, and performance metrics into a unified analytics platform.

Build support operations dashboards, track resolution times, analyze customer satisfaction trends, and combine Zendesk data with other business data sources.

Overview

Connect to your Zendesk instance via OAuth. Knowi handles authentication, pagination, and data extraction automatically. Each Zendesk subdomain is a separate connection.

Connecting

  1. Log in to Knowi and select "Queries" from the left sidebar.

  2. Click on the "New Datasource +" button and select Zendesk from the list of datasources.

  3. Configure the following:

    a. Datasource Name: Enter a name (e.g., "Support Zendesk")

    b. Zendesk URL: Enter your Zendesk subdomain URL (e.g., yourcompany.zendesk.com)

  4. Click "Connect to Zendesk" to authorize Knowi. You will be redirected to Zendesk to approve the connection.

  5. After approving, you'll be redirected back to Knowi. Click "Save" to finish setup.

Collections

Tickets

Retrieves all tickets with comment counts. Best for dashboard-level ticket analysis.

Default Cloud9QL:

select tickets;
select expand(tickets);
select * order by created_at desc;

Ticket Search

Uses Zendesk's Search Export API to fetch tickets updated since a given date. This is the recommended collection for large ticket volumes and scheduled syncs, and it replaces the deprecated Incremental Tickets collection. If you have existing Incremental Tickets queries, see the migration steps under Incremental Tickets (deprecated) at the end of this section.

Parameters:

  • Updated Since: Fetch tickets updated since this date. Accepts a date (e.g. 2026-03-03), a Knowi date token (e.g. $c9_today-90d), or a Unix timestamp. Leave blank to use the last 365 days. Enter all to export all history.

  • Max Pages: Maximum number of pages to fetch. Each page contains up to 1000 tickets. Defaults to 100. Increase for large accounts or leave blank to use the system limit (1000 pages).

Default Cloud9QL:

select results;
select expand(results);
select * order by created_at desc;

Notes:

  • Results are returned under a results key, not tickets - this is why the Cloud9QL differs from the other collections.
  • Results are ordered by creation date, newest first. Zendesk does not offer a sort option on this endpoint. A ticket created long ago but updated recently therefore appears late in the result set, so avoid a restrictive Max Pages when doing a large backfill.
  • This endpoint is rate limited to 100 requests per minute, separately from Zendesk's other limits.
  • Pagination cursors expire after one hour. Each page issues a fresh cursor, so normal runs are unaffected.
  • For scheduled incremental syncs, prefer a relative token such as $c9_today-7d over all - it keeps each run small and fast.

Ticket Metrics

Retrieves performance metrics for tickets, including first reply time, full resolution time, agent wait time, and requester wait time.

Default Cloud9QL:

select ticket_metrics;
select expand(ticket_metrics);

Users

Retrieves all Zendesk users (agents, admins, and end users).

Default Cloud9QL:

select users;
select expand(users);

Satisfaction Ratings

Retrieves CSAT (Customer Satisfaction) survey responses.

Incremental Tickets (deprecated)

⚠ Deprecated. Zendesk is ending third-party access to its Incremental APIs. The rollout begins on December 2, 2026 and is expected to complete by January 19, 2027. Existing queries continue to work until Zendesk turns off access for your account. Please create a new query using the Ticket Search collection above and retire the old one before December 2, 2026.

Uses Zendesk's cursor-based incremental export API to fetch all tickets efficiently.

Pagination stops automatically when Zendesk signals end of data (end_of_stream), so no unnecessary API calls are made.

Parameters:

  • Start Date: Start date for the export. Accepts a date (e.g. 2026-03-03), a Knowi date token (e.g. $c9_today-90d), or a Unix timestamp in seconds (e.g. 1167609600). Defaults to Jan 1, 2007.

  • Max Pages: Maximum number of pages to fetch. Each page contains up to 1000 tickets. Defaults to 100. Increase for large accounts or leave blank to use the system limit (1000 pages).

Default Cloud9QL:

select tickets;
select expand(tickets);
select * order by created_at desc;

Migrating to Ticket Search:

  1. Create a new query and select the Ticket Search collection.
  2. Set Updated Since to the window you need (e.g. $c9_today-30d), or all for full history. The old collection defaulted to all history from 2007, while Ticket Search uses the last 365 days when this is left blank.
  3. Change tickets to results in your Cloud9QL - e.g. select results; select expand(results);
  4. Verify the new query returns what you expect, then retire the old one.

Common Use Cases

Ticket Volume by Status

select tickets;
select expand(tickets);
select status, count(*) as ticket_count
group by status;

Average Resolution Time

select ticket_metrics;
select expand(ticket_metrics);
select avg(full_resolution_time_in_minutes.business) as avg_resolution_minutes;

Agent Performance

select tickets;
select expand(tickets);
select assignee_id, count(*) as tickets_handled,
       sum(case when status = 'solved' then 1 else 0 end) as solved
group by assignee_id
order by tickets_handled desc;

CSAT Trend Analysis

Schedule the Satisfaction Ratings collection daily, then use Cloud9QL to analyze trends:

select score, count(*) as count, created_at
group by score, datetrunc('month', created_at)
order by created_at;

Scheduling

Schedule queries to run automatically. The Ticket Search collection is suited to frequent scheduling - set Updated Since to a relative token such as $c9_today-1d so each run only fetches recently updated tickets.

Notes

  • Zendesk access tokens are long-lived (offline access) and do not expire.
  • Pagination is handled automatically via Zendesk's next_page URL. The Ticket Search collection uses cursor-based pagination (links.next with meta.has_more) to stop when all data has been retrieved.
  • The Ticket Search collection is recommended for large Zendesk instances (10,000+ tickets) as it supports date filtering and cursor pagination up to the page limit, unlike the standard Tickets endpoint.
  • Knowi connects to Zendesk's v2 API.
  • For the full API reference, see the Zendesk API documentation.