Skip to content

Zendesk

Zendesk

Zendesk is a customer service platform that centralizes support tickets, live chat, and knowledge base features, enabling efficient helpdesk operations and customer engagement. With the Zendesk integration in SquadOS, your agents can create and update tickets, manage users and organizations, search conversations, and automate support workflows directly from other systems or triggers.

This tool uses OAuth 2.0 (OAUTH2) to connect.

You will need the following fields:

FieldRequiredDescription
subdomainYesYour Zendesk account subdomain (e.g., mycompany from mycompany.zendesk.com).
  1. Go to zendesk.com and log in to your account.
  2. Note the subdomain shown in the address bar (the part before .zendesk.com).
  3. During the Composio connection step, enter that subdomain and authorize access when prompted.
  1. Go to Tools in the side menu (/admin/tools).
  2. Open the Available tab and search for Zendesk.
  3. Click the card to open the details and hit Connect.
  4. You’re taken to the secure connection page hosted by Composio, where you authorize access via OAuth 2.0.
  5. Once done, you’re sent back to SquadOS with the account connected and the tool available to your agents. (Connection-flow details in Organization Tools.)

How do I set up custom OAuth credentials for Zendesk?

Section titled “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.

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.

NameTypeRequiredDescription
subjectstringYesShort summary of the issue (e.g., ‘Cannot log in’).
descriptionstringYesLong-form description / steps to reproduce. This becomes the initial comment on the ticket.
statusstringNoThe state of the ticket. Allowed values: new, open, pending, hold, solved, closed.
prioritystringNoZendesk priority. Values: urgent, high, normal, low. Defaults to normal.
ticket_typestringNoThe type of the ticket. Values: problem, incident, question, task.
assignee_idintegerNoThe ID of the agent to assign the ticket to.
group_idintegerNoThe ID of the group to assign the ticket to.
requester_idintegerNoThe ID of the user requesting support. If provided, requester_name and requester_email are ignored.
requester_namestringNoName of the requester. If supplied, requester_email is also required.
requester_emailstringNoEmail of the requester. Must accompany requester_name.
tagsarrayNoArray of tags to apply to the ticket.
due_atstringNoDue date in ISO 8601 format. Only applicable for task-type tickets.
custom_fieldsarrayNoArray of custom field objects with id and value properties.
collaboratorsarrayNoArray of collaborators to CC. Each element can be a user ID (integer), email address (string), or object with email and optional name.
collaborator_idsarrayNoArray of user IDs to add as collaborators (CCs).
email_ccsarrayNoArray of email CC objects. Write-only field for adding/removing email CCs.
followersarrayNoArray of follower objects. Write-only field for adding/removing followers.
external_idstringNoAn external ID to link this ticket to records in another system.
ticket_form_idintegerNoThe ID of the ticket form. Enterprise only.
via_followup_source_idintegerNoThe ID of a closed ticket to create a follow-up from. The new ticket will be linked to the source ticket.
additional_collaboratorsarrayNoArray of collaborators to add as CCs without removing existing ones.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution.
successfulbooleanYesWhether or not the action execution was successful.

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. Each comment has both html_body and plain body fields. Fields like subject, organization_id, author_id, and body may be null; handle defensively.

NameTypeRequiredDescription
ticket_idintegerYesID of the ticket to get details for.
pageintegerNoPage number for paginating through ticket comments (starts at 1).
per_pageintegerNoNumber of comments to return per page (max 100).
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution.
successfulbooleanYesWhether or not the action execution was successful.

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.

NameTypeRequiredDescription
ticket_idintegerYesID of the ticket to update.
statusstringNoTicket status category. Allowed values: new, open, pending, hold, solved.
prioritystringNoTicket priority. Allowed values: urgent, high, normal, low. Values are case-sensitive.
subjectstringNoTicket subject/title to set during update.
assignee_idintegerNoThe numeric ID of the agent to assign the ticket to.
group_idintegerNoThe numeric ID of the group to assign the ticket to.
comment_bodystringNoText body of the comment to add.
comment_publicbooleanNoWhether the added comment is public (visible to requester) or internal. Defaults to true.
comment_html_bodystringNoHTML body of the comment to add.
comment_uploadsarrayNoUpload tokens to attach files to the comment.
comment_author_idintegerNoAuthor ID for the comment, if different from the authenticated user.
tagsarrayNoTags to set on the ticket. Replaces all existing tags.
custom_fieldsarrayNoList of custom field values. Each item: {id: number, value: any}.
custom_status_idintegerNoThe ID of a custom ticket status. Use this instead of status when custom statuses are active.
due_atstringNoDue date/time for task-type tickets (ISO 8601).
collaboratorsarrayNoCollaborators to set (replaces existing).
collaborator_idsarrayNoCollaborator user IDs to set (replaces existing).
additional_collaboratorsarrayNoAdd collaborators without removing existing ones.
email_ccsarrayNoEmail CCs to add/remove.
followersarrayNoFollowers to add/remove.
safe_updatebooleanNoEnable optimistic locking to prevent overwrites during collisions. Must be paired with updated_stamp.
updated_stampstringNoLast-known updated_at timestamp (ISO 8601) used together with safe_update.
metadataobjectNoCustom metadata to attach to this update’s audit (approximately up to 1 KB).
dataobjectNoOptional raw ticket update object. Provide this to send fields under the ticket wrapper directly.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution.
successfulbooleanYesWhether or not the action execution was successful.

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.

NameTypeRequiredDescription
ticket_idintegerYesID of the ticket to delete.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution.
successfulbooleanYesWhether or not the action execution was successful.

ZENDESK_GET_RECENT_TICKETS

List recently viewed tickets in Zendesk, sorted by the time they were last viewed (most recent first). Useful for agents to quickly access tickets they’ve been working on. Pagination is limited to 10,000 records (100 pages × 100 per page).

NameTypeRequiredDescription
pageintegerNoPage number for offset pagination (1–100).
per_pageintegerNoNumber of tickets per page (max 100).
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution.
successfulbooleanYesWhether or not the action execution was successful.

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.

NameTypeRequiredDescription
querystringYesThe 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.
pageintegerNoPage number for offset pagination.
per_pageintegerNoNumber of results per page. Default: 10, max: 100.
sort_bystringNoField to sort results by. Options: updated_at, created_at, priority, status, ticket_type.
sort_orderstringNoSort order direction. Options: asc (ascending) or desc (descending).
includestringNoSideloads to include in the response. Requires nested syntax: result_type(resource1,resource2).
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution.
successfulbooleanYesWhether or not the action execution was successful.

ZENDESK_GET_TICKET_COMMENTS

List comments on a Zendesk ticket in chronological order (oldest first by default). Each comment has both html_body and plain_body fields — use plain_body for clean text without HTML. Public comments are visible to end users while internal comments are only visible to agents.

NameTypeRequiredDescription
ticket_idintegerYesThe ID of the ticket to retrieve comments for.
sort_orderstringNoSort order for comments. Defaults to asc (oldest first). Use desc for newest first.
per_pageintegerNoNumber of records to return per page (max 100).
includestringNoAccepts users. Use this parameter to list email CCs by side-loading users.
include_inline_imagesbooleanNoWhen true, inline images are also listed as attachments in the response.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution.
successfulbooleanYesWhether or not the action execution was successful.

ZENDESK_MAKE_COMMENT_PRIVATE

Make a public ticket comment private in Zendesk, changing its visibility from public to internal-only (agents only). Use when you need to convert a customer-facing comment to an internal note. Only agents can make comments private.

NameTypeRequiredDescription
ticket_idintegerYesID of the ticket containing the comment to make private.
ticket_comment_idintegerYesID of the ticket comment to make private.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution.
successfulbooleanYesWhether or not the action execution was successful.

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.

NameTypeRequiredDescription
userobjectYesUser object containing all attributes to create. name is mandatory. role must be one of: end-user, agent, or admin. organization_id must be a numeric ID of an existing organization.
skip_verify_emailbooleanNoIf true, do not send a verification email upon creation.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution.
successfulbooleanYesWhether or not the action execution was successful.

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 full user details (name, email, role, organization_id, etc.).

NameTypeRequiredDescription
user_idintegerYesThe numeric ID of the Zendesk user to retrieve.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution.
successfulbooleanYesWhether or not the action execution was successful.

ZENDESK_UPDATE_USER_PROFILE

Partially updates a user profile in Zendesk by identifier, using JSON merge patch semantics — only provided fields are updated. The identifier must follow the format source:type:identifier_type:identifier_value.

NameTypeRequiredDescription
identifierstringYesProfile identifier in format source:type:identifier_type:identifier_value (e.g., company:contact:email:john@example.com).
namestringNoPerson’s name to set on the profile.
typestringNoProfile type (e.g., contact, user, account).
sourcestringNoSource application/system for the profile (e.g., company). Cannot be zendesk as it is reserved.
attributesobjectNoJSON schema compliant object containing profile attributes/details.
identifiersarrayNoList of identifiers for the profile. Each identifier must have a type and value.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution.
successfulbooleanYesWhether or not the action execution was successful.

ZENDESK_SEARCH_ZENDESK_USERS

Search for Zendesk users by query or external ID. Use when you need to find users using flexible search criteria with Zendesk search syntax (e.g., partial name matches, email patterns, notes, phone numbers).

NameTypeRequiredDescription
querystringNoSupports Zendesk search syntax for advanced user searches. Can specify partial or full value of any user property (name, email, notes, phone). Example: query='jdoe'.
external_idstringNoDoes not support search syntax — accepts only exact ID values.
pageintegerNoPage number for offset-based pagination.
per_pageintegerNoNumber of records to return per page.
includestringNoA comma-separated list of sideloads to include in the response.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution.
successfulbooleanYesWhether or not the action execution was successful.

ZENDESK_CREATE_ZENDESK_ORGANIZATION

Create a new organization in Zendesk. The organization ID is auto-assigned and returned. This action is irreversible. Use when you need to register a new company, customer, or group as a Zendesk organization.

NameTypeRequiredDescription
namestringYesA unique name for the organization. Leading and trailing whitespace are automatically trimmed.
tagsarrayNoThe tags of the organization.
notesstringNoAny notes you have about the organization.
detailsstringNoAny details about the organization, such as the address.
group_idintegerNoNew tickets from users in this organization are automatically put in this group.
external_idstringNoA unique external id to associate organizations to an external record.
domain_namesarrayNoAn array of domain names associated with this organization.
shared_ticketsbooleanNoEnd users in this organization are able to see each other’s tickets.
shared_commentsbooleanNoEnd users in this organization are able to comment on each other’s tickets.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution.
successfulbooleanYesWhether or not the action execution was successful.

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.

NameTypeRequiredDescription
organization_idintegerYesNumeric ID of the organization to retrieve. Must be a non-null integer; cast to int if sourced from tools that return it as a string.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution.
successfulbooleanYesWhether or not the action execution was successful.

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 must be done client-side. Large accounts require pagination.

NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution.
successfulbooleanYesWhether or not the action execution was successful.

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.

NameTypeRequiredDescription
organization_idintegerYesID of the organization to update. Verify the exact ID before updating.
dataobjectYesNew data for the organization. Must use valid Zendesk field names (e.g., name, notes, domain_names, external_id). domain_names must be an array and is treated as a full replacement.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution.
successfulbooleanYesWhether or not the action execution was successful.

ZENDESK_SEARCH_ZENDESK_ORGANIZATIONS

Search organizations in Zendesk by external ID or name. Returns an array of organizations matching the provided criteria. An empty organizations array with count=0 means no matches found.

NameTypeRequiredDescription
namestringNoThe name of an organization to search for. Supports exact and partial matching.
external_idintegerNoThe external id of an organization to search for. Case-insensitive external identifier.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution.
successfulbooleanYesWhether or not the action execution was successful.

ZENDESK_CREATE_ZENDESK_REQUEST

Create a new request in Zendesk. Use when an end user needs to submit a support request through the API. Returns the created request with its ID and URL.

NameTypeRequiredDescription
subjectstringYesThe subject/title of the request.
comment_bodystringNoThe initial description or comment on the request.
prioritystringNoThe priority of the request. Values: low, normal, high, urgent. Defaults to normal.
typestringNoThe type of the request. Values: question, incident, problem, task.
statusstringNoThe state of the request. Defaults to new.
tagsarrayNoArray of tags to apply to the request.
requester_idintegerNoThe ID of the user making the request.
requester_namestringNoName of the requester. If provided with requester_email, creates a user object.
requester_emailstringNoEmail of the requester. Must be provided together with requester_name.
external_idstringNoAn external ID to link this request to records in another system.
custom_fieldsarrayNoCustom fields. Each item should include id and value.
ticket_form_idintegerNoThe numeric ID of the ticket form. Enterprise accounts only.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution.
successfulbooleanYesWhether or not the action execution was successful.

ZENDESK_GET_VIEWS_EXECUTE

Execute a Zendesk view to retrieve its column titles and matching ticket rows. Supports pagination, custom sorting, and optional grouping of results. Returns the view’s execution metadata alongside the matching rows.

NameTypeRequiredDescription
view_idintegerYesThe ID of the view to execute.
sort_bystringNoThe ticket field used for sorting (title or custom field id).
sort_orderstringNoThe direction the tickets are sorted. May be one of asc or desc.
group_bystringNoThe ticket field used for grouping.
pagestringNoPagination parameter. Supports both traditional offset and cursor-based pagination.
includestringNoA comma-separated list of sideloads to include in the response.
excludestringNoA comma-separated list of sideloads to exclude from the response.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution.
successfulbooleanYesWhether or not the action execution was successful.

ZENDESK_CREATE_ZENDESK_ATTACHMENTS

Upload a file attachment to Zendesk. Returns an attachment object with an ID that can be used to attach the file to a ticket comment. The upload token returned is valid for 60 minutes.

NameTypeRequiredDescription
fileobjectYesThe file to upload to Zendesk. FileUploadable object where name is the filename to use for the attachment (e.g., document.pdf, error_log.txt).
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution.
successfulbooleanYesWhether or not the action execution was successful.

ZENDESK_CREATE_ZENDESK_GROUP

Create a new group in Zendesk. The group name must be unique within the account. Use when organizing agents into teams for ticket assignment and routing. Returns the full group object including the assigned ID.

NameTypeRequiredDescription
namestringYesThe name of the group. Must be unique within the account. Leading/trailing whitespace is trimmed.
descriptionstringNoAn optional description of the group explaining its purpose or responsibilities.
is_publicbooleanNoIf true, the group is public and visible to all agents. If false, the group is private. Cannot be changed to public after creation.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution.
successfulbooleanYesWhether or not the action execution was successful.

ZENDESK_APPLY_ZENDESK_MACRO

Preview how a Zendesk macro would affect a ticket without actually applying it. Returns the ticket object as it would appear after the macro is applied, showing any changes to fields, comments, status, or other properties.

NameTypeRequiredDescription
ticket_idintegerYesThe ID of the ticket to preview the macro on.
macro_idintegerYesThe ID of the macro to apply.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution.
successfulbooleanYesWhether or not the action execution was successful.

ZENDESK_GET_MACROS

List all shared and personal macros available in your Zendesk account. Macros are saved response templates that agents can apply to tickets. Supports filtering by access level, active status, category, and group.

NameTypeRequiredDescription
activebooleanNoFilter by active macros if true or inactive macros if false.
accessstringNoFilter macros by access. Possible values: personal, agents, shared, account.
sort_bystringNoSort order. Values: alphabetical, created_at, updated_at, usage_1h, usage_24h, usage_7d, usage_30d.
sort_orderstringNoSort direction. One of asc or desc.
group_idintegerNoFilter macros by group ID.
categoryintegerNoFilter macros by category ID.
only_viewablebooleanNoIf true, returns only macros that can be applied to tickets.
pagestringNoPagination parameter. Supports traditional offset and cursor-based pagination.
per_pageintegerNoNumber of records to return per page.
includestringNoA sideload to include in the response.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution.
successfulbooleanYesWhether or not the action execution was successful.

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.

NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution.
successfulbooleanYesWhether or not the action execution was successful.