Skip to content

Zendesk

Two-way sync Zendesk tickets, users, organizations, and custom objects with Airtable, Notion, Google Sheets, and more. Covers connecting and which fields sync.

This guide covers how to connect Whalesync to Zendesk, how your tickets, users, and organizations appear in Whalesync, and which fields sync.

In Whalesync terms, a Zendesk account is the base, and Tickets, Users, Organizations, and each custom object are tables. Three more tables, Agents, Groups, and Brands, list what fields such as a ticket's assignee and group point at; they are read only.

Whalesync connects by signing in to your Zendesk account. See Authorize Zendesk.

  1. In Whalesync, choose Zendesk and enter your account's subdomain: for acme.zendesk.com, enter acme.
  2. Sign in to Zendesk and allow Whalesync access.
  3. Pick the tables to sync.
  • Tickets holds tickets, one record each.
  • Users holds users of every role: end users, agents, and admins.
  • Organizations holds organizations.
  • Each custom object is a table named after it, holding its records, when the account's plan includes custom objects.
  • Agents holds the account's agents and admins, so a ticket's assignee and followers can link to them without syncing every end user.
  • Groups and Brands hold the account's groups and brands.

Each table's columns are Zendesk's standard fields plus the account's active custom fields for tickets, users, organizations, or that custom object. Inactive custom fields are left out.

Zendesk fieldStatusNotes
Subject✅ SupportedZendesk keeps the first 255 characters.
Description✅ SupportedThe ticket's first comment, as plain text. It's set when Whalesync creates the ticket, using the subject when the record has no description. Later changes to it aren't written to Zendesk.
Status✅ SupportedOne of new, open, pending, hold, solved, or closed, in lowercase. Any other value, such as Open, is reported as a sync issue for that ticket. An empty status leaves the ticket's status as it is.
Priority✅ SupportedOne of urgent, high, normal, or low.
Type✅ SupportedOne of problem, incident, question, or task.
Custom status✅ SupportedSynced by the status's agent label.
Ticket form✅ SupportedSynced by the form's name.
Requester, CCs✅ SupportedLinks to the Users table.
Assignee, Followers✅ SupportedLinks to the Agents table.
Group✅ SupportedA link to the Groups table.
Organization✅ SupportedA link to the Organizations table. Zendesk ignores it unless the requester belongs to that organization.
Brand✅ SupportedA link to the Brands table.
Problem ticket✅ SupportedA link to another ticket: the problem an incident belongs to. Zendesk refuses a link to a ticket whose Type isn't problem.
Tags✅ SupportedThe ticket's tags, apart from the ones its fields add. See Tags.
Due date✅ SupportedA date and time. Zendesk keeps it only when the ticket's Type is task.
External ID✅ Supported
Submitter➡️ Supported (1-Way)Read only. A link to the Users table.
Recipient, Channel, Satisfaction, Public, Has incidents➡️ Supported (1-Way)Read only.
Link, Created at, Updated at➡️ Supported (1-Way)Read only. Link opens the ticket in Zendesk.
Comments, Attachments✖️ Not supportedNo column. The first comment is the Description.
Zendesk fieldStatusNotes
Name✅ SupportedRequired when creating a user from another app.
Email, Phone✅ SupportedThe user's primary email and phone. Changing one makes the new one primary and keeps the old one on the user as a secondary, so mail or calls from it still reach them. Clearing one leaves it as it is. Zendesk stores phone numbers in international format, such as +14155550100.
Role✅ SupportedOne of end-user, agent, or admin.
Organization✅ SupportedA link to the Organizations table.
Tags✅ SupportedSee Tags.
Time zone✅ SupportedZendesk reads time zones back by its own names, so America/Los_Angeles comes back as Pacific Time (US & Canada).
Ticket access✅ SupportedOne of organization, groups, assigned, or requested.
External ID, Alias, Details, Notes✅ Supported
Verified, Suspended✅ SupportedCheckboxes.
Default group➡️ Supported (1-Way)Read only. A link to the Groups table.
Language, Signature, Private comments only, Shared agent, Last sign-in➡️ Supported (1-Way)Read only.
Link, Created at, Updated at➡️ Supported (1-Way)Read only.
Zendesk fieldStatusNotes
Name✅ SupportedRequired when creating an organization from another app.
Domains✅ SupportedA list of domains.
Group✅ SupportedA link to the Groups table.
Shared tickets, Shared comments✅ SupportedCheckboxes. Zendesk ignores Shared comments unless Shared tickets is on.
Details, Notes, External ID✅ Supported
Tags✅ SupportedSee Tags.
Link, Created at, Updated at➡️ Supported (1-Way)Read only.
Zendesk fieldStatusNotes
Name✅ SupportedRequired when creating a record from another app.
External ID✅ Supported
Created by, Updated by➡️ Supported (1-Way)Read only. Links to the Users table.
Created at, Updated at➡️ Supported (1-Way)Read only.

Each active custom field is a column of its table: ticket fields on Tickets, user fields on Users, organization fields on Organizations, and a custom object's fields on its table.

Custom field typeStatusNotes
Text, Multi-line, Regex✅ SupportedZendesk refuses a value that doesn't match a regex field's pattern, and Whalesync reports it as a sync issue for that record.
Checkbox✅ Supported
Number, Decimal✅ Supported
Currency✅ SupportedCustom objects only. A number.
Date✅ SupportedA date, with no time.
Drop-down✅ SupportedSynced by option name. The option has to exist in Zendesk. When two options share a name, the option's ID follows its name, so each one writes back as itself.
Multi-select✅ SupportedSynced by option names. Each option has to exist in Zendesk.
Lookup relationship✅ SupportedA link to the Users, Organizations, or Tickets table, or to a custom object's table.
Credit card➡️ Supported (1-Way)Read only. Zendesk keeps only the last four digits.
Ticket fields agents can't edit➡️ Supported (1-Way)Read only. Zendesk's own features fill these in, and Zendesk ignores other changes to them.
Other types➡️ Supported (1-Way)Read only, as text.

Zendesk tags a ticket, user, or organization with the value of each drop-down, multi-select, and checkbox field it has. Those tags belong to the fields, so the Tags column leaves them out and holds only the other tags. When Tags changes in another app, Whalesync keeps the fields' tags on the record, so a tag edit never clears a field.

A ticket whose requester changes also takes on the requester's user tags, which then show in its Tags column.

Whalesync registers one webhook on your Zendesk account, so most changes to tickets, users, and organizations reach your other apps within seconds.

Zendesk sends no webhook for custom object records, Groups, or Brands, or for an organization's details, notes, domains, group, or sharing settings. Those changes are found by a scan of the account that runs once a day while webhooks are on. A sync that maps none of Tickets, Users, Agents, or Organizations has no webhook, and scans for changes on its sync frequency instead.

Deleting a record in another app deletes it in Zendesk. A deleted ticket goes to Zendesk's deleted tickets, where it can be restored for 30 days. Deleting a Zendesk user or organization is permanent.

Delete Protection is off until you turn it on for a table. We recommend turning it on for the Users and Organizations tables, so a record deleted in another app never deletes a user or organization in Zendesk.

  • Synced changes run your Zendesk triggers. Zendesk treats a change Whalesync makes like an agent's edit, so your account's triggers run on it, and a new or updated ticket can email its requester.
  • Closed tickets can't be edited. Zendesk refuses changes to a closed ticket, and Whalesync reports This Zendesk ticket is closed, and Zendesk does not allow changes to closed tickets. Edit a follow-up ticket instead. as a sync issue for it.
  • Comments and attachments are not synced. A ticket's first comment is its Description.
  • Whalesync doesn't create fields, drop-down options, custom statuses, or ticket forms. A value that doesn't match one in Zendesk is reported as a sync issue for that record.
  • Whalesync makes at most 2 requests a second to Zendesk, which leaves room for your account's other apps under Zendesk's per-minute limit. Writing a record takes at least two requests, so a large first sync into Zendesk takes a while.