📣 WhatsApp Broadcasts

Add Media, Buttons & Offers to WhatsApp Broadcasts

A hero image, a tracked 'Shop now' button and a ticking countdown — what each template component does, the exact file limits, and what you can change per broadcast.

A WhatsApp message template is a pre-approved message layout made of up to four parts — an optional header, the body text, an optional footer, and optional buttons — which Meta reviews before you are allowed to send it to customers who have not messaged you recently. Media, buttons and countdown offers are all properties of the template, not of the broadcast: you define them once, get them approved once, and every broadcast that uses that template inherits them.

What you fill in per broadcast is only the parts that change: the header file, the variable tail of a link, a coupon code, and the offer expiry time. That is the single most useful thing to understand here, because it explains why you cannot “just add a button” to a broadcast five minutes before it goes out. This guide covers each component, the exact file limits ConvoFly enforces, what the buttons actually do, and where the honest limits are.

The four parts of a template

Meta's template guidelines describe templates as being built from “text, media, and interactive UI components”, and link on to a components guide that lists every component and its rules. Here is how those parts behave in a broadcast:

ComponentRequired?What it can holdSet where
HeaderOptionalOne image, video or document (or a line of text)Type fixed at approval; the file is chosen per broadcast
BodyRequiredThe main message text, with numbered {{1}} placeholders for personalisationWording fixed at approval; values filled per broadcast
FooterOptionalOne short line of grey text — no variables, no linksFixed at approval
ButtonsOptionalQuick replies, a website link, a copyable coupon codeLabels fixed at approval; link tail and coupon set per broadcast

The header is the part people underestimate. It is the only visual element in the message and it is the first thing the eye lands on in a chat list preview, which is why a promotional broadcast almost always earns its keep with an image header.

Where templates are actually created

Be clear on this before you plan a campaign: ConvoFly does not build templates. You create and submit them in Meta's WhatsApp Manager, wait for approval, then bring them into ConvoFly.

  1. Open Templates in ConvoFly — the screen is titled WhatsApp Templates.
  2. Click Open Meta WhatsApp Manager and build your template there: choose the category, add a header type, write the body, add a footer, add buttons.
  3. Submit it and wait for Meta to approve it. Approval is not instant; plan a campaign at least a day ahead rather than the morning of.
  4. Back in ConvoFly, click Sync from Meta on the Templates screen. Approved templates appear in the list.
  5. Set the template's visibility and, if it has variables, map each one on the same screen — a variable can pull from a contact attribute or be typed in manually, with a default value used when a contact has nothing stored.

If a template you just approved is missing from the broadcast composer, the fix is almost always step 4: you have not synced since it was approved.

Header media: the three file types and their limits

When your template has a media header, the broadcast composer shows an upload field labelled Image header file, Video header file or Document header file, depending on what the template was approved with. You cannot swap the type — an image-header template will never accept a PDF.

Header typeAccepted formatsMaximum sizeTypical use
ImageJPG or PNG5 MBProduct shots, sale banners, discount graphics
VideoMP416 MBShort demos, unboxings, 10–20 second teasers
DocumentPDF100 MBPrice lists, catalogues, lookbooks

The file is uploaded through your own WhatsApp number, so recipients see it as coming from you rather than from a third party. ConvoFly also keeps a durable copy of the header file in its own storage. That matters more than it sounds: WhatsApp media IDs expire, so a recurring broadcast or a drip step that reused the original upload would eventually fail. Because ConvoFly holds its own copy, it re-uploads the file for each run and the campaign keeps working months later.

One honest limit: if your template was approved with a text header containing a variable, the broadcast composer does not give you a field for it. Media headers and plain fixed-text headers work; a variable text header does not.

Buttons: what each type does

Button labels are locked at approval time. What you supply per broadcast is only the changing value behind them.

Button typeWhat the customer seesWhat you fill in per broadcastTap result
Website linkA tappable label such as Shop nowThe changing tail of the URL, or nothing if the link is fixedOpens the page in their browser
Copy codeA coupon chip with a copy iconThe coupon code, up to 15 charactersCopies the code to their clipboard
Quick replyA ready-made reply such as Yes, I'm interestedNothing — it is fixed on the templateSends that text back to you as a normal reply
Limited-time offerA live countdown plus the codeThe date and time the offer endsCountdown ticks down inside the message

A quick-reply button is the cheapest conversion device on WhatsApp, because the customer does not have to type. It also opens a reply window you can act on automatically — see auto-replying to broadcast responses for the automation that turns a tap into a sent price list.

Making a link button trackable

A plain website button tells you nothing about who tapped it. ConvoFly can rewrite it into a per-person tracked link instead.

  1. In the broadcast composer, find your URL button in the buttons area and tick Track clicks on this button.
  2. Enter the real destination in the Destination URL field — for example https://shop.com/sale.
  3. Make sure the template's approved button URL is your ConvoFly redirect address ending in /r/{{1}}. The composer shows this requirement inline; if the template was approved with a plain fixed URL, tracking cannot be switched on for it.

Each recipient then gets a unique token in their link. The first tap is recorded against that person and they are redirected onward to your real page; repeat taps by the same person do not inflate the number. That makes the click count a count of people, not of taps. Full detail is in tracking clicks in WhatsApp broadcasts.

Coupon buttons

A copy-code button puts the discount code inside the message with a one-tap copy action, which removes the most common drop-off point in a mobile promo: retyping SAVE20 into a checkout field on a phone. The composer field is labelled Coupon and accepts a maximum of 15 characters, so design codes short. EID25 works; SUMMER-CLEARANCE-2026 does not fit.

Limited-time offers and the countdown

A limited-time offer template shows a live countdown timer and the promo code inside the message bubble itself, so the urgency is visible without the customer opening anything. When your selected template includes this component, the composer adds a field labelled Offer expires at with a date-and-time picker.

Two practical points. First, pick an expiry that is genuinely in the future when the last message lands, not when you press send — a broadcast to several thousand contacts can take hours to finish, so a two-hour offer will have visibly less time left for the tail of your list than for the first person. Second, honour the deadline. A countdown that expires and is then quietly extended teaches your list that your deadlines are decorative, and that shows up later as lower reply rates and more blocks.

A worked example: a 24-hour flash sale

Say you are running one-day 20% off for 1,800 opted-in customers. A concrete build:

  1. In WhatsApp Manager, create a Marketing template with an image header, a body of roughly two sentences with a {{1}} for the first name, a footer reading Reply STOP to opt out, one website button labelled Shop the sale, and one copy-code button.
  2. Submit it and wait for approval, then click Sync from Meta in ConvoFly.
  3. Create the broadcast, pick the template, and upload a sale banner as the header — a JPG well under the 5 MB ceiling.
  4. Set the coupon to FLASH20 (7 characters, comfortably inside the 15-character cap).
  5. Tick Track clicks on this button and set the destination to your sale collection page.
  6. Set Offer expires at to the end of the sale day.
  7. Map {{1}} to the first-name contact attribute, with a sensible default such as there for contacts with no name stored — see personalising broadcasts with variables.
  8. Send yourself a test, open it on a phone, and tap every button.
  9. Launch, and check the estimated sending time shown next to the recipient count so you know when the last message will land.

Design rules that hold up

What this costs

Adding an image or a button does not change the price of a broadcast: WhatsApp charges per template message, by category, and Meta states that “you are only charged when a template message is delivered” (Meta, WhatsApp pricing). Rates differ by country and Meta publishes them in separate rate cards rather than on that page, so check the figure for your own market. What buttons do change is the value you get per delivered message, which is the number that actually matters. There is more on this in what a WhatsApp broadcast costs.

Honest limits worth knowing before you plan

Plan around those constraints rather than against them. The practical habit is to keep a small library of approved, reusable shapes — one image-header promo with a link button, one with a coupon, one document-header template for price lists — so a new campaign is a new image and a new coupon rather than a new approval queue.

Frequently asked questions

Can I add a button that opens my website to a WhatsApp broadcast?

Yes, if the template was approved with a website button. Tick 'Track clicks on this button' and enter the destination URL, and ConvoFly gives each of your recipients 1 unique redirect link so you can see who tapped. Only the first tap per person is counted, so the number reflects people, not taps.

What size can a WhatsApp broadcast header image or video be?

ConvoFly's broadcast composer accepts a JPG or PNG image up to 5 MB, an MP4 video up to 16 MB, or a PDF document up to 100 MB. The header type is fixed when Meta approves the template, so an image-header template cannot send a PDF.

How many characters can a coupon code button hold?

Up to 15 characters. The composer field is labelled 'Coupon' and enforces the limit, so short codes like FLASH20 work while long ones like SUMMER-CLEARANCE-2026 do not fit.

What is a limited-time offer template?

A limited-time-offer template shows a live countdown timer and a copyable promo code inside the message bubble. When the selected template includes that component, ConvoFly adds an ‘Offer expires at’ date-and-time field to the composer. Pair it with a copy-code button, which allows up to 15 characters.

Can I create or edit WhatsApp templates inside ConvoFly?

No. Templates are created and edited in Meta's WhatsApp Manager and must be approved there. Once approved, open the WhatsApp Templates screen in ConvoFly and click 'Sync from Meta' to pull them in. Meta's template guidelines set the rules on what a template may contain.

Need help? Message us