Appointment Booking Flow¶
Collect booking details through a conversational form, validate them, confirm with the customer, and notify your team.
Flow Diagram¶
flowchart TD
A["🚀 Entry Point"] --> B["💬 Welcome<br/><em>Welcome! I can help you book an appointment.</em>"]
B --> C["📋 Service Menu<br/><em>Which service would you like to book?</em>"]
C -->|"Consultation"| D["📥 Ask Date<br/><em>What date works for you?</em><br/>→ {{date}}"]
C -->|"Demo"| D
C -->|"Site Visit"| D
D --> E["📥 Ask Time<br/><em>Morning or afternoon?</em><br/>→ {{time_slot}}"]
E --> F["📥 Ask Name<br/><em>What's your name?</em><br/>→ {{name}}"]
F --> G["📥 Ask Phone<br/><em>What's your phone number?</em><br/>→ {{phone}}"]
G --> H["🔀 Check Details<br/><em>{{name}} is set?</em>"]
H -->|"✓ Yes"| I["💬 Confirmation<br/><em>✅ Booking confirmed!<br/>Service: {{service}}<br/>Date: {{date}}<br/>Time: {{time_slot}}<br/>Name: {{name}}</em>"]
H -->|"✗ No"| J["💬 Error<br/><em>Something went wrong. Let's try again.</em>"]
J --> C
I --> K["✉️ Notify Team<br/><em>New booking: {{name}} on {{date}}</em>"]
K --> L["📋 Anything Else?"]
L -->|"Book another"| C
L -->|"Main menu"| M["📋 Main Menu"]
L -->|"That's all"| N["💬 Goodbye<br/><em>See you on {{date}}! 👋</em>"]
style A fill:#dcfce7,stroke:#22c55e,stroke-width:2px
style C fill:#ede9fe,stroke:#8b5cf6,stroke-width:2px
style D fill:#cffafe,stroke:#22d3ee,stroke-width:2px
style E fill:#cffafe,stroke:#22d3ee,stroke-width:2px
style F fill:#cffafe,stroke:#22d3ee,stroke-width:2px
style G fill:#cffafe,stroke:#22d3ee,stroke-width:2px
style H fill:#fef9c3,stroke:#eab308,stroke-width:2px
style K fill:#ccfbf1,stroke:#2dd4bf,stroke-width:2px
Nodes Used¶
| Node | How It's Used |
|---|---|
| 🚀 Entry Point | Triggers on incoming message |
| 💬 Message | Welcome, confirmation, goodbye |
| 📋 Menu | Service selection and follow-up options |
| 📥 Question | Captures service, date, time, name, phone |
| 🔀 Condition | Validates that required details were captured |
| ✉️ Send Email | Notifies team of the new booking |
Step-by-Step Build¶
1. Service Selection¶
Create a Menu with your bookable services (e.g., Consultation, Demo, Site Visit). All options route to the same date question — use a Question node with Select input type to capture the service choice.
2. Capture Booking Details¶
Chain Question nodes to collect:
| Step | Variable | Input Type | Scope |
|---|---|---|---|
| Date | date |
Text | Conversation |
| Time Slot | time_slot |
Select (Morning/Afternoon) | Conversation |
| Name | name |
Text | Contact |
| Phone | phone |
Phone | Contact |
3. Validate with a Condition¶
Add a Condition node to check that {{name}} is set. This catches edge cases where the customer skipped a question.
4. Confirm and Notify¶
- Confirmation Message: Display all captured details so the customer can review.
- Send Email: Email the booking details to your team.
5. Offer Follow-up Options¶
End with a menu: "Book another", "Main menu", or "That's all".
Tips¶
Use Select type for time slots and services — tappable lists are easier than typing.
Validate before confirming — a Condition check catches missing data.
Include all details in the confirmation — let the customer review before the booking is "locked in".
Use an API Action (if available) to check real-time slot availability from your booking system.
Set name and phone to Contact scope — they persist so returning customers skip those steps.