FreeScout logo FreeScout automation · runs daily

Assign unassigned FreeScout conversations by topic

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.

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 · FreeScout: Workflows module · FreeScout: Keyboard Shortcuts module · FreeScout API docs

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

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

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.

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.