Skip to content
TriedDocs
Conversation flow

Conversation node

The node that talks with the caller. Instruction types, transitions, always, skip response and else edges, contact memory skipping, and how replies are generated.

The Conversation node (type: "conversation") is where the agent talks with the caller. Most flows are mostly conversation nodes connected by transitions, with automatic nodes in between.

Instruction#

Pick Prompt or Static Sentence on the node card or under Instruction in Node settings.

Type On entering the node On later turns in the node
Prompt (prompt) The LLM generates a reply from the global prompt plus this text under "Current Task" Same
Static Sentence (static_text) The sentence is spoken exactly as written The LLM continues the conversation, told that it has just said the sentence verbatim

Both render {{variables}}. When the agent speaks first, a static sentence on the start node is the greeting.

Write prompt instructions as a task for this step only:

Ask for the caller's full name and the day they would like to come in.
If they give a day without a time, ask morning or afternoon.
Do not offer specific times yet.

Transitions#

New conversation nodes start with one empty prompt transition. Add more with + on the card (Prompt, Equation, Else, Always/Skip) or Add under Transitions in Node settings.

Kind Field Behaviour
Prompt, equation, both edges[] See Transition conditions
Always edge always_edge "Transition after any user reply, before other conditions."
Skip response skip_response_edge "Move on as soon as the agent finishes speaking." The caller is not waited for
Else edge else_edge "Taken when no other transition matches (decided before the reply)."

What happens on a caller turn#

Without an else edge:

  1. The always edge, then equation edges, are checked before the LLM runs. If one matches, the flow moves and the next node answers.
  2. Otherwise one LLM call runs with the node's instruction and the prompt transitions (plus global nodes) as functions. The LLM either replies or calls a transition; on a transition, the next node answers in the same turn.

With an else edge:

  1. Always and equation edges are checked.
  2. A separate LLM call decides among the prompt transitions and global nodes.
  3. If none applies, the else edge is taken.
  4. The node you land on generates the reply.

An else edge makes the node leave on every caller turn (if it is connected), at the cost of one extra LLM call per turn. Use it for nodes that should only ever ask one question.

Skip response#

A skip response edge fires after the agent finishes speaking in the node. Use it for one-way statements such as disclosures: a static sentence node with a skip response edge says its line and moves on without waiting for the caller.

Skip with contact memory#

Skip with contact memory (skippable: true) lets the agent skip the node when what it collects is already known about the caller. It needs Use memory in calls turned on under Agent Settings, Contact memory ("Adds {{contact_memory}} to the prompt and lets flow nodes marked skippable be skipped."), and a caller with stored memory.

When the flow enters a skippable node, one LLM call checks whether the caller's memory fully answers what the node's instruction collects. If so, the node is skipped once per call and the flow follows the node's first connected edge (or its else edge when there are no edges).

Tools#

Conversation nodes do not get the flow's functions. To let the LLM call functions freely while talking, use a subagent node. To call a function at a fixed point, use a function node.

Fields#

Field Type Description
type "conversation"
instruction {type: "prompt" or "static_text", text} Required
edges array of edges Default []
always_edge, skip_response_edge, else_edge edge Optional
skippable boolean Contact memory skip
Common fields and overrides See Nodes and edges
{
  "id": "node_collect",
  "type": "conversation",
  "name": "Collect details",
  "instruction": { "type": "prompt", "text": "Ask for the caller's name and preferred day and time." },
  "edges": [
    { "id": "edge_1", "destination_node_id": "node_extract", "transition_condition": { "type": "prompt", "prompt": "The caller gave their name and a preferred day and time" } }
  ]
}

Gotchas#

  • A node with no matching transition keeps talking. If the caller goes off script, the node's instruction should tell the agent how to steer back.
  • Static sentences are spoken exactly as written on entry. Use a prompt when the wording should adapt to what the caller said.
  • Knowledge base retrieval runs on caller turns in every node, using the node's knowledge bases when it overrides them.