Sage 100 and Orderful integration
Sage 100 runs your on-premises ERP. Orderful routes your sales and purchase orders to trading partners as EDI X12 or EDIFACT documents. Connecting the two keeps your orders in sync across systems without re-entry and without human translation. Sales orders created in Sage 100 can be sent to customers via Orderful's EDI network, and purchase orders received from suppliers through Orderful land in Sage 100 ready for receipt and invoicing. ml-connector handles the translation between Sage 100's internal data and the X12 850 (PO) and 810 (invoice) standards that Orderful requires.
What moves between them
Sales orders and purchase orders flow bidirectionally. Sage 100 sales orders are polled every 15 to 30 minutes, translated to X12 850 or EDIFACT documents with line items, ship-to address, and terms, and posted to Orderful for delivery to customers via EDI. Purchase orders received by Orderful from suppliers arrive via webhook or polling, are parsed from X12 850 format, and inserted into Sage 100 as purchase orders linked to vendors. Ship notices (856) and invoices (810) from suppliers also flow via Orderful into Sage 100 for receipt matching and AP. Item masters, customer names, and vendor IDs are synchronized on a daily or weekly schedule to keep Orderful's ISA mappings current.
How ml-connector handles it
ml-connector stores the Sage 100 username, password, and company code, and the Orderful API Key, both encrypted. It polls Sage 100's SalesOrder and PurchaseOrder tables on a schedule, transforms each record into the correct X12 or EDIFACT segment structure, and POSTs to Orderful with the sender and receiver ISA IDs for your company and each trading partner. For inbound EDI from Orderful, ml-connector registers a webhook endpoint and parses incoming 850 and 856 messages, or polls the Orderful bucket, then inserts the parsed records into Sage 100 as PO_PurchaseOrder rows with vendor lookups and line-item GL accounts. Because Sage 100 is on-premises and has no native webhooks, all Sage 100 data originates from polling; the integration handles Sage 100's record-locking constraints with exponential backoff on retries. EDI syntax errors are logged with the raw segment and the parse error so you can contact the sender to correct the format. Every record carries a full audit trail linking the source order, the EDI transaction, and the result in Sage 100.
A real-world example
A mid-sized specialty manufacturer runs Sage 100 for ERP and uses Orderful to send purchase orders to 40 regional suppliers and receive their shipments and invoices. Before integration, the procurement team exported POs from Sage 100 weekly, formatted them as X12 manually or via a spreadsheet macro, and emailed or uploaded them to Orderful. Supplier 856 ship notices arrived in Orderful but had to be printed and manually keyed into Sage 100's receiving module. With Sage 100 and Orderful connected, every new PO in Sage 100 is automatically translated and sent within seconds, supplier ship notices flow back and trigger receiving in Sage 100, and invoice matching happens without re-entry. Procurement cycle time dropped from 3 days to same-day, and data entry errors in receiving fell by 95 percent.
What you can do
- Poll sales orders from Sage 100, translate them to X12 850 format, and send via Orderful to your customer EDI network.
- Receive purchase orders from Orderful as X12 850 messages, parse them, and insert into Sage 100 linked to the correct vendor.
- Map Sage 100 customers and vendors to Orderful ISA identifiers so the same trading partner is matched across both systems.
- Synchronize item masters and customer ship-to addresses daily so EDI messages carry the correct product codes and locations.
- Log every EDI parse error and Sage 100 write with full context so you can audit the end-to-end flow and replay failures.
Questions
- How does ml-connector translate between Sage 100 and X12 EDI format?
- ml-connector reads Sage 100 sales orders and POs (customer names, items, quantities, prices, ship addresses) and maps them to the correct X12 segments: the ISA envelope with sender and receiver identifiers, the GS group, the ST850 sales order or purchase order header, and SED segments for line items. For incoming EDI, it reverses the process: parsing X12 850 and 856 messages back into Sage 100 POs and receipts with vendor lookups and GL account allocation.
- Does Sage 100's lack of webhooks mean the integration has to poll forever?
- Yes. Sage 100 has no webhooks or event stream, so ml-connector polls the SalesOrder and PurchaseOrder tables every 15 to 30 minutes using the DateLastUpdated field to find changes. However, inbound EDI from Orderful can be pushed via webhook to ml-connector's endpoint, which then inserts the parsed records into Sage 100. This means Sage 100 to Orderful is push (translated to EDI and sent immediately), and Orderful to Sage 100 is webhook-driven (pushed in near real-time).
- What happens if an X12 message from a supplier has a format error?
- ml-connector logs the raw X12 segment and the specific parse error to its audit trail so you can see which supplier sent the malformed message and what field caused the problem. The record is not inserted into Sage 100, and an alert can be sent to your procurement team. You can then contact the supplier to fix the format and resend, or manually intervene if needed. All parse errors are retained in the audit log for compliance and troubleshooting.
Related integrations
More Sage 100 integrations
Other systems that connect to Orderful
Connect Sage 100 and Orderful
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started