Visual Flow Builder — Chatbot Automation Guide in Seen
The Visual Flow Builder in Seen is an enterprise-grade, no-code graphical canvas engineered to design, deploy, and monitor intelligent conversational workflows. Empowering organizations to automate between 70% and 85% of standard customer inquiries around the clock (24/7), the Flow Builder qualifies inbound leads, captures customer attributes, verifies transactional data via webhooks, and orchestrates seamless escalations to human specialists.

1. Visual Canvas Anatomy & Architecture
The Flow Builder canvas provides a fluid, spatial environment structured into four functional zones:
┌───────────────┬────────────────────────────────────────────┬────────────────┐
│ NODE PALETTE │ INFINITE CANVAS │ INSPECTOR │
│ │ │ │
│ • Triggers │ ┌──────────────┐ ┌──────────────┐ │ • Dynamic Form │
│ • Messages │ │ Start Node │ ──► │ Message Node │ │ Schemas │
│ • Conditions │ └──────────────┘ └──────────────┘ │ • Variable Map │
│ • Collect Inp │ │ │ • Validation │
│ • Webhooks │ ▼ │ Rules │
│ • Actions │ ┌──────────────┐ │ │
│ │ │ Assign Agent │ │ │
│ │ └──────────────┘ │ │
└───────────────┴────────────────────────────────────────────┴────────────────┘
- Left Node Palette: Expandable drawer housing categorized node types ready to drag and drop onto the canvas.
- Infinite Canvas: Interactive workspace supporting Pan, Zoom In/Out, multi-selection, and connection mapping between node Output Handles and Input Handles.
- Right Dynamic Inspector: Automatically renders context-specific configuration schemas whenever a node is selected on the canvas.
- Global Top Toolbar: Flow title, canvas viewport controls, Test Trigger simulator, Flow Audit History, and the one-click Draft / Publish toggle switch.
2. Complete Flow Node Types Catalog

Seen provides a robust library of node types covering every operational stage of automated customer engagement:
A) Start / Trigger Node (`start`)
The foundational entry point of every flow, establishing execution conditions:
- Trigger Classifications (
TriggerGroup):- Incoming Message: Exact keyword match, contains phrase, regular expression (Regex), or wildcard match on any inbound message.
- Click-to-WhatsApp Ad: Fires automatically when a prospective customer initiates contact from a sponsored Meta ad.
- Instagram Story Reply / Mention: Engages when customers reply to your brand stories.
- Post Comment: Triggers automated private messaging in response to public social comments.
- Firing Frequency:
- Every Time: Fires on every matching incoming message.
- Once per Contact: Fires exclusively during a contact's inaugural interaction.
- Once per Day: Throttles execution to prevent repetitive greeting loops within 24 hours.
B) Send Message Node (`send_message`)
Delivers multimedia payloads to the active conversation channel:
- Dynamic text supporting variable interpolation (e.g.
{{contact.name}},{{session.order_id}}). - Rich attachments: Images, PDF catalogs, voice notes, and videos.
- Native interactive components: Quick Reply button chips and interactive List Pickers.
C) Collect Input Node (`collect_input`)
Prompts the customer with a question and captures their response into a session variable or contact attribute:
- Data Validation Types: Free-form text, Integer/Decimal number, Email address, E.164 Phone number, or Calendar Date.
- Invalid Input Behavior (
InvalidInputBehavior):- Repeat Question: Prompts the customer again immediately.
- Custom Error Message: Displays helpful guidance (e.g. "Please format your email address as [email protected]").
- Session Timeout: Maximum waiting threshold before branching to fallback logic.
D) Condition Node (`condition`)
Executes Boolean logic branching (IF / ELSE) evaluated against:
- Contact tags (e.g. Does the contact possess
#VIP_Tier?). - Contact attributes and custom fields (e.g.
loyalty_points > 500). - Operational business hours (e.g. Is the conversation arriving outside scheduled shifts?).
- Previous node answer responses.
E) Delay / Wait Node (`delay`)
Suspends flow progression for a designated duration (Seconds, Minutes, Hours, or Days). Emulates realistic human typing cadence or orchestrates multi-day follow-up sequences.
F) Go To Node (`goto`)
Creates a non-visual logical jump directly to another target node on the canvas, preserving graph legibility without sprawling connecting wires.
G) Randomizer Node (`randomizer`)
Splits incoming traffic across multiple percentage-weighted branches (e.g. 50% Branch A vs 50% Branch B) for rigorous A/B conversion experimentation.
H) Update Profile Node (`update_profile`)
Manipulates contact records in the Contacts Directory:
- Attach new segmentation tags.
- Strip outdated tags.
- Update custom attribute values (e.g. mark
account_status = 'verified').
I) Webhook / HTTP Request Node (`webhook`)
Enables bidirectional REST API integrations with external backends:
- Dispatches HTTP requests (GET, POST, PUT, DELETE) to external CRMs, Shopify, Salla, Zid, or custom enterprise servers.
- Ingests JSON response payloads, extracting values directly into flow variables (e.g. real-time tracking numbers or shipment statuses).
J) Assign to Agent Node (`assign_agent`)
Executes an intelligent, context-preserving handoff to human personnel in the Omnichannel Inbox:
- Routes the ticket to a designated team or individual agent.
- Configures priority levels (Normal, High, Urgent).
- Disables automated bot responses for the conversation to give frontline agents uninterrupted control.
K) Internal Note Node (`note`)
Visual sticky notes placed directly on the canvas to document design rationale, integration dependencies, or editorial notes for fellow workspace designers.
L) End Flow Node (`end`)
Formally terminates the conversational session, offering options to resolve the ticket or leave it open for subsequent interactions.
3. Node Specifications & Handle Matrix
| Node Type | System Code | Input Handle | Output Handles | Primary Capability |
|---|---|---|---|---|
| Start / Trigger | start |
None | Single Output | Workflow ignition point |
| Send Message | send_message |
Single Input | Single Output or Button Handles | Renders rich messages & interactive buttons |
| Collect Input | collect_input |
Single Input | Success Handle + Timeout Handle | Captures and validates user responses |
| Condition | condition |
Single Input | True Handle + False Handle | Dynamic logical branching |
| Delay / Wait | delay |
Single Input | Single Output | Timed workflow pause |
| Randomizer | randomizer |
Single Input | Multi-percentage Branch Handles | A/B split testing |
| Webhook | webhook |
Single Input | Success Handle + Failure Handle | Third-party REST API integration |
| Assign Agent | assign_agent |
Single Input | Single Output | Human handoff & ticket escalation |
4. Live Session Monitoring (`flow-sessions`)
The dedicated Flow Sessions dashboard monitors live automation execution across your customer base:
- Session Lifecycle States (
SessionStatus):- Active: Customer is actively interacting with flow steps.
- Completed: Reached an End node successfully.
- Failed: Terminated prematurely due to an API timeout or webhook error.
- Timed Out: Contact abandoned the inquiry past the timeout threshold.
- Redirected: Handed off to a linked child flow.
- Cancelled: Manually superseded by an agent intervening in the inbox.
5. Flow Audit Trail & Change Management (`FlowAuditAction`)
Seen immutably records all administrative modifications to guarantee enterprise governance:
- Comprehensive audit records identifying which user created, modified, or deleted nodes.
- Timestamped logs of canvas saves (
GRAPH_SAVED), settings revisions, and status transitions from Draft to Published (PUBLISHED). - Rollback visibility to audit configuration changes that impacted customer engagement metrics.
Step-by-Step: Constructing an Automated Triage Bot
- Create a fresh flow titled "Lead Qualification & Triage Bot".
- In the Start Node, assign an Incoming Message trigger with keywords:
hello,hi,pricing. - Connect the Start output to a Send Message Node: "Welcome to Seen, {{contact.name}}! How may our team assist you today?" Attach two Quick Reply buttons:
[Sales Inquiry]and[Technical Support]. - Connect the
[Sales Inquiry]handle to an Update Profile Node applying the#SalesLeadtag, then route to an Assign to Agent Node selecting the "Sales Roster". - Connect the
[Technical Support]handle to a Collect Input Node prompting: "Please enter your 6-digit order or account number" with numeric validation enabled. - Connect the valid response handle to an Assign to Agent Node routing to "Technical Support Tier 2" with High Priority.
- Execute a simulated run using Test Trigger, then click Publish.
Frequently Asked Questions
What happens if an agent manually replies while a flow session is active?
The instant an agent sends a manual message or assigns the ticket in the Omnichannel Inbox, the flow session automatically terminates (SessionStatus.Cancelled), guaranteeing that the bot will never interrupt live human conversations.
Do automated flow messages consume WhatsApp template message charges?
When executed within the customer's active 24-hour service window, all conversational text, media, and interactive button messages sent by the bot are free of Meta template conversation charges, consuming only your standard workspace quota.
Can multiple active flows run concurrently on a single WhatsApp number?
Yes. Workspaces can publish dozens of concurrent flows on the same phone line. Seen's intelligent routing engine evaluates trigger keywords and priority conditions to execute the exact workflow tailored to each customer prompt.


