Freshchat automation · runs daily
Assign new Freshchat conversations to the right team
Chats pile up in the Freshchat Inbox overnight, and every morning an admin reads the first message of each one before picking an agent or a group.
Cotlet does it in your own Freshchat account with list_conversations, list_groups, list_agents and assign_conversation, called by your AI agent, an n8n workflow or a script.
Hosted · nothing to install or maintain
Can Freshchat do this on its own?
Freshchat assigns by Assignment Rules, IntelliAssign load balancing and Topics routing (checked 22 Oct 2026). Its REST API can set the assigned agent or group on a conversation, and no official MCP server exists. The gap is judgement: nothing assigns by what the customer actually asks.
How you do it in Freshchat today
- An Account Owner or Admin opens the Inbox, reads the first message of each new conversation and assigns it by hand to an agent or a group, for example a technical question to a developer and a demo request to the sales team.
- To move many at once, the admin ticks the checkbox next to several conversations and assigns them together to one agent or group.
- For fixed patterns, the admin builds a rule under Admin > Assignment Rules > Add new rule, with an If block (message content, URL, message source, visitor attributes such as country or email, business hours, browser language) and a Then block that assigns an agent or a group.
- Assignment Rules run before IntelliAssign, which only takes the messages that no rule matched, and a rule also wins over a Topics-to-group mapping.
- A rule reads words and fields, not meaning, so a billing question phrased in its own way falls through to IntelliAssign or waits for someone to notice.
How to assign new Freshchat conversations to the right team
List the new, unassigned Freshchat conversations. Send billing questions to the Billing group, bugs to Support, and leave anything unclear for me with a one-line reason. - 01
Read the unassigned queue
Your agent calls list_conversations with status new and follows next_cursor until it comes back empty, so a long overnight backlog is judged as one batch. The account must be an Admin or Account Owner, because assigning is limited to those roles; for any other role the agent stops and says so.
- 02
Learn the teams
list_groups and list_agents give the IDs the next call needs. list_agents also returns each agent's status, and the agent leaves out anyone whose status is not "Active on IntelliAssign" when you asked for available people only.
- 03
Check the rules first
list_conversations on the same queue is paired with the rules you already keep. A conversation that an Assignment Rule would catch is still assigned by the rule, so the agent only handles what reached the queue unassigned.
- 04
Match meaning to a team
Each conversation is matched to a group by what the customer asks, using the routing in your prompt. The agent quotes the sentence it relied on, and a message that fits no group stays unassigned with a one-line reason.
- 05
Assign, after a fresh read
assign_conversation sets the group or agent. Right before the call the agent reads the conversation again, and one that a rule or a colleague already assigned is skipped. Assigning reaches no customer and is undone with one call, so it does not wait for your OK.
What you get back
Unassigned conversations: 17
Assigned 12 (Billing 7, Support 5)
Left for you 5:
- "Hi, quick question about my account" (no topic)
- "Can you call me?" (needs a person)
Already assigned by a rule: 0 Other ways to ask
- Every morning at 8, assign new chats from the pricing page to the Sales group and list the rest for me.
- Spread this week's new conversations evenly across the agents who are active, and do not touch the Billing group.
- Show me the unassigned queue grouped by topic, but do not assign anything yet.
What Freshchat allows, and what to know first
- Freshchat limits assigning to the Account Owner and Admin roles; the Agent role engages in conversations, opens the People section and edits its own profile.
- Freshchat Assignment Rules run before IntelliAssign, and when a message matches several rules the highest rule on the page wins.
- Freshchat's default agent statuses are "Active on IntelliAssign" and "Unavailable", an Admin can add up to 25 custom ones, and for IntelliAssign any status except the first counts as inactive.
- Freshchat lets an Admin assign several conversations in one go by ticking their checkboxes, to agents or to groups.
assign_conversation changes only your own Freshchat data and reach no one else, so it runs without asking first.
Sources: Freshchat Help: Assign conversations to agents · Freshchat Help: What are Assignment Rules · Freshchat Help: Setting up agent status · Freshchat Help: Roles and permissions
Call assign_conversation from a script
curl -X POST https://cotlet.dev/api/v1/freshchat/conversations/7c1e5a90-3b2d-4f68-a4c1-9e0d2b6f8a31/assign \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"group_id":"4d5e6f70-1a2b-4c3d-8e9f-0a1b2c3d4e5f"}' {
"conversation_id": "7c1e5a90-3b2d-4f68-a4c1-9e0d2b6f8a31",
"status": "assigned",
"assigned_group": {
"group_id": "4d5e6f70-1a2b-4c3d-8e9f-0a1b2c3d4e5f",
"name": "Billing"
},
"assigned_agent": null
} MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is freshchat_write → assign_conversation. Example data.
Schedule it in n8n, Make, Zapier or cronFreshchat tools this automation uses
| Tool | Parameters |
|---|---|
| list_conversations | status, waiting, group_id, agent_id, limit, cursor |
| list_groups | none |
| list_agents | group_id |
| assign_conversation | conversation_id, agent_id, group_id |
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.
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.