Zendesk

Support Subdomain and OAuth (authorization code or client credentials); legacy email and API token until April 2027

Create, update and search tickets, manage users and organizations, run side conversations, and read macros, views and Help Center articles, from any Windmill script, flow or app.

Set up in 4 steps

1

Zendesk admin: create an OAuth client

In Admin Center, open Apps and integrations, then APIs, then OAuth clients, and add a client of kind Confidential with https://<your Windmill instance>/oauth/callback/zendesk as a redirect URL. Copy the identifier and the secret (shown once). Client-credentials tokens act as the admin who creates the client, so create it from a dedicated bot or admin agent for shared and scheduled flows.

2

Windmill instance admin: configure the client (authorization code)

In Instance settings, then OAuth, add Zendesk and enter the subdomain (yourcompany in yourcompany.zendesk.com), client id and secret. This is done once per instance, and connects one Zendesk account. Skip it if you only use client credentials.

3

Workspace user: connect the resource

Add a zendesk resource. With the instance client configured, click Connect and approve; the token acts as you. Otherwise pick Zendesk under Others and enter the subdomain, client id and secret for client credentials; Windmill renews the token either way, with read and write scopes by default.

4

Run your first script

Start with List Tickets or Search Tickets to check the connection, then Create Ticket or Update Ticket.

Scripts

Building blocks, if none of the projects above fit. Fork one, run it, or call it as a step inside your own flow.

Submit a script →

Trigger flows from Zendesk

Zendesk is not only a destination. These inbound paths are supported today.

Zendesk webhooks on an HTTP route

Create a Windmill HTTP route with Raw body enabled, then in Admin Center add a webhook (Apps and integrations, then Webhooks) pointing at it: subscribe it to Zendesk events (user, organization, ticket events), or leave it on trigger or automation events and add a Zendesk trigger whose action is Notify webhook. Copy the webhook's signing secret, and verify each delivery in a preprocessor: X-Zendesk-Webhook-Signature must equal base64(HMAC-SHA256(secret, X-Zendesk-Webhook-Signature-Timestamp + raw body)).

Resource type

The shape of the credential every script on this page expects.

FieldTypeRequiredWhat it is
passwordstringNoLegacy API-token auth: the API token that goes with username.
subdomainstringYesYour account subdomain: `yourcompany` in yourcompany.zendesk.com.
tokenstringNoOAuth access token. Filled in when you connect with OAuth, using an OAuth client from Admin Center > Apps and integrations > APIs > OAuth clients. When set, username and password are ignored.
usernamestringNoLegacy API-token auth: agent email followed by `/token` (e.g. `[email protected]/token`). Zendesk deactivates API tokens on April 30, 2027; accounts created after July 28, 2026 can't use them.

Questions

What happens to API tokens?

Zendesk is retiring them: accounts created after July 28, 2026 can't use them, no account can create new ones after October 27, 2026, and all of them stop working on April 30, 2027. Resources holding username (email/token) and password still work until then; move them to OAuth by connecting the resource again.

There is no Connect button on my instance

On a self-hosted instance, an instance admin has to configure the Zendesk OAuth client in Instance settings first. Until then, connect with client credentials from the Others row of the resource dialog.

What can the token do?

What the scopes allow, within the permissions of the user it acts as: the approving user for an authorization-code connection, the client's creator for client credentials. The default read and write scopes cover every script here; admin-only calls such as dynamic content need an admin user.

Are my credentials stored on the hub?

Never. They live only in your own Windmill workspace, encrypted at rest.