Connect your CRM to supported iMessage messaging
CRM iMessage integration means CRM-triggered messages can arrive as iMessage — blue-bubble, high-engagement, reply-friendly — for recipients where that's possible, without your team managing any Apple-side infrastructure.
Use SendiMessage to connect CRM events to managed messaging lines, deliver iMessage where supported, fall back to SMS when configured, receive customer replies, and return events to your CRM through webhooks.
The honest mechanics matter: iMessage delivery is available on supported messaging lines and destinations. Recipients without iMessage receive SMS when fallback is configured — never assume universal iMessage availability. Routing is automatic — no channel parameter to set: SendiMessage delivers over iMessage where the destination supports it, and the webhook's service field reports what was actually used, so your CRM timeline always reflects reality.
What this integration enables
Architecture
- CRM eventA record changes or a workflow fires
- CRM workflow or backendPosts to POST /send-message
- SendiMessage routingSelects iMessage where supported for the destination
- iMessage deliveryOn supported lines and destinations
- SMS fallbackFor recipients where iMessage isn't available, when configured
- Customer replyArrives on either channel
- Signed webhookDelivery events post back; history rows carry the channel actually used
- CRM timeline updateYour handler records the event with the real channel
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
The webhook's service field tells your CRM what actually happened — "imessage" or "sms" — so timelines, reporting, and follow-up logic work from facts, not assumptions.
// "outbound" event → your your_crm 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 contact_id in your_crm.
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.
- Not every contact supports iMessage — plan copy and workflows so SMS delivery reads equally well.
- iMessage availability depends on the line configuration and destination; the team confirms coverage for your markets during onboarding.
- Send messages only to recipients who expect them. Transactional and operational messaging is the primary use case — unsolicited bulk marketing is not.
- Official SDKs are published for JavaScript/TypeScript, Python, PHP, and Go; any other stack integrates via the plain REST API.
Security considerations
- Same rules as every CRM integration: server-side keys, verified webhook signatures, minimal contact data in payloads.
Frequently asked questions
Does every contact get iMessage?
Can HubSpot or Salesforce trigger iMessage?
How do I know which channel was used?
Is Apple involved in this integration?
Related integrations
Ready to connect CRM iMessage Integration?
Request a messaging line and a SendiMessage integration specialist will review your CRM iMessage Integration workflow and guide the setup.