We use optional, privacy-safe analytics to understand which pages help visitors. Nothing optional runs until you choose. Privacy policy

Skip to content
Appointments

Reminders that get answered, not ignored

No-shows are a timing and channel problem: reminders that arrive where people look, early enough to act, with a one-word way to confirm. The webhook return path turns "YES" into a confirmed booking without a human touching it.

Try the interactive demo

The communication problems

  • No-show rates that phone-call reminders can't fix at scale
  • Email reminders opened after the slot has passed
  • Reschedule requests reaching the desk too late to refill the slot
  • No proof the reminder arrived when disputes happen

Recommended workflows

24-hour reminder
A scheduled job selects tomorrow's bookings and reminds each once.
Reply-to-confirm
"YES" flips the booking to confirmed through your webhook handler.
Reschedule capture
Anything that isn't a confirmation becomes a staff task instantly.
Same-day nudge
Optional short reminder hours before, for high no-show contexts.
Your appointment is tomorrow at 10:00 AM. Reply YES to confirm.See you today at 10:00 AM.Need to reschedule? Reply and we'll sort it out.

Architecture

How it fits together: Scheduling system, then Reminder job, then SendiMessage API, then Customer, then Booking update.
  1. Scheduling systemBookings with dates, phones, status
  2. Reminder jobCron or workflow selects due bookings
  3. SendiMessage APIPOST /send-message with the booking id
  4. CustomerReminder + one-word confirmation
  5. Booking updateWebhook flips status or creates a task

The API request

send message
curl -sS https://api.sendimessage.com/v1/send-message \
-H "X-API-Key: $SENDIMESSAGE_KEY" \
-H "X-API-Secret: $SENDIMESSAGE_SECRET" \
-H "Content-Type: application/json" \
-d '{
"number": "+15555550123",
"content": "Hi Anna, your appointment is tomorrow at 10:00 AM. Reply YES to confirm.",
"status_callback": "https://your-endpoint.example.com/status?booking_id=apt_2210&workflow=reminder_24h"
}'
# → {
# "status": "QUEUED",
# "message_handle": "4e828182-a640-483f-bfe9-17ffcaa51d48",
# "to": "+14155550123",
# "service": null,
# "is_outbound": true,
# "error_message": null,
# "date_sent": null
# }

Channel behavior and replies

"Auto" maximizes deliverability — the reminder reads the same on either channel. iMessage delivery is available on supported messaging lines and destinations. Recipients without iMessage receive SMS when fallback is configured — never assume universal iMessage availability.

The reply webhook carries the booking id: YES confirms automatically; anything else pages a human with the message text attached.

Line setup, availability, and pricing

One line per clinic, studio, or location — customers learn to recognize the number.

Line availability varies by country and channel. Run a preliminary availability check, and the team confirms final availability during onboarding review. Check preliminary availability →

Pricing is per active line, billed monthly, with usage per your agreement — confirmed for your countries and volume during managed onboarding. How pricing works →

Frequently asked questions

Does this work for healthcare scheduling?
The messaging workflow works for healthcare scheduling scenarios; SendiMessage does not claim regulatory certifications — bring your compliance requirements to a security review and we'll walk what applies honestly.
Which scheduling systems integrate?
Anything that can run a scheduled job or fire a webhook: custom backends, CRMs with activities, or booking platforms with automation. The CRM guides show vendor-specific triggers.

Ready to build this?

Request the setup, or book an integration review and the team will map it to your systems.

Book an Integration Review