ml-connector
Sage 50Twilio

Sage 50 and Twilio integration

Sage 50 runs your on-premise accounting but is isolated from your team in the field. Twilio reaches people wherever they are via SMS and voice. Connecting the two lets you notify vendors immediately when you post a payment, alert sales staff when a customer invoice is issued, or alert the finance team when high-value GL entries post. ml-connector polls your Sage 50 company data and sends Twilio messages on a schedule you control.

How Sage 50 works

Sage 50 runs as a desktop application on Windows and stores accounting data in local company files. The US edition uses a .NET SDK or legacy COM layer; the UK edition uses Sage Data Objects (SDO) COM DLLs. Neither edition exposes a cloud REST API, so integration requires a Windows process with direct access to the company data folder and Sage 50 user credentials. Data is read by polling, querying records modified since the last run, with no webhooks or event stream. Key entities include vendors, customers, purchase and sales invoices, purchase orders, GL accounts, general journal entries, employee records, and goods received notes.

How Twilio works

Twilio is a cloud communications platform that sends and receives SMS, MMS, voice calls, and verification codes over REST APIs. It authenticates with HTTP Basic Auth using Account SID and Auth Token, or an API Key for fine-grained access control. Twilio also accepts webhooks for real-time push events on incoming messages, message delivery status, call status, and usage thresholds, with signature validation via HMAC-SHA1. Webhook handlers must be idempotent and respond with 200 or 2xx within an unspecified timeout window.

What moves between them

ml-connector polls Sage 50 at regular intervals, reading purchase invoices, sales invoices, vendor payments, and general journal entries modified since the last run. For each record, it extracts vendor or customer phone numbers stored as contact data in Sage 50 and sends a formatted SMS via Twilio to notify of the transaction. Delivery status is tracked via Twilio webhooks and stored in the audit log; if Twilio returns non-delivery, the record is retried. GL entries and payment records flow one direction only, from Sage 50 to Twilio, with no write-back to accounting.

How ml-connector handles it

ml-connector runs a Windows process on the same machine as Sage 50 or on the LAN with access to the company data folder. It uses the Sage 50 .NET SDK or COM layer to authenticate with your Sage 50 username and password, then polls for modified records by QueryLastModifiedDate or TransactionDate. For each invoice or payment, it looks up the vendor or customer phone number and constructs a Twilio SMS via the REST API using your Account SID and Auth Token. Twilio webhooks push delivery status back to ml-connector, which logs the outcome and retries failed messages with exponential backoff. Phone number formatting is validated before sending, and all records carry a full audit trail so message send failures can be investigated and replayed.

A real-world example

A mid-sized distribution company uses Sage 50 on Windows to track vendor invoices and customer payments. The accounting team is in the office but the warehouse and sales staff are in the field. When the accounting team posts a vendor payment in Sage 50, they previously had to call or email the warehouse to confirm receipt. With Sage 50 and Twilio connected, the vendor receives an SMS immediately when payment is posted, and the sales team receives SMS alerts when customer invoices are issued from Sage 50. The finance team can also set up alerts for high-value GL entries that require approval, with the alert sent to the CFO's phone.

What you can do

  • Read purchase invoices and sales invoices from Sage 50 and send SMS notifications to vendors and customers via Twilio.
  • Post vendor payment records from Sage 50 and trigger SMS alerts to vendor contacts with payment details.
  • Monitor general journal entries in Sage 50 and send SMS alerts to finance staff when entries exceed a configured amount threshold.
  • Validate phone numbers before sending, handle Twilio delivery callbacks, and retry failed messages with audit trails.
  • Poll Sage 50 on a schedule you control with exclusive SDK access and full transaction audit logging.

Questions

What phone numbers does ml-connector send to from Sage 50?
ml-connector reads vendor and customer contact phone numbers stored in Sage 50 vendor and customer records. You map which phone numbers receive notifications for invoices, payments, and GL entries when setting up the flow. Phone format is validated before each SMS is sent via Twilio.
Does ml-connector write anything back to Sage 50?
No. ml-connector is read-only on Sage 50. It polls for invoice, payment, and GL entry records and sends SMS via Twilio, but does not modify Sage 50 accounting data. Delivery status and audit trails are stored in ml-connector's database, not in Sage 50.
How do you handle the Sage 50 SDK's exclusive access requirement?
Sage 50 SDK requires that no user be logged in interactively while the integration reads data. ml-connector coordinates polling with your team's Sage 50 usage schedule, typically running off-hours or on a dedicated schedule to avoid conflicts. The integration process holds exclusive access only during the poll window, typically 30 seconds to a few minutes.

Related integrations

Connect Sage 50 and Twilio

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

Get started