Skip to main content

Tools and integrations

Workflow nodes

Every block type and what it does.

The node palette

A workflow is a graph of nodes connected by edges. There are six node types. You drag them onto the canvas from the left toolbar and connect them by dragging from one node's edge dot to another. See Workflow editor for canvas mechanics.

NodeWhat it doesWaits for the caller
StartEntry point. Exactly one per workflow.No
SaySpeaks a line and moves on.No
AskAsks a question, captures the answer into a variable.Yes
DecisionBranches to one of several outgoing edges.No
ActionPerforms a side effect (booking, transfer, CRM write, SMS, webhook).No
EndTerminates the call.No

All node configuration happens in the dashboard workflow editor. There is no API for editing a workflow graph node by node. You can move a whole graph between Finns by exporting and importing JSON from the editor's menu.

Start

Every workflow has exactly one Start node, and the call enters there. You can set the opening message on the Start node, or leave it blank so the Finn's normal Welcome Message handles the greeting. See Welcome message.

If you set both, the Start node message is what the caller hears. Leaving both blank means the call opens in silence and the caller speaks first.

Say

The Finn speaks the configured text, then follows its single outgoing edge. No question, no waiting.

Use Say nodes for confirmations, compliance disclosures that have to be read verbatim, and transitions between sections of the flow.

Say text accepts variable interpolation:

Got it, {{contact.name}}. I've booked you for {{state.appointment_time}}.
We'll send a confirmation to {{contact.phone_number}}.

A chain of Say nodes back to back is the most common cause of a workflow sounding robotic. The caller gets no turn to speak. Break long stretches up with Ask nodes, or hand off to free-form.

Ask

The Finn asks a question and waits for an answer. Four things to configure:

SettingWhat it controls
Question textWhat the Finn says. Supports {{...}} interpolation.
Expected answer typeFree text, yes/no, number, date, or enum (one of a fixed set).
Variable nameWhere the answer is stored. Referenced later as {{state.<name>}}.
Failure behaviorWhat happens when the answer cannot be parsed: re-ask, transfer, or jump elsewhere.

Configure the failure behavior on every Ask node. Real callers do not answer in the format the node expects, and an Ask node with no fallback edge is where flows get stuck. If exact matching keeps rejecting valid paraphrases, switch the node to AI-evaluated and let the model interpret the answer.

Variable names are matched literally. An Ask node that saves to severity_score and a Say node that reads {{state.severity}} will print the raw {{state.severity}} text into the transcript. See Workflow variables.

Decision

A Decision node picks one outgoing edge based on what the Finn already knows. Three evaluation modes:

ModeUse it forExample
Simple comparisonNumbers, yes/no, clear enumsseverity >= 8 routes to the transfer branch
Enum matchA category you collected earlierintent == "cancel" routes to the cancel branch
AI-evaluatedJudgments with no crisp value to test"Did the caller sound frustrated?"

AI-evaluated branches are not deterministic. Two similar calls can route differently. Use simple comparison wherever a real value exists, and reserve AI evaluation for the cases where none does.

Action

An Action node performs a side effect and then continues along its outgoing edge.

ActionEffect
Book CalendarCreates an event on a connected calendar. See Calendar integrations.
Transfer CallHands the call to a human. See Transfer.
Update CRMWrites a field to a connected CRM. See CRM integrations.
Send SMSSends a text message. See Messaging.
WebhookCalls a URL you control, useful for live data lookups. See Webhooks.

Actions that return data write it back into call state. A Book Calendar action makes values like {{state.appointment_id}} available to later nodes.

An Action node depends on an integration being connected already. If the calendar or CRM is not connected, the action fails at call time, not at save time. Test the branch before you launch it.

End

An End node terminates the call. You can have as many as you want, and you should. Each End node becomes its own category in analytics, so separate ends for "booked", "transferred", and "refused" give you a breakdown instead of one undifferentiated total. See Call outcomes.

End nodes also carry a hand off to free-form option. Instead of hanging up, the Finn leaves the workflow and continues conversationally for the rest of the call using its Identity, prompt, and knowledge base. This is how you use a workflow for the required part of a call and free-form for everything after it.

Group nodes

Sub-flows can be collapsed into Group nodes to keep large graphs readable. Group nodes are a Pro plan feature. Flows past roughly 30 nodes start to feel sluggish in the editor, so either group sub-flows or split the work across multiple Finns joined by Transfer Call actions.

Next