How to add WhatsApp to Made2Manage
Short answer
Made2Manage has no native WhatsApp channel, so you add one with a small service that reads the M2M database, sends approved template messages through the WhatsApp Business Platform (Cloud API or a BSP), and writes replies back through a controlled path. The hard part is not WhatsApp, it is getting reliable change detection and a safe write path out of an older Visual FoxPro era ERP.
Made2Manage shops are typically small to mid-size job shops and discrete manufacturers that have run the same ERP for 15 years or more. The system lives on a server in a closet or a colo rack, users work in a Windows desktop client, and the people who actually move the business, the buyers, shipping clerks, truck drivers and customers, live on their phones. WhatsApp is increasingly where suppliers and overseas customers prefer to talk, especially in export-heavy and Latin American, Indian and European supply chains.
The pain is the gap between those two worlds. A supplier confirms a ship date on WhatsApp, a buyer retypes it into the PO release, and half the time it never gets entered. A customer asks where their order is and a CSR opens Sales Order inquiry to answer a question that could have been automatic.
This page walks through what is realistic for an ERP of this vintage: where to read data, how to detect events without triggers you cannot add, how to handle template and opt-in rules, and how to keep any write-back under human control.
What teams use it for
Order and promise-date status
A customer messages a verified number and asks for the status of a sales order. The service looks up the order and its release lines and answers with the promised ship date and current job stage, instead of a CSR opening the sales order screen.
Shipment notifications
When a packing list is shipped and a tracking number is recorded, send an approved template message to the customer contact with the order, quantity and carrier link.
Supplier PO confirmation
Message suppliers when a PO release is due within a few days and ask for a confirmed date. The reply is parsed and put in a review queue for the buyer, not written straight into the PO.
Approval nudges for managers
Send a short message to a plant manager when a purchase requisition or a large quote needs sign-off, with a link or reply keyword that opens an approval page you control.
Late job and shortage alerts to the floor
Notify a production supervisor when a job's required material shows a shortage against its due date so they can re-sequence before the line stops.
RMA and quality contact
Let customers send a photo and part number of a nonconforming part on WhatsApp and create a draft RMA record for the quality team to review.
Made2Manage integration surface
- Database: depending on version, Made2Manage stores data either in Visual FoxPro DBF tables or in Microsoft SQL Server. Core tables commonly seen include sales order headers and items (names such as Somast, Soitem, Sorels), job headers (Jomast, Joitem), purchase orders (Pomast, Poitem), inventory (Inmast, Inloc) and shipping (Slcdpm). Confirm exact table and column names against your version's data dictionary.
- Read access: on SQL Server installs a read-only SQL login or a replica is the cleanest feed. On DBF installs, read through the Visual FoxPro OLE DB or ODBC driver against a copy, not the live files, to avoid locking users.
- Change detection: older versions have no event bus or webhooks. Poll on modified date or status columns where they exist, or compare snapshots of key tables, and keep a processed-keys table in your own database.
- Reports and exports: M2M's report writer and Crystal-based reports can schedule exports to CSV, which is a workable low-risk feed if direct DB access is not allowed by your support agreement.
- Write path: there is no broadly documented public REST API for classic M2M. Safe write-back options are an import utility or interface your version supports, a controlled stored procedure you own on SQL installs, or a human-keyed screen. Vendor support terms matter here, so check before writing to tables directly.
How it works
- 1
Pick the WhatsApp channel
Register a WhatsApp Business account and phone number on the Cloud API directly, or go through a Business Solution Provider if you want a managed inbox. The number must not already be in the consumer WhatsApp app.
- 2
Stand up a read-only data feed
Create a read-only SQL login, or a nightly or hourly replica, and map the few tables you need: sales orders, job status, PO releases, shipments, customer and vendor contacts.
- 3
Build a contact and consent table
Store a verified mobile number and an explicit opt-in per customer or supplier contact outside M2M. WhatsApp requires opt-in for business-initiated messages, so this table is the gate for every send.
- 4
Detect events by polling
A small scheduled job queries for changes since the last run, such as a new shipment or a PO release inside the alert window, and writes outbound message tasks to a queue with a dedupe key.
- 5
Send approved templates
Messages sent outside a 24-hour customer-initiated window must use pre-approved templates. Draft templates for shipment, promise-date change and confirmation request, with variables for order number and date.
- 6
Handle inbound replies
Receive webhook callbacks from the Cloud API, match the sender to the contact table, parse a date or a keyword, and place the result in a review queue. A buyer approves before anything changes in M2M.
- 7
Log everything
Keep message IDs, delivery status, the exact data sent and the reviewer's action so any dispute can be traced.
Example flows
Shipment alert to a customer
Trigger: A shipper is posted for sales order 48213 and a tracking number is recorded.
- Poller finds the new shipment since the last run.
- Service looks up the customer contact and checks opt-in.
- Template message sends with order number, quantity and tracking link.
- Delivery receipt is stored against the shipment.
Result: The customer knows the order shipped without anyone typing a message.
Supplier date confirmation
Trigger: A PO release is due in five days with no confirmed date.
- Poller flags the release and the supplier's WhatsApp contact.
- Template asks the supplier to confirm or change the date.
- Supplier replies with a new date.
- Parsed reply lands in the buyer's review queue with the original PO line.
- Buyer accepts, and updates the release in M2M.
Result: Confirmed dates are captured within hours and the buyer stays in control of the write.
Keeping data on-prem
The M2M database and your polling service can stay entirely inside your network. Only outbound HTTPS to the WhatsApp Cloud API and an inbound webhook endpoint need to be reachable, and the webhook can sit in a small DMZ relay that forwards to an internal queue. WhatsApp itself is a cloud service and message content leaves your premises by definition, so keep message bodies minimal, avoid drawings and controlled technical data, and use references like order numbers rather than part specifications. If you add language understanding to interpret free-text replies, run an open-weight model locally so supplier text is never sent to a third-party model API.
Security checklist
- Use a read-only database login scoped to the few tables required, never the application's owner account.
- Store opt-in evidence and let contacts opt out with a keyword; honor it immediately.
- Never send pricing, cost or controlled technical data over WhatsApp; send identifiers and status only.
- Verify webhook signatures from the WhatsApp platform and restrict the endpoint by IP and rate limits.
- Keep API tokens in a secrets store and rotate them; log who approved every inbound change.
Ways to get it done
Off-the-shelf connector or BSP flow builder
Effort: Days to a couple of weeks, limited two-way logic.
Fine for simple broadcast alerts if you can export a CSV from M2M reports on a schedule.
Build in-house
Effort: Roughly several weeks including templates, consent and review queue.
Good if you have a developer who knows SQL Server or FoxPro and can run a small service.
Work with a partner such as Netray
Effort: A scoped pilot, typically weeks, then iterated.
Useful when you want reply parsing, an approval workflow and an on-prem language model without owning the build.
Pitfalls
- !Writing directly into M2M tables can break referential logic the client enforces and may void support, so avoid it.
- !Polling a live DBF share can lock files and slow users; read from a copy.
- !Sending without documented opt-in risks the number being restricted by WhatsApp.
- !Templates take time to approve and variables are strict, so draft them before building.
- !Supplier replies are messy, so never auto-apply a parsed date without a human check.
Frequently asked questions
Does Made2Manage have a built-in WhatsApp feature?
No, the classic Made2Manage product does not ship a WhatsApp channel. You add one with an external service that reads the M2M data and talks to the WhatsApp Business Platform. Check with whoever supports your version in case a newer vendor product adds messaging.
Can WhatsApp messages update my M2M purchase orders directly?
Technically possible, but not advised. Parse the reply, show it to a buyer with the PO line next to it, and let the buyer apply it. This avoids bad data from ambiguous text and keeps you within vendor support terms.
Do I need a Business Solution Provider?
Not necessarily. You can use the Cloud API directly with your own webhook. A BSP adds a shared inbox, analytics and support, which helps if non-developers manage conversations.
Is this possible if M2M is still on FoxPro tables?
Yes, with care. Read from a copy or snapshot through ODBC or OLE DB, poll on a schedule, and avoid anything that locks the live files. Migration to SQL Server makes it easier but is not required.
What data should never go over WhatsApp?
Prices, costs, drawings and any controlled or export-restricted technical data. Send order numbers, dates and statuses, and point to a secure portal for anything sensitive.
Want WhatsApp working on your Made2Manage?
A free 30 minute assessment: we map the integration path for your version and setup, and where it should run.
Get a free assessment