ml-connector
Exact OnlineTwilio

Exact Online and Twilio integration

Exact Online runs your accounting and operations across multiple divisions and regions. Twilio reaches your customers and suppliers with SMS, email, and voice. Connecting them lets you send automated payment reminders, order confirmations, and delivery alerts without manual re-keying or a separate notification system. Invoices, purchase orders, and payments created in Exact Online trigger immediate SMS and email notifications to the correct contacts through Twilio, keeping everyone informed in real time.

How Exact Online works

Exact Online exposes sales invoices, purchase invoices, sales orders, purchase orders, payments, receipts, accounts (both suppliers and customers), contacts, GL accounts, and cost centers through a region-specific REST API with OData v3 query syntax (filter, select, top, skip). It authenticates with OAuth2 Authorization Code Grant with 10-minute access tokens and 30-day rotating refresh tokens, requiring app registration in the Exact Online App Center. Exact Online supports webhooks for a broad set of resources including SalesInvoices, PurchaseInvoices, SalesOrders, PurchaseOrders, Accounts, and Contacts, delivering entity key and action (create/update/delete) via HTTP POST with HMAC-SHA256 signature validation. Related entity data must be fetched in separate REST calls since expand is not supported.

How Twilio works

Twilio is a communications platform providing REST APIs for SMS, MMS, email, voice calls, and identity verification. It authenticates with HTTP Basic Auth using either Account SID and Auth Token or an API Key SID and API Secret. Twilio exposes Messaging Services for SMS and email delivery, Verify for two-factor authentication, Conversations for multi-channel messaging, and TaskRouter for call routing. Messages are sent via REST POST to the messaging API using form-encoded request bodies. Webhooks deliver incoming message and call status callbacks with HMAC-SHA1 signature validation, but Twilio is a pure communications platform with no financial, accounting, or ERP entities.

What moves between them

The main flow runs from Exact Online into Twilio. When an invoice, order, or payment is created or updated in Exact Online, ml-connector receives the webhook notification, fetches the full record via REST, enriches it with the associated customer or supplier account and contact data, maps the contact phone number or email address to a Twilio MessagingService recipient, and sends an SMS or email notification through Twilio. The direction is one-way: Exact Online drives the business event, and Twilio delivers the notification. Twilio status callbacks (delivery, failure, read) are logged for audit purposes but do not feed back into Exact Online.

How ml-connector handles it

ml-connector stores Exact Online OAuth2 credentials (client ID, secret, and refresh token) and Twilio Basic Auth credentials (Account SID and Auth Token) encrypted at rest. It subscribes to Exact Online webhooks for SalesInvoices, PurchaseInvoices, SalesOrders, and Payments using the callback URL signature validation (HMAC-SHA256 with the webhook secret from App Center). When a webhook fires, ml-connector parses the entity key and action, fetches the full record from Exact Online's REST API (respecting the required division ID and region-specific base URL), looks up the associated Account record to find the Contacts, filters by contact type and phone/email preference, and then sends an SMS via Twilio MessagingService (for phone numbers) or email (for addresses). Twilio's HTTP Basic Auth is applied to every request. Because Exact Online requires OAuth tokens to be refreshed at least once every 30 days, ml-connector tracks token age and proactively refreshes. If a Twilio send fails (e.g., invalid phone number, no email on file), the failure is logged with the source invoice/order and can be retried manually. The integration does not write data back to Exact Online.

A real-world example

A mid-sized B2B software services company invoices customers monthly through Exact Online and wants to reduce late payments and improve customer experience. Before this integration, the finance team manually selected invoices and sent payment-due reminders via email, and sales sent order confirmations by hand. With Exact Online and Twilio connected, each new invoice automatically sends an SMS or email reminder to the customer contact on file in Exact Online within minutes of invoice creation, and each purchase order sends a notification to the supplier. Customers receive timely payment reminders without delay, suppliers confirm order receipt immediately, and the finance and sales teams reclaim hours spent on manual notifications each month.

What you can do

  • Send SMS and email payment reminders when invoices are created or updated in Exact Online, with recipient phone and email fetched from Accounts and Contacts.
  • Trigger order confirmation notifications to suppliers when purchase orders are created, mapped to the supplier account and contact data in Exact Online.
  • Route notifications based on contact type and communication preference stored in Exact Online Contacts, avoiding duplicate sends and respecting opt-out flags.
  • Log all SMS and email sends with Twilio status callbacks (delivered, failed, read) in an audit trail linked to the source invoice or order.
  • Automatically refresh Exact Online OAuth2 tokens before expiry and recover from Twilio rate limits with exponential backoff retries.

Questions

Why would I use Twilio with Exact Online instead of Exact Online email alone?
Exact Online email is often slow and limited to predefined templates. Twilio gives you SMS for urgent reminders (which have much higher open rates than email), email with custom branding and personalization, and voice calls for high-priority notifications. You also get real-time status callbacks showing whether a message was delivered, read, or failed, so you know if a payment reminder actually reached the customer.
Does ml-connector send data back to Exact Online from Twilio?
No. The flow is one-way: Exact Online business events (invoice, order, payment) trigger notifications sent via Twilio. Twilio status callbacks (delivered, sent, failed) are logged for audit and retry purposes, but they do not write back into Exact Online. Your Exact Online data remains the system of record.
What happens if a customer contact in Exact Online has no phone number or email?
ml-connector checks the Contacts record for a phone number (SMS) or email address (email) before attempting to send. If neither is present, the send is skipped and logged as a no-contact-found event in the audit trail. You can then manually send or update the contact data in Exact Online and retry.

Related integrations

Connect Exact Online and Twilio

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

Get started