Skip to main content
A static Flow only shows what you typed when you built it. A dynamic Flow asks for fresh information while the customer is inside it. In the dashboard, a Flow’s Data source says where that information comes from, and the Live data column of the Flows tab shows it. For example, the customer picks a date and the next screen lists the times still free in your calendar that day. Ringg does the technical part for you. It hosts the connection WhatsApp needs (the endpoint), handles WhatsApp’s encryption, and fetches the data. You choose where the data comes from:
Read WhatsApp Flows first. Adding a Flow to an assistant, the prompt, and where answers show up all work the same way with live data.

How a booking Flow works

The Flow itself doesn’t book anything. It shows the free times and sends the customer’s choice back to the chat. Your assistant then books the slot with the calendar’s booking tool and confirms, just as it would on a call.

Set up appointment booking

Before you start

  • A WhatsApp assistant with a Ready WhatsApp number attached. See Create a WhatsApp agent.
  • Calendly, Google Calendar or Cal.com connected under Tools in Ringg.

The booking design

Both ways below use this design: a Pick a date screen, then a Pick a time screen that lists the free times and asks for the customer’s name and email.

The quick way: build it in Ringg

Plan about 5 minutes.

Pasting the booking design into Ringg, connecting Google Calendar as its data source, and publishing it

1

Create the Flow

Go to Tools → WhatsApp Business, select the Flows tab, then Create Flow. Name it, for example Book a visit, and choose the category Appointment booking.
2

Paste the booking design

Copy the booking design above, then select Paste JSON in the builder. The Pick a date and Pick a time screens appear. The parts that read live data stay as JSON rows, which is expected: Ringg sends them to Meta exactly as written.
Create a Flow dialog with Name Book a visit and Category Appointment booking; screen 1. Pick a date holds two JSON rows, DatePicker and Footer, and the preview shows their names

The booking design pasted into the builder

3

Save the draft

Select Save draft, then Cancel to see the Flow’s details.
4

Connect your calendar

Under Data source, select Set up data source. Keep Calendar and pick your connected calendar. Date screen and Slots screen are already set to Pick a date and Pick a time. Check the Timezone; the other settings are explained in the Connect your calendar step of Or design it in WhatsApp Manager. Select Save.
Data source form with Calendar selected, Google Calendar (Site visits), Calendar ID primary, Slot length 30 minutes, Date screen Pick a date, Slots screen Pick a time, Date field date, Timezone Asia/Kolkata, Days ahead 30 and Most slots shown 20, with Cancel and Save

A Google Calendar data source for the booking Flow

Data source lists the calendar, the date screen and the slots screen.
5

Publish it

Select Publish, then Publish again to confirm. In the Flows tab, Live data shows Calendar, via Ringg.
Flows table with Book a visit at the top, Published, 4 questions, Live data Calendar, via Ringg; below it Site visit request, Find a showroom (Draft, From endpoint) and Visit feedback

The Flows tab after publishing: Book a visit reads its data from the calendar

Now let your assistant send it and book.

Or design it in WhatsApp Manager

If you’d rather keep the Flow in WhatsApp Manager, for example to edit its layout there, build it from the same design. You need access to the same WhatsApp Business account in Meta’s WhatsApp Manager. Plan about 15 minutes.
1

Create the Flow in WhatsApp Manager

In WhatsApp Manager, open Account tools → Flows and select Create Flow. Name it, for example Book a visit, choose the category Appointment booking, and start from a blank Flow.
2

Paste the ready-made design

The builder shows the Flow’s code on the left and a preview on the right. Select everything in the code editor, delete it, and paste the booking design. The preview should show a Pick a date screen.Select Save. Don’t publish yet: the Flow needs its data source connected first.
3

Open the Flow in Ringg

In Ringg, go to Tools → WhatsApp Business and select the Flows tab. It syncs as it opens. Select Book a visit. It shows as Draft, which is expected.
4

Connect your calendar

In the Flow’s details, under Data source, select Set up data source. Keep Calendar and fill in:Select Save.
5

Check the result

After saving, Data source shows where things stand:
  • Only the calendar, the date screen and the slots screen: everything is connected. Go to the next step.
  • Meta kept this Flow’s own endpoint, with a URL beneath it. This happens when the Flow was already published. Copy the URL with the copy icon. In WhatsApp Manager, open the Flow, paste the URL as its endpoint, and publish it again.
6

Finish in WhatsApp Manager

Back in the Flow in WhatsApp Manager:
  1. Open the Flow’s endpoint settings. The endpoint URL should end in /exchange.
  2. Connect your Meta app: choose the app you connected when you set up WhatsApp Business on Ringg.
  3. Run the health check. It should pass.
  4. Open the Preview, pick a date and check that times appear.
  5. Publish the Flow.
7

Sync in Ringg

In the Flows tab, select the refresh icon. Book a visit now shows as Published, with Calendar, via Ringg under Live data.

Let your assistant send it and book

1

Add the Flow to the assistant

In the agent editor, select WhatsApp Flows, then Add flow, and pick Book a visit. Write the Message and Button label, for example Tap below to pick a time for your visit. and Book a visit.Keep Opens on set to Loaded by the Flow’s endpoint, so every customer starts on today’s dates. Select Save.
2

Add the calendar's booking tool

Select Tools in the left menu, then On-call → Integration, pick your calendar and add its booking tool:Set the start time, name and email to Dynamic, so the assistant fills them in from the Flow’s answers. Give fixed settings, such as the event type and timezone, a Static value.
3

Tell the assistant what to do

Tag both tools in the prompt with @:
4

Test it

Open Test assistant, scan the QR code and ask to book a visit. Pick a date, check that the times match your calendar, choose one, submit, and look for the booking in your calendar.
The answers reach the assistant like this. The time the customer picked arrives in full, with its date and timezone, which is the format booking tools expect:

Change the design safely

You can change the words the customer sees without breaking anything:
  • Screen titles, such as "title": "Pick a date".
  • Field and button labels, such as "label": "See times".
  • Extra questions on the Pick a time screen, such as a phone number or notes. Add each one to the payload of the Book button as well, or its answer won’t come back.
Leave these exactly as they are, because Ringg relies on them: To change a published Flow, open it in the Flows tab and select Duplicate & edit. Edit the copy, set up its data source again, and publish it. See Change a published Flow.

Troubleshooting

Good to know

WhatsApp encrypts everything a Flow sends, using a key set on each phone number. When you save a data source, Ringg puts its key on every number of the WhatsApp Business account, reusing the key it already has. If a developer connected the same numbers to their own Flow server with a different key, that setup stops working. Talk to them first, or have them use a server data source instead.
Changing a published Flow’s endpoint moves it back to Draft in WhatsApp Manager, so Ringg never changes it for you. If a published Flow isn’t already using Ringg’s endpoint, saving its data source shows the URL to paste in WhatsApp Manager, and you publish the Flow again there. Setting up the data source before you publish avoids this.
Free times are read when the customer picks a date. If someone else books the same time before they submit, the booking tool returns an error and the assistant can offer another time, as the prompt above tells it to.
Open the Flow in the Flows tab, select Edit source under Data source, then Remove. The Flow then has nowhere to load its data from, so stop sending it or remove it from your assistants first.