Skip to main content

Setup

Step 1 — Install the integration

A project admin invokes the $twilio-sms-install operation once in your project, passing the Twilio credentials. This stores the required secrets and creates the webhook ClientApplication.

POST /fhir/R4/Project/$twilio-sms-install
{
"resourceType": "Parameters",
"parameter": [
{ "name": "TWILIO_ACCOUNT_SID", "valueString": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" },
{ "name": "TWILIO_AUTH_TOKEN", "valueString": "<auth-token>" },
{ "name": "TWILIO_FROM_NUMBER", "valueString": "+15005550006" }
]
}

TWILIO_FROM_NUMBER is optional — omit it if callers will always supply the sending number via the https://medplum.com/twilio-from-number extension on the Communication resource. If provided, the install operation automatically registers the inbound webhook with Twilio for that number.

Re-running the install operation is safe — secrets already set in the project will not be overwritten.

Project Secrets

All secrets are written automatically by $twilio-sms-install and read at runtime by the integration bots:

KeyDescription
TWILIO_ACCOUNT_SIDRequired. Twilio Account SID (starts with AC)
TWILIO_AUTH_TOKENRequired. Twilio Auth Token
TWILIO_FROM_NUMBEROptional. Default sending number in E.164 format
TWILIO_CALLBACK_CLIENT_IDSet automatically at install time
TWILIO_CALLBACK_CLIENT_SECRETSet automatically at install time

Step 2 — Register an inbound webhook (optional)

This step is only needed if you want to receive inbound SMS messages. Skip it if you only need to send outbound messages.

If TWILIO_FROM_NUMBER was omitted at install time, or to register additional numbers, use:

POST /fhir/R4/Project/$twilio-sms-register-inbound
{
"resourceType": "Parameters",
"parameter": [
{ "name": "TWILIO_FROM_NUMBER", "valueString": "+15005550006" }
]
}

The phone number is normalized to E.164 before lookup — see Phone Number Formats for accepted input formats. This operation can be called multiple times to setup different Twilio numbers.

Testing the Connection

Once installed, you can verify the credentials are valid:

POST /fhir/R4/Communication/$test-twilio-connection

Returns an OperationOutcome confirming the Twilio credentials are valid.