Virtual Consultations on WhatsApp: Sell Paid Google Meet Sessions in Your Existing Booking Page
Sell paid video consultations through your existing WhatsApp booking page. Google Meet link auto-generated. Reminders at 24h, 2h, and 15 minutes before. Same chat, same booking flow — virtual just becomes another option.
Why Virtual Consultations Matter Now
If you run a clinic, a consultancy, a tuition centre or a salon that does pre-visit colour consults, you have almost certainly done a free WhatsApp video call this month. Maybe several. A patient pinged you about a rash, a client wanted to walk through a contract, a parent wanted to meet the tutor before signing up. You took the call, gave 20 minutes, and got nothing for it.
It is the most expensive habit in Pakistani and South-East Asian SMB right now. Customers have been trained by the last few years that "quick video call" is free. Tenants have been trained to give it away because there was no clean way to charge. The closest thing was sending a JazzCash number after the fact and hoping — most don't bother. The result: a whole layer of work that is real, billable, and invisible on the books.
Meanwhile the booking page you already share on WhatsApp does perfectly well at selling in-person slots. The plumbing — staff hours, deposits, calendar sync, WhatsApp confirmation — already exists. The only thing missing was a checkbox for "this one is virtual." That's what just shipped.
The Problem with Doing It Informally
Here is what "virtual consultations on WhatsApp" looked like before today, for almost everyone:
- No fee. The customer asks "can we hop on a quick call," you say yes, the call happens, no money changes hands. Maybe you mention a price afterwards. Maybe they pay. Usually they don't.
- No calendar. The "appointment" lives in two WhatsApp threads and a vague memory. Nobody is blocking the slot for anyone else, so double-bookings happen — and the second customer is the one who feels it.
- No reminders. The customer forgets. You wait 10 minutes, message them, get "sorry was on the road, can we do it now," and your next slot starts to wobble.
- No link until the moment. You hand-create a Meet or Zoom link the minute before, paste it in WhatsApp, hope they tap it. Half the time you're juggling three chats with three links and pasting the wrong one into the wrong thread.
- No record. If a question comes back tomorrow about "what we agreed on the call," you have nothing — not even a calendar entry.
None of this is a small business doing things wrong. It's just what happens when the only tool is a WhatsApp text box and a video-call button.
What Just Shipped
Today we are turning virtual consultations into a first-class service type on your existing Botline booking page.
From the tenant side: every service in your catalogue now has a Booking modes setting with three options — In-person only (the default, nothing changes for you), Virtual only, or Either (let the customer pick). Set the mode, optionally set a virtual price (defaults to your in-person price) and a virtual duration (defaults to in-person), save. The service now shows up on your public booking page with a mode picker.
From the customer side: they open your /book page like always, pick a service, and if it is set to "Either" they see a clean two-button choice — "In clinic" or "Virtual call." Pick virtual, the form asks for an email address (we need this for the calendar invite), pick a slot, submit. Within seconds they get a WhatsApp message confirming the booking and the Google Meet link. The same Meet link goes to their email as a calendar invite, and the same Meet link stays valid throughout the booking lifecycle — no last-minute regeneration, no copy-paste mistakes.
The same Booking confirmation mode rules you set for in-person bookings apply (auto, soft 24h confirm, strict 30-min confirm, or manual-only). Virtual bookings are not a separate lifecycle — they're a different room for the same appointment.
How It Works (Customer Side)
- They open your booking page. Same URL you already share on WhatsApp, in your bio, in your menu — nothing changes about distribution.
- They pick the service. If you've set the service to "Either," they see two large buttons: In clinic and Virtual call. The virtual button shows the virtual price next to it, so there are no surprises.
- They fill the form. Same fields as in-person, plus an email address (required for virtual — that's where the calendar invite goes).
- They submit. Within seconds, a WhatsApp message lands in their chat with the booking summary and a Google Meet link. The same Meet link arrives by email as a calendar invite — they can tap "Add to calendar" once and forget about it.
- Reminders fire automatically. 24 hours before, 2 hours before, and a final "Starting in 15 minutes" reminder with the Meet link reposted. The 15-minute one is the unique touch — most customers join from their phone, and having the link one tap away from the most recent WhatsApp notification is the difference between a smooth call and a 5-minute hunt for the link.
- They join the call. One tap on the Meet link in WhatsApp. They're in.
How It Works (Your Side)
Three things change for you, all of them small.
Services get a 3-way mode toggle. Edit any service in Dashboard → Bookings → Services. The new "Booking modes" field lets you pick In-person only, Virtual only, or Either. If you pick Virtual or Either, two extra fields appear: virtual price (defaults to in-person price) and virtual duration (defaults to in-person duration). That's it — the rest of the service config is unchanged.
The bookings page gets an Up Next panel. A sticky panel at the top of Dashboard → Bookings shows the next virtual consultation across all your staff with a live countdown ("Starts in 14 minutes"). When the call is within 5 minutes, a single big Join call button appears — one tap and you're in the Meet, no scrolling through the schedule, no fishing through email, no second monitor required. This is the quality-of-life change tenants in our pilot kept calling out: the appointment used to be the part where you scrambled. Now it's the part where you just press a button.
Payment is yours to collect. Stripe is supported but optional — the founder pivot here is that for Pakistan and most of South-East Asia, manual payment is cultural and works fine. Cash on the call, JazzCash transfer with a screenshot in WhatsApp, Easypaisa, bank transfer — all of it is first-class. The booking is real whether or not Stripe is wired up. Mark the booking as paid in the dashboard when the money lands; the customer doesn't see any of this admin.
The AI agent on WhatsApp picks up the new mode automatically. For services set to "Either," when a customer asks about pricing or availability, the AI will mention both options naturally — "That's available in clinic for 3,500 PKR or as a virtual call for 2,500 PKR — which works for you?" No prompt-engineering required, no menu rebuild.
How to Enable
- Connect Google Calendar on at least one staff member. Go to Dashboard → Bookings → Staff tab → Edit a staff member → click Connect Google Calendar. This is required — the Meet link is auto-generated through that staff member's Google account, and the calendar invite to the customer goes through the same account. One staff is enough to start; you can connect more later.
- Edit a service. Dashboard → Bookings → Services tab → Edit any service.
- Set Booking modes. In the service editor, find the Booking modes field. Pick Either if you want to offer both options side-by-side (recommended for first launch — let customers self-select), or Virtual only if this service should never be in-person.
- Optional: set virtual price + duration. If virtual should cost less (or more) than in-person, fill in the virtual price. Same for duration — virtual consults often run shorter. Both default to the in-person values if you leave them blank.
- Save. The service now appears on your public booking page with the mode picker, and the AI on WhatsApp will mention both options when relevant.
Total setup time on a service that's already configured: about 30 seconds. First-time Google Calendar connection takes 2 minutes (mostly Google's consent screen).
Pricing
Virtual consultations are included on the Pro plan at the same price as the rest of appointment booking — there is no extra add-on, no per-call fee, and no Stripe-required gate. If you already have appointment booking switched on, virtual is just a toggle on your services. If you don't, the same Pro plan unlocks both.
Google Meet itself is free for everyone — your customers don't need a Google account to join. The Meet link is generated through your connected Google Calendar (any free Gmail works).
What's NOT in v1
Honest about the edges, so nobody is surprised:
- No automatic no-show detection. If a customer doesn't show up for the Meet call, the booking won't auto-flag itself. You mark it as no-show in the dashboard. (Coming, but not in v1.)
- No call recording. Use Google Meet's built-in recording if you need it (Workspace plan), or a separate tool. Botline doesn't touch the call audio/video.
- Stripe is NOT required. Manual payment (cash, JazzCash, Easypaisa, bank transfer with proof in WhatsApp) is fully supported and is the default flow for most pilot tenants. Stripe is there if you want card payments — wire it up the same way as in-person deposits.
- No in-Meet rescheduling. If the customer needs to move the slot, they text RESCHEDULE on WhatsApp like any other booking — the AI handles it and a fresh Meet link goes out.
- One Meet link per booking, kept stable. The link doesn't rotate if the booking is rescheduled within the same calendar event — the customer can paste it into their own calendar and trust it.
Everything else — the WhatsApp confirmation, the email calendar invite, the three reminders, the Up Next panel, the AI mentioning both options, the cancellation lifecycle — is shipping today on Pro. Open Dashboard → Bookings → Services and flip a service to "Either" to try it.