Broadcast and template messages are two different tools, not two names for one
Broadcast is Zalo's built-in mass-message tool for an Official Account's own subscriber base — bundled into a paid OA tier rather than billed per message, and gated by a hard monthly quota. Template messages, sent through the Zalo Business System, are billed per message and aren't capped the same way, but each one carries a single call-to-action, no more.
Confusing the two is common enough in English-language write-ups that following the wrong description will break a campaign on day one — either the plan assumes Broadcast can send more often than it can, or it assumes a template message is free because Broadcast usually is.
The distinction matters most at the planning stage, before a single message goes out. A win-back flow built around 'send unlimited template messages' has a completely different budget line than one built around 'stay inside the free Broadcast quota,' and mixing the two assumptions into one plan is how a campaign runs out of either money or sends partway through the month.
What the Broadcast quota actually allows
An Official Account can send up to 4 broadcast messages per subscriber per month, capped at 1 per day, and only inside the 6:00–19:59 window — nothing scheduled for an evening cart-abandonment nudge goes out at that hour.
The bigger constraint for win-back specifically: Broadcast only reaches subscribers who've been active on Zalo in the last 30 days. A contact who's genuinely gone quiet for longer than that isn't reachable through Broadcast at all, no matter how much of the monthly quota sits unused.
- Up to 4 messages per subscriber per month
- 1 per day, sent only between 6:00 and 19:59
- Only reaches subscribers active in the last 30 days
The session window is a separate, tighter clock
Outside Broadcast, an Official Account also gets a 48-hour free-messaging window that opens each time a subscriber messages first, with 8 free replies inside it before a small per-message charge applies. That window has nothing to do with the Broadcast quota — it's a different mechanic entirely, and it closes fast if the subscriber doesn't write back.
Automated sends through the OpenAPI are narrower still: they only go through within 7 days of the subscriber's last interaction. Reaching someone further back than that needs the human-agent console, which can send up to 365 days out, or falls back to Broadcast or a paid template message.
Stacked together, that's three separate clocks running on three separate rules — the session window, the OpenAPI's 7-day automation cutoff, and the Broadcast quota's 30-day reach limit. A win-back flow that only checks one of the three will look correct in testing and then quietly stop delivering to part of the list once real dormancy sets in.
Designing a win-back cadence around the quota, not around the promo calendar
Four sends a month sounds generous until it's mapped against everything competing for it — cart abandonment, restock alerts, loyalty milestones, seasonal pushes. Treating Broadcast like an always-on channel and firing a message every time something's worth announcing burns the quota on the wrong moments, leaving nothing for the one that actually brings someone back.
The subscribers Broadcast can even reach — those active in the last 30 days — are, by definition, not fully dormant yet. That makes Broadcast a tool for early-stage win-back, catching people before they go quiet for good, not a tool for reaching someone who's already been gone two months.
For contacts past that 30-day mark, a paid template message through ZBS is still an option — 200₫ per message, one call-to-action only, with a second CTA adding another 100₫ on top. It isn't capped by the same monthly quota, which makes it the better fit for genuinely dormant contacts Broadcast can no longer see.
Building the calendar so it survives contact with the quota
Rank the four monthly sends before the month starts, not as messages come up. A fixed slot for the highest-value trigger — cart abandonment, or a lapsing-soon reminder — protects it from getting bumped by a lower-value promotional blast that happened to get built first.
Keep one slot deliberately unassigned. Reactive moments — a flash restock, a service issue worth apologizing for — need a home too, and a fully booked quota has no room to react to anything that wasn't planned two weeks out. Per Zalo's own published limits, that's the ceiling to plan inside, not a number to push against and hope it flexes.

