Skip to main content

SMS (Twilio)

Slug: sms
Provider: Twilio REST API
Inbound ACK: Yes — user replies with the notification UUID to the SMS


How it works

PSAPLink sends an SMS via the Twilio REST API. Each SMS includes a notification UUID. When the recipient replies with a message whose body starts with that UUID, Twilio forwards the reply to POST /api/v1/inbound/sms and PSAPLink resolves the acknowledgement. A plain "ACK" reply without a UUID is logged and ignored.


Configuration schema

FieldTypeRequiredDescription
account_sidstringYesTwilio Account SID (starts with AC).
auth_tokenstringYesTwilio Auth Token. Must match the TWILIO_TOKEN env var.
from_numberstringYesTwilio phone number in E.164 format (e.g. +15551234567).
default_to_numberstringYesDefault destination number in E.164 format.
to_numberstringNoPer-channel override for the destination number.

Infrastructure requirement

TWILIO_TOKEN must be set in the Cloud app's environment and must match auth_token:

TWILIO_TOKEN=your_twilio_auth_token

PSAPLink uses this to validate incoming Twilio webhook signatures on POST /api/v1/inbound/sms and POST /api/v1/inbound/sms/status. A mismatch causes all inbound validation to fail.


Create a channel

POST /api/v1/transport-channels
Authorization: Bearer <token>
Content-Type: application/json

{
"transport_type_slug": "sms",
"name": "Operations SMS",
"config": {
"account_sid": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"auth_token": "your_auth_token",
"from_number": "+15551234567",
"default_to_number": "+15559876543"
}
}

Inbound ACK setup

In the Twilio console, configure a webhook on your phone number:

  • Incoming message URL: https://psaplink.com/api/v1/inbound/sms (POST)
  • Status callback URL: https://psaplink.com/api/v1/inbound/sms/status (POST)

ACK detection

An inbound message is treated as an acknowledgement only when the body starts with a valid notification UUID (e.g. 550e8400-e29b-41d4-a716-446655440000). Messages that contain only "ACK" without a leading UUID are logged and ignored.


Test the channel

POST /api/v1/transport-channels/{id}/test
Authorization: Bearer <token>

Limitations

  • Twilio account must have SMS capability enabled.
  • International numbers require additional Twilio geographic permission configuration.