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

Skip to content
API Integration GuideWorkflow + HTTP Request

Integrate appointment reminders with your scheduling system

Reminder messaging lives or dies on integration details: when the trigger fires relative to the appointment, what happens when the customer replies "need to reschedule", and whether you can prove the reminder arrived.

Any scheduling source works — a CRM's activity records, a booking platform's webhooks, or a cron job over your own database. The trigger posts to the SendiMessage API with the booking id embedded in the status_callback URL; confirmation replies return on your webhook and update the booking; delivery events give you an audit trail for no-show disputes.

Request This SetupBook an Integration Review

What this integration enables

24-hour reminder
A scheduled job selects tomorrow's bookings and sends one clear reminder each.
Reply-to-confirm
"Reply YES to confirm" — the reply webhook flips the booking to confirmed.
Reschedule capture
Non-confirmation replies route to staff or a rescheduling link.
Same-day nudge
A shorter message a few hours out for high-no-show contexts.
Delivery audit
Delivery events prove the reminder arrived, per booking.

Architecture

How it fits together: Scheduler, then Your handler, then SendiMessage API, then Customer, then Webhook events.
  1. SchedulerCron, CRM workflow, or booking-platform webhook
  2. Your handlerSelects due bookings and builds messages
  3. SendiMessage APIPOST /send-message with the booking id in the status_callback URL
  4. CustomerReminder arrives; replies invited
  5. Webhook eventsConfirmations and reschedules update the booking

Example request

Reminder payload
{
"number": "{{contact.phone}}",
"content": "Hi {{contact.first_name}}, your appointment is tomorrow at 10:00 AM."
}

Template variables like {{contact.phone}} are illustrative — replace them with your platform's own merge syntax or values resolved by your middleware. Correlate delivery events by storing the returned message_handle on your own record.

Delivery events and incoming replies

Reply webhooks make reminders interactive: YES confirms, anything else becomes a staff task — your handler applies the rule.

webhook event
// "outbound" event → your your_scheduler endpoint
// Verify the SendiMessage-Signature header (t={timestamp},v1=HMAC-SHA256 of
// "{timestamp}.{raw body}", keyed with your webhook secret), then use
// GET /v2/messages/{message_handle} for authoritative state and match it to
// your booking_id in your_scheduler.

Limitations and honest notes

  • iMessage delivery is available on supported messaging lines and destinations. Recipients without iMessage receive SMS when fallback is configured — never assume universal iMessage availability.
  • Messages are accepted asynchronously — the API returns status QUEUED and final status arrives via webhook or the message endpoints.
  • No official SDK for this ecosystem yet — the example uses plain HTTP against the REST API. Official SDKs are published for JavaScript/TypeScript (npm: sendimessage), Python (PyPI: sendimessage), PHP (Composer: sendimessage/sdk), and Go (github.com/sendimessage/sendimessage-go). Every SDK is dependency-free and covers the full public API surface.
  • Send messages only to recipients who expect them. Transactional and operational messaging is the primary use case — unsolicited bulk marketing is not.

Frequently asked questions

How far ahead should reminders send?
A 24-hour reminder plus an optional same-day nudge is the common pattern. Your scheduler controls timing entirely — SendiMessage sends when called.
Can this integrate with my CRM's meetings?
Yes — CRM workflow automation on activity/meeting records posts to the API like any other trigger. See the CRM guides for each vendor's mechanism.

Ready to connect Appointment Reminder Messaging?

Request a messaging line and a SendiMessage integration specialist will review your Appointment Reminder Messaging workflow and guide the setup.