# Zendesk

Zendesk provides customer support software with ticketing, live chat, and knowledge base features, enabling efficient helpdesk operations and customer engagement

- **Category:** crm
- **Auth:** OAUTH2
- **Composio Managed App Available?** Yes
- **Tools:** 20
- **Triggers:** 2
- **Slug:** `ZENDESK`
- **Version:** 20260414_00

## Frequently Asked Questions

### How do I set up custom OAuth credentials for Zendesk?

For a step-by-step guide on creating and configuring your own Zendesk OAuth credentials with Composio, see [How to create OAuth credentials for Zendesk](https://composio.dev/auth/zendesk).

## Tools

### Count Zendesk Organizations

**Slug:** `ZENDESK_COUNT_ZENDESK_ORGANIZATIONS`

Count the number of organizations in Zendesk. Returns a single numeric total only — no names, IDs, or custom fields. Use ZENDESK_GET_ALL_ZENDESK_ORGANIZATIONS for per-organization detail.

### Create Zendesk Organization

**Slug:** `ZENDESK_CREATE_ZENDESK_ORGANIZATION`

Create an organization in Zendesk. Both `name` and `external_id` must be unique across the account; verify no duplicates exist before calling. Returns `data.id` — persist it for subsequent update or delete operations.

### Create Zendesk Ticket

**Slug:** `ZENDESK_CREATE_ZENDESK_TICKET`

Create a ticket in Zendesk with full support for all ticket fields. Returns `ticket_id` and `ticket_url`; use ZENDESK_GET_ZENDESK_TICKET_BY_ID for the full ticket object.

### Create Zendesk User

**Slug:** `ZENDESK_CREATE_ZENDESK_USER`

Tool to create a new user in Zendesk. Search for existing users first to avoid duplicate accounts with the same email. Use when you need to onboard a user with specific details.

### Delete Zendesk Organization

**Slug:** `ZENDESK_DELETE_ZENDESK_ORGANIZATION`

Delete an organization in Zendesk. This operation is irreversible; confirm organization_id and get explicit user confirmation before calling.

### Delete Zendesk Ticket

**Slug:** `ZENDESK_DELETE_ZENDESK_TICKET`

Permanently deletes a ticket in Zendesk, including its entire conversation history. This action is irreversible; always confirm the correct ticket_id before executing.

### Delete Zendesk User

**Slug:** `ZENDESK_DELETE_ZENDESK_USER`

Tool to permanently delete a user from Zendesk. Use when you need to remove a user account. This action cannot be undone and requires appropriate admin permissions.

### Bulk Delete Zendesk Organizations

**Slug:** `ZENDESK_DESTROY_MANY_ORGANIZATIONS`

Tool to bulk delete Zendesk organizations. Irreversible — confirm ids/external_ids before calling. Use when cleaning up test data or removing obsolete organizations in one call. Returns a job_status payload (initial status typically 'queued'); deletions complete asynchronously and may require follow-up polling to confirm completion.

### Get Zendesk About Me

**Slug:** `ZENDESK_GET_ABOUT_ME`

Get information about the currently authenticated user in Zendesk. Returns only the caller's own account; to look up other users, use ZENDESK_SEARCH_ZENDESK_USERS. Response nests the user object under data.owner_info.user. Useful for verifying the acting user's identity and permissions before performing bulk operations.

### Get Zendesk Organizations

**Slug:** `ZENDESK_GET_ALL_ZENDESK_ORGANIZATIONS`

Get all organizations in Zendesk. Returns results nested under an 'organizations' array; an empty list is valid. Accepts no server-side filters — all filtering by name, domain_names (an array field), or organization_fields must be done client-side. Large accounts require pagination; missing pages will undercount results. Multiple organizations may share similar names or domains — always disambiguate using external_id or domain_names and confirm organization_id before acting. Avoid repeated full-list fetches on large accounts; cache or batch client-side instead.

### Get User

**Slug:** `ZENDESK_GET_USER`

Tool to fetch a single Zendesk user by numeric user_id. Use when you have a user ID from ticket payloads (requester_id, submitter_id, assignee_id, author_id) and need to enrich with full user details (name, email, role, organization_id, etc.).

### Get Zendesk Organization

**Slug:** `ZENDESK_GET_ZENDESK_ORGANIZATION`

Get metadata for a specific Zendesk organization by ID. Response fields are available under data.organization_info. Does not return member/user lists.

### Get Zendesk Ticket

**Slug:** `ZENDESK_GET_ZENDESK_TICKET_BY_ID`

Get ticket details from Zendesk. Response wraps all data under a top-level `data` key; access `data['comments']` for comments and `data['comments'][i]['attachments']` for attachments (attachments unavailable from list endpoints). Each comment has both `html_body` and plain `body` fields — choose appropriately. Fields like `subject`, `organization_id`, `author_id`, and `body` may be null; handle defensively. First comment in `data.comments` is not necessarily from the requester — compare `author_id` against ticket `requester_id` to identify requester messages. For bulk calls, honor `Retry-After` headers on HTTP 429.

### List Tickets

**Slug:** `ZENDESK_LIST_ZENDESK_TICKETS`

List Zendesk tickets with pagination and filtering. Only server-side filter available is external_id; status, priority, tags, assignee_id, and date-range filters must be applied client-side. Timestamps (created_at, updated_at) are ISO 8601 UTC. ticket.subject may be null — coerce to string before filtering. Attachments are not included; retrieve via ZENDESK_GET_ZENDESK_TICKET_BY_ID. HTTP 429 rate limit responses include Retry-After header; apply exponential backoff. Paginate by following next_page until null to avoid missing tickets.

### List Users

**Slug:** `ZENDESK_LIST_ZENDESK_USERS`

Tool to list/enumerate Zendesk users via the Users API. Use when you need to export or iterate through the user directory without a specific name/email filter. Supports both cursor and offset pagination.

### Reply to Zendesk Ticket

**Slug:** `ZENDESK_REPLY_ZENDESK_TICKET`

Action to reply to a Zendesk ticket by adding a comment.

### Search Zendesk

**Slug:** `ZENDESK_SEARCH_ZENDESK`

Tool to search for tickets, users, organizations, and groups in Zendesk using query syntax. Use when you need to find resources across Zendesk using flexible search criteria.

### Search Users

**Slug:** `ZENDESK_SEARCH_ZENDESK_USERS`

Tool to search Zendesk users by email or name. At least one of 'email' or 'name' must be provided; pagination-only calls fail. Results span all roles (end-users, agents, admins); filter by 'role' client-side if needed. No org-scoped filtering — filter by 'organization_id' client-side. A response with count=0 and empty users array means no match, not an error. Use before ticket creation to confirm user identity.

### Update Zendesk Organization

**Slug:** `ZENDESK_UPDATE_ZENDESK_ORGANIZATION`

Update an organization in Zendesk. After updating, re-fetch via ZENDESK_GET_ZENDESK_ORGANIZATION if downstream logic depends on current data.

### Update Zendesk Ticket

**Slug:** `ZENDESK_UPDATE_ZENDESK_TICKET`

Tool to update a ticket in Zendesk. Use when you need to modify ticket fields like status, priority, or subject after confirming the ticket ID.


## Triggers

### New User Created

**Slug:** `ZENDESK_NEW_USER_TRIGGER`

Triggered when a new user is created in Zendesk.

### New Zendesk Ticket

**Slug:** `ZENDESK_NEW_ZENDESK_TICKET_TRIGGER`

Triggers when a new ticket is created in a specified Zendesk view.
