Hi everyone ![]()
I’m using n8n Cloud with the Twilio WhatsApp API, and I’m struggling to get an interactive WhatsApp template (with quick reply buttons) to send correctly from an n8n workflow.
Setup
-
Platform: n8n Cloud
-
Node: HTTP Request → Twilio Messages API
-
Channel: WhatsApp Business (Production)
-
Template: Approved WhatsApp template with 3 quick reply buttons
-
From Twilio Console (“Try WhatsApp”):
-
The template sends perfectly as an interactive message with buttons.
-
So the template itself is valid and approved.
-
What I’m doing in n8n
I’m calling the Twilio Messages API like this (simplified):
POST https://api.twilio.com/2010-04-01/Accounts/<ACCOUNT_SID>/Messages.json
Parameters:
-
To: whatsapp:+<recipient_number> -
From: whatsapp:+<sender_number> -
ContentSid: <my_template_content_sid> -
I’ve also tried adding
ContentVariables: {}
Actual behavior
Instead of sending the interactive template with buttons, Twilio:
-
Returns a message SID starting with
MM...(looks like a regular message) -
Returns a JSON response that includes a
bodyfield with the text of the template, for example:
{
"sid": "MMxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"body": "Template text here...",
"status": "queued"
}
-
On the phone, the user receives only plain text, no buttons.
-
There is no error about the
ContentSidbeing invalid – Twilio accepts the request.
From Twilio’s docs and examples, I expected that when using ContentSid:
-
The response wouldn’t include a free-text
body -
The SID wouldn’t look like a standard
MMmessage -
The user should see the interactive buttons
-
If
ContentSidwas wrong/misconfigured, I’d get an error rather than a silent fallback to plain text
What I’ve tried
-
Sending only
To,From,ContentSid(noBody)
-
Adding
ContentVariables: {}
-
Verifying the template is approved and interactive in Twilio Console

-
Testing from Twilio Console (works exactly as expected)

-
Changing parameter order

Occasionally I also see:
-
63002: Channel could not find the From address -
12300webhook errors (Content-Type issues)
…but these feel like separate side issues; the main problem is the loss of interactivity/buttons when called from n8n.
What I’m hoping to learn
-
Has anyone here successfully sent interactive WhatsApp templates with quick reply buttons from n8n using
ContentSid? -
Is there anything about the n8n HTTP Request node (form vs JSON, extra fields, encoding, etc.) that might cause Twilio to ignore
ContentSidand treat the message as a normal text message? -
Do I need to explicitly ensure that no
Bodyfield at all is sent from n8n? -
If you have a working n8n node configuration for Twilio WhatsApp interactive templates (with ContentSid), could you share a screenshot or example payload (with secrets redacted)?
Happy to share my current HTTP Request node configuration (with sensitive info removed) if that helps debug.
Thanks in advance for any pointers ![]()