Docs Flow Builder

Flow Builder

Design conversation flows with a visual drag-and-drop editor featuring branching logic, input types, and reusable templates.

Overview

The Flow Builder lets you create guided conversation flows without writing any code. Access it from your WordPress admin dashboard by navigating to Helpon → Flows. From there you can create new flows, edit existing ones, duplicate flows, and organize them into folders.

Flows are ideal for structured interactions where you need to collect information step by step, qualify leads, triage patient inquiries, book appointments, or walk visitors through a decision tree. Each flow consists of connected nodes that define what the chatbot says, what it asks, and how it responds to user input.

ℹ️
Flows vs. AI Chat

Flows provide deterministic, scripted conversations while AI Chat handles open-ended questions. You can combine both by using a flow to collect initial data and then handing off to AI for follow-up. Flows always take priority when a trigger condition matches.

Visual Editor

The visual editor is a drag-and-drop canvas where you design your conversation flows. Nodes are placed on the canvas and connected with lines to define the conversation path. The editor supports the following controls:

Appointment Booking Flow Published
Undo Redo Test Flow Save
Nodes
💬 Message
❓ Question
🔀 Condition
⚡ Action
⏳ Delay
👥 Transfer
⏹ End
START
Welcome Message
QUESTION
Select a service
Dental
CONDITION
Check hours
Ortho
ACTION
Book slot
- 100% +

Canvas Controls

Action Mouse Keyboard Shortcut
Pan canvas Click and drag on empty space Hold Space + drag
Zoom in/out Scroll wheel Ctrl + / Ctrl -
Fit to screen Double-click empty space Ctrl 0
Select node Click on node Tab to cycle through nodes
Multi-select Hold Shift + click Ctrl A to select all
Delete node Right-click → Delete Delete or Backspace
Duplicate node Right-click → Duplicate Ctrl D
Undo / Redo Toolbar buttons Ctrl Z / Ctrl Shift Z
Connect nodes Drag from output port to input port
Toggle mini-map Click mini-map icon Ctrl M
Pro Tip

Enable the mini-map for complex flows with many nodes. It provides a bird's-eye view of the entire canvas and lets you quickly navigate to any section by clicking on the mini-map.

Node Types

Each node in the Flow Builder serves a specific purpose. Drag nodes from the left panel onto the canvas to build your conversation path.

Node Icon Description Use Case
Message 💬 Sends a text message, image, or rich card to the visitor. Supports Markdown formatting and dynamic variables. Welcome greetings, information delivery, confirmation messages
Question Asks the visitor a question and waits for a response. Supports various input types (text, buttons, date pickers, etc.). Collecting names, emails, selecting services, gathering symptoms
Condition 🔀 Evaluates an expression and branches the flow based on the result. Supports multiple output paths. Routing based on visitor answers, checking business hours, validating input
Action Performs a background operation such as setting a variable, sending an email, creating a contact, or triggering a webhook. Saving data to CRM, sending notifications, booking appointments, API calls
Delay Pauses the flow for a specified duration before continuing to the next node. Simulates natural typing speed. Adding realistic typing delays, waiting for external processes, timed follow-ups
Transfer 👥 Hands the conversation to a live agent, a specific department, or another flow. Includes queue and fallback options. Escalating to human support, routing to specialists, jumping to sub-flows
End Terminates the flow. Optionally displays a closing message and marks the conversation status (resolved, abandoned, etc.). Completing a booking, ending a support session, closing a survey
ℹ️
Every flow needs a Start and an End

A Start node is automatically created when you build a new flow. You must connect at least one End node to ensure the conversation closes properly. Flows without an End node will leave sessions open indefinitely.

Input Types

Question nodes support multiple input types that control how visitors provide their answers. Choose the input type that best fits the data you need to collect.

Input Type Description Example
Text Input Free-form text field. Supports validation rules such as minimum length, maximum length, and regex patterns. "What is your full name?"
Buttons Clickable button options. Each button can have a label, a value, and an optional icon. Maximum of 10 buttons per question. "Select a department:" with buttons for Dental, Orthodontics, Cosmetic
Quick Replies Horizontal pill-shaped options that disappear after selection. Ideal for short, single-choice answers. "Are you a new or existing patient?" with pills: New Patient, Existing Patient
Date Picker Calendar widget for selecting dates. Supports min/max date ranges, disabled days of the week, and blocked specific dates. "Choose your preferred appointment date:"
File Upload Allows visitors to upload files. Configurable allowed file types (images, PDFs, documents), max file size, and max number of files. "Please upload your insurance card (image or PDF):"
Slider Numeric range slider with configurable min, max, step, and default values. Shows current value in real time. "Rate your pain level (1-10):"
Rating Stars Star-based rating input (1 to 5 stars). Useful for collecting satisfaction scores and feedback. "How would you rate your experience?"
Carousel Horizontally scrollable cards with image, title, description, and action button. Each card acts as a selectable option. "Browse our available services:" with cards showing each service
Button Configuration Example (JSON)
{
  "type": "buttons",
  "question": "What service are you interested in?",
  "options": [
    { "label": "General Dentistry", "value": "general", "icon": "tooth" },
    { "label": "Orthodontics", "value": "ortho", "icon": "braces" },
    { "label": "Cosmetic", "value": "cosmetic", "icon": "sparkle" },
    { "label": "Emergency", "value": "emergency", "icon": "alert" }
  ],
  "variable": "selected_service"
}

Branching Logic

Branching logic lets you create dynamic conversations that adapt based on visitor responses, data conditions, and external factors. Use Condition nodes to split the flow into multiple paths.

Branch Types

  • If/Else — Two-way split based on a true/false condition. The simplest form of branching.
  • Switch Case — Multi-way split that matches a variable against multiple values. Each case leads to a different path.
  • Pattern Match — Routes based on keyword detection in the visitor's response. Supports comma-separated keyword lists.
  • Regex Match — Advanced routing using regular expression patterns for precise input validation and branching.
1

Add a Condition Node

Drag a Condition node from the node panel onto the canvas. Connect it to the output of the node whose result you want to evaluate.

2

Configure the Condition

Click the Condition node to open its settings panel. Select the variable to evaluate (e.g., {{selected_service}}), choose an operator (equals, contains, greater than, etc.), and enter the comparison value.

Condition Settings
Variable
{{selected_service}} ▾
Operator
equals ▾
Value
emergency
True → Emergency Path    False → Standard Path
3

Connect Branch Outputs

Each condition has at least two output ports: True (green) and False (red). Drag connections from these ports to the next nodes in each branch path. For switch cases, each case value creates its own output port.

4

Add a Default Fallback

Always connect the Default (else) output to a fallback node. This catches any input that does not match your defined conditions, preventing the flow from getting stuck.

⚠️
Avoid Dead Ends

Every branch must eventually lead to an End node or loop back to another part of the flow. Unconnected branches will cause the flow to hang, leaving the visitor without a response.

Conditions & Variables

Variables store data collected during the flow and can be used in messages, conditions, and actions. Helpon supports several variable types that you can reference using double-curly-brace syntax.

Variable Types

Variable Type Prefix Description Example
Session Variables session. Data collected from the current flow session (question answers, action results). {{session.selected_service}}
Visitor Data visitor. Information about the visitor: browser, location, referrer, page URL, visit count. {{visitor.city}}
Contact Data contact. CRM contact fields for returning visitors: name, email, phone, tags, custom fields. {{contact.first_name}}
Custom Variables custom. User-defined variables set via Action nodes. Can store computed values, API responses, or transformed data. {{custom.total_cost}}
System Variables system. Built-in values: current date/time, business hours status, agent availability, flow name. {{system.current_time}}
Variable Usage in Message Nodes
Hi {{contact.first_name | default:"there"}}! Thanks for choosing
{{session.selected_service}}. Your appointment is confirmed for
{{session.appointment_date | date:"F j, Y"}} at {{session.appointment_time}}.

We'll send a confirmation to {{session.email}}.

Comparison Operators

Operator Symbol Description
Equals == Exact match (case-insensitive for strings)
Not Equals != Does not match the given value
Contains contains String includes the given substring
Starts With starts_with String begins with the given prefix
Ends With ends_with String ends with the given suffix
Greater Than > Numeric comparison, value is greater
Less Than < Numeric comparison, value is less
Is Empty is_empty Variable has no value or is null
Is Not Empty is_not_empty Variable has a value assigned
Matches Regex matches Value matches a regular expression pattern

Combining Conditions

You can combine multiple conditions using AND and OR logic groups within a single Condition node. Click the Add Condition button to add more rules and toggle between AND/OR grouping.

Combined Condition Example
IF (
  {{session.selected_service}} == "emergency"
  AND
  {{system.business_hours}} == false
)
THEN → After-Hours Emergency Path
ELSE → Standard Booking Path

Templates

Templates are pre-built flows that you can import and customize for your needs. They save time by providing proven conversation structures for common use cases.

Pre-built Templates

Template Description Nodes
Appointment Booking Collects service type, preferred date/time, patient information, and confirms the booking. Integrates with the Appointments module. 12
Lead Capture Qualifies visitors by collecting name, email, phone, interest area, and budget range. Saves data to the CRM automatically. 8
FAQ Navigator Presents categorized FAQ topics with quick reply buttons and serves answers from the Knowledge Base. Offers agent escalation. 15
Symptom Checker Guides patients through a symptom assessment with branching questions, severity ratings, and provides next-step recommendations. 22

Using Templates

1

Browse Templates

Go to Helpon → Flows and click New Flow. Select the Templates tab to browse available templates. Use the category filter to narrow results.

2

Preview and Import

Click Preview on any template to see the flow structure and node configuration. When ready, click Use Template to import it into a new draft flow.

3

Customize the Flow

Edit the imported flow to match your business. Update message text, adjust question options, modify conditions, and connect action nodes to your integrations (CRM, calendar, etc.).

4

Save as Template

Once you have built a flow you want to reuse, click Save as Template in the toolbar menu. Give it a name and description. Your custom templates appear in the My Templates tab alongside the pre-built ones.

💡
Export and Share

You can export any flow as a JSON file by clicking Export in the flow toolbar. Share the JSON file with other Helpon users or import it into another site via Flows → Import.

Testing Flows

Before publishing a flow to your live site, use the built-in testing tools to verify every path works correctly.

1

Open the Flow Tester

Click the Test Flow button in the editor toolbar. A chat preview panel opens on the right side of the canvas, simulating the visitor experience.

2

Walk Through the Flow

Interact with the flow as a visitor would. Type responses, click buttons, select dates, and upload test files. The active node is highlighted on the canvas in real time so you can see exactly where the flow is executing.

3

Use Step-Through Debugging

Enable Debug Mode by toggling the bug icon in the tester panel. This pauses the flow at each node and displays the current variable state, condition evaluations, and action results. Click Next Step to advance manually.

4

Set Test Data

Click the Test Data tab in the tester panel to pre-fill visitor and contact variables. This lets you simulate returning visitors, specific locations, or existing CRM contacts without needing real data.

5

Reset and Retest

Click Reset Session at the bottom of the tester panel to clear all variables and restart the flow from the beginning. You can also jump to any specific node by right-clicking it on the canvas and selecting Start Test Here.

ℹ️
Test vs. Preview Mode

Test Mode runs the flow inside the editor with debugging tools. Preview Mode (accessible from the flow list page) opens a full-screen chat widget simulation that closely mirrors the actual visitor experience on your site, including styles and animations.

Session Management

When a visitor enters a flow, Helpon creates a session to track their progress, store collected data, and allow resumption if the visitor leaves and returns. Session behavior is configurable per flow.

Setting Description Default
Session Timeout How long a session remains active after the visitor's last interaction. After timeout, the session is marked as expired. 30 minutes
Resume on Return When enabled, returning visitors continue from where they left off. When disabled, a new session starts from the beginning. Enabled
Data Persistence Controls whether session variables are saved after the flow ends. Persistent data is available in the CRM contact record and future flows. Enabled
Max Sessions per Visitor Limits how many times the same visitor can start this flow. Set to 0 for unlimited. Useful for preventing duplicate form submissions. 0 (unlimited)
Clear on Complete Automatically clears the session data when the flow reaches an End node. Useful for privacy-sensitive flows. Disabled
Session Storage Where session data is stored: Browser (localStorage, per-device), Server (database, cross-device), or Both. Both

How Sessions Work

1

Session Created

When a visitor triggers a flow (via widget, URL trigger, or automation), a new session is created. The session stores a unique ID, the current node position, and all collected variables.

2

Data Collected

As the visitor progresses through Question and Action nodes, their answers and results are saved to session variables in real time. Variables persist even if the visitor refreshes the page.

3

Session Ends or Expires

The session ends when the flow reaches an End node (completed) or when the timeout is reached (expired). Completed sessions transfer data to the CRM. Expired sessions can be configured to trigger a follow-up message.

Session Configuration (Flow Settings Panel)
{
  "session": {
    "timeout": 1800,
    "resume_enabled": true,
    "data_persistence": true,
    "max_sessions": 0,
    "clear_on_complete": false,
    "storage": "both",
    "expired_action": "send_followup",
    "followup_delay": 3600
  }
}
Session Data in CRM

All session variables from completed flows are automatically attached to the visitor's CRM contact record. You can view the full session history under Helpon → Contacts → [Contact] → Flow Sessions.

Troubleshooting

Common issues and their solutions when working with the Flow Builder:

Flow not triggering

  • Verify the flow status is Published (not Draft or Paused) in Helpon → Flows.
  • Check the flow's trigger conditions. Go to Flow Settings → Triggers and confirm the URL match, visitor segment, or event trigger is configured correctly.
  • Ensure no other flow with a higher priority is intercepting the same trigger. Flows are evaluated in order of priority (lower number = higher priority).
  • Clear your browser cache and any WordPress caching plugins. Cached pages may serve an outdated widget script without the new flow configuration.
  • Check the browser console (F12) for JavaScript errors that may prevent the widget from loading.

Stuck at a node

  • Open the flow in the editor and use Test Flow to reproduce the issue. Enable Debug Mode to inspect the exact variable state at the stuck node.
  • Ensure the Question node has a valid input type configured. Missing or broken input configurations can prevent the visitor from responding.
  • Check that all outgoing connections from the node are properly linked. A node with no output connection will halt the flow.
  • If the node is a Condition, verify that at least one branch (including the default/else path) is connected. If no conditions match and there is no default path, the flow stops.
  • For Action nodes, check the action logs in Helpon → Settings → Logs for API errors or timeouts that may block execution.

Variables not passing

  • Confirm the variable name in the Question node matches exactly (case-sensitive) with the reference in your Message or Condition node. For example, {{session.email}} will not find a variable named Email.
  • Check that the Question node's Save to Variable field is filled in. Without this, the visitor's answer is not stored.
  • Use the correct prefix: session. for flow-collected data, contact. for CRM fields, visitor. for browser/device data, and custom. for Action-set values.
  • In Debug Mode, inspect the Variables panel after each node to confirm values are being stored as expected.

Editor lagging with large flows

  • Flows with over 50 nodes may cause the editor to slow down. Break large flows into smaller sub-flows and link them using the Transfer node with Go to Flow action.
  • Disable the mini-map for complex flows if you experience rendering delays. Toggle it off with Ctrl M.
  • Close unused browser tabs to free up memory. The visual editor uses a canvas renderer that benefits from available system resources.
  • Use Chrome or Edge for best editor performance. Firefox and Safari may be slower with large canvas operations.
⚠️
Auto-Save

The Flow Builder auto-saves your work every 60 seconds. However, if you experience a browser crash while editing a large flow, use Helpon → Flows → [Your Flow] → Revisions to restore a previous version. The last 20 revisions are stored.