Nothing opens automatically just because a rep showed up
A visit by itself doesn't start a messaging relationship. The shop owner has to interact with the Official Account during the visit — scan the QR code, tap follow, or send one reply — and that interaction is the timestamp both the 48-hour and the 7-day clocks measure from. Skip this step and there's no clock to design a follow-up around at all.
Once that interaction happens, a 48-hour window opens with 8 free inquiry messages inside it. Every fresh reply from the owner resets both the window and the message count. Once the window lapses or the free messages run out, each further message costs 55₫.
This is an easy step to skip without noticing. A rep leaves a business card, or a shop owner glances at a QR code without actually scanning it, and the visit still gets logged as complete in the CRM even though no Zalo interaction ever happened. From the platform's point of view there's no clock running at all, and no follow-up message — free or paid — is going anywhere until that changes.
- Get the owner to scan the QR code or send one message during the visit itself — that's the timestamp everything else counts from.
- Inside the 48-hour window, send only the essentials: pricing, minimum order, delivery terms — there are 8 free messages before charges start.
- A short reply from the owner is worth more than a long message from the rep, because only their reply resets the clock.
The 7-day clock is the one that kills a sequence quietly
The OpenAPI that drives an automated follow-up sequence can only push a message within 7 days of the shop owner's last interaction. After that, a send call to that contact simply doesn't deliver — most integrations show no error, so the sequence looks like it's still working while nothing is reaching the shop.
There's a separate path for older contacts: a staff member can send messages by hand from the OA console for up to 365 days after the last interaction. That allowance exists for a person occasionally checking in on an old lead, not for an automated cadence running across a whole route of shops.
None of this shows up as a dramatic failure. A supervisor checking a dashboard mid-month can see a follow-up sequence marked as active for a shop that hasn't heard from the account in three weeks, because 'active' in most tools just means the sequence hasn't been cancelled — not that any message actually landed.
Design the cadence around the clock, not around what a rep remembers
A field rep covering a full route can't be expected to track a 7-day cutoff for every shop they've visited, on top of remembering pricing, objections, and next steps. The clock has to be a system rule, triggered off the last-interaction timestamp, not a mental note.
The pattern that holds up: automated messages run from day 1 through day 6, using whatever information the visit produced. On day 6, if there's been no reply, the thread gets flagged for a person to send one manual nudge before the automated window closes on day 7. That single handoff catches most of the shops that would otherwise go silent for no reason anyone can see.
Flagged should mean something concrete: the shop shows up on that rep's list for the day, with the last-interaction date visible, so sending one message is a two-minute task rather than a research project. If the handoff requires digging through a visit history to remember what was discussed, it won't happen consistently across a full route.
What's actually left once the 7 days are gone
Past day 7 with no reply, the OpenAPI can't reach that contact anymore. There are two ways back in: a template message sent through ZBS, which costs 200₫ and is capped at one call-to-action button — asking for a second CTA on the same message adds another 100₫, a 50% jump in cost for one extra button — or a manual send from the OA console, which keeps the 365-day allowance open for a person to try again by hand.
Both options cost more, in money or in a person's time, than the free window that closed on day 7. That's the actual argument for building the day-6 handoff in the first place: it's cheaper to catch a quiet shop before the cutoff than to pay to re-open the conversation after.

