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

# Resolve idle Freshchat conversations with a label

> Close Freshchat chats the customer stopped answering, tag each with the right label for your reports, and leave open questions alone.

Source: https://cotlet.dev/integrations/freshchat-api-mcp-server/resolve-idle-conversations

Customers go quiet after an answer, the chat stays open in the Inbox, and the label that feeds your reports is only added if an agent remembers to resolve it by hand.

Cotlet does it in your own Freshchat account with list\_conversations, get\_conversation, list\_conversation\_labels and resolve\_conversation, called by your AI agent, an n8n workflow or a script.

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

Hosted · nothing to install or maintain

## Can Freshchat do this on its own?

Freshchat closes idle chats by time with Auto Resolve and labels them only with one fixed label (checked 22 Oct 2026). Its article says different labels per group are not possible with Auto Resolve. The API sets a conversation to resolved, but labels chosen at resolve are not among its update fields.

## How you do it in Freshchat today

1. An Admin turns on Admin > Auto Resolve, switches the toggle to Enabled, chooses all conversations or only specific groups and sets an inactivity limit of at least 5 minutes.
2. Auto Resolve can add one label to the conversations it closes and can turn them into Freshdesk tickets.
3. An agent closes a chat by hand with the Resolve button at the top right; if a label is mandatory, a window asks for the label category and sub-category first.
4. Labels come from Admin > Conversation Labels > Add Conversation Labels, and the Reports > Conversation Labels report shows which ones come up most, from the Growth plan up.
5. The two routes do not meet: Auto Resolve ignores mandatory labels, so a chat closed by time arrives in the report without the sub-category a human would have picked.

## How to resolve idle Freshchat conversations with a label

Prompt

```
Find assigned Freshchat conversations where we replied last and the customer has been silent for a day. Resolve each with the label that fits, and skip anything with an open question.
```

1. 01  
### Find quiet conversations  
list\_conversations runs with status assigned and waiting set to no\_response\_due, which is Freshchat's "No Response Due" state: you replied and the customer has not written since. The agent follows next\_cursor and keeps only chats whose last message is older than the idle time in your prompt.
2. 02  
### Read before closing  
get\_conversation brings the messages. A chat where the customer's last message asks for something, or where your own last reply asks a question, stays open and goes on your list.
3. 03  
### Pick the label  
list\_conversation\_labels returns the label categories with their sub-categories and which ones are mandatory. The agent uses only labels from that list, and a chat that fits none is resolved without a label only if you said so in the prompt.
4. 04  
### Resolve with the label  
resolve\_conversation sets the status and the label together. When Customer Satisfaction is enabled, Freshchat shows the survey as the conversation closes, so each resolve reaches the customer and waits for your OK by default.
5. 05  
### Report what stayed open  
The agent returns the counts per label and the conversations it left open with the reason, so the open ones are the ones you look at.

### What you get back

Example data

```
Quiet conversations checked: 24
Resolved 19:
- Feature Request 6
- Bug Report 7
- Happy Customer 6
Left open 5:
- "Still not working after the update" (customer asked a question last)
```

### Other ways to ask

- Every evening, resolve chats the customer has not answered for two days and label them Churn Feedback if they mention cancelling.
- List the conversations I would resolve and the label for each, and resolve nothing.
- Resolve only chats in the Support group and add the Bug Report label with the sub-category that matches the error they quote.

## What Freshchat allows, and what to know first

- Freshchat requires an Auto Resolve time limit of at least 5 minutes, and Auto Resolve and the offline experience ignore mandatory labels.
- Only an Account Owner or Admin creates Freshchat conversation labels, and a mandatory sub-category stops an agent from resolving without one.
- Freshchat offers conversation labels from the Free plan, and label reports from the Growth plan and above.
- Freshchat sends the CSAT survey when an agent resolves a conversation: five stars, a question of up to 100 characters, and optional rules on message count and delay.

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

Sources: [Freshchat Help: Auto Resolve conversations](https://support.freshchat.com/support/solutions/articles/50000000069-auto-resolve-conversations-with-freshchat-) · [Freshchat Help: Conversation labels and label reports](https://support.freshchat.com/support/solutions/articles/50000000110-conversation-labels-and-label-reports) · [Freshchat Help: CSAT survey and CSAT report](https://support.freshchat.com/support/solutions/articles/50000000109-customer-satisfaction-survey-csat-and-csat-report)

## Call resolve\_conversation from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/freshchat/conversations/b3d9f1a2-6c4e-4a8b-95d7-2e1f0c8a7b64/resolve \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"label":"Feature Request","sub_category":"Export to CSV"}'
```

Example response

```
{
"conversation_id": "b3d9f1a2-6c4e-4a8b-95d7-2e1f0c8a7b64",
"status": "resolved",
"label": "Feature Request",
"sub_category": "Export to CSV",
"resolved_at": "2026-10-22T07:40:00Z"
}
```

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

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

## Freshchat tools this automation uses

__Cotlet Freshchat tools used to resolve idle Freshchat conversations with a label__
| Tool | Parameters |
| -------------------------- | ---------------------------------------------------- |
| list\_conversations | status, waiting, group\_id, agent\_id, limit, cursor |
| get\_conversation | conversation\_id |
| list\_conversation\_labels | none |
| resolve\_conversation | conversation\_id, label, sub\_category |

[All 11 Freshchat tools with descriptions](https://cotlet.dev/integrations/freshchat-api-mcp-server.md#tools)

## Frequently asked questions

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

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

- [Assign new Freshchat conversations to the right team](https://cotlet.dev/integrations/freshchat-api-mcp-server/assign-new-conversations.md)
- [Answer waiting Freshchat chats from your canned responses](https://cotlet.dev/integrations/freshchat-api-mcp-server/answer-waiting-chats.md)
- [Freshchat API and MCP server: every tool](https://cotlet.dev/integrations/freshchat-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to Freshchat.

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

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

---

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.
