
Zendesk (Support)
tap-zendesk (meltanolabs variant)
Zendesk Support is a customer service platform that helps businesses manage customer interactions across channels including email, chat, phone, and social media.
This tap extracts data from the Zendesk Support and Help Center APIs using
the Meltano Singer SDK. It authenticates using API Token auth (HTTP Basic
with {email}/token:{api_token}).
Prerequisites
API Token: Generate an API token in Zendesk Admin Center → Apps and integrations → Zendesk API → API token. Provide your agent email and the token.
Available Streams
Incremental streams (bookmark state preserved between syncs):
| Stream | Replication Key | Description |
|---|---|---|
| tickets | updated_at | Support tickets |
| users | updated_at | Agents, admins, end-users |
| organizations | updated_at | Organizations linked to users and tickets |
| ticket_metric_events | time | Metric milestone events (reply time, wait time) |
Full table streams:
| Stream | Description |
|---|---|
| automations | Time-based automation rules |
| brands | Brand configurations (multi-brand setups) |
| custom_roles | Custom agent roles |
| group_memberships | Agent-to-group memberships |
| groups | Agent groups |
| macros | Macros for bulk-updating tickets |
| organization_fields | Custom fields defined on organizations |
| organization_memberships | User-to-organization memberships |
| satisfaction_ratings | CSAT ratings submitted by end-users |
| schedules | Business hours schedules |
| sla_policies | SLA policy definitions |
| tags | Tag vocabulary with usage counts |
| ticket_fields | Ticket field definitions (system and custom) |
| ticket_forms | Ticket form definitions (Enterprise; skipped gracefully if unavailable) |
| ticket_metrics | Per-ticket SLA and timing metrics |
| triggers | Event-based automation triggers |
| user_fields | Custom user field definitions |
| user_identities | Email, phone, social accounts per user (child of users) |
| views | Shared and personal ticket views |
Help Center streams (Guide API — skipped gracefully if Guide is not enabled):
| Stream | Description |
|---|---|
| articles | Knowledge base articles |
| categories | Top-level Help Center categories |
| posts | Community posts |
| sections | Sections within categories |
| topics | Community discussion topics |
tickets
Supports incremental replication via the Zendesk cursor-based incremental export API.
| Field | Type | Description |
|---|---|---|
| id | integer | Unique ticket identifier |
| url | string | API URL of the ticket |
| external_id | string | External identifier |
| type | string | Ticket type (problem, incident, question, task) |
| subject | string | Ticket subject |
| raw_subject | string | Unformatted subject |
| description | string | First comment body |
| priority | string | Ticket priority (urgent, high, normal, low) |
| status | string | Ticket status (new, open, pending, hold, solved, closed) |
| recipient | string | Email address the ticket was sent to |
| requester_id | integer | ID of the requester |
| submitter_id | integer | ID of the submitter |
| assignee_id | integer | ID of the assigned agent |
| organization_id | integer | ID of the requester's organization |
| group_id | integer | ID of the assigned group |
| collaborator_ids | array[integer] | IDs of collaborators |
| follower_ids | array[integer] | IDs of followers |
| has_incidents | boolean | Whether this ticket has incident links |
| is_public | boolean | Whether comments are public |
| due_at | datetime | Due date for task tickets |
| tags | array[string] | Tags applied to the ticket |
| custom_fields | array[object] | Custom field values |
| satisfaction_rating | object | CSAT rating (id, score, comment) |
| brand_id | integer | Brand the ticket belongs to |
| generated_timestamp | integer | Unix timestamp of last export cursor position |
| created_at | datetime | Ticket creation timestamp |
| updated_at | datetime | Last modification timestamp — replication key |
| via | object | Channel the ticket was created through |
users
Supports incremental replication via the Zendesk time-based incremental export API.
| Field | Type | Description |
|---|---|---|
| id | integer | Unique user identifier |
| url | string | API URL of the user |
| name | string | Full name |
| email | string | Primary email address |
| created_at | datetime | Account creation timestamp |
| updated_at | datetime | Last modification timestamp — replication key |
| time_zone | string | User time zone |
| phone | string | Phone number |
| locale_id | integer | Locale ID |
| locale | string | BCP-47 locale string |
| organization_id | integer | Primary organization ID |
| role | string | Role (end-user, agent, admin) |
| verified | boolean | Whether the user is verified |
| external_id | string | External identifier |
| tags | array[string] | Tags |
| alias | string | Displayed alias |
| active | boolean | Whether the user is active |
| suspended | boolean | Whether the user is suspended |
| default_group_id | integer | Default group ID for agents |
| last_login_at | datetime | Last login timestamp |
| custom_role_id | integer | Custom role ID for agents |
organizations
Supports incremental replication via the Zendesk time-based incremental export API.
| Field | Type | Description |
|---|---|---|
| id | integer | Unique organization identifier |
| url | string | API URL of the organization |
| name | string | Organization name |
| shared_tickets | boolean | Whether tickets are shared within the organization |
| shared_comments | boolean | Whether comments are shared within the organization |
| external_id | string | External identifier |
| created_at | datetime | Creation timestamp |
| updated_at | datetime | Last modification timestamp — replication key |
| domain_names | array[string] | Domains associated with the organization |
| details | string | Details |
| notes | string | Notes |
| group_id | integer | Default group ID |
| tags | array[string] | Tags |
| custom_fields | object | Custom field values |
groups
| Field | Type | Description |
|---|---|---|
| id | integer | Unique group identifier |
| url | string | API URL |
| name | string | Group name |
| description | string | Group description |
| default | boolean | Whether this is the default group |
| deleted | boolean | Whether the group is deleted |
| created_at | datetime | Creation timestamp |
| updated_at | datetime | Last modification timestamp |
group_memberships
| Field | Type | Description |
|---|---|---|
| id | integer | Unique membership identifier |
| url | string | API URL |
| user_id | integer | Agent user ID |
| group_id | integer | Group ID |
| default | boolean | Whether this is the agent's default group |
| created_at | datetime | Creation timestamp |
| updated_at | datetime | Last modification timestamp |
macros
| Field | Type | Description |
|---|---|---|
| id | integer | Unique macro identifier |
| url | string | API URL |
| title | string | Macro title |
| active | boolean | Whether the macro is active |
| restriction | object | Visibility restriction (type, id/ids) |
| actions | array[object] | Actions applied by the macro (field, value) |
| created_at | datetime | Creation timestamp |
| updated_at | datetime | Last modification timestamp |
organization_fields
| Field | Type | Description |
|---|---|---|
| id | integer | Unique field identifier |
| url | string | API URL |
| key | string | Field key used in API calls |
| type | string | Field type (text, textarea, dropdown, etc.) |
| title | string | Display title |
| description | string | Field description |
| position | integer | Display position |
| active | boolean | Whether the field is active |
| created_at | datetime | Creation timestamp |
| updated_at | datetime | Last modification timestamp |
organization_memberships
| Field | Type | Description |
|---|---|---|
| id | integer | Unique membership identifier |
| url | string | API URL |
| user_id | integer | User ID |
| organization_id | integer | Organization ID |
| default | boolean | Whether this is the user's default organization |
| created_at | datetime | Creation timestamp |
| updated_at | datetime | Last modification timestamp |
satisfaction_ratings
| Field | Type | Description |
|---|---|---|
| id | integer | Unique rating identifier |
| url | string | API URL |
| assignee_id | integer | Assigned agent ID |
| group_id | integer | Group ID |
| requester_id | integer | Requester user ID |
| ticket_id | integer | Associated ticket ID |
| score | string | Rating score (good, bad, offered) |
| created_at | datetime | Rating creation timestamp |
| updated_at | datetime | Last modification timestamp |
| reason | string | Reason for the rating |
| reason_code | integer | Numeric reason code |
| comment | string | Customer comment |
schedules
| Field | Type | Description |
|---|---|---|
| id | integer | Unique schedule identifier |
| name | string | Schedule name |
| time_zone | string | Time zone |
| created_at | datetime | Creation timestamp |
| updated_at | datetime | Last modification timestamp |
| intervals | array[object] | Business hour intervals (start_time, end_time in minutes from Sunday midnight) |
sla_policies
| Field | Type | Description |
|---|---|---|
| id | integer | Unique SLA policy identifier |
| url | string | API URL |
| title | string | Policy title |
| description | string | Policy description |
| position | integer | Evaluation order |
| filter | object | Conditions that activate the policy |
| policy_metrics | array[object] | Metric definitions (priority, metric, target, business_hours) |
| created_at | datetime | Creation timestamp |
| updated_at | datetime | Last modification timestamp |
triggers
| Field | Type | Description |
|---|---|---|
| id | integer | Unique trigger identifier |
| url | string | API URL |
| title | string | Trigger title |
| active | boolean | Whether the trigger is active |
| position | integer | Evaluation order |
| description | string | Trigger description |
| conditions | object | Conditions that activate the trigger (all, any) |
| actions | array[object] | Actions performed (field, value) |
| created_at | datetime | Creation timestamp |
| updated_at | datetime | Last modification timestamp |
custom_roles
| Field | Type | Description |
|---|---|---|
| id | integer | Unique role identifier |
| name | string | Role name |
| description | string | Role description |
| configuration | object | Permission configuration |
| role_type | integer | Role type (0 = custom) |
| team_member_count | integer | Number of agents with this role |
| created_at | datetime | Creation timestamp |
| updated_at | datetime | Last modification timestamp |
user_identities
Child stream of users. Each user's identities (email addresses, phone numbers,
social accounts) are fetched after the parent user record is emitted.
| Field | Type | Description |
|---|---|---|
| id | integer | Unique identity identifier |
| url | string | API URL |
| user_id | integer | Parent user ID |
| type | string | Identity type (email, twitter, facebook, google, phone_number, etc.) |
| value | string | Identity value (email address, handle, etc.) |
| verified | boolean | Whether the identity is verified |
| primary | boolean | Whether this is the primary identity |
| created_at | datetime | Creation timestamp |
| updated_at | datetime | Last modification timestamp |
| undeliverable_count | integer | Count of undeliverable emails |
| deliverable_state | string | Email deliverability state |
categories
Zendesk Help Center (Guide API) categories.
| Field | Type | Description |
|---|---|---|
| id | integer | Unique category identifier |
| url | string | API URL |
| html_url | string | Browser URL |
| source_locale | string | Source locale |
| locale | string | Current locale |
| outdated | boolean | Whether a translation is outdated |
| name | string | Category name |
| description | string | Category description |
| position | integer | Display position |
| created_at | datetime | Creation timestamp |
| updated_at | datetime | Last modification timestamp |
sections
Zendesk Help Center (Guide API) sections.
| Field | Type | Description |
|---|---|---|
| id | integer | Unique section identifier |
| url | string | API URL |
| html_url | string | Browser URL |
| source_locale | string | Source locale |
| locale | string | Current locale |
| outdated | boolean | Whether a translation is outdated |
| name | string | Section name |
| description | string | Section description |
| position | integer | Display position |
| sorting | string | Sort order (manual, title, creation, etc.) |
| created_at | datetime | Creation timestamp |
| updated_at | datetime | Last modification timestamp |
| parent_section_id | integer | Parent section ID (for nested sections) |
| category_id | integer | Parent category ID |
| theme_template | string | Theme template |
posts
Zendesk Help Center (Guide API) community posts.
| Field | Type | Description |
|---|---|---|
| id | integer | Unique post identifier |
| author_id | integer | Author user ID |
| comment_count | integer | Number of comments |
| created_at | datetime | Creation timestamp |
| updated_at | datetime | Last modification timestamp |
| details | string | Post body |
| featured | boolean | Whether the post is featured |
| follower_count | integer | Number of followers |
| html_url | string | Browser URL |
| label_names | array[string] | Labels applied to the post |
| pinned | boolean | Whether the post is pinned |
| section_id | integer | Parent section ID |
| status | string | Post status (planned, not_planned, completed, published) |
| title | string | Post title |
| topic_id | integer | Community topic ID |
| url | string | API URL |
| vote_count | integer | Total votes |
| vote_sum | integer | Net vote score |
Settings
Subdomain
Your Zendesk subdomain. For example, if your Zendesk URL is https://mycompany.zendesk.com then your subdomain is mycompany.
Zendesk agent email address. Required when using API Token auth (set together with api_token).
API Token
Zendesk API token. Used with email for API Token auth (HTTP Basic: {email}/token:{api_token}). Generate in Zendesk Admin Center → Apps and integrations → Zendesk API → API token.
Start Date
Earliest record date to sync (ISO 8601, e.g. 2020-01-01T00:00:00Z).
Zendesk (Support) connector is available on Meltano. It is built, maintained, supported, and tested by Meltano.