How to add WhatsApp to Microsoft Dynamics 365 Business Central
Short answer
Business Central has no built-in WhatsApp channel, so you connect the WhatsApp Business Platform (Cloud API or a BSP) to Business Central through its REST API v2.0 or custom API pages and webhook subscriptions. A small middleware service sends approved template messages and turns customer or supplier replies into reviewed Business Central transactions.
Most Business Central customers already live in Outlook and Teams, but their customers, distributors and suppliers often live in WhatsApp. Order status questions, delivery confirmations and supplier acknowledgements end up as personal chats on a salesperson's phone, disconnected from the sales order or purchase order they refer to.
The fix is not a chatbot bolted onto the ERP. It is a thin integration layer that sends template messages when a Business Central document changes state, and captures the reply against the right document. Because Business Central is extensible in AL and exposes standard and custom APIs, the data side is straightforward. The harder parts are WhatsApp opt-in rules, template approval and deciding what a reply is allowed to change.
This page assumes SaaS Business Central by default and notes where an on-premises installation changes the plumbing.
What teams use it for
Shipment notices to customers
When a Sales Shipment or Posted Sales Invoice is posted, send a template message with the shipment number, carrier and tracking reference pulled from the posted document and the shipping agent fields.
Order status on request
A customer messages 'where is SO-1043' and the service looks up the Sales Header by external document number or order number, returns status and promised dates, and never exposes pricing unless that customer contact is verified.
Supplier PO acknowledgement
Released Purchase Orders go to the vendor contact as a template with quick-reply buttons for Confirm or Request change. A confirmation updates a custom acknowledgement field, a change request opens a task for the buyer.
Overdue payment reminders
Driven by customer ledger entries past due date, with a per-customer opt-in flag and a cap on reminders so collections follow policy rather than blasting every open invoice.
Field service and delivery proof
Drivers or technicians reply with a photo of a signed delivery note, which the service attaches to the posted shipment as a document attachment for the office to review.
Microsoft Dynamics 365 Business Central integration surface
- Standard REST API v2.0 (salesOrders, salesShipments, purchaseOrders, customers, vendors, items) under the /api/v2.0/companies endpoint, secured by Microsoft Entra ID OAuth 2.0.
- Custom API pages written in AL (PageType API with APIPublisher, APIGroup, APIVersion) to expose exactly the fields a WhatsApp flow needs, for example a lightweight order-status entity.
- Webhook subscriptions on API and OData entities that notify your endpoint of changes. They need a validation handshake and must be renewed periodically, so build a renewal job.
- Business events and Power Automate triggers, useful when you prefer low-code orchestration, plus AL event subscribers and Job Queue Entries when you need logic inside the application.
- On-premises: web services must be enabled on the service tier, and authentication shifts toward Entra ID or service-tier credentials, so check version and hosting before choosing an approach.
How it works
- 1
Pick the WhatsApp channel
Use the WhatsApp Business Platform Cloud API directly or a Business Solution Provider. Register a business number, verify the business and plan for message templates, since business-initiated messages outside the customer service window must use approved templates.
- 2
Define the Business Central events
Choose a short list: shipment posted, PO released, invoice overdue. Subscribe via webhook on the relevant API entity or add AL event subscribers that write to a small outbound queue table.
- 3
Build the middleware
A small service (Azure Function, container or on-prem service) receives the change, fetches the full document through API v2.0, resolves the recipient contact and checks opt-in before sending.
- 4
Store consent and mapping
Keep phone number to customer or vendor contact mapping, opt-in timestamp and language in a custom table exposed through a custom API page, so consent lives next to the master data.
- 5
Handle inbound replies
Receive the WhatsApp webhook, match the sender to a known contact, classify the intent (status, confirm, change request, other) and either answer from read-only data or create a draft record.
- 6
Gate writes
Anything that changes data, such as a delivery date change, creates a task or a draft for a user to approve rather than patching the order directly.
- 7
Monitor and renew
Track delivery status callbacks, template quality ratings and webhook subscription expiry. Log every message against the Business Central document number.
Example flows
Shipment posted to customer
Trigger: A warehouse user posts a sales shipment.
- Webhook on salesShipments fires to the middleware.
- Service reads the shipment, lines and shipping agent tracking number via API v2.0.
- It checks the customer contact's WhatsApp opt-in and language.
- It sends the approved shipment template with order and tracking details.
- The delivery status callback is stored against the shipment number.
Result: The customer is notified within seconds and the sales team can see in Business Central that the notice went out.
Supplier confirms a purchase order
Trigger: A buyer releases a purchase order.
- Release triggers the outbound template with PO number and requested receipt date.
- The vendor taps Confirm or Request change.
- Confirm sets an acknowledgement field through a custom API page.
- Request change creates a task with the vendor's reply text for the buyer.
Result: Buyers stop chasing acknowledgements by phone and only handle exceptions.
Keeping data on-prem
WhatsApp itself is a cloud service, so a fully air-gapped setup cannot use it. For on-premises Business Central, run the middleware inside your network, expose only an outbound path to the WhatsApp Cloud API and a narrow inbound webhook through a reverse proxy, and keep ERP data on the service tier. Language understanding of free-text replies can run on a local open-weight model, so message content classification does not need to leave your environment. Send only the minimum fields needed in each template.
Security checklist
- Use a dedicated Entra ID app registration with least-privilege permission sets in Business Central, not a shared admin account.
- Verify WhatsApp webhook signatures and Business Central validation tokens before processing anything.
- Resolve every inbound sender to a known contact and never answer pricing or balances to unverified numbers.
- Keep opt-in records and honor opt-out keywords immediately, as WhatsApp policy and local law require.
- Log message, document number and user or service identity so an audit can reconstruct what was sent.
Ways to get it done
Marketplace or partner connector
Effort: Days to a couple of weeks including template approval
Standard notices and a single WhatsApp number, with limited custom logic. Check what the connector reads and writes in Business Central.
Power Automate plus a BSP connector
Effort: One to three weeks
Low-code teams with simple triggers. Watch licensing, throttling and flow ownership.
Custom middleware with Netray or in-house
Effort: Typically four to eight weeks for a first production flow
Two-way flows, replies that create drafts, on-prem hosting or local language models for classification.
Pitfalls
- !Webhook subscriptions expire and silently stop, so notifications vanish after a few days unless renewal is automated.
- !Sending free-form text outside the 24-hour customer window fails, so every proactive message needs an approved template.
- !Phone numbers stored without country codes break matching, so normalise to E.164 at the mapping table.
- !Letting a reply patch a sales order directly invites disputes, so use drafts and approvals.
- !API throttling on SaaS can bite when a bulk posting produces hundreds of notifications, so queue and rate limit.
Frequently asked questions
Does Business Central have a native WhatsApp integration?
Not as a standard feature in the base application. You connect it through the WhatsApp Business Platform, using Business Central APIs and webhooks, a marketplace extension, or Power Automate. Availability of specific connectors changes, so verify current options for your version and region before committing.
Should I use API v2.0 or a custom API page?
Use standard API v2.0 for common entities like sales orders and customers. Add a custom API page when you need fields the standard entities lack, such as an acknowledgement flag, or when you want a narrow, safer surface that exposes only what the messaging service needs.
Can customers place orders over WhatsApp?
They can, but order entry should create a draft sales quote or order for review, not post anything. Free-text orders are ambiguous on item, quantity and unit of measure, so a confirmation step with a summary is advisable.
Does this work with on-premises Business Central?
Yes, with changes. Enable web services, choose a supported authentication method for your version, and host the middleware inside your network. The WhatsApp side still needs outbound internet access to Meta's Cloud API, so air-gapped sites cannot use it.
How do we stay within WhatsApp opt-in rules?
Capture explicit consent per contact, store the timestamp and source, use approved templates for outbound messages, and honor opt-out requests immediately. Keep the consent record in Business Central next to the contact so sales and finance see the same status.
More for Microsoft Dynamics 365 Business Central
Want WhatsApp working on your Microsoft Dynamics 365 Business Central?
A free 30 minute assessment: we map the integration path for your version and setup, and where it should run.
Get a free assessment