ml-connector
Sage 100Twilio

Sage 100 and Twilio integration

Sage 100 runs your finance and inventory, but critical events often get buried in email backlogs. Twilio adds real-time SMS and email alerts so stakeholders see invoice reminders, PO approvals, and payment confirmations instantly. ml-connector watches Sage 100 for financial changes and sends the right message to the right person at the right time, keeping your team aligned without manual coordination.

How Sage 100 works

Sage 100 is an on-premises ERP system covering accounts receivable, accounts payable, general ledger, and inventory. It exposes data through SOAP Web Services (eBusiness Web Services at https://<customer-server>/ebusinesswebservices/masservice.svc) for a limited set of entities like sales orders and customers, or through a local Windows agent wrapping the BOI COM layer for full access including AP invoices, purchase orders, GL accounts, and vendors. Authentication uses username and password credentials passed per SOAP call or through the agent with Windows service account and API key. Because Sage 100 has no webhooks or push events, ml-connector polls for changes using DateLastUpdated and DateCreated fields on key entities like AP_Invoice, PO_PurchaseOrder, GL_JournalEntry, and AP_Vendor.

How Twilio works

Twilio is a cloud communications platform providing SMS, voice, email, video, and identity APIs through REST endpoints with regional variants. Authentication uses HTTP Basic Auth with either Account SID and Auth Token, or API Key credentials (scoped to Main, Standard, or Restricted access levels). Twilio supports webhooks for real-time event notifications on message status (sent, delivered, failed, read), incoming messages and calls, and call completion events, allowing ml-connector to integrate real-time acknowledgment into workflows. Key entities include Messages, Calls, MessagingServices, Verify (2FA), and Usage records.

What moves between them

Data flows from Sage 100 into Twilio in one direction. ml-connector polls Sage 100 at regular intervals (AP invoices every 15 minutes, POs hourly, GL entries daily) for new and modified records, applies business rules (overdue by N days, approval threshold met, payment status changed), and sends SMS or email messages through Twilio to configured recipients. Message delivery status flows back through Twilio webhooks so ml-connector can log whether notifications were delivered, read, or failed, providing an audit trail of who was notified and when.

How ml-connector handles it

ml-connector stores Sage 100 credentials (server URL, username, password, company code) and routes queries through either the SOAP endpoint or a customer-hosted local agent, depending on which entities are needed. For Twilio, it stores Account SID and Auth Token encrypted and authenticates each request with HTTP Basic Auth. The integration polls Sage 100 on a schedule tied to your financial close calendar, extracting AP invoices, PO status, and GL entries, then applies templated message rules (e.g., if AP invoice is 30 days overdue, send SMS to approver; if PO exceeds budget threshold, send email to CFO). ml-connector sends messages through Twilio's REST API, tracking message SIDs and polling Twilio webhooks for delivery confirmation. Because Sage 100 polling can be slow and Twilio requests are idempotent, ml-connector deduplicates based on Sage 100 record ID and message timestamp to avoid duplicate alerts.

A real-world example

A mid-sized industrial distributor uses Sage 100 to manage a complex AP process with multiple approval tiers. Before Twilio integration, the finance team checked Sage 100 daily for overdue invoices and pending approvals, resulting in missed payment deadlines and delayed PO sign-offs. With ml-connector, finance staff receive SMS alerts when invoices exceed 20 days past due or when POs waiting approval hit budget thresholds. AP approvers get email summaries each morning listing invoices due in the next 5 days, and payment confirmations go out via SMS the day after settlement. The integration cut average payment delay by 4 days and reduced approval time from hours to minutes.

What you can do

  • Poll Sage 100 for AP invoices, purchase orders, and GL entries on a configurable schedule and send SMS and email alerts through Twilio to finance team members.
  • Route messages to different recipients based on business rules, such as overdue invoices to approvers and budget overages to the CFO.
  • Track message delivery status through Twilio webhooks and maintain a full audit log of who was alerted, when, and whether the message was delivered or failed.
  • Authenticate Sage 100 via SOAP Web Services or a local Windows agent, and Twilio via HTTP Basic Auth, with encrypted credential storage.
  • Deduplicate alerts based on Sage 100 record ID and timestamp to prevent notification fatigue when polling detects the same event multiple times.

Questions

Does ml-connector pull data from Sage 100 or wait for a push?
ml-connector pulls data from Sage 100 on a schedule because Sage 100 does not offer webhooks or push events. Polling frequency is configurable per entity type (e.g., every 15 minutes for AP invoices, hourly for POs, daily for GL accounts) and can be aligned with your financial close and payroll calendars.
Can messages be sent to different people based on invoice type or amount?
Yes. ml-connector applies business rules to route messages to the right recipients. You can send SMS to an approver when a PO exceeds a threshold, email to the CFO for large purchases, and SMS to accounts payable for invoices nearing due date. Rules are configured once and run on every polling cycle.
What happens if a Twilio message fails to deliver?
ml-connector logs the failure in its audit trail and can be configured to retry or escalate. Twilio webhooks return delivery status (sent, delivered, failed, undelivered, read) so ml-connector knows whether the recipient received the message. Failed messages can be replayed manually or automatically depending on your error handling rules.

Related integrations

Connect Sage 100 and Twilio

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started