WhatsApp — Lifecycle Automation, Real Media, Real Ticks
WhatsApp now runs the appointment lifecycle for you — confirmations, reminders, reschedule requests, completed-visit reviews — and patients can pick a new slot themselves over the chat, including after a no-show. We rewrote the module because the previous “send a template manually” model required a receptionist to remember to send the right template at the right time, which they rarely had time to do.What’s new
- Lifecycle automation. WhatsApp messages fire automatically on Confirm, Cancel, No-Show, Reschedule, a new booking request, a new manually-scheduled appointment, and a completed visit (with an optional Google Review survey one day later). OdontoX fills patient name, date, doctor and clinic from the appointment — no manual copy-paste.
- Templates auto-bind to the right trigger event. The first time a template fires on an event, it binds itself to that event. No more “No WhatsApp automation bound for this event” gatekeepers.
- Inbound media renders properly. Photos as full-bleed thumbnails you can click to expand. GIFs and short videos with native controls. Voice notes as an in-bubble pill player. Stickers float bubble-less the way they do in WhatsApp itself. PDFs and documents show as a file chip with the original filename. The old
[Image]and[sticker message]placeholders are gone. - Real ✓ / ✓✓ / blue ticks. Outbound messages show the familiar sent / delivered / read ticks. When a staff member opens a thread, the inbound messages are reported back to Meta as “read” so the patient sees double-blue on their phone.
- Markdown rendering.
*bold*,_italic_,~strike~and inline code render in the chat thread. URLs autolink. XSS sanitisation runs on every render. - Reschedule via WhatsApp, even after a no-show. Patients who cancelled or no-showed can reschedule by replying “reschedule”. The bot picks up their most recent cancelled or no-show appointment as a fallback if no upcoming visit exists. Picking a new slot revives the appointment to Scheduled automatically.
- Available slots respect the doctor’s schedule. The slot list in the WhatsApp reschedule flow always reflects the clinic’s operating hours and the assigned doctor’s working schedule — no generic 9 AM / 9:30 AM defaults.
- Daily Meta reconcile. Once a day OdontoX checks every active automation against Meta. Automations whose template has been deleted or renamed are auto-disabled. Language codes that have changed sync automatically.
- Per-tab toggles. Admins can independently enable or disable the Inbox, Templates, Automations, Quick replies, Analytics and Events tabs inside the WhatsApp module — useful when you want specific roles to see only the parts they need.
- No more duplicate sends. The old direct-send code paths used to run alongside the lifecycle dispatcher, so admins occasionally received the same template twice. That has been removed.
How to use it
- Open Settings → WhatsApp.
- On the Templates tab, make sure each operational template (confirmation, reminder, cancellation, reschedule, completed-visit) has been approved by Meta.
- On the Automations tab, check that the right template is bound to the right trigger. If you have just shipped a new template, send a test message — the binding happens automatically on the first fire.
- Use the Per-tab toggles at the bottom of the page to hide tabs that specific roles do not need. Receptionists usually want Inbox and Quick replies; admins keep everything.
- Watch the inbox. Inbound photos, voice notes, GIFs, stickers and documents all render in-place. Reply directly — your message is delivered with real ticks and stored against the appointment.
What changed since the last revision
- Lifecycle automation replaces manual template sends for the six core appointment events.
- Patients can reschedule themselves over WhatsApp, even after a cancellation or no-show.
- Inbound media is now real media, not placeholder text.
- Delivery and read receipts mirror what the patient sees.
- The daily reconcile against Meta keeps your automations healthy without manual intervention.
- Per-tab toggles let admins hide parts of the module from staff who do not need them.

