---
name: "WhatsApp transport supports Twilio API as alternative to Meta Cloud API"
---

# Story 382: WhatsApp transport supports Twilio API as alternative to Meta Cloud API

## User Story

As a user, I want to use Twilio's WhatsApp API instead of Meta's Cloud API directly, so that I can avoid Meta's painful developer onboarding and use Twilio's simpler signup process.

## Acceptance Criteria

- [ ] bot.toml supports a `whatsapp_provider` field with values `meta` (default, current behavior) or `twilio`
- [ ] When provider is `twilio`, messages are sent via Twilio's REST API (`api.twilio.com`) using Account SID + Auth Token
- [ ] When provider is `twilio`, inbound webhooks parse Twilio's form-encoded format instead of Meta's JSON
- [ ] Twilio config requires `twilio_account_sid`, `twilio_auth_token`, and `twilio_whatsapp_number` in bot.toml
- [ ] All existing bot commands and LLM passthrough work identically regardless of provider
- [ ] 24-hour messaging window logic still applies (Twilio enforces this server-side too)

## Out of Scope

- TBD
