How to add WhatsApp to Sage 100
Short answer
Sage 100 has no native WhatsApp feature, so the usual route is a small service on the server that reads Sage data (ODBC or SQL) and writes back through the Business Object Interface, with the WhatsApp Business Platform Cloud API or a BSP carrying the messages. Start with outbound template alerts, then add replies that land in Sage as reviewed transactions.
Sage 100 shops are typically small and mid-sized distributors and light manufacturers where the customer, the driver and the buyer all live on WhatsApp already. Orders get confirmed by phone, ship dates are chased by text, and the person who knows the answer is sitting in front of Sales Order Entry.
The pain is the gap between that chat traffic and the ERP. Someone retypes a customer message into a sales order comment, or answers 'where is my order' by opening Sales Order Inquiry for the fifth time that day. WhatsApp is a good fit because it is read, replied to and trusted far more than email.
Sage 100 is an older, Windows-centric product, and your version (Standard, Advanced or Premium, and the product update level) decides how you reach the data. This page covers what is realistic on each, and where the line between a notification and a write-back should sit.
What teams use it for
Shipment and tracking alerts
When a shipment is posted through Sales Order Shipping or the Invoice Data Entry update, send the customer a template message with the order number, carrier and tracking number.
Order status on request
Customer or rep messages an order number and gets back status, promise date and open lines, pulled read-only from the sales order tables.
Supplier PO confirmation
Send open purchase order lines to a vendor and capture 'confirmed' or a new date. The reply is staged for a buyer to apply in Purchase Order Entry.
Credit hold release nudges
When an order lands on credit hold, message the credit manager with balance and past-due totals and a link or quick reply to approve, which a person then actions in Sage.
Delivery proof and photo capture
Drivers reply with a signed-slip photo that is attached to the invoice record via Paperless Office or a document store and indexed by order number.
Sage 100 integration surface
- ODBC: the Sage 100 ODBC driver (commonly the SOTAMAS90 DSN) exposes tables such as SO_SalesOrderHeader, SO_SalesOrderDetail, AR_Customer, PO_PurchaseOrderHeader and CI_Item. Good for reads. On Standard and Advanced the data is ProvideX files, so heavy queries can be slow and the driver is effectively a read path.
- Business Object Interface (BOI): a COM-based API for creating and updating sales orders, customers and other records with Sage business rules enforced. It runs on Windows and is the safe write path. Exact object names vary by version.
- Sage 100 Premium runs on Microsoft SQL Server, so you can read the tables directly or via change tracking. Never write to tables directly; use BOI so integrity rules apply.
- Visual Integrator (VI): scheduled import and export jobs for flat files. A reasonable low-tech way to drop an exported status file for a middleware job or to import a staged order.
- Business Alerts and Customizer: Sage can raise alerts and run scripts from events, useful as a trigger but not a general messaging platform. Versions after the Sage 100 2020 line also add REST-style web services in some editions; confirm what your release offers.
How it works
- 1
Set up the WhatsApp Business Platform account
Register a WhatsApp Business Account through Meta Cloud API or a BSP, verify the business, and get message templates approved for order status, shipment and confirmation requests.
- 2
Run a small integration service next to Sage
Install a Windows service or container host on the Sage app server or a machine that can reach the data. It holds the WhatsApp token and talks to Sage; Sage never calls out to the internet directly.
- 3
Detect events without touching Sage internals
Poll for shipped orders by querying invoice or shipment header dates since the last watermark, or use a Business Alert or VI export as a trigger. Store the watermark in your own database.
- 4
Map customers to opted-in phone numbers
Keep a table keyed by AR customer number and contact with E.164 numbers and opt-in evidence. Sage's phone fields are free text, so normalise and validate them first.
- 5
Send templates and handle the webhook
Send approved templates for outbound alerts. Receive replies on an HTTPS webhook, verify the signature, and route by intent: status lookup, confirmation, or hand off to a person.
- 6
Write back only through BOI, with review
Anything that changes Sage, such as a changed ship date, lands in a review queue and is applied by a BOI call after a person approves it. Status lookups stay read-only.
Example flows
Shipment alert to customer
Trigger: A sales order is invoiced and shipped in Sage.
- The service sees a new invoice header past its watermark.
- It joins to the customer and looks up the opted-in WhatsApp contact.
- It sends the shipment_update template with order number, carrier and tracking.
- It stores the message ID and delivery status in its own log.
Result: The customer has tracking without calling; the CSR queue gets quieter.
Order status by message
Trigger: A customer texts 'status SO 004512'.
- The webhook verifies the sender against the customer contact list.
- A read-only query returns header status, ship-via and line quantities.
- The service replies inside the 24-hour window with a short summary.
- If the number is unknown, it asks a rep to take over instead of answering.
Result: Routine status questions are answered in seconds and only for verified contacts.
Keeping data on-prem
Sage 100 is very often on-prem, and that suits this pattern: the integration service sits on the LAN beside Sage and only makes outbound HTTPS calls to Meta, plus receives webhooks through a reverse proxy or a relay with a fixed public endpoint. Customer and order content in messages does pass through WhatsApp, so keep message bodies minimal, use templates with order numbers rather than prices where that matters, and keep the full records and logs on your own servers. If you add an AI layer to classify replies, run an open-weight model on your own hardware so message text and ERP context stay inside your network.
Security checklist
- Keep the WhatsApp access token and any Sage service credentials in a secrets store on the integration host, not in scripts or VI job files.
- Use a dedicated Sage user with only the roles needed, and read-only ODBC credentials for lookups.
- Verify webhook signatures and only answer verified contacts; never expose account balances to unverified numbers.
- Log every inbound message and every Sage write with the approver, for audit.
Ways to get it done
BSP or marketplace connector with a flat-file bridge
Effort: Days to a couple of weeks, plus per-conversation fees.
Small teams that only need outbound alerts and can accept a VI export feeding the connector.
Build in-house on the Cloud API
Effort: Two to six weeks depending on write-back scope.
Teams with a developer comfortable with COM/BOI or SQL and webhook hosting.
Partner build with Netray or a Sage reseller
Effort: Typically a few weeks for a first scoped flow.
You want two-way flows, review queues and optional on-prem AI without owning the plumbing.
Pitfalls
- !Messaging customers outside the 24-hour window without an approved template, which gets blocked.
- !Trusting free-text phone fields in Sage; badly formatted numbers cause silent failures.
- !Polling ProvideX-backed tables too often on Standard or Advanced, which can slow the users in the same files.
- !Writing to Sage tables directly instead of BOI, bypassing validation and risking corrupt data.
- !Skipping opt-in records, which creates a compliance and account-quality problem.
Frequently asked questions
Does Sage 100 have a built-in WhatsApp integration?
No. Sage 100 has no native WhatsApp feature, as far as the standard product goes. You connect it through an outside service that reads Sage data over ODBC or SQL, sends messages via the WhatsApp Business Platform, and writes changes back through the Business Object Interface.
Can WhatsApp replies create sales orders in Sage 100?
They can, but it is wise to stage them. A reply is parsed into a draft order, a person checks it, and a BOI call creates the sales order. Auto-posting from free-text chat invites wrong quantities and pricing errors.
Does this work on Sage 100 Standard as well as Premium?
Yes, but the read path differs. Premium sits on SQL Server and is easier to query efficiently. Standard and Advanced use ProvideX data accessed through ODBC, which is fine for modest lookups but needs care with polling frequency.
Do I need a WhatsApp BSP?
Not necessarily. You can use Meta's Cloud API directly if you can host a webhook. A BSP adds a console, templates tooling and support, at a per-message or monthly cost, which can be worth it for small teams.
Can this run without sending ERP data to a cloud AI?
Yes. Plain alerts need no AI at all. If you want intent detection on replies, an open-weight model hosted on your own server can do it, so only the WhatsApp transport leaves your network.
Want WhatsApp working on your Sage 100?
A free 30 minute assessment: we map the integration path for your version and setup, and where it should run.
Get a free assessment