feat(whatsapp): Twilio send path for default account + API v21

The SquareMCP number (+19547385805) is registered under Twilio's BSP,
so direct Meta API sends were blocked with #200 permission errors.
Default account now routes through Twilio's REST API; customer-owned
accounts still use Meta's Cloud API directly.

- twilioSend(): POST to api.twilio.com with Basic auth
- resolveTemplateText(): fetches template body from Meta, substitutes
  {{1}}/{{}} parameters, so templates render correctly via Twilio
- Bumped WHATSAPP_API_VERSION to v21.0
- Added TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN, TWILIO_WHATSAPP_NUMBER,
  WHATSAPP_DEFAULT_BUSINESS_ACCOUNT_ID to K8s deployment

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Garfield
2026-05-16 21:34:42 -04:00
parent dcc1c39754
commit b67146dfc8
2 changed files with 92 additions and 10 deletions

View File

@@ -22,7 +22,7 @@ spec:
fsGroup: 1000
containers:
- name: hermes-mcp
image: localhost:32000/hermes-mcp@sha256:e7ac49a82ec89af0d362de644a435ff717d22b1f177b16b82b375727d89bc2d1
image: localhost:32000/hermes-mcp@sha256:4f91bf92c5498605a59d54b1a32789e9d125fcff0c0b1d00225fc2bae888f26d
imagePullPolicy: Always
securityContext:
allowPrivilegeEscalation: false
@@ -126,9 +126,19 @@ spec:
- name: SLACK_DEFAULT_BOT_TOKEN
value: "xoxb-11134355044818-11132324783798-shAhtLsZT2GpTUI0pJlYsmrE"
- name: WHATSAPP_DEFAULT_PHONE_NUMBER_ID
value: "1075667822304648"
- name: WHATSAPP_DEFAULT_WABA_ID
value: "996304809563412"
- name: WHATSAPP_DEFAULT_BUSINESS_ACCOUNT_ID
value: "996304809563412"
- name: TWILIO_ACCOUNT_SID
value: "AC2a5ef8e87800b4fde36b577b76a4f1bf"
- name: TWILIO_AUTH_TOKEN
value: "bf9285c863263d06efbb1b56827d351a"
- name: TWILIO_WHATSAPP_NUMBER
value: "+19547385805"
- name: WHATSAPP_DEFAULT_ACCESS_TOKEN
value: "EAAYG3FLDWzMBRZAtaCNstacjwd2ZCaVWrWEM35c2VSUufKZCluhYyCYHsQGJOBRYF82AakhhcjBKOVPLUAPEGowkV7IIbPDBb6ZBRjnnsvIrPznQzhiLJFpv7U3LdhZCpV69mxtTrLPYCxtcUJxCFdG3wkW1ijT03KJexwUjG0hiRIrVxVBHAcpPRjYCIEAZDZD"
value: "EAAYG3FLDWzMBRV4qrRvksNnVzCI4wGUvF4R8jjy6pusWBxriRwP9B3ZCRcd3VpDsjoURhJMEQJiNZCcSIJZCcQGsusZANzTpQF9hWrhHgLXUU9tJZCuoEAWTUYA9C29JgQ9BPblpUxEQRKE3p9tZBsl9ChngJy45kXJ9apOYreJclyya0ebgCxZBmndBpCPuAZDZD"
- name: WA_VERIFY_TOKEN
value: "hermes-wa-2026"
- name: SLACK_PILOT_WEBHOOK_URL