Extraction & Variable Nodes

Overview

Flow Builder has two nodes for working with data: the Extraction node uses an LLM to pull structured information out of the conversation, and the Variable node sets values directly without any AI involvement. Together, they form the data backbone of your flows.

Extraction Node

The Extraction node analyzes the conversation history and extracts specific pieces of data into named variables. It uses an LLM call to understand context and pull out the right information — even if the user didn't state it in a clean, structured way.

How It Works

  1. The engine sends the full conversation history to the LLM along with your extraction definitions.
  2. The LLM identifies the requested data points in the conversation.
  3. Each extracted value is stored in the specified variable, typed according to your configuration.

Configuring Extractions

Each extraction has three fields:

FieldDescriptionExample
varNameThe variable name to store the extracted valuecaller_email
varTypeExpected data typestring
descriptionNatural language description of what to extract"The caller's email address"

Supported Variable Types

TypeDescriptionExample Value
stringText valuejohn@example.com
numberNumeric value42
booleanTrue or falsetrue
arrayList of values["Mon", "Wed", "Fri"]
objectStructured key-value data{"city": "Austin", "state": "TX"}

Sentinel Sanitization

The extraction engine automatically cleans up ambiguous or empty values. If the LLM returns any of these sentinel values, they're converted to an empty string:

  • <UNKNOWN>
  • N/A
  • null
  • none
  • not provided

This prevents your Logic nodes from evaluating placeholder text as real data. An is_empty check will correctly identify data that wasn't found in the conversation.

Edge Handles

HandlePositionColorPurpose
InputTopBlueReceives connections
OutputRightStandardNext node after extraction completes
AsyncBottomYellowRun extraction in parallel

Tip: Connect Extraction nodes via the async handle when you don't need the extracted data immediately. This keeps the conversation flowing while data is extracted in the background.

Variable Node

The Variable node sets variables to specific values — no LLM call, no extraction. It's purely synchronous and executes instantly.

How It Works

Each assignment has two fields:

FieldDescriptionExample
varNameThe variable to setstatus
valueThe value to assign (supports {{substitution}})qualified

Literal Values

Set a variable to a fixed value:

varName: lead_status
value: qualified

Dynamic Values with Substitution

Use {{variable}} syntax to compose values from other variables:

varName: full_address
value: {{street}}, {{city}}, {{state}} {{zip}}
varName: api_endpoint
value: https://api.example.com/users/{{user_id}}/appointments

Edge Handles

HandlePositionColorPurpose
InputTopBlueReceives connections
OutputRightStandardNext node after assignment

Using Them Together

A common pattern is to chain Extraction and Variable nodes to collect and transform data:

  1. Conversation node — Ask the user for their information.
  2. Extraction node — Extract first_name, last_name, and email from the conversation.
  3. Variable node — Compose full_name as {{first_name}} {{last_name}}.
  4. Logic node — Check if email is not empty before proceeding.
  5. Request node — POST the data to your CRM using the extracted variables.

This pattern separates concerns cleanly: the Conversation node focuses on dialogue, the Extraction node handles data parsing, and the Variable node handles data transformation.


Was this article helpful?