How to add WhatsApp to Infor M3
Short answer
Add WhatsApp to Infor M3 by putting a small middleware service between the WhatsApp Business Platform (Cloud API or a BSP) and M3. Outbound alerts are triggered from ION events or scheduled M3 API (MI program) reads, and inbound replies are written back through the same API after validation. Templates, opt-in and phone-number mapping are the parts that need design, not the plumbing.
M3 shops, especially in distribution, food, fashion, equipment and engineered-to-order manufacturing, tend to have the same problem: the people who need an answer are not in M3. A customer wants to know whether order 1234567 has shipped, a driver wants to confirm a delivery, a supplier wants to confirm a purchase order line. Those people live on WhatsApp, not in the M3 H5 client or in email.
M3 does not ship a WhatsApp connector as part of the core product, and Infor's own messaging surface is built around ION, Infor OS and email. So the realistic route is an integration layer you own or buy: WhatsApp Business Platform on one side, M3 APIs and ION on the other. The work is mostly about mapping a WhatsApp phone number to an M3 customer, supplier or user, and deciding which events deserve a message.
Whether this is a weekend prototype or a controlled production service depends on one question: is your M3 reachable from the internet through ION API, or is it on-prem and firewalled? Both work, but the architecture differs, and the second case is common enough that this page covers it explicitly.
What teams use it for
Customer order and shipment status
A customer messages an order number and gets status, promised date and tracking from the customer order (OOHEAD and OOLINE data via an order MI program), without calling customer service.
Delivery and dispatch notifications
When a delivery is confirmed or a shipment is dispatched in M3, send a template message with the delivery number, carrier and ETA to the ship-to contact.
Supplier purchase order confirmations
Send a template for new or changed PO lines and accept a quick-reply confirmation or a new date, then write the confirmed date back to the purchase order line for review.
Approvals for managers away from a desk
Push a short summary of a pending PO or requisition approval with Approve and Reject buttons, mapped to the M3 approval or ION Workflow step.
Field service and installer updates
Technicians reply with a status code or a photo against a service order number, and the middleware attaches the result to the order for the planner.
Overdue invoice and payment reminders
Notify customers of invoices past due from accounts receivable data, with opt-out handling and a hand-off to a human for disputes.
Infor M3 integration surface
- M3 API (MI programs): transaction-style programs such as OIS100MI for customer orders, PPS200MI for purchase orders, MMS200MI for items and CRS610MI for customers. Exact program and transaction names vary by version, so check the API metadata in your environment before coding.
- Infor ION API gateway: the supported way to reach M3 APIs from outside, with OAuth 2.0 using an ION API client (service account) created in Infor OS. On-prem M3 without Infor OS often exposes the same programs through the M3 API (MvxAPI) or M3 Web Services style endpoints instead.
- ION Connect and BODs: M3 can publish Business Object Documents (for example sync of customer orders or shipments) onto ION, which is the cleanest trigger for outbound messages without polling.
- M3 Enterprise Collaborator (MEC): the older mapping and messaging engine, still common on-prem, which can call out to HTTP services from a partner agreement.
- Direct database reads: tables such as OOHEAD, OOLINE, MPHEAD and MPLINE on the M3 business engine database. Acceptable for read-only reporting but not for writes; always write through MI programs so business rules and triggers run.
How it works
- 1
Pick the WhatsApp channel
Choose the WhatsApp Business Platform Cloud API directly or a Business Solution Provider. Register a business number, get your display name approved and decide who the sender is. A shared number for customers and a separate one for internal staff is cleaner.
- 2
Build the phone-number directory
Map E.164 numbers to M3 entities: customer contacts, supplier contacts, employees. Store the mapping and the opt-in timestamp in your middleware, not in M3, unless you are comfortable adding user-defined fields. Never message a number you cannot tie to a business partner.
- 3
Choose the trigger
Prefer ION events (BODs for orders and shipments) or an M3 event hub subscription where available. If neither is practical, poll an MI program on a short schedule and keep a last-sent watermark per order to avoid duplicates.
- 4
Create and submit message templates
Business-initiated messages outside the 24-hour customer service window must use pre-approved templates. Write them with placeholders for order number, date and carrier, and submit them for approval well before go-live.
- 5
Handle inbound messages
Receive webhook calls from WhatsApp, verify the signature, identify the sender, and route: status questions to read-only MI calls, confirmations to a staging table, anything ambiguous to a human queue.
- 6
Write back safely
For supplier date changes or approvals, stage the change, show it to a buyer or approver, and only then call the M3 API with a technical user that has just the needed permissions. Log the original WhatsApp message id with the M3 transaction.
Example flows
Order status request from a customer
Trigger: A customer contact sends 'status 1234567' to the company number.
- Middleware verifies the webhook and matches the sender to a customer in the directory.
- It calls a read-only order MI program through ION API for that customer and order number.
- It checks the order really belongs to the matched customer before replying.
- It sends a short answer with status, next promised date and tracking link, plus a button to talk to a person.
Result: Common status calls are answered in seconds and customer service only sees exceptions.
Supplier PO confirmation
Trigger: A purchase order is released and an ION event reaches the middleware.
- The service reads PO lines and the supplier contact from M3.
- A template message lists lines and dates with Confirm and Propose date quick replies.
- The reply is stored in a review table with the PO number and line.
- A buyer approves the change and the middleware updates the confirmed date through the PO MI program.
Result: Fewer chasing emails, and every date change is traceable to a message and an approver.
Shipment delay alert
Trigger: A scheduled job finds customer order lines whose delivery date has moved by more than a set threshold.
- The job reads affected lines and groups them by customer.
- A template informs the contact of the new date and reason code.
- The delivery is logged in the middleware with the message status callback.
Result: Customers hear about slips from you first, and replies reach the right planner.
Keeping data on-prem
If M3 is on-prem and not exposed, keep it that way. Run the middleware inside your network, let it call M3 APIs or ION locally, and make only the WhatsApp webhook endpoint reachable, through a reverse proxy or DMZ host that forwards to the service. Outbound calls to the WhatsApp Cloud API are plain HTTPS egress. If you want an AI layer for free-text questions, use a locally hosted open-weight model so order data never leaves your network; WhatsApp itself still carries the message content, so decide which data may appear in a chat at all.
Security checklist
- Treat WhatsApp as an external channel: no pricing, no cost, no personal data beyond what you would put in a customer email.
- Authenticate the sender by directory match, and verify the order belongs to that customer before every reply.
- Use a dedicated M3 technical user or ION API client with only the MI programs required, read-only for the inbound query path.
- Verify webhook signatures and keep access tokens in a secrets store, never in M3 or the repository.
- Retain message logs according to your policy and honor opt-out keywords immediately.
Ways to get it done
Off-the-shelf messaging platform with a custom M3 adapter
Effort: Weeks, plus per-conversation fees from the provider.
Teams that want a managed inbox, templates and analytics and only need a thin M3 lookup.
Build in-house on the Cloud API and ION
Effort: One to three months for a hardened first release.
Teams with Infor OS skills who want control over data flow and flows beyond status lookups.
Partner build such as Netray
Effort: Typically a few weeks for a scoped pilot.
On-prem M3 with security constraints or when you also want an AI assistant answering from live M3 data with human approval on writes.
Pitfalls
- !Using a personal or unofficial WhatsApp client library, which risks number bans and gives no templates or support.
- !Matching senders by phone number alone without checking the order belongs to them, which leaks order data.
- !Polling M3 APIs too aggressively and competing with interactive users; prefer events or a modest schedule.
- !Writing directly into M3 tables rather than through MI programs, which skips validations and triggers.
- !Forgetting that multi-company and multi-division setups need the right company and division in every API call.
Frequently asked questions
Does Infor M3 have a native WhatsApp integration?
Not as a standard core feature that I would rely on. Teams usually build a middleware service using M3 APIs and ION events, or buy a messaging platform and add an M3 adapter. Check your Infor OS marketplace and partner offerings, since packaged connectors may exist for specific versions.
Can we run this with M3 on-premises?
Yes. Keep M3 and the middleware inside your network, call M3 APIs locally, and expose only the webhook receiver through a reverse proxy. Outbound traffic to WhatsApp is ordinary HTTPS. Only the messages themselves traverse the WhatsApp network.
Do we need pre-approved templates?
For business-initiated messages outside the 24-hour customer service window, yes. Inbound questions from customers open a window in which you can reply with free-form text. Plan template wording and approval time into your schedule.
Can WhatsApp users change orders in M3?
Technically yes, but treat it as a request, not a transaction. Stage the change, show it to a responsible person, and only then call the M3 API. Writes straight from chat make audit and error handling harder.
How do we trigger messages from M3?
Use ION BODs or event subscriptions where your version supports them, or a scheduled read of an MI program with a watermark. Direct database triggers are discouraged on the M3 business engine because they bypass business logic and complicate upgrades.
Want WhatsApp working on your Infor M3?
A free 30 minute assessment: we map the integration path for your version and setup, and where it should run.
Get a free assessment