Docs
Get started

Swipeable product carousel in chat

Stack multiple media cards behind a single header so the contact can swipe left and right between options. Each card carries its own image or video and its own buttons, giving you a tiny catalog inside the conversation.

Overview

The #Carousel command builds a horizontally scrollable group of cards. The header sets a cover (image or video) and a title. After the header, each card is a #ButtonMix block separated by exactly five slashes (/////). Cards can mix rating buttons, copy-code buttons, call buttons and URL buttons.

!

Carousel is in BETA and currently does not work on Android. Use it where you know the contact is on iOS, or fall back to a sequence of single image buttons messages.

Anatomy of a carousel

  1. A header declared with #Carousel, followed by triple-pipe separators |||, a title, a subtitle, and a media reference.
  2. One or more cards, each a #ButtonMix block.
  3. Five slashes (/////) between every two cards after the first.

Full example

A four-card carousel with a video cover and four different card types:

#Carousel|||Title|||Subtitle|||video*https://wazzap-files.sfo3.cdn.digitaloceanspaces.com/0104bf58-22ea-4b66-9454-79ebe69cdf6d.mp4||| #ButtonMix|Title|Subtitle|image*https://wisphub.io/static/img/wisp-bg-5.jpg|button*Good*id_good/button*Bad*id_bad/button*Terrible*id_terrible /////#ButtonMix|Title|Subtitle|image*https://wisphub.io/static/img/wisp-bg-5.jpg|copy*Copy Code*000011 /////#ButtonMix|Title|Subtitle|image*https://wisphub.io/static/img/wisp-bg-5.jpg|call*Call Now*id_call /////#ButtonMix|Title|Subtitle|video*https://wazzap-files.sfo3.cdn.digitaloceanspaces.com/0104bf58-22ea-4b66-9454-79ebe69cdf6d.mp4|url*Visit Web*https%3A%2F%2Fwww.google.com/url*Contact*https%3A%2F%2Fwww.facebook.com

Cards explained

Header (carousel cover)

#Carousel|||Title|||Subtitle|||video*https://wazzap-files.sfo3.cdn.digitaloceanspaces.com/0104bf58-22ea-4b66-9454-79ebe69cdf6d.mp4|||

Card 1, rating buttons

#ButtonMix|Title|Subtitle|image*https://wisphub.io/static/img/wisp-bg-5.jpg|button*Good*id_good/button*Bad*id_bad/button*Terrible*id_terrible

Card 2, copy-code button

/////#ButtonMix|Title|Subtitle|image*https://wisphub.io/static/img/wisp-bg-5.jpg|copy*Copy Code*000011

Card 3, call button

/////#ButtonMix|Title|Subtitle|image*https://wisphub.io/static/img/wisp-bg-5.jpg|call*Call Now*id_call

Card 4, URL buttons over a video

/////#ButtonMix|Title|Subtitle|video*https://wazzap-files.sfo3.cdn.digitaloceanspaces.com/0104bf58-22ea-4b66-9454-79ebe69cdf6d.mp4|url*Visit Web*https%3A%2F%2Fwww.google.com/url*Contact*https%3A%2F%2Fwww.facebook.com

Result

  • The contact sees a single chat bubble with a cover, then swipes horizontally across four cards.
  • Each card behaves like its specific button type:
  • Your CRM logs each response. In HighLevel the reply ID lands in the conversation thread so workflows can branch on it.

Important notes

  • Carousel is BETA and does not work on Android. Always test on the target device before scaling.
  • Images must be .jpg. Videos must be .mp4. File-size limits come from your CRM, commonly 5 MB per file.
  • Use exactly five slashes ///// between cards after the second.
  • Every button ID must be unique and stable across the whole carousel, not just within a single card.
  • Keep button labels short, the carousel viewport is narrow.
  • URL buttons require URL-encoded links pasted as plain text.

Troubleshooting

The carousel shows only the first card

The separator is wrong. Cards after the first must start with exactly five slashes (/////). Four or six slashes break the parser.

URL buttons open a broken link

The link wasn't URL-encoded. Convert https://...?q=hello world to https%3A%2F%2F...%3Fq%3Dhello%20world before pasting.

Carousels are also useful for menu-style replies: pair them with tag triggers so the chosen card auto-applies a contact tag in your CRM.

Was this page helpful?