FlowBotBeta

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.

Workflows Overview

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.

Workflows Overview

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.

Workflows Overview

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.

Workflows Overview

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.

Workflows Overview

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.