Workflows
Design structured conversations visually.
A Workflow is a visual map of your conversation. Instead of trusting the Finn to ask the right questions in the right order, you draw the flow — like a flowchart — and the Finn follows it.
Honest take: most people don't need workflows. For 80% of use cases, free-form mode (just a good Identity + Style + Knowledge Base) works better and is way easier to maintain. Only build a workflow if you have a real reason to enforce a specific order or branching.
You'll know you need one when: you keep telling the Finn "you must do X before Y" and it keeps getting it wrong. Or when there's a compliance script that has to be read verbatim. Or when the conversation has clear decision points ("if they say A do this, if they say B do that").
A real example to make this concrete
Imagine you're building an intake Finn for an urgent-care clinic. The conversation has to do these things in this order:
- Greet the caller and verify it's a real medical concern (not a test call from us).
- Ask their name and date of birth.
- Ask what symptoms they're experiencing.
- Ask how severe the symptoms are on a scale of 1-10.
- If severity is 8 or higher, immediately transfer to the on-call doctor.
- If severity is 4-7, book a same-day appointment.
- If severity is below 4, book a regular appointment.
- Read a HIPAA disclosure.
- End the call.
This is a workflow. Each step is a node. The "if severity is X" parts are decision nodes that branch. The flow is enforced — the Finn can't accidentally skip the disclosure or book before checking severity.
Opening the editor
From the dashboard sidebar: View All Finn → click your Finn → click Edit Workflow.
The editor opens full-screen with:
- A blank canvas in the middle (or your existing workflow if one exists)
- A toolbar on the left with the node types you can drag in
- A mini-map in the bottom-right for navigating big flows
- Save / Test buttons in the top-right
If this is your first workflow, the canvas starts with just a Start node. Build from there.
The building blocks
There are six node types. You drag them onto the canvas, then connect them with edges (drag from one node's edge to the next).
Start
Every workflow has exactly one. The call enters here.
You can set the opening message on the Start node, or leave it blank and let the Finn's normal Welcome Message handle it.
Say
The Finn says something. Just words — no question, no waiting.
Example: "Thanks, I have everything I need. We'll see you tomorrow at 3 PM."
Use Say nodes for confirmations, disclosures, and transitions between sections.
You can pull in dynamic content with {{contact.name}} (data from the audience row) or {{state.appointment_time}} (data the Finn collected earlier in this same call).
Ask
The Finn asks a question and waits for the answer.
You configure:
- What to ask — "What's your date of birth?"
- What kind of answer you expect — free text, yes/no, a number, a date, an enum (pick one of several options).
- Where to save the answer — give it a variable name, like
doborseverity. You'll use this name later. - What to do if the answer doesn't make sense — re-ask, give up and transfer to a human, etc.
Decision
A branch. Based on something the Finn knows (a saved variable, or what the caller just said), pick which path to follow.
Three types:
- Simple comparison — "if severity >= 8, go to ER node." For when you have a number, a yes/no, or a clear enum.
- Enum match — "if intent is 'cancel', go to cancel node." For when you collected a specific category.
- AI-evaluated — "did the caller sound frustrated?" For when there's no clear-cut value to check — you let the AI make the call.
Action
A side-effect. The Finn does something, not just says something.
The big ones:
- Book Calendar — adds an event to a connected calendar.
- Transfer Call — hands off to a real human.
- Update CRM — writes a field to HubSpot/Salesforce/Pipedrive.
- Send SMS — sends a follow-up text.
- Webhook — calls your own URL (useful for looking up live data — see Integrations).
End
Terminates the call.
You can have multiple End nodes — one for each way the call might wrap up. "Ended with booking," "Ended with transfer," "Ended with refusal." Multiple ends are useful because each one becomes a separate category in your analytics.
Editor basics
The canvas works the way most diagram tools do.
| Action | How |
|---|---|
| Drag a node onto the canvas | Click + drag from the left toolbar |
| Move a node | Click + drag the node itself |
| Connect two nodes | Click + drag from one node's edge dot to another |
| Delete a node or edge | Right-click → Delete (or select + press Delete key) |
| Undo | ⌘/Ctrl + Z |
| Save | ⌘/Ctrl + S (or the Save button top-right) |
| Reset zoom | Click "Fit to screen" button |
Autosave is off by default. Don't forget to hit Save — we'd rather you choose when to commit than risk overwriting a good state with a half-done edit.
Variables — passing data through the flow
This is the part that confuses people first. Take a minute on it.
When an Ask node collects an answer, that answer becomes a variable. When an Action node returns data (e.g. a Book Calendar action returns the booked time), that becomes a variable too. Variables persist for the whole call.
You reference them with double curly braces:
{{contact.name}}— comes from the audience row this call is for{{state.severity}}— collected at the Ask node where you saved toseverity{{state.appointment_id}}— returned by a Book Calendar action
You can drop them anywhere in a Say node, an Ask node's question text, an Action node's parameters, or a Decision node's condition.
Example Say node:
"Got it, {{contact.name}}. I've booked you for {{state.appointment_time}}. We'll send a confirmation to {{contact.phone_number}}."
Testing as you build
You don't have to finish the whole workflow before you can test. Two options:
Test on Chat — opens a text-based simulator in your browser. Type messages, see how the Finn responds. Each node shows its inputs and outputs in real time, so you can see exactly where a branch went sideways.
Test on Call — calls your phone. End-to-end realistic. Use this before launching to real users.
Iterate on a small chunk → test → iterate → test. Don't try to design the whole thing upfront.
When something goes wrong in a flow
A few common patterns and how to fix them:
"The caller said something weird and the workflow got stuck"
This is the most common issue. Real callers don't say things in the format your Ask node expects.
Fix: add fallback edges to every Ask node. The fallback fires when the answer can't be parsed — re-ask, give up gracefully, or jump to a different part of the flow.
Also: consider switching the Ask node from "exact match" to "AI-evaluated" — lets the model interpret paraphrased answers.
"The Finn sounds robotic"
If your workflow is mostly Say nodes back-to-back, the conversation has no room to breathe.
Fix: insert free-form interludes. The End node has an option to hand off to free-form — when triggered, the Finn exits the workflow and continues conversationally for the rest of the call using its normal Identity + Knowledge Base.
Workflows are great for getting through required parts. Free-form is great for everything else. Mix them.
"The variable shows up as {{state.x}} in the transcript"
You typo'd the variable name. The Say node references {{state.severity}} but the Ask node saved to severity_score. Make them match exactly.
"Editor lags on big workflows"
Most flows over 30 nodes start feeling sluggish.
Fix: group sub-flows into Group nodes (Pro plan). Or split into multiple Finns connected by Transfer nodes.
Versioning — undo at the workflow level
Every time you save, that becomes a new version. The current version is what new deployments use. Active deployments keep running on whatever version they launched against.
To roll back: Edit Workflow → History → pick a version → click Restore. Restored versions become the current version.
If you ever look at a workflow and think "this used to work," check the history before despairing.
Sharing & re-using workflows
Workflows export to JSON. Use this to:
- Copy a workflow from one Finn to another (or from a dev account to a production account)
- Version-control workflows outside the platform (commit the JSON to git)
- Share template workflows with your team
To export: Edit Workflow → ⋯ menu → Export as JSON.
To import: Edit Workflow → ⋯ menu → Import from JSON.
When to skip workflows entirely
Don't use workflows for:
- Simple Q&A. Free-form + knowledge base is better.
- "Have a natural conversation about X." Free-form is the right tool.
- Discovery calls. You don't know in advance what the conversation will look like — let the model improvise.
Use workflows for:
- Compliance-bound scripts (disclosures, mandatory phrasing).
- Multi-step intake forms (collect specific fields in specific order).
- Triage (route the call based on early answers).
- Anything you'd describe with the words "must" and "in this order."
Next
- Creating a Finn → — the basics workflows build on top of.
- Integrations → — what's possible inside Action nodes.
- Voice & Personality Gallery → — see what people built without workflows.
Was this page helpful?
Still stuck or have feedback?
Email support@hirefinn.ai or use the chat bubble in the bottom-right corner — it's a Finn that knows the Academy cold.