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.
What this integration enables
Architecture
- SchedulerCron, CRM workflow, or booking-platform webhook
- Your handlerSelects due bookings and builds messages
- SendiMessage APIPOST /send-message with the booking id in the status_callback URL
- CustomerReminder arrives; replies invited
- Webhook eventsConfirmations and reschedules update the booking
Example request
{"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.
// "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?
Can this integrate with my CRM's meetings?
Related integrations
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.