Connect Microsoft Dynamics 365 to the SendiMessage API
Microsoft Dynamics 365 spans sales, customer service, and field service on the Dataverse platform, with Power Automate as the standard automation layer across the Microsoft stack.
SendiMessage connects through a Power Automate cloud flow: a Dataverse trigger (row added or modified on Lead, Case, or Booking) feeds an HTTP action that posts to the SendiMessage API, with the key held in an environment variable or Azure Key Vault reference. Delivery and reply webhooks land on an HTTP-triggered flow or an Azure Function, which writes Activities back to the Dataverse record.
Connect SendiMessage to Microsoft Dynamics 365 using the SendiMessage REST API, CRM workflow automation, server-side functions, or webhooks. There is no native Microsoft Dynamics 365 marketplace application today — the methods below are what actually works, labeled honestly.
What this integration enables
Implementation options
Architecture
- Microsoft Dynamics 365 eventA record changes, a stage moves, or a workflow fires
- Workflow or backendMicrosoft Dynamics 365 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
- Microsoft Dynamics 365 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
Correlate delivery events with the message_handle you stored at send time (or with ids embedded in your per-message status_callback URL); replies carry the contact's number and conversation, which your middleware maps to the right Microsoft Dynamics 365 record. Automatic Microsoft Dynamics 365 synchronization is not built in — your handler (or automation platform) performs the write-back.
// "outbound" event → your microsoft_dynamics_365 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 microsoft_dynamics_365.
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.
- A native Microsoft Dynamics 365 marketplace application is not available today. The integration methods on this page are API-based.
- Send messages only to recipients who expect them. Transactional and operational messaging is the primary use case — unsolicited bulk marketing is not.
Security considerations
- Store the SendiMessage API key in Microsoft Dynamics 365's credential store, your middleware's secret manager, or your automation platform's connection vault — never in front-end scripts or record fields.
- Verify the signature header on every webhook before writing anything back to the CRM.
- Send only the fields the message needs (phone, first name); keep full CRM records out of message payloads and logs.
Frequently asked questions
Does SendiMessage have a native Microsoft Dynamics 365 application?
Can Microsoft Dynamics 365 workflows send SMS through SendiMessage?
Can Microsoft Dynamics 365 trigger iMessage?
Can customer replies return to the CRM?
Do I need middleware?
Where should API credentials be stored?
How is pricing calculated?
Do I need a premium Power Automate license?
Related integrations
Ready to connect Microsoft Dynamics 365?
Request a messaging line and a SendiMessage integration specialist will review your Microsoft Dynamics 365 workflow and guide the setup.