Send SMS from your CRM through one managed API
CRM SMS integration means your CRM's own events — a lead created, a deal advanced, a case updated — trigger text messages to the right contact, and everything that happens next (delivered, failed, replied) flows back into the CRM as activity.
SendiMessage provides the messaging half as managed infrastructure: dedicated messaging lines provisioned for you, one REST API to send, delivery tracking, incoming replies, and signed webhooks. Your CRM provides the trigger — via its workflow automation, a middleware service, or an automation platform like Zapier or Make.
Because the API is plain JSON over HTTPS, every CRM that can fire a webhook or make an HTTP request can send SMS this way — the vendor pages linked below show the exact mechanism for Salesforce, HubSpot, Zoho, Pipedrive, Dynamics 365, and more.
What this integration enables
Architecture
- CRM eventA record changes, a stage moves, or a workflow fires
- Workflow or backendCRM automation or your middleware prepares the request
- SendiMessage APIPOST /send-message — the message is validated and queued
- Managed messaging lineYour dedicated line sends the message
- SMS or supported iMessageChannel routing picks iMessage where supported, SMS otherwise
- CustomerThe message arrives; the customer can reply
- Delivery or reply eventSendiMessage records what actually happened
- Signed webhookYour endpoint receives outbound or receive
- CRM timeline updateYour handler writes the event back as activity
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 is what turns one-way notifications into CRM-visible conversations: delivery events confirm the send on the timeline, and replies become tasks or activities through your handler.
// "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.
- 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.
Security considerations
- API keys belong in the CRM's credential store, middleware secrets, or automation-platform vaults — never in client-side CRM scripts.
- Verify webhook signatures before writing back to CRM records.
Frequently asked questions
Which CRMs work with SendiMessage?
Do I need to write code?
How do replies reach the right salesperson?
How is this priced?
Related integrations
Ready to connect CRM SMS Integration?
Request a messaging line and a SendiMessage integration specialist will review your CRM SMS Integration workflow and guide the setup.