[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)

# Reply to HappyFox tickets with canned actions

> Let your agent pick and apply the right HappyFox canned action to each ticket, instead of choosing it ticket by ticket. Edge cases stay with you.

Source: https://cotlet.dev/integrations/happyfox-api-mcp-server/reply-with-canned-actions

You keep canned actions for the answers that repeat, but each one still needs an agent to open the ticket, find the action in a list and apply it, ticket after ticket.

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

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

Hosted · nothing to install or maintain

## Can HappyFox do this on its own?

HappyFox applies a canned action when an agent chooses it in the Reply or Private Note editor, one ticket at a time (checked 20 Oct 2026). Merge fields in canned actions do not work with bulk actions. Nothing reads a ticket and picks the action that fits it.

## How you do it in HappyFox today

1. An admin builds canned actions under Automate >> Canned Actions, each with a predefined response, optional property changes and attachments.
2. In a ticket the agent clicks Reply or Private Note and picks the canned action from the list inside the editor.
3. The list shows only canned actions defined for the category of that ticket, so a ticket in another category needs a different action.
4. The action fills in the response, changes properties such as status, priority and assignee, and adds its attachments, and the agent submits.
5. Matching an action to a ticket is still a human read each time, and actions with similar names are easy to mix up.

## How to reply to HappyFox tickets with canned actions

Prompt

```
Look at open HappyFox tickets with no reply. Where a canned action clearly fits, such as the password reset steps, apply it as a reply. Show me the ticket and the canned action for anything uncertain.
```

1. 01  
### Learn your actions  
list\_canned\_actions returns the names and categories once per run. The agent matches your rule ("password questions get Password reset steps") to an action that exists for the ticket's category.
2. 02  
### Find the candidates  
search\_tickets lists open tickets that nobody has answered yet, so a ticket a colleague already replied to is not touched.
3. 03  
### Read before applying  
get\_ticket gives the first message. An action is applied only if the ticket clearly fits it. Anything between two actions is listed for you with both names.
4. 04  
### Apply and report  
apply\_canned\_action applies the action as a reply or a private note, submits it and returns the changes it made. It asks for your OK first, because a reply emails the contact.
5. 05  
### Check the ticket first  
Right before applying, the agent reads the ticket again. If a colleague answered in the meantime, it skips the ticket and logs it.

### What you get back

Example data

```
Open tickets with no reply: 12
Canned action applied 7:
- 4 x Password reset steps (login questions)
- 3 x Invoice copy (billing questions)
No clear action, left for you 5:
- #2090 mentions both billing and a bug
- #2096 is a refund request
```

### Other ways to ask

- Every morning, apply Out of office hours to tickets that arrived outside working hours and show me the list.
- Suggest a canned action for each of today's new tickets as a table and apply nothing.
- Apply the first-response action to unassigned tickets in the Sales category.

## What HappyFox allows, and what to know first

- A HappyFox canned action appears in the editor only if canned actions are defined for the ticket's category.
- A canned action can change status, priority and assignee, and add predefined attachments, so one apply can also assign the ticket.
- HappyFox canned actions work in a reply and in a private note, and a private note does not reach the contact.
- Merge fields in canned actions do not work with bulk actions, so the agent applies them ticket by ticket.

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

Sources: [HappyFox Support: Use Canned Actions for frequent replies](https://support.happyfox.com/kb/article/49-use-canned-actions-for-frequent-replies/) · [HappyFox Support: Using Canned Actions](https://support.happyfox.com/kb/article/643-using-canned-actions/) · [HappyFox Support: Perform Bulk Actions on Tickets](https://support.happyfox.com/kb/article/615-perform-bulk-actions-on-tickets/)

## Call apply\_canned\_action from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/happyfox/tickets/2090/canned-actions/31/apply \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"mode":"reply"}'
```

Example response

```
{
"ticket_id": 2090,
"update_id": 88140,
"mode": "reply",
"canned_action": "Password reset steps",
"changed": {
"status": "Awaiting customer"
},
"created_at": "2026-10-20T09:03:00Z"
}
```

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

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

## HappyFox tools this automation uses

__Cotlet HappyFox tools used to reply to HappyFox tickets with canned actions__
| Tool | Parameters |
| --------------------- | ------------------------------------ |
| list\_canned\_actions | category\_id |
| search\_tickets | queue\_id, query, limit, cursor |
| get\_ticket | ticket\_id |
| apply\_canned\_action | ticket\_id, canned\_action\_id, mode |

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

## Frequently asked questions

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

Yes. You sign in to HappyFox yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get HappyFox 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 HappyFox automations

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

## Give your agent access to HappyFox.

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

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

---

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.
