Update OpenClaw
Run the native implementation. Use openclaw update, then run openclaw doctor so config migrations and channel diagnostics happen before Twilio is involved.
SMS setup
Sean's SMS lane runs in production on OpenClaw's native Twilio-backed sms channel. Update OpenClaw, enable the bundled channels.sms, and follow the official implementation.
What this page is
sms channel for new setups. It receives inbound SMS through a Gateway webhook and sends replies through Twilio's Messages API./webhooks/sms, with native outbound sending and native inbound replies verified end-to-end.openclaw update, then openclaw doctor so config migrations and channel diagnostics run before Twilio is involved.pairing or allowlist. SMS costs money, phone numbers are personal data, and an open inbound number is a real control surface.Setup path
Run the native implementation. Use openclaw update, then run openclaw doctor so config migrations and channel diagnostics happen before Twilio is involved.
Publish your own privacy policy, terms, and opt-in page. Carrier review cares about voluntary consent, clear message purpose, STOP/HELP instructions, rates, frequency, and no marketing resale of mobile data.
Use an SMS-capable Twilio number or Messaging Service. Save the Account SID, Auth Token, sender number or Messaging Service SID, and finish the A2P 10DLC path if you are sending to US mobile numbers.
Route a public HTTPS URL to the Gateway's SMS webhook path. The URL configured in OpenClaw and Twilio needs to match exactly, including scheme, host, path, and query string.
Enable channels.sms with Twilio credentials, the public webhook URL, and a private sender policy. Prefer SecretRef or environment-backed secrets over plaintext config.
Start the Gateway, run openclaw channels status --probe, send the first SMS, approve the pairing code, then test a second inbound and one outbound message. Check Twilio logs if no pairing request appears.
Config shape
Use the official docs for the exact current fields. The shape below is what to expect from the native channels.sms block.
{
channels: {
sms: {
enabled: true,
accountSid: "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
authToken: { source: "env", provider: "default", id: "TWILIO_AUTH_TOKEN" },
fromNumber: "+15551234567",
publicWebhookUrl: "https://gateway.example.com/webhooks/sms",
dmPolicy: "pairing"
}
}
}
Compliance examples
Sean Alerts needed public compliance pages for SMS review. Copy the structure and checklist, not our legal identity or exact wording.
Discloses SMS data use, Twilio as transport provider, no sale of personal information, and no sharing mobile opt-in data for third-party marketing.
Documents program purpose, optional SMS consent, STOP/HELP, carrier delivery limits, rates, and non-emergency use.
Public opt-in page with an unchecked-by-default consent box, clear disclosures, START instructions, and direct links to terms and privacy.
Sharp edges
pairing or allowlist for personal agents. Treat every allowed phone number like a real user of your agent.
channels.sms. If you see old plugin install instructions elsewhere, treat them as history, not setup guidance.