On this page

Bookings: Schedule Appointments Through WhatsApp Flows

Bookings let customers choose an event, location, appointment type, or any other bookable item directly inside a WhatsApp Flow. The generated Flow uses one screen for the booking details, a CalendarPicker for date selection, dynamic time slots for availability, and a final summary screen where the customer confirms the booking.

What Bookings Create

Each booking can generate and publish a WhatsApp Flow with:

  • An event or location selector. You can rename this label to match your business.
  • A CalendarPicker that appears after the customer selects the event or location.
  • Available time slots that appear after the customer selects a date.
  • Optional custom fields before or after the booking fields.
  • Optional images, using the same image behavior as WhatsApp Form Builder flows.
  • A final completion screen that summarizes the filled details before the customer submits.

The Flow only shows dates and times that are currently available. Fully booked slots, blacked-out dates, and dates before the configured booking cutoff are excluded.

Before You Start

You need:

  • A connected WhatsApp Business account in Nviti.ng.
  • A working WhatsApp Cloud API setup for the account.
  • WhatsApp Flows enabled for the account.
  • Flow encryption configured for the WhatsApp Business account.
  • Permission to manage WhatsApp marketing templates and flows.

If the WhatsApp account is not connected yet, set it up first in the WhatsApp integration settings.

Create a Booking

  1. Go to Marketing > Bookings.
  2. Click New Booking.
  3. In Details, enter the booking name, status, timezone, description, and field labels.
  4. Set the booking status to Published when it is ready to be used in workflows.
  5. In Availability, choose the slot interval:
    • 30 minutes for slots such as 8:30 - 9:00.
    • 1 hour for slots such as 9:00 - 10:00.
  6. Set the booking cutoff:
    • Minimum notice from now hides dates and times before the notice period. For example, 2 days means customers can only book slots after the next 2 days.
    • Specific first bookable date hides dates and times before the selected date and time.
  7. Add one or more Events / Locations. These are the first options customers choose in the WhatsApp Flow.
  8. Add Availability Periods. For each period, choose one or more weekdays, optional event/location, start time, end time, and capacity.
  9. Add Blackout Dates for unavailable dates or partial-day closures.
  10. In Flow, enable WhatsApp Flow.
  11. Link one or more WhatsApp Business accounts.
  12. Add any extra fields or images needed for the booking.
  13. Save the booking.

When the booking is saved with WhatsApp Flow enabled and a WhatsApp Business account linked, Nviti.ng immediately builds the Flow JSON and starts a background sync to Meta. The sync creates or updates the WhatsApp Flow, uploads the generated JSON, publishes it, and stores the preview metadata for that WhatsApp account.

Configure Availability

Availability is controlled by four settings working together:

  • Booking cutoff controls the earliest date and time a customer can select.
  • Availability Periods define working hours, such as Monday to Friday from 09:00 to 17:00.
  • Slot interval controls whether the generated options are hourly or 30-minute slots.
  • Capacity controls how many bookings can exist for the same event/location and time slot.

Example setup:

  • Event/location: Victoria Island Office
  • Availability period: Monday to Friday, 09:00 to 17:00
  • Slot interval: 30 minutes
  • Capacity: 1

Customers will see slots such as:

  • 09:00 - 09:30
  • 09:30 - 10:00
  • 10:00 - 10:30

If a customer books 09:30 - 10:00, that slot disappears once it reaches capacity.

If the booking cutoff is set to 2 days, dates and slots within the next 2 days are hidden. The CalendarPicker starts from the first date after that cutoff that still has an available slot.

You can select multiple weekdays for one availability period when the start time, end time, interval, and capacity are the same. For example, select Monday, Wednesday, and Friday once instead of creating three separate rules.

Events and locations can be reordered manually in the booking editor. The order you set there controls the order customers see in the first WhatsApp Flow selector.

WhatsApp Flow Limits

The booking builder enforces WhatsApp-friendly limits while you configure the Flow:

  • Booking screen title: 60 characters.
  • Event/location option name: 24 characters.
  • Event/location description: 72 characters.
  • Field labels: 30 characters.
  • Selectable option labels: 24 characters.
  • Flow open button text: 30 characters.

Keep labels short and direct so they render cleanly inside WhatsApp.

Preview the WhatsApp Flow

After creating or syncing a booking:

  1. Go to Marketing > Bookings.
  2. Find the booking.
  3. Click Preview.

The preview opens the Meta-hosted WhatsApp Flow preview inside Nviti.ng. If the preview cannot load, click Sync Flow first and wait for the sync job to complete.

You can also click JSON to inspect the generated Flow JSON. Use this when you need to verify the structure, field names, CalendarPicker setup, or terminal summary screen.

Use a Booking in a WhatsApp Workflow

Bookings can be sent from WhatsApp integration workflows as a workflow node.

  1. Go to the WhatsApp workflow builder.
  2. Add or edit a workflow for the WhatsApp account that is linked to the booking.
  3. Add the Send Booking Flow action node.
  4. Select the booking.
  5. Configure the message and call-to-action text.
  6. Connect the node to the trigger or previous workflow step.
  7. Save and activate the workflow.

When the workflow reaches the node, Nviti.ng creates a booking reservation token and sends the generated WhatsApp Flow to the customer. The customer selects the event/location, picks a date with CalendarPicker, chooses an available time slot, reviews the summary screen, and submits the booking.

What Happens After Submission

When the customer submits the final screen:

  • Nviti.ng validates the selected event/location, date, and time.
  • The booking service checks capacity again before confirming.
  • If the slot is still available, a confirmed reservation is created.
  • If the slot has just become full, the submission is rejected and the customer must choose another available slot.

This final capacity check prevents two customers from booking the same limited slot at the same time.

Troubleshooting

No dates appear in the CalendarPicker

Check that the booking has active events/locations, active availability periods after the booking cutoff, and no blackout rule blocking every available date.

No times appear after selecting a date

Check the weekday availability period, slot interval, capacity, and existing reservations for that date.

Preview says the Flow has not been synced

Click Sync Flow from the booking table. The booking must have WhatsApp Flow enabled and at least one linked WhatsApp Business account.

Flow sync fails

Check the WhatsApp Business account access token, WABA details, Flow encryption setup, and Meta account permissions.

The workflow node cannot find the booking

Make sure the booking is published, belongs to the same company/workspace, has WhatsApp Flow enabled, and is linked to the WhatsApp Business account used by the workflow.