# How to add WhatsApp to Microsoft Dynamics AX 2012

> Source: https://netray.co/integrations/dynamics-ax-whatsapp
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: Integrations

## Short answer

Run a small middleware service next to your AOS that reads AX events (alerts, batch jobs, or a polled SQL view), sends approved template messages through the WhatsApp Business Cloud API, and posts replies back through an AIF document service or a custom service class. AX itself is never exposed to the internet.

## System

Microsoft Dynamics AX 2012

## Capability

whatsapp

## Intro

Many manufacturers still run AX 2012 R2 or R3 on-premises because the customizations took years to build and the replacement project keeps slipping. Buyers, suppliers and drivers, meanwhile, live on WhatsApp. The gap shows up as buyers phoning suppliers for PO confirmations and sales staff typing shipment status into chats by hand.

AX 2012 has no native WhatsApp feature and no cloud-first event bus. What it does have is a stable, well-understood set of hooks: event-based alerts, the batch framework, the Application Integration Framework (AIF), and a SQL Server database you can read from. Those are enough to build a reliable two-way channel without touching the core code more than necessary.

This page covers the realistic path: which AX hooks to use, how WhatsApp's template and opt-in rules shape the design, and where a human should stay in the loop before anything is written back to the ledger.

## Use Cases

### Supplier PO confirmation

**Description:** When a purchase order is confirmed in AX, send the supplier contact a template with PO number, lines and requested dates. A button reply of Confirm or Reschedule is posted back as a comment or a confirmed-delivery-date change request for the buyer to accept.

### Customer shipment alerts

**Description:** On packing slip posting for a sales order, send the customer's logistics contact the carrier, tracking reference and expected arrival. Use the SalesTable and CustPackingSlipJour data as the source.

### Approval nudges for managers

**Description:** Workflow approvals for POs and expense reports often sit in the AX inbox for days. A WhatsApp message with the amount, vendor and an approve or reject reply can be routed to the workflow work item API after identity checks.

### Driver and field delivery confirmation

**Description:** Delivery drivers reply with a photo of the signed proof of delivery. The middleware attaches it to the sales order as a document attachment (DocuRef) and flags the order as delivered for a clerk to post.

### Overdue invoice reminders

**Description:** Collections staff trigger reminder messages for customers with open CustTrans items past due, with a payment link supplied by your payment provider rather than from AX.

## System Surface

Event-based alerts in AX 2012 (alert rules on table or field changes) can notify an email address, which a mail-reading listener converts into a WhatsApp send. This needs no X++ for simple cases.

Batch framework: a custom RunBaseBatch class scheduled in the batch server can query for new events and call an outbound HTTP endpoint through System.Net via CLR interop. Verify .NET interop availability for your build.

AIF: inbound and outbound ports with document services (for example, sales order and purchase order services, names vary by release) and custom services exposed via the AOS WCF endpoint, secured with Windows authentication.

SQL Server read access: tables such as PurchTable, PurchLine, SalesTable, CustPackingSlipJour and VendTable can be read through a read-only login or replicated views, useful for polling when you cannot change X++.

Document handling: DocuRef and DocuValue tables store attachments, which is where inbound WhatsApp media would land.

## How It Works

### Register a WhatsApp Business Cloud API app

**Detail:** Create a Meta business account, verify the business, add a phone number, and decide whether to call the Cloud API directly or through a business solution provider (BSP) that adds inbox, retries and reporting.

### Define templates and opt-in capture

**Detail:** Messages sent outside the 24-hour customer service window must use pre-approved templates. Store the opt-in evidence per contact, for example on a custom field of the contact person record or in a sidecar table, never inferred.

### Pick the AX event source

**Detail:** Use an alert, a batch job, or a polled SQL query with a high-water mark. Prefer polling for the first release because it needs no AX change and is easy to roll back.

### Build the middleware service

**Detail:** A small service in your DMZ or on an app server holds the Cloud API token, maps AX contacts to phone numbers in E.164 format, renders the template, and logs every send with the source record ID.

### Receive webhooks

**Detail:** Meta posts delivery status and replies to an HTTPS endpoint you control. Expose only that endpoint, verify the signature, and queue the payload so the AX side is never called synchronously from the internet.

### Write back through a controlled path

**Detail:** Replies update AX through an AIF custom service or a staging table that a clerk or a batch job reviews. Do not let a free-text reply change quantities or prices.

## Example Flows

### PO acknowledgment loop

**Trigger:** A buyer confirms a purchase order and the PO status moves to Approved.

**Steps:**

- Poller finds the new PurchTable record since the last high-water mark.
- Middleware looks up the vendor contact with a recorded WhatsApp opt-in.
- A template with PO number and the first three lines is sent with Confirm and Reschedule buttons.
- The supplier taps Confirm; the webhook arrives and the reply is queued.
- A service call adds a note to the PO and flags the line as acknowledged for the buyer.

**Result:** The buyer sees acknowledgments without chasing, and exceptions arrive as a short queue instead of phone calls.

### Delivery proof capture

**Trigger:** A driver replies to a dispatch message with a photo.

**Steps:**

- The webhook delivers the media ID; middleware downloads it within the retention window.
- The file is stored and linked to the sales order via a DocuRef-style attachment.
- A clerk review task is raised in AX with the thumbnail and order number.

**Result:** Proof of delivery is attached to the order the same day instead of being collected at the end of the week.

## On Prem

Keep AX, its AOS and SQL Server entirely inside your network. The only internet-facing piece is the middleware's webhook endpoint, ideally behind a reverse proxy in a DMZ, with outbound calls to the Cloud API over TLS. AX never talks to Meta directly. If you also want an AI layer to read a free-text supplier reply and propose a structured action, run an open-weight model on a local GPU so the message text and your order data do not leave the building; the model only suggests, and a person approves before any AX write.

## Security

- Store the Cloud API token in a secrets vault, not in an AX parameter table or X++ source.
- Use a read-only SQL login for polling and a dedicated service account for AIF calls with the minimum AX security roles.
- Verify the webhook signature header and reject replays; log message IDs for audit.
- Never put pricing, bank details or full customer addresses into message bodies; send references and let the recipient use a portal.
- Keep opt-in and opt-out records and honor stop requests within the same business day.

## Options

### BSP-backed connector plus thin AX poller

**Fit:** Teams that want inbox, template management and delivery reporting without building them.

**Effort:** Roughly 3 to 6 weeks including template approval.

### Build in-house on the Cloud API

**Fit:** Teams with .NET developers who already maintain AX integrations and need tight control.

**Effort:** Roughly 4 to 8 weeks for two or three flows, plus ongoing template upkeep.

### Partner build with Netray

**Fit:** Sites that also want AI reading replies and routing exceptions, on-prem, with approvals.

**Effort:** Scoped after a short discovery of your customizations and AIF usage.

## Pitfalls

- Phone numbers stored in AX as free text in many formats; normalize to E.164 or messages silently fail.
- Templates rejected by Meta for marketing-like wording; keep transactional text plain.
- Sending to contacts without recorded opt-in, which risks quality rating drops and a blocked number.
- Polling on a modified timestamp that your customizations do not maintain, causing missed or duplicate events.
- Replies from a shared phone in the supplier's office, so the sender is not the person authorized to confirm.

## Faq

### Does Dynamics AX 2012 support WhatsApp natively?

**Answer:** No. AX 2012 predates the WhatsApp Business Platform and has no native connector. You add it with a middleware service that reads AX events and calls the Cloud API or a business solution provider, then writes replies back through AIF or a staging table.

### Do I need to modify X++ to send messages?

**Answer:** Not necessarily. Polling SQL views or reading alert emails needs no X++ change. Writing replies back safely is easier with a small custom service class, but a staging table reviewed by a clerk also works and keeps the core code untouched.

### Can suppliers reply with free text?

**Answer:** They can, but treat it as unstructured input. Use button replies for the main actions and route free text to a human or an on-prem model that proposes an action for approval. Never post free text straight into quantities or dates.

### Is this worth doing on an AX version nearing end of life?

**Answer:** Often yes, if the middleware is built against SQL and a thin service layer rather than deep X++. The same channel then carries over to a successor ERP with a changed data source and little other rework.

### Where does the WhatsApp token live?

**Answer:** In a secrets vault used by the middleware, not inside AX. The AOS never needs internet access, which keeps the legacy system's attack surface unchanged.

## Search terms

dynamics ax whatsapp integration, whatsapp for dynamics ax 2012, dynamics ax 2012 whatsapp api, send whatsapp from dynamics ax, ax 2012 whatsapp purchase order confirmation, whatsapp business api erp on-prem, dynamics ax shipment notification whatsapp, dynamics ax 2012 supplier messaging

---
Talk to an engineer: https://netray.co/contact?intent=erp_ai | Machine catalog: https://netray.co/agent/catalog.json
