UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

375 lines (374 loc) 11.8 kB
{ "id": "sms", "name": "SMS", "description": "Twilio SMS channel plugin for OpenClaw text messages.", "activation": { "onStartup": false }, "channels": [ "sms" ], "channelEnvVars": { "sms": [ "TWILIO_ACCOUNT_SID", "TWILIO_AUTH_TOKEN", "TWILIO_PHONE_NUMBER", "TWILIO_SMS_FROM", "TWILIO_MESSAGING_SERVICE_SID", "SMS_PUBLIC_WEBHOOK_URL", "SMS_WEBHOOK_PATH", "SMS_ALLOWED_USERS" ] }, "configSchema": { "type": "object", "additionalProperties": false, "properties": {} }, "channelConfigs": { "sms": { "schema": { "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "name": { "type": "string" }, "enabled": { "type": "boolean" }, "accountSid": { "type": "string" }, "authToken": { "anyOf": [ { "type": "string" }, { "oneOf": [ { "type": "object", "properties": { "source": { "type": "string", "const": "env" }, "provider": { "type": "string", "pattern": "^[a-z][a-z0-9_-]{0,63}$" }, "id": { "type": "string", "pattern": "^[A-Z][A-Z0-9_]{0,127}$" } }, "required": [ "source", "provider", "id" ], "additionalProperties": false }, { "type": "object", "properties": { "source": { "type": "string", "const": "file" }, "provider": { "type": "string", "pattern": "^[a-z][a-z0-9_-]{0,63}$" }, "id": { "type": "string" } }, "required": [ "source", "provider", "id" ], "additionalProperties": false }, { "type": "object", "properties": { "source": { "type": "string", "const": "exec" }, "provider": { "type": "string", "pattern": "^[a-z][a-z0-9_-]{0,63}$" }, "id": { "type": "string" } }, "required": [ "source", "provider", "id" ], "additionalProperties": false } ] } ] }, "fromNumber": { "type": "string" }, "messagingServiceSid": { "type": "string" }, "defaultTo": { "type": "string" }, "webhookPath": { "type": "string" }, "publicWebhookUrl": { "type": "string" }, "dangerouslyDisableSignatureValidation": { "type": "boolean" }, "dmPolicy": { "default": "pairing", "type": "string", "enum": [ "pairing", "allowlist", "open", "disabled" ] }, "allowFrom": { "type": "array", "items": { "anyOf": [ { "type": "string" }, { "type": "number" } ] } }, "textChunkLimit": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "accounts": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "object", "properties": { "name": { "type": "string" }, "enabled": { "type": "boolean" }, "accountSid": { "type": "string" }, "authToken": { "anyOf": [ { "type": "string" }, { "oneOf": [ { "type": "object", "properties": { "source": { "type": "string", "const": "env" }, "provider": { "type": "string", "pattern": "^[a-z][a-z0-9_-]{0,63}$" }, "id": { "type": "string", "pattern": "^[A-Z][A-Z0-9_]{0,127}$" } }, "required": [ "source", "provider", "id" ], "additionalProperties": false }, { "type": "object", "properties": { "source": { "type": "string", "const": "file" }, "provider": { "type": "string", "pattern": "^[a-z][a-z0-9_-]{0,63}$" }, "id": { "type": "string" } }, "required": [ "source", "provider", "id" ], "additionalProperties": false }, { "type": "object", "properties": { "source": { "type": "string", "const": "exec" }, "provider": { "type": "string", "pattern": "^[a-z][a-z0-9_-]{0,63}$" }, "id": { "type": "string" } }, "required": [ "source", "provider", "id" ], "additionalProperties": false } ] } ] }, "fromNumber": { "type": "string" }, "messagingServiceSid": { "type": "string" }, "defaultTo": { "type": "string" }, "webhookPath": { "type": "string" }, "publicWebhookUrl": { "type": "string" }, "dangerouslyDisableSignatureValidation": { "type": "boolean" }, "dmPolicy": { "default": "pairing", "type": "string", "enum": [ "pairing", "allowlist", "open", "disabled" ] }, "allowFrom": { "type": "array", "items": { "anyOf": [ { "type": "string" }, { "type": "number" } ] } }, "textChunkLimit": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 } }, "required": [ "dmPolicy" ], "additionalProperties": false } }, "defaultAccount": { "type": "string" } }, "required": [ "dmPolicy" ], "additionalProperties": false }, "label": "SMS", "description": "Twilio-backed SMS with inbound webhooks and outbound replies.", "uiHints": { "": { "label": "SMS", "help": "Twilio SMS channel configuration for inbound webhooks and outbound text replies." }, "accountSid": { "label": "Twilio Account SID", "help": "Twilio Account SID used for SMS outbound API calls." }, "authToken": { "label": "Twilio Auth Token", "help": "Twilio Auth Token used to sign webhook validation and SMS outbound API calls." }, "fromNumber": { "label": "SMS From Number", "help": "Twilio SMS-capable phone number in E.164 format, for example +15551234567." }, "messagingServiceSid": { "label": "Twilio Messaging Service SID", "help": "Twilio Messaging Service SID to use instead of a dedicated fromNumber." }, "defaultTo": { "label": "SMS Default To Number", "help": "Optional default outbound phone number used when a send flow omits an explicit SMS target." }, "publicWebhookUrl": { "label": "SMS Public Webhook URL", "help": "Public URL configured in Twilio for incoming messages. Must match Twilio's signed URL exactly." }, "webhookPath": { "label": "SMS Webhook Path", "help": "Gateway HTTP path that receives Twilio incoming-message webhooks. Use a distinct path per account." }, "dmPolicy": { "label": "SMS DM Policy", "help": "Direct SMS access control (\"pairing\" recommended). \"open\" requires channels.sms.allowFrom=[\"*\"]." }, "allowFrom": { "label": "SMS Allow From", "help": "Allowed sender phone numbers in E.164 format, or * when dmPolicy is open." }, "textChunkLimit": { "label": "SMS Text Chunk Limit", "help": "Maximum characters per outbound SMS chunk before OpenClaw splits long replies." } } } } }