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 GuideWebhook Synchronization

Add two-way customer messaging to your CRM

One-way notifications tell customers things; two-way messaging lets them answer — confirm the appointment, ask about the delivery, continue the sales conversation — without your team juggling a separate inbox.

The loop is: CRM event → outbound message → customer reply → incoming webhook → CRM update. SendiMessage handles the middle (managed lines, channel routing, reply capture); your CRM automation or middleware handles the two ends it already owns.

Because replies arrive as structured webhook events carrying the sender's number and a conversation_handle, routing them is deterministic: match the number against your CRM records to find the contact and its owner, and your handler knows exactly which record and which rep the reply belongs to. No ready-made connector is required — or claimed — for any specific CRM; the vendor guides show each system's mechanism.

Request This SetupBook an Integration Review

What this integration enables

Sales follow-up
A rep's outreach lands as a message; the reply lands as a CRM task for that rep.
Support conversations
Ticket updates invite replies that append to the ticket via your handler.
Appointment confirmation
"Reply YES to confirm" updates the booking record automatically.
Delivery coordination
Customers reply with gate codes or timing constraints; dispatch sees it in the record.
Customer service triage
Keyword rules in your handler route urgent replies to humans immediately.

Architecture

How it fits together: CRM event, then Outbound message, then Customer reply, then Incoming webhook, then CRM update.
  1. CRM eventDeal stage, booking, or ticket change
  2. Outbound messagePOST /send-message — store the returned message_handle on the record
  3. Customer replySMS or iMessage where supported
  4. Incoming webhookreceive event with the sender's number and conversation_handle
  5. CRM updateYour handler writes the reply as activity and notifies the owner

Example request

Reply webhook
{
"event": "receive",
"message_handle": "96699B14-AFDB-4B33-AA66-C4B093533DA3",
"from": "+15555550123",
"to": "+15555550100",
"content": "YES, confirmed — see you tomorrow.",
"media_url": null,
"service": "SMS",
"is_outbound": false,
"status": "RECEIVED",
"conversation_handle": "conv_01HZY5C7N2XQ8V4KE9RWB0V1DM",
"date_sent": "2026-08-11T09:00:00Z"
}

Match the from number (or conversation_handle) to your CRM records to route the reply deterministically.

Delivery events and incoming replies

Incoming replies and delivery confirmations use the same signed webhook channel — one endpoint, one signature check, and your handler branches on the event type.

webhook event
// "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.
  • Writing replies into the CRM is performed by your handler or automation platform — automatic synchronization is not claimed for any CRM.
  • Send messages only to recipients who expect them. Transactional and operational messaging is the primary use case — unsolicited bulk marketing is not.

Security considerations

  • Verify webhook signatures before creating CRM records from inbound content.
  • Treat reply text as untrusted input — sanitize before rendering it inside CRM fields or notifications.

Frequently asked questions

Does a ready-made connector exist for my CRM?
No ready-made connector is claimed for any CRM. What exists is a reliable pattern: handle-correlated sends plus reply webhooks, wired to your CRM by its own automation, an automation platform, or a small middleware service — each vendor guide shows the concrete mechanism.
How fast do replies arrive?
Replies are delivered to your webhook endpoint as they're received, with automatic retries until your endpoint acknowledges. Your handler's write-back speed determines when the CRM shows them.
What if a customer replies STOP?
Honor opt-outs immediately: your handler should mark the contact's consent state in the CRM and stop workflow sends. Consent handling is reviewed during managed onboarding.

Ready to connect Two-Way CRM Messaging?

Request a messaging line and a SendiMessage integration specialist will review your Two-Way CRM Messaging workflow and guide the setup.