By industry

WhatsApp API for clinics: appointment confirmations without a receptionist on the phone

For teams building medical, dental or clinic management software, the WhatsApp API is what lets the schedule confirm appointments, remind patients and receive their answers on its own, from each clinic's number. The extra care is in the content: health data is not a marketing message.

By D-API engineering team5 min read

The pain the clinic feels is the empty chair

For a clinic owner, no-shows are the problem that hits revenue. The slot was reserved, the provider sat idle and nobody called ahead. Today the fix is the front desk spending the afternoon calling or messaging tomorrow's patients by hand, and that only works while the front desk has time.

Clinic software that solves this automatically sells itself in the demo. And anyone who already has SMS or email reminders knows how few people reply on those channels: patients read WhatsApp, and that's where they say "I can't make it".

An appointment's timeline on WhatsApp

The gain doesn't come from one message, but from a well-timed sequence. A design that works for most specialties:

  1. At booking: a short message with date, time, provider and address. It works as a confirmation and cuts down on "what time was it again?" calls.
  2. The day before: a confirmation request with the options confirm, reschedule and cancel. This is the send that matters most, because there is still time to fill the slot.
  3. No reply by late afternoon: the schedule marks the slot as "unconfirmed" and the front desk calls only those patients, not everyone.
  4. Two hours before: the clinic location and practical instructions, such as fasting or documents to bring.
  5. After the visit: administrative instructions, such as a scheduled follow-up or a satisfaction survey. No diagnoses.

Each clinic configures times and wording in your software; the sequence itself is a product rule. The same pattern applied to other kinds of scheduling appears in appointment reminders.

Example: the day-before confirmation request

Patients respond better when they don't have to type. A list message solves that, and the rowId of each option carries the appointment id, so the answer comes back already tied to the right slot:

import { DApi } from 'd-api-sdk'

const dapi = new DApi({ apiKey: process.env.DAPI_API_KEY })

await dapi.interactive.sendList({
  sessionId: 'clinic-bright-smile-downtown',
  to: '14155550123',
  title: 'Appointment tomorrow, 2:30 PM',
  description: 'Hi Maria, your appointment with Dr. Paula is scheduled for tomorrow at 2:30 PM. Can you confirm?',
  buttonText: 'Reply',
  footerText: 'Bright Smile Clinic',
  sections: [
    {
      title: 'Your appointment',
      rows: [
        { rowId: 'appt-88213:confirm', title: 'Confirm attendance' },
        { rowId: 'appt-88213:reschedule', title: 'I need to reschedule' },
        { rowId: 'appt-88213:cancel', title: 'Cancel appointment' },
      ],
    },
  ],
})

The patient's choice reaches the software's webhook as messages.received with type set to list_response. The system updates the schedule and, for a reschedule, replies with the next open slots. Other interaction formats are in WhatsApp buttons and lists.

Health data calls for a higher level of care

Under most privacy laws, health information is sensitive personal data. WhatsApp is a convenience channel, and the software needs to be designed to expose as little as possible. Some practical rules to bring to your product team (and to validate with the clinics' legal or privacy advisors):

  • Minimal message: date, time, provider and address are enough. Avoid naming the procedure in specialties a patient may not want to disclose, such as psychiatry or sexual health.
  • Results and reports outside the chat: notify that they are ready and deliver them through an authenticated portal.
  • Recorded consent: store in the administrative record when and how the patient agreed to receive messages, and allow opting out per patient.
  • Right number: a parent or guardian's phone for minors, not the patient's own.
  • Retention on your side: the content of replies that arrives via webhook lives in your database. Apply the same retention and access policy you use for patient records.

No API setting makes sending "compliant" on its own. What the infrastructure offers is isolation: on D-API each connection runs in its own environment, with separate credentials and webhook, so one clinic's events never pass through another clinic's connection.

How to implement it in your clinic management software

  1. Add "Connect WhatsApp" to the location settings, creating the connection via API.
  2. Add a consent field and a contact phone field to the patient record.
  3. Build the day-before job, which sends confirmations with a gap between them.
  4. Handle list_response in the webhook and update the appointment status.
  5. Create an "unconfirmed" view so the front desk acts only where needed.
  6. Monitor connection.status per clinic and alert when a number drops.

The last step is the one that generates the most support tickets if it's left out: the clinic only notices the number disconnected when patients start missing appointments again. D-API's WhatsApp API tries to recover the connection on its own, but your software needs to surface the problem when it requires action from the clinic.

Commercial model for clinic software

Each clinic is one connection, and D-API charges per connection, not per message. If you charge a monthly fee per clinic, that becomes a predictable fixed cost per customer, which gets lower as your base grows. The details of the model are in WhatsApp API for SaaS. If a clinic network requires the official API, the same integration works: see official WhatsApp API. The 14-day free trial available through sales includes hands-on implementation support.

Frequently asked questions

Do WhatsApp appointment confirmations reduce no-shows?
They help, because the patient replies in an app they already use and the clinic learns about a cancellation in time to fill the slot. The effect depends on reminder timing and on how easy it is to reschedule, not just on sending.
Can I send test results over WhatsApp?
Technically the API sends any document, but test results are health data, a sensitive category under most privacy laws. The safer path is to notify the patient that the result is ready and deliver the file through a portal with login.
Does each clinic use its own number or the software's number?
Its own number. The patient recognizes the clinic and replies to someone they know. In the software, each clinic or location becomes a separate connection, created via API when the clinic turns on WhatsApp.
Can the patient confirm with a tap instead of typing?
Yes, with a list message: the patient opens the menu and picks confirm, reschedule or cancel. The answer reaches the software as an event of type list_response, with no free text to interpret.
Does a single-front-desk practice need an API?
The practice doesn't, but the software it uses does. The API is what lets the scheduling system send confirmations on its own, without the front desk copying appointment after appointment into a phone.

Put WhatsApp in your product without becoming an infra team

14 days free through our sales team, with implementation support in a WhatsApp group.