Zendesk Triggers & Automations
Why did that ticket get auto-assigned, and which rule closes pending tickets after 4 days? Audit Zendesk triggers, automations and trigger categories, read a trigger's revision history, validate condition and action definitions, and draft new rules or edits for an admin to approve.
Connect this API to an AI agent Browse all specs
What you can do with Zendesk Triggers & Automations via MCP
Every endpoint below becomes a governed tool your AI agent (Claude, ChatGPT, or a customer-facing VX agent) can call — with scoped permissions, sandbox testing, and audit logs.
| Method | Path | Operation | Description |
|---|---|---|---|
| GET | /api/v2/triggers |
listTriggers | List ticket triggers, filtered by active state or category |
| POST | /api/v2/triggers |
createTrigger | Create a ticket trigger |
| GET | /api/v2/triggers/search |
searchTriggers | Search ticket triggers by title or filter |
| GET | /api/v2/triggers/{trigger_id} |
getTrigger | Get a trigger's conditions and actions |
| PUT | /api/v2/triggers/{trigger_id} |
updateTrigger | Update a trigger's title, conditions, actions or active state |
| GET | /api/v2/triggers/{trigger_id}/revisions |
listTriggerRevisions | List who changed a trigger and when |
| GET | /api/v2/triggers/{trigger_id}/revisions/{trigger_revision_id} |
getTriggerRevision | Get one past version of a trigger |
| GET | /api/v2/triggers/definitions |
listTriggerDefinitions | List the conditions and actions a trigger can use |
| POST | /api/v2/triggers/validate |
validateTrigger | Check a trigger definition for errors without saving it |
| GET | /api/v2/trigger_categories |
listTriggerCategories | List trigger categories (with trigger counts) |
| GET | /api/v2/automations |
listAutomations | List time-based automations |
| POST | /api/v2/automations |
createAutomation | Create a time-based automation |
| GET | /api/v2/automations/search |
searchAutomations | Search automations by title |
| GET | /api/v2/automations/{automation_id} |
getAutomation | Get an automation's conditions and actions |
| PUT | /api/v2/automations/{automation_id} |
updateAutomation | Update an automation or turn it on or off |
Authentication
zendesk_api_token
HTTP Basic
Zendesk API token over HTTP Basic: username [email protected]/token, password = the API token. (An OAuth access token with the read write scopes also works as a Bearer token.)
How to get a credential
- Sign in as a Zendesk admin and open Admin Center > Apps and integrations > APIs > Zendesk API.
- Turn on Token access and click Add API token; name it (e.g. VX Agents business rules).
- Copy the token (it is shown once).
- Use the email of the admin the token should act as, followed by
/token, as the username and the token as the password.
Permissions used
| Role needed | Operations |
|---|---|
| Agent (read) | listTriggers, searchTriggers, getTrigger, listTriggerRevisions, getTriggerRevision, listTriggerDefinitions, listTriggerCategories, listAutomations, searchAutomations, getAutomation |
| Admin, or agent with permission to manage triggers / automations | validateTrigger, createTrigger, updateTrigger, createAutomation, updateAutomation |
API tokens act as the user in the username, so that user's role decides access.
Common errors
| Status | Meaning | Fix |
|---|---|---|
| 401 | Wrong email/token pair, or token access is off | Check the username ends in /token and token access is enabled in Admin Center. |
| 403 | The user's role cannot manage business rules | Use an admin's email or give the agent role the business rules permission. |
| 422 / 400 | Invalid rule: unknown condition field, wrong operator, or an automation without a once-only condition | Check fields with listTriggerDefinitions and run validateTrigger first. |
| 429 | Rate limit (per minute, by plan) | Wait for the Retry-After seconds and retry. |
Store it as a VX Agents credential (Basic auth: username email/token, password = API token).
Usage guide
Setup
- Credential: HTTP Basic with username
[email protected]/tokenand a Zendesk API token as the password (an admin's, for edits). - Set the server variable
subdomainto your account (forhttps://acme.zendesk.comuseacme).
Explain what a rule does
- Find it:
searchTriggerswithquery(title words) orfilter(e.g.{"json":{"description":"Close a ticket"}}), orlistTriggerswithactive=true,category_id, andsort_by=usage_7dto see the busiest rules. For time-based rules usesearchAutomations(queryis required) orlistAutomations. getTrigger/getAutomationreturnconditions.all(every one must match) andconditions.any(at least one), each{field, operator, value}, plusactions[{field, value}]. Triggers run inpositionorder on every ticket update; automations run hourly on matching tickets.- "Who changed this?"
listTriggerRevisions(include=usersadds the author), thengetTriggerRevisionto compare an old version with the current one. listTriggerCategoriesshows how triggers are grouped.
Draft a new rule or a fix
listTriggerDefinitionslists the condition fields, operators and action fields you can use.- Build the body:
{"trigger": {"title": "...", "category_id": "...", "conditions": {"all": [{"field": "status", "operator": "is", "value": "new"}], "any": []}, "actions": [{"field": "group_id", "value": "123"}]}}. validateTriggerwith that body reports errors without saving.- Show the user the rule in plain words and get a yes; then
createTrigger, orupdateTriggerwith the fullconditionsandactions(an update replaces both arrays). Set"active": falseto switch a rule off rather than deleting it. - Automations work the same way with
createAutomation/updateAutomation({"automation": {...}}); they need a time-based condition (hours since an event, e.g. since the ticket went pending; copy the field names from an existing automation viagetAutomation) and a condition that is true only once or an action that cancels one of the conditions, so they fire once per ticket.
Good to know
- Rule changes affect every future ticket: always confirm before create or update, and prefer creating rules inactive first.
- Automations are checked every hour, so a new one takes up to an hour to act.
- Lists page with
page/per_page(offset) orpage[size]/page[after](cursor). - No delete or reorder operations by design.
Source: Zendesk Support API reference (https://developer.zendesk.com/api-reference/ticketing/business-rules/triggers/), checked 2026-10-25.
How to use this spec
- Create a free VX Agents account (sandbox tools included).
- Open the marketplace and connect “Zendesk Triggers & Automations” to an agent.
- Expose it as an MCP server for Claude/ChatGPT, or chat with it directly.