Zendesk provides customer support software with ticketing, live chat, and knowledge base features, enabling efficient helpdesk operations and customer engagement
Zendesk provides customer support software with ticketing, live chat, and knowledge base features, enabling efficient helpdesk operations and customer engagement On Nagent, Zendesk is exposed as a fully-configurable crm integration that any agent can call — 20 actions, 2 triggers, and OAuth authentication. No code is required to wire Zendesk into your workflow — connect it once via the External Integrations panel and reuse it across every agent you build.
Agent builders use Zendesk to automate the kinds of tasks crm teams previously handled manually. Concrete examples — each one is a single agent step in Nagent — include:
Zendesk also supports 2 event triggers ("New User Created", "New Zendesk Ticket"), which lets your Nagent agents react to Zendesk activity in real time — for example, kicking off a downstream workflow the moment a relevant event fires.
Every action and trigger is paired with a structured input/output schema (visible in the sections below), so when you wire Zendesk into Helix — our agentic agent builder — the editor knows exactly what each step expects and produces. Configure once, deploy anywhere across your Nagent agents.
Triggers are the entry points of agents built on Nagent — pick one to fire your agent the moment a Zendesk event happens. Webhook triggers run instantly; poll triggers check on an interval you configure. Each shows its configuration parameters and the payload your agent receives.
ZENDESK_NEW_USER_TRIGGERTriggered when a new user is created in Zendesk.
Configuration
The events to subscribe to.
Name of the webhook.
Payload
The Zendesk account ID
Detailed information about the user
Additional event information
The event UUID
The subject of the event
The timestamp of the event
The type of the event
The version of the Zendesk event
ZENDESK_NEW_ZENDESK_TICKET_TRIGGERTriggers when a new ticket is created in a specified Zendesk view.
Configuration
Periodic Interval to Check for Updates & Send a Trigger in Minutes
Payload
Type of Zendesk ticket event
Ticket details
Every operation an agent can call against Zendesk, with input parameters and output schema. Drop these into any step of an agent built in Helix.
ZENDESK_COUNT_ZENDESK_ORGANIZATIONSCount 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.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ZENDESK_CREATE_ZENDESK_ORGANIZATIONCreate 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.
Input parameters
Name of the organization Zendesk trims leading/trailing whitespace, so visually distinct strings may collide on uniqueness validation.
Optional external ID for the organization
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ZENDESK_CREATE_ZENDESK_TICKETCreate 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.
Input parameters
Array of tags to apply to the ticket.
Due date for the ticket in ISO 8601 format. Only applicable for task tickets.
The state of the ticket. Allowed values: 'new', 'open', 'pending', 'hold', 'solved', 'closed'.
Short summary of the issue. Keep it concise (e.g. 'Cannot log in').
The ID of the group to assign the ticket to.
Zendesk priority. Must be one of: 'urgent', 'high', 'normal', 'low'. Defaults to 'normal'.
Array of email CC objects. Write-only field for adding/removing email CCs.
Array of follower objects. Write-only field for adding/removing followers.
The ID of the agent to assign to the ticket.
Long-form description / steps to reproduce. This becomes the initial comment on the ticket.
An external ID to link this ticket to records in another system.
The type of this ticket. Allowed values: 'problem', 'incident', 'question', 'task'.
The ID of the user requesting support. If provided, requester_name and requester_email are ignored.
Array of collaborators to CC on the ticket. Each element can be: a user ID (integer), an email address (string), or an object with 'email' and optional 'name'.
Array of custom field objects with 'id' and 'value' properties.
Name of the requester. If you supply this, you MUST also supply `requester_email`. Leave both blank to default to the authenticated user. Ignored if requester_id is provided.
The ID of the ticket form to render for the ticket. Enterprise only.
Email of the requester. Must accompany `requester_name`. Ignored if requester_id is provided.
Array of user IDs to add as collaborators (CCs) on the ticket.
The ID of a closed ticket to create a follow-up from. The new ticket will be linked to the source ticket.
Array of collaborators to add as CCs without removing existing collaborators. Each element can be: a user ID (integer), an email address (string), or an object with 'email' and optional 'name'.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ZENDESK_CREATE_ZENDESK_USERTool 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.
Input parameters
User object containing all attributes to create `name` is mandatory; omitting it causes a validation error. `role` must be one of: 'end-user', 'agent', or 'admin'. `organization_id` must be a numeric ID of an existing organization — not a name string. Only include fields supported by the Zendesk user schema; unsupported or incorrectly typed fields trigger validation errors.
If true, do not send a verification email upon creation. Passed as a URL query parameter.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ZENDESK_DELETE_ZENDESK_ORGANIZATIONDelete an organization in Zendesk. This operation is irreversible; confirm organization_id and get explicit user confirmation before calling.
Input parameters
ID of the organization to delete
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ZENDESK_DELETE_ZENDESK_TICKETPermanently deletes a ticket in Zendesk, including its entire conversation history. This action is irreversible; always confirm the correct ticket_id before executing.
Input parameters
ID of the ticket to delete
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ZENDESK_DELETE_ZENDESK_USERTool 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.
Input parameters
The ID of the user to delete
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ZENDESK_DESTROY_MANY_ORGANIZATIONSTool 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.
Input parameters
Comma-separated list of Zendesk organization IDs to delete (max 100). Required if external_ids is not provided.
Comma-separated list of Zendesk external organization IDs to delete (max 100). Required if ids is not provided.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ZENDESK_GET_ABOUT_MEGet 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.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ZENDESK_GET_ALL_ZENDESK_ORGANIZATIONSGet 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.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ZENDESK_GET_USERTool 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.).
Input parameters
The numeric ID of the Zendesk user to retrieve. This is the user ID found in ticket payloads (requester_id, submitter_id, assignee_id, author_id).
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ZENDESK_GET_ZENDESK_ORGANIZATIONGet metadata for a specific Zendesk organization by ID. Response fields are available under data.organization_info. Does not return member/user lists.
Input parameters
Numeric ID of the organization to retrieve (e.g. 123456). Must be a non-null integer; cast to int if sourced from tools that return it as a string. Do not pass null (skip the call if ticket's organization_id is null). Obtain from ZENDESK_GET_ALL_ZENDESK_ORGANIZATIONS or ZENDESK_CREATE_ZENDESK_ORGANIZATION; never derive from organization name.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ZENDESK_GET_ZENDESK_TICKET_BY_IDGet 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.
Input parameters
Page number for paginating through ticket comments (starts at 1). Zendesk returns up to 100 comments per page by default.
Number of comments to return per page (max 100). Use with 'page' to control pagination of ticket comments.
ID of the ticket to get details for.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ZENDESK_LIST_ZENDESK_TICKETSList 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.
Input parameters
Page number for offset pagination (1-100). Limited to first 100 pages or 10,000 records total. For larger datasets, use cursor pagination (page_size) instead.
Field to sort by: 'assignee', 'assignee.name', 'created_at', 'group', 'id', 'requester', 'requester.name', 'status', 'subject', 'updated_at' Omitting sort_by provides no guaranteed ordering; set explicitly when ticket order matters.
Number of tickets per page for offset pagination (max 100). Note: page * per_page cannot exceed 10,000. Set to 100 for large accounts to minimize requests before client-side filtering.
Number of tickets per page for cursor pagination (max 100). Use this for large datasets instead of page/per_page.
Cursor value to retrieve the next page of results. Obtained from previous response's 'after_cursor' or 'next' link.
Sort order: 'asc' or 'desc'
Filter tickets by external ID
Cursor value to retrieve the previous page of results. Obtained from previous response's 'before_cursor' or 'prev' link.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ZENDESK_LIST_ZENDESK_USERSTool 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.
Input parameters
Page number for offset pagination (starts at 1). Cannot be used with cursor pagination.
Filter results by a single role. Use 'end-user', 'agent', or 'admin'.
Number of users per page for offset pagination (max 100). Cannot be used with cursor pagination.
Number of users per page for cursor pagination (max 100). Use with page_after. Cannot be used with offset pagination.
Filter results by multiple roles. Provide a list of roles to include users matching any of them.
Cursor for fetching next page in cursor pagination. Use with page_size. Cannot be used with offset pagination.
Filter by external ID. Must be unique per user under the same account.
Filter by custom role ID (Enterprise plan only). Only one role ID per request.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ZENDESK_REPLY_ZENDESK_TICKETAction to reply to a Zendesk ticket by adding a comment.
Input parameters
Comment content Must contain only the final reply text — do not include draft reasoning or mixed content.
Whether the comment is public or internal Public comments are customer-facing and trigger email notifications to the requester; set to false for internal agent notes to prevent unintended customer visibility.
ID of the ticket to reply to. Note: Closed tickets cannot be updated.
The ID of the agent to assign the ticket to
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ZENDESK_SEARCH_ZENDESKTool 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.
Input parameters
Page number for offset pagination.
The search query string. Supports Zendesk query syntax for filtering by type, status, priority, etc. Example: 'type:ticket status:open priority:urgent' or 'assignee:me status:pending'.
Comma-separated list of related resources to sideload in the response. Available sideloads depend on the result types (e.g., 'users', 'groups', 'organizations').
Field to sort results by. Options: 'updated_at', 'created_at', 'priority', 'status', 'ticket_type'. Defaults to sorting by relevance if not specified.
Number of results per page. Default: 10, max: 100.
Sort order direction. Options: 'asc' (ascending) or 'desc' (descending). Defaults to 'desc' if not specified.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ZENDESK_SEARCH_ZENDESK_USERSTool 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.
Input parameters
Full or partial name to search for. For phrase searches, enclose in quotes. Partial matches may return many results across roles; verify the correct user via email or 'organization_id' before using a returned user_id.
Page number for offset pagination (starts at 1).
Email address to search for. Exact match (e.g., 'jdoe@example.com'). Domain-fragment searches (e.g., '@example.com') are unsupported; fetch broader results and filter client-side.
Number of users per page (max 100). Increment 'page' until the returned users array is empty to paginate through all results.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ZENDESK_UPDATE_ZENDESK_ORGANIZATIONUpdate an organization in Zendesk. After updating, re-fetch via ZENDESK_GET_ZENDESK_ORGANIZATION if downstream logic depends on current data.
Input parameters
New data for the organization Must use valid Zendesk organization field names (e.g., `name`, `notes`, `domain_names`, `external_id`); invalid fields may be silently ignored. `domain_names` must be an array and is treated as a full replacement — always include existing domains alongside new ones to avoid removing them. Zendesk trims whitespace from `name`, so near-identical strings may collide on uniqueness validation.
ID of the organization to update Verify the exact ID before updating — multiple organizations may share similar names and updates are persistent.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
ZENDESK_UPDATE_ZENDESK_TICKETTool to update a ticket in Zendesk. Use when you need to modify ticket fields like status, priority, or subject after confirming the ticket ID.
Input parameters
Optional raw ticket update object. Provide this to send fields under the 'ticket' wrapper directly. Alternatively, use the un-nested fields above.
Tags to set on the ticket. Using tags here replaces all existing tags.
Due date/time for task-type tickets (ISO 8601).
Ticket status category. Allowed values: new, open, pending, hold, solved. Note: If your account has custom statuses enabled, use custom_status_id instead.
Ticket subject/title to set during update.
The numeric ID of the group to assign the ticket to.
Custom metadata to attach to this update's audit (approximately up to 1 KB).
Ticket priority. Allowed values: urgent, high, normal, low. Values are case-sensitive.
Email CCs to add/remove. Each object includes user_id or user_email, optional user_name, and action ('put'\\|'delete').
Followers to add/remove. Each object should include user_id or user_email, with optional action ('put'\\|'delete').
ID of the ticket to update.
The numeric ID of the agent to assign the ticket to. The agent must be a member of the group the ticket is assigned to. Use this parameter directly rather than passing through data to avoid 400 errors.
Enable optimistic locking to prevent overwrites during collisions. Must be paired with updated_stamp to take effect.
Text body of the comment to add.
Collaborators to set (replaces existing). Accepts user IDs, emails, or {name, email} objects.
List of custom field values. Each item: {id: number, value: any}.
Last-known updated_at timestamp (ISO 8601) used together with safe_update.
Whether the added comment is public (visible to requester) or internal. Defaults to true (public); set false to create an internal note.
Upload tokens to attach files to the comment.
Collaborator user IDs to set (replaces existing).
The ID of a custom ticket status. Required for accounts with custom statuses enabled. Use this instead of 'status' when custom statuses are active. Retrieve available custom status IDs from the Custom Ticket Statuses API.
Author ID for the comment, if different from the authenticated user.
HTML body of the comment to add.
Add collaborators without removing existing ones.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
No publicly available marketplace agent is found using this tool yet. There are 60 agents privately built on Nagent that already use Zendesk.
Build on Nagent
Connect Zendesk to any Nagent agent in minutes — no API key management, no boilerplate. Just configure and deploy.
The five questions agent builders ask before adopting a new integration.
Open the External Integrations panel inside Nagent (app.nagent.ai/externalIntegration), find Zendesk, and click "Connect Now." You'll authenticate with OAuth — Nagent handles credential storage and refresh automatically. Once connected, Zendesk is available to any agent in your workspace.
No. Nagent provides no-code integration for every tool. Once Zendesk is connected, you configure its 20 actions and 2 triggers directly in the agent builder UI — no API calls, no boilerplate, no schema management.
Helix — Nagent's agentic agent builder — lets you drop Zendesk steps into any workflow visually. Pick an action (e.g., one of those listed above), fill in the inputs (Helix knows the required vs. optional schema for each parameter), and connect it to upstream/downstream steps. Triggers run as the entry point of an agent, so when a Zendesk event fires, the agent kicks off automatically.
Every Zendesk action and trigger ships with a fully-typed schema — input parameters with name, type, required flag, and description, plus the output payload shape. The schemas are documented in the sections above. Helix uses these schemas to validate your configuration at build time and to type-check the data flowing between steps.
Yes. While Zendesk ships with 20 pre-built crm actions, you can layer custom logic around them inside Helix — pre/post-processing steps, conditional branches, retries, or stitching Zendesk together with other connected tools. For deeper customization, talk to our team about Nagent's Agentic AI Lab — forward-deployed engineers who build Zendesk-based workflows tailored to your business.