Interactive · carousel
A row of cards, each with its own button.
An interactive media carousel: 2 to 10 cards, each with an image or video header and one URL button (or the same quick replies on every card).
to and the message ids are n8n expressions that read the WhatsApp Trigger right before this node ($json.messages[0].from / .id). For a manual test, replace them with a number and a message id.
The JSON body
HTTP Request → Body → JSON{ "messaging_product": "whatsapp", "recipient_type": "individual", "to": "{{ $json.messages[0].from }}", "type": "interactive", "interactive": { "type": "carousel", "body": { "text": "Picked for you this week" }, "action": { "cards": [ { "card_index": 0, "type": "cta_url", "header": { "type": "image", "image": { "link": "https://example.com/mug.jpg" } }, "body": { "text": "Ceramic mug. EGP 180." }, "action": { "name": "cta_url", "parameters": { "display_text": "View", "url": "https://shop.example.com/mug" } } }, { "card_index": 1, "type": "cta_url", "header": { "type": "image", "image": { "link": "https://example.com/tote.jpg" } }, "body": { "text": "Canvas tote. EGP 240." }, "action": { "name": "cta_url", "parameters": { "display_text": "View", "url": "https://shop.example.com/tote" } } }, { "card_index": 2, "type": "cta_url", "header": { "type": "image", "image": { "link": "https://example.com/gift.jpg" } }, "body": { "text": "Gift box. EGP 520." }, "action": { "name": "cta_url", "parameters": { "display_text": "View", "url": "https://shop.example.com/gift" } } } ] } }}Limits & common mistakes
2 to 10 cards;
Source (opens in a new tab)card_indexstarts at 0.Message body 1,024 max (required); card body 160 max with at most 2 line breaks.
Source (opens in a new tab)Card header: image or video only; the message itself takes no header or footer.
Source (opens in a new tab)Every card must have the same button setup: one URL button each, or the same number of quick-reply buttons; labels 20 max.
Source (opens in a new tab)24-hour window.
Source (opens in a new tab)
How to set up the credential in n8n
- In n8n, open Credentials → Create credential and pick Header Auth.
- Fill in the two fields:NameAuthorizationValueBearer <your token>
- Open the pasted node. Authentication is already Generic → Header Auth; choose the credential you just made.
- Use a System User token from Meta Business settings; the token on the API Setup page expires within hours.Source (opens in a new tab)Source (opens in a new tab)
Your token lives in n8n only. I never ask for it.
Don't have time to build it? I'll build it for you.
Build it for meWhatsApp and n8n are trademarks of their owners. Pixtaha isn't affiliated with or endorsed by Meta or n8n.