Nodes
Explore and utilize FlowBot's powerful node types for workflow automation.
Nodes: Building Blocks of Your Workflows
Nodes are the essential components of FlowBot’s workflow builder, enabling you to design and automate complex interactions. Each node performs a specific function—triggering workflows, sending messages, applying logic, managing variables, or integrating with external tools. This guide covers all available node types, their configurations, and best practices.
Node Categories
FlowBot organizes nodes into categories based on their purpose. Below, explore each category and its node types.
Token Usage
- Cost: Each node consumes
tokens
based on its complexity and execution. Check your plan’s token limits in the dashboard.
Trigger Nodes
Trigger nodes initiate workflow execution based on specific events.

Message Trigger
label: "Message Trigger"
description: "Starts a workflow when a WhatsApp message is received."
fields:
start:
label: "Start At"
description: "The workflow start time"
end:
label: "End At"
description: "The workflow end time"
use_case: "Automate responses to customer inquiries within business hours."
Schedule Trigger
label: "Schedule Trigger"
description: "Executes a workflow on a scheduled basis using a cron expression."
fields:
schedule:
label: "Cron Expression"
description: "Your cron expression (e.g., '0 0 * * *' for daily at midnight)"
use_case: "Send daily marketing updates or reminders."
Webhook Trigger
label: "Webhook Trigger"
description: "Initiates a workflow via an external HTTP request."
use_case: "Integrate with external systems like payment gateways."
payload: "${{context}} contains webhook data."
Manual Trigger
label: "Manual Trigger"
description: "Allows manual workflow activation via the dashboard."
use_case: "Test workflows or trigger one-off actions."
Message Nodes
Send various types of messages to users.

Text Message
label: "Text Message"
description: "Send a plain text message."
fields:
text:
label: "Text"
description: "The text to send (e.g., 'Hello, how can I help?')"
to:
label: "Send to"
description: "The recipient’s phone number or variable (e.g., '${{context.sender}}')"
wait:
label: "Wait for reply"
description: "Wait for the user's reply"
use_case: "Greet users or provide quick answers."
Media Message
label: "Media Message"
description: "Send a media message (image, audio, video, document)."
fields:
type:
label: "Content Type"
description: "The content type to send"
options:
image: "Image"
audio: "Audio"
video: "Video"
document: "Document"
content:
label: "Content"
description: "The media to send"
footer:
label: "Footer"
description: "The footer to send (e.g., 'Powered by FlowBot')"
to:
label: "Send to"
description: "The user to send the message"
wait:
label: "Wait for reply"
description: "Wait for the user's reply"
use_case: "Share product images or instructional videos."
Location Message
label: "Location Message"
description: "Send a location message."
fields:
latitude:
label: "Latitude"
description: "The latitude to send"
longitude:
label: "Longitude"
description: "The longitude to send"
name:
label: "Name"
description: "The name to send (e.g., 'Store HQ')"
address:
label: "Address"
description: "The address to send"
to:
label: "Send to"
description: "The user to send the message"
wait:
label: "Wait for reply"
description: "Wait for the user's reply"
use_case: "Direct customers to a store."
Request Location Message
label: "Request Location Message"
description: "Request user location."
fields:
text:
label: "Text"
description: "Request user location (e.g., 'Please share your location')"
use_case: "Gather delivery addresses."
Contact Message
label: "Contact Message"
description: "Send a contact message."
fields:
name:
label: "Name"
description: "The name to send"
phone:
label: "Phone"
description: "The phone to send"
to:
label: "Send to"
description: "The user to send the message"
wait:
label: "Wait for reply"
description: "Wait for the user's reply"
use_case: "Share support team contacts."
Interactive Message
label: "Interactive Message"
description: "Send an interactive message."
fields:
type:
label: "Content Type"
description: "The header content"
options:
text: "Text"
image: "Image"
video: "Video"
document: "Document"
content:
label: "Content"
description: "The content to send"
caption:
label: "Caption"
description: "The caption to send"
buttonType:
label: "Button Type"
description: "Button Type"
options:
selection: "Selection"
button: "Button"
buttons:
label: "Buttons"
description: "Buttons to include"
to:
label: "Send to"
description: "The user to send the message"
use_case: "Offer menu choices (e.g., 'Yes/No')."
Dynamic Interactive Message
label: "Dynamic Interactive Message"
description: "Send a dynamic interactive message."
fields:
caption:
label: "Text"
description: "The text to send"
buttonType:
label: "Button Type"
description: "Button Type"
options:
selection: "Selection"
buttons:
label: "Buttons Source"
description: "Buttons to include"
to:
label: "Send to"
description: "The user to send the message"
use_case: "Display user-specific options."
Catalog
label: "Catalog"
description: "Send your catalog."
fields:
body:
label: "Text"
description: "Text to appear in the message"
to:
label: "Send to"
description: "The user to send the message"
wait:
label: "Wait for reply"
description: "Wait for the user's reply"
use_case: "Promote e-commerce products."
Operator Nodes
Control flow logic within workflows.

IfElse
label: "IfElse"
description: "If else operator."
use_case: "Send different replies based on user input."
Switch
label: "Switch"
description: "Switch operator."
use_case: "Handle multiple user selections."
ForEach
label: "ForEach"
description: "ForEach operator."
fields:
variable:
label: "Data to Process"
description: "The data to process (e.g., '${{contacts}}')"
item:
label: "Item Name"
description: "The name to use for each item (e.g., 'contact')"
errors:
variable:
array_format: "array format not valid"
invalid_expression: "Invalid value format"
item:
invalid_name: "Invalid variable name format"
use_case: "Send personalized messages to all contacts."
Variable Nodes
Manage and transform data variables.

String
label: "String"
description: "String variable."
fields:
name:
label: "Name"
description: "The name of the variable"
value:
label: "Value"
description: "The value of the variable"
transform:
label: "Transform"
description: "Transform the variable"
transformParam:
label: "The function Param"
description: "The parameter to pass if any"
transformFn:
label: "Transformation Function"
description: "The tranformation Function"
errors:
name:
invalid: "Invalid variable name format"
value:
invalid: "Invalid value format"
use_case: "Store user names."
Number
label: "Number"
description: "Number variable."
fields:
name:
label: "Name"
description: "The name of the variable"
value:
label: "Value"
description: "The value of the variable"
transform:
label: "Transform"
description: "Transform the variable"
transformParam:
label: "The function Param"
description: "The parameter to pass if any"
transformFn:
label: "Transformation Function"
description: "The tranformation Function"
errors:
name:
invalid: "Invalid variable name format"
value:
invalid: "Invalid number format or variable expression"
use_case: "Calculate order totals."
Boolean
label: "Boolean"
description: "Boolean variable."
fields:
name:
label: "Name"
description: "The name of the variable"
value:
label: "Value"
description: "The value of the variable"
transform:
label: "Transform"
description: "Transform the variable"
transformParam:
label: "The function Param"
description: "The parameter to pass if any"
transformFn:
label: "Transformation Function"
description: "The tranformation Function"
errors:
name:
invalid: "Invalid variable name format"
value:
invalid: "Invalid boolean format or expression"
use_case: "Track user preferences."
Date
label: "Date"
description: "Date variable."
fields:
name:
label: "Name"
description: "The name of the variable"
value:
label: "Value"
description: "The value of the variable"
transform:
label: "Transform"
description: "Transform the variable"
transformParam:
label: "The function Param"
description: "The parameter to pass if any"
transformFn:
label: "Transformation Function"
description: "The tranformation Function"
errors:
name:
invalid: "Invalid variable name format"
value:
invalid: "Invalid date format (YYYY-MM-DD)"
use_case: "Schedule reminders."
Array
label: "Array"
description: "Array variable."
fields:
name:
label: "Name"
description: "The name of the variable"
value:
label: "Value"
description: "The value of the variable"
transform:
label: "Transform"
description: "Transform the variable"
transformParam:
label: "The function Param"
description: "The parameter to pass if any"
transformFn:
label: "Transformation Function"
description: "The tranformation Function"
errors:
name:
invalid: "Invalid variable name format"
value:
invalid: "array format not valid"
use_case: "Store contact lists."
Object
label: "Object"
description: "Object variable."
fields:
name:
label: "Name"
description: "The name of the variable"
value:
label: "Value"
description: "The value of the variable"
transform:
label: "Transform"
description: "Transform the variable"
transformParam:
label: "The function Param"
description: "The parameter to pass if any"
transformFn:
label: "Transformation Function"
description: "The tranformation Function"
errors:
name:
invalid: "Invalid variable name format"
value:
invalid: "Invalid object format or expression"
use_case: "Store user profiles."
Integration Nodes
Connect with external services and tools.

Tool Call
label: "Tool Call"
description: "Enhance LLM by linking tools."
fields:
app:
label: "App"
description: "Select an app"
options:
gmail: "Gmail"
googlecalendar: "Google Calendar"
googlesheets: "Google Sheet"
tools:
label: "Tools"
description: "Tools to activate"
use_case: "Schedule events via Google Calendar."
Action Call
label: "Action Call"
description: "Execute an action from specific App."
fields:
action:
label: "Action"
description: "The action to execute"
arguments:
label: "Arguments"
description: "required arguments"
use_case: "Update a Google Sheet row."
API Call
label: "API Call"
description: "Call an external API."
fields:
url:
label: "URL"
description: "The URL of the API"
method:
label: "Method"
description: "The HTTP method"
options:
GET: "GET"
POST: "POST"
PUT: "PUT"
DELETE: "DELETE"
headers:
label: "Headers"
description: "Content-Type: application/json"
body:
label: "Body"
description: "The request body"
errors:
url:
invalid: "Invalid URL format"
use_case: "Fetch weather data."
LLM Call
label: "LLM Call"
description: "Chat with an LLM."
fields:
provider:
label: "LLM model"
description: "The model provider"
options:
llama: "Llama"
openai: "ChatGPT"
gemini: "Gemini"
claude: "Claude"
grok: "Grok"
apiKey:
label: "API Key"
description: "Your API key for this model"
prompt:
label: "System Prompt"
description: "Your system prompt"
memory:
label: "Persist the discussion"
description: "Use memory to persist the context"
content:
label: "Attach a file"
description: "The media to send"
use_case: "Generate responses or analyze media."
TTS
label: "TTS"
description: "Transform Text to Speech."
fields:
text:
label: "Text"
description: "Text to transform to speech"
voice:
label: "Voice"
description: "The type of voice"
options:
female: "Female"
male: "Male"
use_case: "Send voice greetings."
STT
label: "STT"
description: "Transform Speech to Text."
fields:
content:
label: "Audio"
description: "Transform an audio to text"
use_case: "Process voice inputs."
AssignTo
label: "AssignTo"
description: "Assign the conversation to a team member."
fields:
to:
label: "To"
description: "User assignment payload"
use_case: "Route support tickets."
Best Practices
- Test Nodes: Validate each node in preview mode.
- Optimize Token Use: Limit complex nodes to conserve tokens.
- Document Workflows: Add notes to nodes for team clarity.