How to add WhatsApp to Dynamics 365 Finance and Supply Chain
Short answer
Dynamics 365 Finance and Supply Chain has no native WhatsApp channel. The usual pattern is a business event (or a polling job over OData) that calls a small middleware service, which sends a pre-approved template through the WhatsApp Business Platform and writes replies back through a data entity or custom service.
Teams running Dynamics 365 finance and operations apps tend to have two groups the system reaches badly: suppliers and customers who live on phones, and plant or warehouse staff who never open a browser client. Purchase order confirmations arrive late, shipment questions go to a sales coordinator's inbox, and approvals wait for someone to log in. WhatsApp is the channel those people already answer within minutes.
The platform gives you good building blocks for this but no finished product. Business events publish what happened, data entities and custom services let you read and write, and Entra ID app registrations handle machine identity. What is missing is the messaging layer: template management, opt-in records, delivery status and mapping a free-text reply to a record in the right legal entity.
This page walks through that layer for Finance and Supply Chain specifically, including the points where Microsoft's own tooling (Power Automate, Dataverse) is a better fit than custom code.
What teams use it for
Purchase order confirmation from suppliers
When a PO is confirmed internally, send the vendor a template with the PO number, lines and requested delivery date, and offer quick-reply buttons for Confirm or Propose new date. The reply updates the confirmed delivery date via a custom service or the purchase order line entity.
Shipment and ASN alerts to customers
Trigger on a packing slip posting or a shipment confirmation in warehouse management and notify the customer contact with carrier and tracking details, instead of a coordinator copying values into emails.
Expense and requisition approvals
Notify approvers of a pending purchase requisition or workflow work item with a short summary. The approver replies Approve or Reject, and middleware completes the workflow task only after verifying the sender maps to the approving user.
Overdue invoice reminders
A scheduled read of open customer transactions finds items past due and sends a template reminder per customer contact, logging delivery and any reply against the customer account for the collections team.
Production and quality escalations
Business events on production order status or a quality order failure ping the shift supervisor group so a stoppage is seen in seconds, not at the next screen refresh.
Supplier onboarding and document chase
Message vendors missing a W-8/W-9, certificate or bank detail, with a link to a secure upload page that feeds the vendor change proposal workflow.
Microsoft Dynamics 365 Finance and Supply Chain integration surface
- Business events: Finance and Supply Chain can publish business events (for example purchase order confirmed, vendor invoice posted, sales order shipped, plus custom ones built by extending BusinessEventsBase) to Azure Service Bus, Event Grid, Event Hubs, an HTTPS endpoint or Power Automate. Available event catalogue depends on version.
- OData v4 data entities under the /data endpoint (for example PurchaseOrderHeadersV2, PurchaseOrderLinesV2, CustomersV3, VendorsV2). Only entities flagged public are exposed, and field names vary slightly by release.
- Custom services (X++ service classes exposed under /api/services) for actions that are not simple CRUD, such as confirming a PO line with a new date and a reason code.
- Authentication is OAuth 2.0 against Microsoft Entra ID with an app registration whitelisted in the environment (Microsoft Entra ID applications form) and mapped to a dedicated service user with a narrow security role.
- Throttling: the service applies priority-based throttling to OData and custom service calls, so a bulk reminder run should be batched and tolerate HTTP 429 with retry-after.
- On-premises (Local Business Data) deployments cannot use the cloud-only business event destinations in the same way and typically rely on AD FS authentication and your own HTTPS endpoint or polling.
How it works
- 1
Choose the WhatsApp access path
Use the WhatsApp Business Platform Cloud API directly or through a business solution provider. Verify the business in Meta Business Manager, register a number that is not used on a personal app, and decide which legal entities share which sender number.
- 2
Register the ERP side
Create an Entra ID app registration, whitelist it in the environment, and map it to a service user whose role only reads the entities and calls the services you need.
- 3
Emit events
Activate the relevant business events for the legal entity and point an endpoint at your middleware (or Azure Service Bus). For anything without an event, schedule a delta read using a modified-date filter on the entity.
- 4
Resolve the recipient
Middleware looks up the contact's mobile number from party contact information (electronic address records) and checks an opt-in table you maintain. No opt-in record means no message, and the exception is routed to a person.
- 5
Send templates
Use Meta-approved utility templates with variables for PO number, date and amount. Free-form text is only allowed inside the customer service window after the recipient replies.
- 6
Handle inbound webhooks
Receive delivery receipts and replies, verify the signature, find the originating record from a stored message-to-document mapping, and call the ERP service. Unrecognised replies go to a shared inbox.
- 7
Log and monitor
Store message ID, template, document reference and status so a buyer can see in the ERP (a simple custom table or a note on the document) what was sent and answered.
Example flows
Supplier confirms or reschedules a PO
Trigger: A purchase order is confirmed and the vendor has a WhatsApp opt-in.
- Business event posts to the middleware HTTPS endpoint with the PO number and legal entity.
- Middleware reads the PO header and lines through the OData entities and the vendor contact number.
- It sends a template with Confirm and Change date buttons.
- On Change date, a follow-up message asks for the new date and validates the format.
- A custom service updates the confirmed ship date and writes a change reason.
Result: The buyer sees an updated confirmed date with a message trail, without chasing by phone.
Approval by reply
Trigger: A workflow work item is assigned to a manager for a purchase requisition above a threshold.
- Polling or an event picks up the new work item.
- Middleware sends a summary with Approve and Reject buttons to the manager's registered number.
- The button payload carries a signed token tied to the work item.
- Middleware validates the token and sender, then completes the workflow task with the ERP service.
- A confirmation message is sent back.
Result: Requisitions clear the same day for approvers who travel, with the workflow history intact.
Keeping data on-prem
If the environment is Local Business Data or the data policy forbids sending order details through a hosted automation service, keep the middleware inside your network and make it the only component that talks to the WhatsApp Cloud API over outbound HTTPS. Send minimal template variables (a document reference and a date, not pricing or part drawings) and keep the full record in the ERP behind a login. If you want free-text replies interpreted, run the classification on a model hosted on your own GPUs so supplier messages never reach a third-party LLM. Inbound webhooks need a public endpoint, which is usually a hardened reverse proxy in a DMZ that forwards only signed Meta calls.
Security checklist
- Use a dedicated service user and Entra ID app with the smallest security role, never an administrator account.
- Verify the X-Hub-Signature-256 header on every webhook and reject unsigned calls.
- Bind a reply to a document with a signed, expiring token, and verify the sender number matches the registered contact before any write.
- Keep opt-in records with timestamp and source, and honour STOP replies immediately.
- Restrict message content so bank details, prices and personal data are not sent in templates unless the business has signed off.
Ways to get it done
Power Automate plus a WhatsApp connector from a BSP or marketplace
Effort: Days to a couple of weeks, plus connector licensing.
Low-volume notifications where the business events or Dataverse triggers are already in use and writes back are simple.
Build in-house middleware (Azure Functions or a container service)
Effort: Roughly 4 to 8 weeks for notifications and a few reply flows.
Teams with .NET and X++ skills who need two-way flows, multi-entity routing and audit.
Partner build with Netray
Effort: Scoped per flow after reviewing your entities, security roles and volumes.
When replies must be understood, approvals need guardrails, or the stack must stay on-prem.
Pitfalls
- !Sending free text outside the 24-hour window fails; every proactive message needs an approved template.
- !Vendor contact records often hold landlines or no mobile, so a data-cleanup pass on electronic addresses is the real first task.
- !Replying to the wrong legal entity is easy if the message-to-document mapping is not stored; always carry the company code.
- !Bulk reminder runs can hit OData throttling; batch and back off on 429.
- !Workflow approvals completed outside the client can bypass delegation rules unless you honour the assigned approver and delegation chain.
Frequently asked questions
Does Dynamics 365 Finance and Supply Chain have a built-in WhatsApp integration?
No. Microsoft ships email, Teams and Power Platform integration for these apps, but WhatsApp is added through the WhatsApp Business Platform plus middleware or a Power Automate connector. Check your release notes in case a connector has been added since this was written.
Can suppliers reply to change a delivery date?
Yes, with buttons or a short guided exchange. Middleware validates the reply and calls a custom service or the PO line entity. Keep a human review step for large date shifts or price-related replies.
Do I need Meta approval for each message?
You need Meta-approved templates for business-initiated messages, and a documented opt-in from each recipient. Replies within the customer service window can be free text.
Can it work with an on-premises deployment?
Yes, but the cloud-only business event destinations are limited, so you usually poll entities or use your own endpoint. The middleware can run in your network and only make outbound calls to Meta.
Where should message history live?
Keep full logs in your middleware store and write a short reference (message ID, status, document) onto the ERP record, so users see the trail without the ERP storing chat content.
More for Microsoft Dynamics 365 Finance and Supply Chain
Want WhatsApp working on your Microsoft Dynamics 365 Finance and Supply Chain?
A free 30 minute assessment: we map the integration path for your version and setup, and where it should run.
Get a free assessment