Connect Twilio SMS to OpenClaw: setup, webhooks and trial limits
The SMS plugin, Twilio credentials, exact webhook URL and first-message pairing, plus three setup failures witnessed on OpenClaw 2026.9.1.
OpenClaw connects to Twilio SMS through the official @openclaw/sms plugin. It needs your Twilio account credentials, an SMS-capable sender and a reachable HTTPS webhook, normally ending in /webhooks/sms. Twilio’s configured URL must match OpenClaw’s publicWebhookUrl for signature checks to work. Then send a real text, approve its pairing request and verify the reply.
On September 16, 2026, we completed plugin and channel setup on OpenClaw 2026.9.1. The channel reported configured and running, but the test stopped before a real SMS exchange because the available phone could not send to the trial number. The setup failures below were witnessed; successful phone delivery was not.
Check the Twilio account before setting up the agent
Have the Account SID, Auth Token and sending number ready. Keep the Auth Token in a secure credential form or secret source, never ordinary chat. An SMS-capable number is not proof that every destination or message type is permitted.
Twilio’s current trial documentation restricts trial recipients and describes a newer trial experience limited to pre-defined content. Its legacy Console has different trial details. An arbitrary AI reply is custom content, so do not assume a trial will carry it simply because your own phone is verified. Check the rules shown for your account and upgrade if it cannot send the required replies.
Install, configure, then test
The official SMS setup reference is the source for the plugin and configuration fields:
openclaw plugins install @openclaw/smsLet installation and any required Gateway restart finish before starting a credential request. Configure the SMS channel with accountSid, authToken, fromNumber and publicWebhookUrl. The Auth Token field supports a SecretRef. Keep signature validation enabled.
In Twilio, set the number’s incoming-message webhook to the same public URL with method POST. For a machine behind NAT, that can be a tunnel or managed endpoint exposing the SMS route; it does not require exposing the whole Gateway. The webhook connectivity guide explains why an outbound internet connection is not enough.
Twilio signs the request URL as well as request data. An alternate hostname, changed path or rewritten URL can fail verification even if it reaches the same server. Copy the exact public address into both configurations instead of reconstructing it from memory.
Three setup failures we hit on 2026.9.1
- The credential form became unavailable. The agent began plugin installation and asked for the token in the same turn. Installation scheduled a restart, which eventually killed the still-open credential request. After reconnecting, a fresh secure request accepted the token. Reusing the old link did not.
- The approval link opened as cancelled. The proposal ended with the agent’s turn. This is the delegated-approval bug fixed in 2026.9.2, not a reason to switch off approvals.
- The SMS panel kept asking to install an installed plugin. Each click reinstalled it and restarted the Gateway. We completed configuration through the agent instead. The upstream report records that 2026.9.1 loop; it does not establish that a current installation will hit it.
Prove the phone round trip
Send an SMS from the intended phone to the Twilio number. With the default pairing policy, approve that sender:
openclaw pairing list sms
openclaw pairing approve sms <CODE>Send another message and confirm the agent’s reply reaches the phone. A running plugin proves neither Twilio delivery nor sender admission. If no pairing request appears, check Twilio’s message log and the webhook response. If pairing works but the reply fails, check outbound account restrictions and delivery status. Those are different halves of the connection.