Body. Required text with optional numbered placeholders {{1}}, {{2}}. WatsBerry maps those at send time (name, product, checkout URL, OTP). Sending leftover {{1}} to a customer is a product bug you should never ship.
Header (optional). Text, image, video, document — or a carousel / product carousel on templates that support it. Media headers need a real HTTPS sample URL at submission and at send.
Footer (optional). Short static line (brand or “Reply STOP”). Not a second offer.
Buttons (optional).
- Quick reply — customer taps a chip; you receive the reply in the shared inbox.
- URL — static link, or a dynamic suffix (
https://shop.example/c/{{1}}) for checkout / tracking.
- Phone — click-to-call.
- Copy code / one-tap — authentication.
Carousel cards each need media + body + buttons. Product carousels need catalogue SKUs — see catalogue commerce. Do not invent SKUs in the template if Commerce Manager does not have them.