Node Title
Input Type
Multiple Choice Buttons
Free Text Input
Phone Number
Number Input
Email Input
📅 Date Picker
📅 Date & Time Picker
⏰ Time Picker
No Input (Continue button)
Input Placeholder
Each option can link to the next step
Headers JSON object
Request Body JSON — supports {{vars}}
Use dot notation: data.user.name → {{userName}}
Rules are evaluated silently — flow routes to ✅ True or ❌ False automatically. Supports {{variables}}.
Combine groups with:
AND
OR
Add Condition Group
Compares one variable against any number of values — each with its own route. Add as many cases as you need, plus a fallback for when nothing matches.
Matching is case-insensitive. Values support {{variables}}.
Fallback / Default Route used when no case matches
Collects hotel / auth details from the user. Optionally calls a verification API. Variables collected here persist across all flows in this session until an End Session node clears them.
Greeting Message shown to user at session start
List the variable names that will be collected (e.g. phoneNumber, hotelId). Use Question nodes before this to collect them.
Headers JSON object
Request Body JSON — supports {{vars}}
e.g. 0.HotelName → hotelName
If the mapped variable equals the expected value, the session is authenticated and flow continues. If not, an error message is shown and the session cannot proceed.
Clears session variables and resets state. Use this when the user is done so the next user starts fresh.
Session End Message shown to user
Shows the user all flows in a chosen category as clickable buttons. They tap one and that flow launches directly.
Category required
— select a category —
Prompt Message shown above the buttons
Flows in this category auto-populated A→Z
Select a category to see its flows
When the user reaches this node the current flow ends and the selected flow starts immediately — no picker shown.
Target Flow required
— select target flow —
Transition Message optional — shown before jumping
Add Variable
Use {{varName}} in messages & API URLs to insert values
QR Content URL, text, phone, email — supports {{vars}}
Caption shown above QR in chat
QR Size (px) 100–400
120 px — Small
160 px
200 px — Default
240 px
280 px
320 px — Large
400 px — Extra Large
Error Correction L=7% · M=15% · Q=25% · H=30%
L — Low (7%)
M — Medium (15%)
Q — Quartile (25%)
H — High (30%)
The QR code is generated live using the qrserver.com API.
Use {{variables}} in the content for dynamic QR codes (e.g. personalised URLs).
+
−
×
/
%
^
(
)
ROUND
ABS
SQRT
FLOOR
CEIL
MIN
MAX
Click a variable to insert it into the formula
No variables defined yet — use Set Variable nodes first
Type = then your formula. Use {{varName}} to reference
flow variables — they're replaced with their numeric values at runtime.
Non-numeric variables resolve to 0.
Question / Prompt
Number of icons 1–10
3
4
5
6
7
8
9
10
Rating Icon
⭐
❤️
👍
😊
🔥
👑
🐱
🐶
⭕
🚩
💧
✅
💡
🏆
☁️
⚡
✏️
💀
User taps an icon to set their rating. Numbers 1–N appear below each icon. Value stored in variable.
Question / Prompt
Description optional sub-text shown below question
Scale Range
Start
0
1
2
3
4
5
to
End
3
4
5
6
7
8
9
10
User taps a number on the scale. The value is stored in the variable and flow advances to the next node.
Question / Prompt
Choices add up to 26 options
Add Option
OK Button Label default: OK ✓
In multi-select mode the user picks one or more options then taps OK. In radio mode they tap one option and it auto-submits.
Sticker Image URL GIF, WebP, PNG, APNG supported
Caption optional, supports {{vars}}
Sticker always shows in chat history. The next node is set in "After Sticker" below.
Renders as a WhatsApp-style voice message bubble with a play button. Point it at a fixed audio URL, or resolve the URL from a variable set earlier in the flow (e.g. by an API Call node).
Caption optional, supports {{vars}}
Keep voice bubble visible in chat history
The next node is set in "After Audio" below.
Each card has its own image, title, subtitle, and up to 3 buttons. Buttons route to different next nodes.
Add Card
Sends an SMS to a phone number via your configured SMS provider (Telnyx). Runs silently — no visible output to the customer. Use {{variables}} for dynamic values. Configure provider in Settings → SMS Settings .
To (Phone Number) E.164 format: +12125551234
Message Body supports {{variables}}
Click a variable to insert into the active field
No variables yet
Setup required: Configure your Telnyx API key and sender number in Settings → SMS Settings . Deploy the send-sms Supabase Edge Function first.
Sends a prompt to your configured AI model. Use {{variableName}} to inject any flow variable. Parses JSON from the AI reply and maps fields to variables. Model is set globally in Superadmin → Platform Settings .
System Prompt supports {{vars}}
Show AI response as chat bubble
JSON Field Mappings JSON key → variable
Add
If the AI returns JSON, extract individual fields into variables. Leave empty to skip.
When the flow reaches this node, the user can type any free-text message . The AI Router detects intent and either triggers a matching flow or answers from the Knowledge Base .
Input Placeholder shown inside the chat input
Router System Prompt Override optional — leave blank to use default
How it works: User types freely → AI Router checks all flows' intents/descriptions → if matched, that flow runs inline → if no match, KB is searched → answer shown as bot bubble. The "Continue to" target below runs after an inline KB answer (not after a triggered flow).
Shows 5-star ★ rating buttons plus an optional text comment box. Saves the score and comment to variables for reporting. Can be attached after any node—including Resolved & Escalate.
Rating Question shown above stars
Collect follow-up comment
Sends a dynamic message to a specific user or group in the team chat. Runs silently — no visible output to the customer. Use {{varName}} for dynamic values.
Message supports {{variable}}
Message Type
💬 Text
🔔 Alert / Notification
✅ Task Assignment
ℹ️ Info
How to use: Paste the User ID or short code (e.g. AB3X9K) from Admin → Team Members cards. Short codes are resolved to real IDs at runtime. This node runs silently — the customer sees nothing. Wire the next step using the "After Send" connector below.
Sets conversation metadata visible in the Conversations list. Use {{varName}} to pull values from variables. All fields are optional — leave blank to skip.
Tip: Drop this node anywhere in the flow — right after collecting the guest's name, or just before End / Resolve. It runs silently with no user-visible output, then continues to the next step.
fx
Preview (vars = 1):
OPERATORS
+
−
×
÷
^
%
(
)
round
floor
ceil
abs
√
min
max
Show result as chat bubble
Use {{varName}} to reference variables from earlier nodes. Standard JS math operators and Math.* functions are supported.
Collect a payment inside the chat. Stripe Elements handles card data — PCI compliant. Requires Stripe keys in Platform Settings → Stripe .
Currency
USD — US Dollar
EUR — Euro
GBP — British Pound
AUD — Australian Dollar
CAD — Canadian Dollar
INR — Indian Rupee
AED — UAE Dirham
SGD — Singapore Dollar
Payment Description
Pay Button Label (leave blank for auto)
Routing After Payment
✅ On Success — go to node
— end flow —
❌ On Failure — go to node
— end flow —
Plays a celebration animation & optional sound when the flow reaches this node. Connect it anywhere — it auto-continues to the next step.
ID: -
START