Sapilon becomes publicly available on 1 December 2026: 42 days to go. The core goes open source the same day →

Twilio integration

In short

Send SMS and WhatsApp messages and check their status. Connect it on the Integrations page; your app then calls Twilio through Sapilon without ever holding a Twilio credential.

Lets your app send SMS (and WhatsApp, through Twilio) from your Twilio numbers, check delivery status and list your numbers.

Use a test-credential pair on the Build Server: it accepts the same calls without sending anything.

Connecting

On the Integrations page choose Connect on Twilio and fill in:

  • Account SID — Twilio Console → Account info → Account SID.
  • Auth token — Twilio Console → Account info → Auth token.

Sapilon checks the key with the provider before it saves it, and stores it encrypted; it is never shown again.

What your app can do

Only these requests are available; anything else is refused.

  • GET|POST /Messages.json
  • GET /Messages/*
  • GET /IncomingPhoneNumbers.json

How the agent uses it

Use integrations.request('twilio', …); paths are relative to https://api.twilio.com/2010-04-01/Accounts/<AccountSid> (the account is added for you). Twilio takes form-encoded bodies: send body as a string with headers: { 'Content-Type': 'application/x-www-form-urlencoded' }.

  • POST /Messages.json — send. Example: { method: 'POST', path: '/Messages.json', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: 'To=%2B4915112345678&From=%2B4930123456&Body=Your+order+shipped' }. For WhatsApp prefix both numbers with whatsapp:.
  • GET /Messages.json — recent messages. Example: { method: 'GET', path: '/Messages.json', query: { To: '+4915112345678', PageSize: '20' } }.
  • GET /Messages/{sid}.json — one message and its status.
  • GET /IncomingPhoneNumbers.json — numbers you can send from.

More from Twilio: https://www.twilio.com/docs/messaging/api

Last updated .

Was this page helpful?