[Cotlet](https://cotlet.dev/index.md) · [Integrations](https://cotlet.dev/integrations.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Use cases](https://cotlet.dev/use-cases.md) · [Security](https://cotlet.dev/security.md) · [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md) · [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [Contact](https://cotlet.dev/contact.md) · [Pricing](https://cotlet.dev/pricing.md) · [Sign up](https://cotlet.dev/signup)

# Apply Zendesk macros to tickets automatically

> Let your agent pick and apply the right Zendesk macro to each ticket, instead of clicking Apply macro ticket by ticket. Edge cases stay with you.

Source: https://cotlet.dev/integrations/zendesk-api-mcp-server/apply-macros-to-tickets

You have macros for the answers that repeat, but each one still needs an agent to open the ticket, find the macro in a list and click it, ticket after ticket.

Cotlet does it in your own Zendesk account with list\_macros, search\_tickets, get\_ticket and apply\_macro, called by your AI agent, an n8n workflow or a script.

[Sign up free](https://cotlet.dev/app/signup?app=zendesk) [All Zendesk tools](https://cotlet.dev/integrations/zendesk-api-mcp-server.md)

Hosted · nothing to install or maintain

## Can Zendesk do this on its own?

Zendesk applies a macro when an agent chooses it, one ticket or a bulk selection at a time, and on Support Professional and Enterprise it suggests macros based on similar past tickets (checked 16 Oct 2026). A suggested macro is only applied after the agent clicks and submits. Nothing picks and applies a macro by reading the ticket.

## How you do it in Zendesk today

1. In a ticket the agent clicks Apply macro in the bottom toolbar, or types a slash (/) in the comment to open the macro list.
2. The list shows the most-used macros of the past week on top, can be filtered by typing the start of a name, and opens a preview of what the macro will change.
3. The macro inserts its comment and updates ticket fields; the agent can edit the comment text and then submits the ticket.
4. To apply one macro to many tickets, the agent selects them in a view and picks the macro from the Apply Macro menu.
5. Matching a macro to a ticket is still a human read each time, and macros that look alike are easy to mix up.

## How to apply Zendesk macros to tickets automatically

Prompt

```
Look at open Zendesk tickets without a reply. Where a macro clearly fits, such as Downgrade and inform for feature requests, apply it. Show me the ticket and the macro for anything uncertain.
```

1. 01  
### Learn your macros  
list\_macros returns titles and descriptions once per run. The agent matches your rule (for example "feature requests get Downgrade and inform") to a macro that exists and is active.
2. 02  
### Find the candidates  
search\_tickets lists open tickets with no public reply yet, so a ticket a colleague already answered is not touched.
3. 03  
### Read before applying  
get\_ticket gives the description. A macro is applied only if the ticket clearly fits its description. Anything between two macros is listed for you with both names.
4. 04  
### Apply and report  
apply\_macro applies the macro and saves the ticket, then returns what it changed. It asks for your OK first, because a macro that adds a public comment emails the requester.
5. 05  
### Retry once on a stale ticket  
If Zendesk refuses a macro because the ticket changed in the meantime, the agent reads the ticket again and retries once, then reports it.

### What you get back

Example data

```
Open tickets with no reply: 12
Macro applied 7:
- 4 x Downgrade and inform (feature requests)
- 3 x Requester not responding
No clear macro, left for you 5:
- #48190 mentions both billing and a bug
- #48201 is a refund request
```

### Other ways to ask

- Every morning, apply Close and redirect to topics to tickets whose subject starts with "Re: Your newsletter" and show me the list.
- Suggest a macro for each of today's new tickets as a table and apply nothing.
- Apply the Take it! macro to unassigned tickets tagged vip for me.

## What Zendesk allows, and what to know first

- A Zendesk macro that updates a ticket field only works if that field appears on the ticket form.
- If the account behind the job lacks permission for a change a macro makes, that action does not happen, so the user needs the right role.
- Zendesk macros cannot be set up for specific channels; the actions run on whichever ticket they are applied to.
- A macro with placeholders applied to a problem or incident ticket can fill in the wrong values, since placeholders may need escaping there.
- Applied macros show in the ticket's events log, and one macro can undo what another did, so two macros on one ticket need a deliberate order.

apply\_macro asks for your OK by default. To run it daily without you, switch confirmation off for that tool in your dashboard.

Sources: [Zendesk Help: Using macros to update tickets](https://support.zendesk.com/hc/en-us/articles/4408887656602-Using-macros-to-update-tickets) · [Zendesk Help: Applying suggested macros to tickets](https://support.zendesk.com/hc/en-us/articles/4408826078362-Applying-suggested-macros-to-tickets) · [Zendesk Help: Managing tickets in bulk](https://support.zendesk.com/hc/en-us/articles/4408886890906-Managing-tickets-in-bulk)

## Call apply\_macro from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/zendesk/tickets/48177/macros/360011204873/apply \
  -H "Authorization: Bearer $COTLET_API_KEY"
```

Example response

```
{
"ticket_id": 48177,
"macro": {
"macro_id": 360011204873,
"title": "Downgrade and inform"
},
"changes": {
"priority": "low"
},
"comment": {
"public": true,
"body": "Thanks for the idea. We have lowered the priority of your request to low, so it may take longer to get to."
},
"updated_at": "2026-10-16T09:03:00Z"
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is zendesk\_write → apply\_macro. Example data.

[Schedule it in n8n, Make, Zapier or cron](https://cotlet.dev/integrations/zendesk-api-mcp-server.md#automations)

## Zendesk tools this automation uses

__Cotlet Zendesk tools used to apply Zendesk macros to tickets automatically__
| Tool | Parameters |
| --------------- | ------------------------------------------- |
| list\_macros | query, limit |
| search\_tickets | query, sort\_by, sort\_order, limit, cursor |
| get\_ticket | ticket\_id |
| apply\_macro | ticket\_id, macro\_id |

[All 12 Zendesk tools with descriptions](https://cotlet.dev/integrations/zendesk-api-mcp-server.md#tools)

## Frequently asked questions

### Is it safe to connect Zendesk to Cotlet?

Yes. You sign in to Zendesk yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get Zendesk once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.

## More Zendesk automations

- [Triage new Zendesk tickets with AI](https://cotlet.dev/integrations/zendesk-api-mcp-server/triage-new-support-tickets.md)
- [Follow up on pending Zendesk tickets](https://cotlet.dev/integrations/zendesk-api-mcp-server/follow-up-on-pending-tickets.md)
- [Zendesk API and MCP server: every tool](https://cotlet.dev/integrations/zendesk-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to Zendesk.

Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with Zendesk.

[Sign up free](https://cotlet.dev/app/signup?app=zendesk)

---

Give your AI agents your signed-in browser.

**Product:** [Integrations](https://cotlet.dev/integrations.md) · [Use cases](https://cotlet.dev/use-cases.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Pricing](https://cotlet.dev/pricing.md) · [Security](https://cotlet.dev/security.md)

**Resources:** [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [GitHub](https://github.com/cotletdev/cotlet)

**Solutions:** [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md)

**Company:** [About](https://cotlet.dev/about.md) · [AI info: company facts](https://cotlet.dev/ai-info.md) · [Contact](https://cotlet.dev/contact.md)

**Legal:** [Terms of service](https://cotlet.dev/terms) · [Privacy policy](https://cotlet.dev/privacy) · [Refund policy](https://cotlet.dev/refunds) · [Acceptable use](https://cotlet.dev/acceptable-use) · [Cookie policy](https://cotlet.dev/cookies) · [DPA](https://cotlet.dev/dpa) · [Subprocessors](https://cotlet.dev/subprocessors)

**Elsewhere:** [Status page](https://status.cotlet.dev) · [Cotlet on GitHub](https://github.com/cotletdev) · [Cotlet on X](https://x.com/cotletdev) · [Cotlet on LinkedIn](https://www.linkedin.com/company/cotletdev) · [Cotlet on Product Hunt](https://www.producthunt.com/products/cotlet) · [Cotlet on Crunchbase](https://www.crunchbase.com/organization/cotlet) · [Cotlet on SaaSHub](https://www.saashub.com/cotlet)

Cotlet is an independent service. It is not affiliated with, endorsed by or sponsored by any of the products listed on this site. Product names are trademarks of their respective owners.

## For AI agents: sign your user up

Is your user asking you to sign them up for Cotlet? You can do it for them, no account or key needed.

1. Read the fields and their allowed values: GET https://cotlet.dev/api/v1/access-requests
2. Ask the user for each value: email, apps, what you will do with them. If they leave the password to you, generate a strong one and show it to them.
3. Show the user what you will send, then POST it as JSON to https://cotlet.dev/api/v1/access-requests.

One call creates the account and sends the access request; we email the user when access is granted.
