Skip to content

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.