Skip to content
OmniChannels.ai

CRM

Microsoft Dynamics 365 + OmniChannels.ai: message customers when records change

Connect via API & webhooksConnect via MCPUpdated

In short

Microsoft Dynamics 365 can send WhatsApp and SMS through OmniChannels.ai with a Power Automate flow: a Dataverse trigger fires when a row changes and the HTTP action calls our REST API with your Bearer token. Delivery statuses come back through our webhook to a flow that updates Dataverse. For AI agents, Copilot Studio can connect to our MCP server. There is no AppSource app.

What you can do

  • Follow up new leads

    When a lead row is created, a flow sends an SMS or WhatsApp template to the lead's mobile phone, if they opted in.

  • Remind customers about appointments

    A scheduled flow finds appointments or service bookings for tomorrow and sends each customer a reminder.

  • Message on opportunity changes

    When an opportunity's sales stage or status changes, a flow messages the primary contact with the next step.

  • Send renewal reminders

    A recurring flow lists contracts or entitlements near their end date and sends an approved WhatsApp template.

  • Log statuses and replies

    A flow with an HTTP request trigger receives our webhook events and writes the status or reply to a Dataverse row or timeline note.

  • Build an agent in Copilot Studio

    A Copilot Studio agent with our MCP server added as a tool, plus Dataverse knowledge or connectors for your data, can find customers and send messages.

    Try asking

    “Send a WhatsApp renewal reminder to customers whose contracts end next month.”

How it connects

Connect via API & webhooksConnect via MCP

Dynamics 365 apps store their data in Dataverse, so the usual route is Power Automate. The Dataverse trigger "When a row is added, modified or deleted" starts a flow, and the HTTP action calls our API with an Authorization: Bearer header. JSON requests such as POST /sms/sendSms are straightforward; multipart/form-data sends need a multipart body in the HTTP action or an Azure Function. The HTTP action and HTTP request trigger are premium connectors, so check your Power Automate licence.

For the way back, a flow with the "When an HTTP request is received" trigger gives you a URL; our team sets it as the one webhook URL on your account, and the flow updates the matching row. For AI agents, Copilot Studio can add a remote MCP server as a tool. Our MCP server sends messages and reads delivery reports only; the agent needs Dataverse access through its own knowledge sources, connectors or MCP server.

  • Trigger: Dataverse "When a row is added, modified or deleted", or a scheduled flow
  • Send: Power Automate HTTP action (premium) with the Bearer token kept in a secure input or Key Vault
  • Receive: "When an HTTP request is received" flow set as your account's webhook
  • AI agents: Copilot Studio with our MCP server at https://mcp.broadnet.me/mcp
  • Approved WhatsApp templates for business-initiated messages outside the 24-hour window

Set it up

  1. 1

    Request API access

    Request test access and receive an API token. Test sends go only to your own verified numbers.

    Guide: Authentication
  2. 2

    Create the flow

    In Power Automate, start a flow with the Dataverse trigger for the table you need, such as Leads or Opportunities, and add filter conditions.

  3. 3

    Call the API

    Add an HTTP action for POST /sms/sendSms or the channel endpoint, with the Authorization header and the phone number mapped from the row.

    Guide: SMS API
  4. 4

    Store the message ID

    Write the ID from the response to a column on the row so statuses can be matched later.

  5. 5

    Receive statuses

    Build a second flow with the HTTP request trigger, ask our team to set its URL as your webhook, and update the matching row.

    Guide: Webhooks and delivery statuses
  6. 6

    Add an agent if you want one

    In Copilot Studio, add our MCP server as a tool with your token, and keep the agent's send actions limited and reviewed.

    Guide: MCP server for AI agents

Vendor documentation

Microsoft Dynamics 365 is a trademark of its owner. OmniChannels.ai is not affiliated with or endorsed by Microsoft Dynamics 365; this page describes a connection built with Microsoft Dynamics 365's own MCP, HTTP or webhook features.

Example workflow

How a typical request moves from Microsoft Dynamics 365 to your customer and back.

  1. 01

    Dynamics 365 / Dataverse

    Lead, opportunity or contract row changes

  2. 02

    Power Automate flow

    Dataverse trigger and HTTP action

  3. 03

    OmniChannels.ai API

    Sends the message and returns a message ID

  4. 04

    Customer's phone

    WhatsApp template or SMS delivered

  5. 05

    Status flow

    HTTP request trigger updates the Dataverse row

1. Dynamics 365 / Dataverse: Lead, opportunity or contract row changes 2. Power Automate flow: Dataverse trigger and HTTP action 3. OmniChannels.ai API: Sends the message and returns a message ID 4. Customer's phone: WhatsApp template or SMS delivered 5. Status flow: HTTP request trigger updates the Dataverse row

Questions

Is there an OmniChannels.ai app on Microsoft AppSource?

No. Dynamics 365 connects through Power Automate's HTTP action and HTTP request trigger, calling our public REST API, and Copilot Studio connects through its support for MCP servers.

Do I need a premium Power Automate licence?

The HTTP action and the HTTP request trigger are premium connectors. Check Microsoft's current licensing to see whether your Dynamics 365 or Power Automate licence covers them.

Can a Copilot Studio agent read my Dynamics 365 data through your MCP server?

No. Our MCP server sends messages, lists WhatsApp templates and reads delivery reports. The agent reads Dynamics 365 data through Dataverse knowledge, connectors or Microsoft's own MCP server.

Can I send in Arabic?

Yes. Messages are Unicode, and you can submit Arabic WhatsApp templates for approval and fill their variables from Dataverse columns.

Get API and MCP access

Tell us your channels, countries and use case. An engineer issues test credentials and verifies your test numbers.