Overview
The Flow Builder is the visual heart of the Exo-Chatbot platform, providing a powerful no-code interface for designing and automating conversational user journeys. It is a canvas-based tool where you can map out every step of a conversation by creating and connecting nodes. Each node represents a point in the conversation and can contain various elements, such as sending a message, asking the user for information, performing a backend action, or applying conditional logic.
This visual approach allows you to craft everything from simple, single-turn interactions to complex, branching dialogues that can integrate with APIs, query databases, and execute custom code. The Flow Builder is designed to be intuitive, enabling both technical and non-technical users to build, test, and manage sophisticated chatbot logic without writing a single line of code.
Key components of the Flow Builder include:
- The Canvas: An infinite workspace where you arrange and connect your conversation nodes. 
- Nodes: The building blocks of a conversation, representing a step or a state in the user's journey. 
- Elements: Specific items you add inside a node, categorized as Bot Messages, Prompts, Actions, and Logic. 
- Connectors: The lines you draw between nodes to define the flow of the conversation from one step to the next.  
Ultimately, the Flow Builder is where the abstract concept of a user conversation is transformed into a functional, automated, and interactive experience.
How to Use the Flow Builder
This guide provides a detailed walkthrough of the Flow Builder interface and its core functionalities.
2.1 Accessing the Flow Builder
- To create a new flow: Navigate to Workflow -> Flows and click the + Create Flow button. 
- To edit an existing flow: From the Workflow -> Flows page, locate the flow in the table and click the Edit (pencil) icon in its Actions column. 
2.2 The Flow Builder Interface
- Top Navigation Bar: Contains the Back button, Flow Status (which indicates errors), a Language Switcher for multilingual bots, and the Preview Bot button for real-time testing. 
- The Canvas: The main workspace where you build your conversation by adding and connecting nodes. 
- Flow Map: A mini-map in the bottom-right corner that helps you navigate large, complex flows. 
2.3 Building a Conversation
- Configuring the Intent Trigger (First Node): - Every flow starts with an Intent Trigger node. Click it to configure. 
- Flow Name: The primary phrase that triggers the conversation (e.g., "Check Order Status"). 
- Training Questions: Add alternative user phrases (e.g., "track my package"). 
- Select Channels & Category: Assign the flow to specificchannels and an organizational category.  
 
- Adding Steps (Nodes) to the Flow: - Click the + icon on an existing node to add a new step. 
- This opens a menu with four categories of elements to add: - Bot Messages: To send information to the user (Text, Image, Carousel, etc.). 
- Prompts: To get information from the user (Text, Quick Replies, Form, etc.). User input can be stored in variables. 
- Actions: To perform backend operations (call an API, query a Database, Transfer to Live Chat, etc.). 
- Logic: To control the conversation path using Condition (If/Else) or Channel Filter.  
 
 
- Connecting Nodes: Drag the circular connector from one node to the next to define the conversation path. Logic nodes (like Condition) will have separate connectors for different outcomes (e.g., If/Else), allowing for branching paths.  
- Managing Nodes and Elements: - Click the three-dot menu on a node to Copy Step, Copy Tree (node + all subsequent nodes), or Delete Step. 
- Within a node, you can Edit, Delete, or Rearrange the individual elements.  
 
- Saving and Testing: The builder auto-saves. Use the Preview Bot button frequently to test your logic. 
Common Use Cases
- Restaurant Table Reservation: - Intent Trigger: "Book a table" 
- Prompt (Form): Ask for Number of guests, Date, and Time. Store these in variables. 
- Action (API): Call the reservation system's API with the collected variables. 
- Logic (Condition): Check the API response. If successful, send a confirmation message. If not, inform the user the time is unavailable. 
 
- Customer Support Ticket Creation: - Intent Trigger: "I have a problem" 
- Prompt (Quick Replies): "What is this regarding? [Billing] [Technical Issue]" 
- Prompt (Text): "Please describe your issue." Store the description in a variable. 
- Action (Database): Use Insert Entry to save the details to a "Support Tickets" table. 
 
Best Practices
- Keep Flows Focused: Each flow should accomplish one primary goal. Break complex processes into smaller, reusable flows linked with the Execute Flow action. 
- Name Nodes Clearly: Descriptive node names (e.g., "Ask for Email," "Check API for Availability") make large flows much easier to understand and debug. 
- Always Build Failure Paths: When using an API or Database action, always connect the Failure path to a node that gives the user a helpful message. 
- Use Variables Extensively: Store every piece of user input in a variable. This enables personalization and allows you to pass data between steps and to external systems. 
Common Mistakes
- Creating "Spaghetti" Flows: Avoid crossing connector lines all over the canvas. If a flow becomes too messy, it's a sign it should be broken into smaller, more manageable flows. 
- Forgetting to Store Prompt Responses: A common error is asking the user a question with a Prompt but forgetting to select a variable to store their answer in. 
- Dangling Nodes: Every node should be part of a complete path. A node that isn't connected to anything is a dead end and will break the conversation. 
- Not Setting a Default/Else Condition: When using a Condition node, always define the Else path to handle any case that doesn't match your If conditions. 
- Ignoring Asynchronous Behavior: API calls can take time. Design your flow with "Please wait" messages where necessary to manage user expectations. 
