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

# Snooze or resolve stale Chatwoot conversations

> Resolve or snooze Chatwoot conversations that went quiet, with a private note on why. A customer reply reopens them. Runs weekly.

Source: https://cotlet.dev/integrations/chatwoot-api-mcp-server/resolve-stale-conversations

Conversations that nobody closed fill the open and pending lists, hide the ones that need an answer today, and make every report on open conversations look worse than it is.

Cotlet does it in your own Chatwoot account with list\_conversations, get\_conversation, add\_private\_note and set\_conversation\_status, called by your AI agent, an n8n workflow or a script.

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

Hosted · nothing to install or maintain

## Can Chatwoot do this on its own?

Chatwoot automation rules can resolve or snooze a conversation, but the events listed in its help center are Conversation created, Conversation updated, Message created and Conversation opened (checked 22 Oct 2026). None of them is a timer on inactivity. Macros can include a Resolve Conversation step, but an agent runs them one conversation at a time.

## How you do it in Chatwoot today

1. An agent opens the conversation list and uses the filter icon with Conversation Status and Last activity to find conversations that went quiet.
2. The agent opens each one and reads the last messages to see who wrote last, the customer or the team.
3. In the conversation actions panel, under Conversation Status, the agent picks Resolved or Snoozed, or leaves it Open or Pending.
4. To record why, the agent adds a Private Note, so a colleague knows what happened if the customer returns.
5. Automation rules can run the actions Snooze conversation and Resolve conversation, but only on events such as Conversation created, Conversation updated and Message created, so the weekly check stays manual.

## How to snooze or resolve stale Chatwoot conversations

Prompt

```
List Chatwoot conversations in pending or open with no activity for 7 days. Resolve the ones where the customer confirmed the fix, snooze the ones waiting on a date, and leave a private note on each saying why. Do not touch conversations where the customer wrote last.
```

1. 01  
### Collect the quiet ones  
list\_conversations runs for status pending and then open, and follows the pages until has\_more is false. The agent keeps those whose last\_activity\_at is older than your window and leaves the rest.
2. 02  
### Check who wrote last  
get\_conversation brings the thread. A conversation where the customer wrote last is never closed, because someone owes that customer an answer. It goes on your list.
3. 03  
### Decide resolve or snooze  
A customer who confirmed the fix, or a thread whose last team message asked for nothing, is resolved. A thread that waits on a date you gave is snoozed until that date.
4. 04  
### Leave the reason  
add\_private\_note writes one line on why the conversation was closed or snoozed. It stays in the thread for whoever opens it next, and each note waits for your OK by default.
5. 05  
### Change the status  
set\_conversation\_status sets resolved or snoozed. It does not ask for your OK, because setting the status to open again undoes it with one call.

### What you get back

Example data

```
Quiet conversations found: 15
Resolved 9 (customer confirmed, e.g. #1790 Tom Becker: "that fixed it")
Snoozed 3 until their date (waiting on the November invoice run)
Left for you 3 (customer wrote last)
```

### Other ways to ask

- Every Friday, resolve pending conversations in the Support email inbox with no activity for 14 days and list them.
- Snooze every conversation labeled waiting-on-customer until the customer replies.
- List the quiet conversations as a table with who wrote last, and change nothing.
- Resolve conversations labeled spam without a note.

## What Chatwoot allows, and what to know first

- Chatwoot has four statuses, Open, Pending, Resolved and Snoozed, set in the conversation actions panel under Conversation Status.
- A snooze without a time lasts until the contact sends their next message, and a reply from the contact always reopens a snoozed conversation, even before the time you set.
- The Chatwoot automation event Conversation opened fires when a previously snoozed, resolved or pending conversation is opened again, so a rule built on it runs for every reopening.
- In Chatwoot, assignee and status are independent, so a resolved conversation keeps its assignee.

add\_private\_note asks for your OK by default. To run it weekly without you, switch confirmation off for that tool in your dashboard.

Sources: [Chatwoot Help: Lesson 3 (a), mastering core features](https://chatwoot.help/hc/user-guide/articles/1677235281-lesson-3-a-mastering-core-features) · [Chatwoot Help: How to use automation](https://chatwoot.help/hc/user-guide/articles/1677689800-how-to-use-automation) · [Chatwoot Help: How to use conversation filters](https://chatwoot.help/hc/user-guide/articles/1677688192-how-to-use-conversation-filters) · [Chatwoot developers: Toggle Status](https://developers.chatwoot.com/api-reference/conversations/toggle-status)

## Call set\_conversation\_status from a script

curl

```
curl -X PUT https://cotlet.dev/api/v1/chatwoot/conversations/1790/status \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"status":"snoozed","snoozed_until":"2026-11-02T09:00:00Z"}'
```

Example response

```
{
"conversation_id": 1790,
"status": "snoozed",
"snoozed_until": "2026-11-02T09:00:00Z"
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is chatwoot\_write → set\_conversation\_status. Example data.

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

## Chatwoot tools this automation uses

__Cotlet Chatwoot tools used to snooze or resolve stale Chatwoot conversations__
| Tool | Parameters |
| ------------------------- | ------------------------------------------------------------ |
| list\_conversations | status, assignee, inbox\_id, label, contact\_id, query, page |
| get\_conversation | conversation\_id |
| add\_private\_note | conversation\_id, body |
| set\_conversation\_status | conversation\_id, status, snoozed\_until |

[All 14 Chatwoot tools with descriptions](https://cotlet.dev/integrations/chatwoot-api-mcp-server.md#tools)

## Frequently asked questions

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

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

- [Triage new Chatwoot conversations with AI](https://cotlet.dev/integrations/chatwoot-api-mcp-server/triage-new-conversations.md)
- [Reply to Chatwoot questions from canned responses](https://cotlet.dev/integrations/chatwoot-api-mcp-server/reply-from-canned-responses.md)
- [Chatwoot API and MCP server: every tool](https://cotlet.dev/integrations/chatwoot-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to Chatwoot.

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

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

---

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.
