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

# Assign unassigned FreeScout conversations by topic

> Read what each unassigned FreeScout conversation is about, assign it to the right agent and leave a note why. Runs every morning.

Source: https://cotlet.dev/integrations/freescout-api-mcp-server/assign-unassigned-conversations

New email lands in the Unassigned folder overnight, and before anyone can start answering, someone has to read each one and decide whose it is.

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

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

Hosted · nothing to install or maintain

## Can FreeScout do this on its own?

FreeScout assigns by rules only through its Workflows module, a paid extra (checked 23 Oct 2026). A rule matches conditions you write in advance, such as the subject, body or tags. The REST API of the paid API & Webhooks module can assign a conversation, but it has no step that reads a message and decides whose it is.

## How you do it in FreeScout today

1. An agent opens the mailbox and its Unassigned conversations, and reads each one to see the topic.
2. In the open conversation the agent presses Assign (key A) and picks a teammate from the Assignee dropdown of that mailbox.
3. The agent adds a note with Add Note (key N) so the teammate knows why it landed on them.
4. An assigned teammate gets an email about it if their Notifications are set up for that.
5. The queue refills every day, and one that is not read in the morning stays unassigned until the next shift.

## How to assign unassigned FreeScout conversations by topic

Prompt

```
Read the unassigned conversations in my Support mailbox. Assign billing questions to Sam Okafor and technical ones to Maya Brown, and add a note saying why. Leave the rest.
```

1. 01  
### Learn who can take work  
list\_users returns the people in the Assignee dropdown of the mailbox. A mailbox can hide admins from that list, so the agent assigns only to the names it returns.
2. 02  
### Read the unassigned queue  
list\_conversations runs with assigned\_to set to unassigned and follows has\_more to the last page, so a backlog after a weekend is sorted in one pass.
3. 03  
### Decide by the topic you named  
The agent reads each thread with get\_conversation and matches it to the routing in your prompt, for example billing to one person and technical questions to another. A message that fits no rule stays unassigned.
4. 04  
### Assign and explain  
assign\_conversation hands the conversation to the teammate, and add\_note records the reason in one line. Both ask for your OK by default, because assigning can send the teammate an email.
5. 05  
### Report what is left  
The agent lists the conversations it did not assign, with the reason, so you can place them by hand.

### What you get back

Example data

```
Unassigned in Support: 11
Assigned 8:
- 5 billing to Sam Okafor (e.g. "Invoice shows the wrong VAT number")
- 3 technical to Maya Brown (e.g. "Cannot reset my password")
Left unassigned 3:
- "Partnership idea" (not a support request)
- 2 in a language nobody on the team covers
```

### Other ways to ask

- Spread the technical conversations evenly between Maya Brown and Sam Okafor.
- Assign anything from our top ten customers to me and add a note.
- List the unassigned conversations that have waited more than a day and assign none.
- Move conversations that are really sales questions to the Sales mailbox instead of assigning them.

## What FreeScout allows, and what to know first

- A FreeScout mailbox has a Permissions option "Hide from Assign list", so an admin can be absent from the Assignee dropdown.
- FreeScout emails an assignee about a new assignment only if that teammate has Notifications configured.
- A non-admin FreeScout profile can have "User can see only assigned conversations", and then the person does not see unassigned ones, so the account behind this job should not have it.
- FreeScout admins have access to all mailboxes, and other agents see only the mailboxes they were given.
- FreeScout Workflows run per mailbox and match conditions such as subject, body, status, assignee and tags.

assign\_conversation and add\_note ask for your OK by default. To run it daily without you, switch confirmation off for those tools in your dashboard.

Sources: [FreeScout Wiki: FAQ](https://github.com/freescout-help-desk/freescout/wiki/FAQ) · [FreeScout: Workflows module](https://freescout.net/module/workflows/) · [FreeScout: Keyboard Shortcuts module](https://freescout.net/module/keyboard-shortcuts/) · [FreeScout API docs](https://api-docs.freescout.net/)

## Call assign\_conversation from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/freescout/conversations/4850/assign \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"user_id":3}'
```

Example response

```
{
"conversation_id": 4850,
"assignee": {
"user_id": 3,
"name": "Sam Okafor"
},
"status": "active"
}
```

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

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

## FreeScout tools this automation uses

__Cotlet FreeScout tools used to assign unassigned FreeScout conversations by topic__
| Tool | Parameters |
| -------------------- | ---------------------------------------------- |
| list\_users | mailbox\_id |
| list\_conversations | mailbox\_id, status, assigned\_to, query, page |
| get\_conversation | conversation\_id |
| assign\_conversation | conversation\_id, user\_id |
| add\_note | conversation\_id, body |

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

## Frequently asked questions

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

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

- [Draft FreeScout replies to waiting customers](https://cotlet.dev/integrations/freescout-api-mcp-server/draft-replies-to-waiting-customers.md)
- [Merge duplicate FreeScout conversations](https://cotlet.dev/integrations/freescout-api-mcp-server/merge-duplicate-conversations.md)
- [FreeScout API and MCP server: every tool](https://cotlet.dev/integrations/freescout-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to FreeScout.

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

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

---

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.dev is built by Bart Krawczyk and Jake Slugocki, the founders of Take Group sp. z o.o., ul. Wincentego Janasa 4, 40-855 Katowice, Poland. KRS 0000871398, NIP 6342984273, VAT EU: PL6342984273. [About us](https://cotlet.dev/about.md)

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.
