FreeScout
Helpdesk & ITSMConnect AI agents to FreeScout, the open source shared inbox help desk. Agents open and reply to conversations, manage threads across mailboxes, tag them, and keep customer records attached.
What This Integration Enables
FreeScout is the option teams pick when the help desk has to run on their own infrastructure, and that choice usually comes with a second, unwanted consequence: nothing around it is automated, because the automation vendors are all aimed at the hosted incumbents. This connector closes that gap without asking anyone to move off their own server. Agents work conversations across mailboxes and folders, open new ones with Create Conversation, change status, assignee, mailbox, or subject with Update Conversation, and write to the thread through two clearly separated calls. Add Reply is a customer visible agent message with optional CC and BCC. Add Note is agent only and is never sent to the customer. FreeScout requires an acting user on both, so every write lands in the timeline attributed to a named agent rather than to an anonymous integration.
The connector is also one of the few in this category with genuine event delivery. On Conversation Event and On Customer Event are real FlowRunner triggers backed by FreeScout webhooks, with one subscription created per FlowRunner application and removed automatically when the trigger is deleted. That changes what is worth building: instead of a scheduled sweep that discovers a customer reply twenty minutes late, a flow can act on the reply as it lands. Two capabilities depend on optional FreeScout modules, which is worth knowing before you design around them. Everything here needs the API and Webhooks module enabled, and List Tags and Set Conversation Tags additionally need the Tags module.
Without FlowRunner
With FlowRunner
Use Case Scenarios
Customer reply routed on arrival
On Conversation Event fires with a customer reply on a conversation in the support mailbox. The agent runs Get Conversation with threads embedded, reads the whole exchange rather than just the newest message, and classifies it. A reply that confirms a fix gets Update Conversation to closed status. A reply that reports the problem is still happening gets Add Note recording what has already been tried, Update Conversation to reassign to the engineer who owns that component, and a message into the engineering channel in Slack with the conversation link. The customer never waits on a polling interval to be routed to the right person.
Customer record kept in step with the CRM
On Customer Event fires when a customer profile is created or updated in FreeScout. The agent runs Get Customer to read the full profile, looks the person up in HubSpot by email, and reconciles the two. When the CRM holds a company and job title FreeScout does not, Update Customer fills them in so the next agent to open a conversation sees who they are talking to. When FreeScout has a new email address the CRM lacks, the change goes the other way. Neither system becomes the loser in a sync fight, because each direction is scoped to the fields that system actually owns.
Backlog cleanup with the destructive step held back
A quarterly cleanup agent runs List Conversations filtered to a folder, a status, and an update date older than the retention window, and assembles the candidate list. It runs Get Conversation on each to check for anything that should be preserved, such as an unanswered customer thread hiding in a closed folder. It writes the reviewed list to Google Sheets with a recommendation per row and stops there. Delete Conversation only runs against rows a human has marked, one conversation at a time, because there is no way to walk it back.
Human-in-Loop Highlight
Two calls on this connector are unrecoverable, and neither of them is the reply. Delete Conversation permanently deletes a conversation, and FreeScout offers no trash to restore it from, so a cleanup routine that gets its filter slightly wrong destroys customer correspondence with no path back. Set Conversation Tags is subtler and therefore more likely to bite: it sets the complete list of tags on a conversation, replacing whatever is already there, and creates tags that do not yet exist. On a desk where tags drive folder membership and reporting, a well meaning agent that adds one tag by calling Set Conversation Tags with one value silently erases every tag a colleague applied during triage. So the agent proposes and a person disposes. Before either call it posts the current state next to the intended state and asks directly: "Conversation 3184 currently carries the tags refund-pending and vip. Proposed set is escalated. This replaces both existing tags. Apply as proposed, or merge them?" For deletions the question is blunter and the list is per conversation, never per filter. The digital andon cord is not decoration here. It is the only thing standing between a bulk operation and a self hosted mailbox with no undo.
Agent Capabilities
16 actionsConversations
5- List Conversations Retrieves a paginated list of conversations with filters for mailbox, folder, status, state, type, assignee, tag, customer, and creation or update dates. Used to build backlog reports and to assemble candidate sets for review.
- Get Conversation Retrieves a single conversation by ID, optionally embedding threads, tags, or time logs. Used to read the full exchange rather than reacting to the newest message in isolation.
- Create Conversation Creates a new conversation in a mailbox with an initial thread, which can be a customer message, an agent reply, or an internal note. Agent replies and notes require the acting user; customer messages are attributed to the conversation customer.
- Update Conversation Updates a conversation's status, assignee, mailbox, or subject. FreeScout requires the acting user when changing status, assignee, or mailbox, so the change is attributed rather than anonymous.
- Delete Conversation Permanently deletes a conversation. There is no trash to restore from, which is why this call belongs behind an explicit per conversation approval.
Threads
2- Add Reply Adds an agent reply to a conversation as a customer visible message thread, attributed to the acting user, with optional CC and BCC recipients. This is the call that reaches the customer.
- Add Note Adds an internal note to a conversation, visible to agents only and never sent to the customer, attributed to the acting user. This is how an agent writes its findings back without touching the customer conversation.
Customers
4- List Customers Retrieves a paginated list of customers with filters for name, email, phone, and last updated date. Used to reconcile the desk's contact list against a CRM.
- Get Customer Retrieves a single customer profile with emails, phones, and other contact details. Used to enrich a conversation with who the person actually is.
- Create Customer Creates a customer profile, ideally with at least one email so the record can be matched to conversations. Company, job title, and notes are optional.
- Update Customer Updates an existing customer's name, company, job title, notes, and other profile fields, changing only what is supplied. Used to keep the desk in step with the system that owns customer data.
Mailboxes and Folders
2- List Mailboxes Retrieves the shared inboxes configured in FreeScout, optionally restricted to those a specific user can access. Used to scope a flow to the right inbox before anything is written.
- List Mailbox Folders Retrieves a mailbox's folders including Unassigned, Mine, Assigned, Closed, and any custom folders. Folder IDs are then used to filter conversation queries precisely.
Users
1- List Users Retrieves the agents configured in FreeScout, optionally filtered by email address. Used to resolve the acting user that replies, notes, and status changes must be attributed to.
Tags
2- List Tags Retrieves tags defined in FreeScout, optionally restricted to those applied to a specific conversation. Requires the Tags module. Used to capture existing triage state before proposing any change to it.
- Set Conversation Tags Sets the complete list of tags on a conversation, replacing any existing tags and creating tags that do not yet exist. Requires the Tags module. Because this replaces rather than appends, it runs after approval.
Triggers
2 triggersEvent Triggers
2- On Conversation Event Fires when a conversation event occurs in FreeScout: created, assigned, moved, status changed, deleted, or a customer reply, agent reply, or note added. Optionally restricted to a single mailbox. This is what lets a flow act on a customer reply as it lands instead of on a polling interval. Requires the API and Webhooks module.
- On Customer Event Fires when a customer is created or updated in FreeScout. Used to keep contact data reconciled with a CRM in both directions. Requires the API and Webhooks module. Triggers subscribe to FreeScout webhooks, with one subscription created per FlowRunner application and removed automatically when the trigger is deleted. Setting the optional Webhook Secret in FreeScout lets incoming trigger deliveries be verified against the `X-FreeScout-Signature` header. That verification is a receiver side integrity check on inbound deliveries and is separate from how this connector authenticates its own outbound requests, which use the `X-FreeScout-API-Key` header.
Frequently Asked Questions
What can FlowRunner do with FreeScout?
FlowRunner agents can run List Conversations, Get Conversation, and Create Conversation in FreeScout, plus 13 more actions.
Does connecting FreeScout to FlowRunner require OAuth?
No. FreeScout connects to FlowRunner with an API key, no OAuth flow required.
Can FreeScout trigger a FlowRunner workflow automatically?
Yes. FreeScout supports 2 triggers that can start a FlowRunner workflow automatically.
Start building with FreeScout
$100 in credits. No card required. Connect in minutes.