Playbooks · 5 min read
Logistics on WhatsApp: You Can Only Say What You Scanned
Logistics is the one vertical where automated messaging is not a marketing idea. It is operations. A shipment generates events whether anybody messages about them or not, the consignee genuinely wants to know, and the alternative is a call centre answering the same question four hundred thousand times.
So the question is not whether to automate. It is how much of what you know you are entitled to say.
An event happened. A window is a guess.
Everything in this post comes from one distinction.
Your system holds events: picked up, bagged, departed a hub, arrived at a hub, out for delivery, attempted, delivered, returned. Each of those is a record with a time on it, created because somebody scanned something. Those you can state, in your own name, with confidence.
What your system also holds is an estimate, and an estimate is a different kind of object. It came from a model, or a lane average, or a promise made to the shipper. It is not a record of anything that happened. And an estimate stated in a message stops being an estimate — to the person reading it on their phone, "arriving tomorrow" is a commitment from the company that has their parcel.
The last scan is a fact. The next one is a hope with a timestamp attached.
The practical rule: an automated message may report the latest event and when it was recorded. If it carries an estimated window at all, the estimate must be labelled as one and attributed, and it must never be the headline.

The exception is the whole job
Any operator will tell you that ninety-something in a hundred shipments need no communication at all. The messages that matter are about the ones that went wrong, and those are the ones a template handles worst.
- Address not found. The genuinely useful automated message in this business: the parcel is at the delivery hub, the address could not be located, and here is how to correct it. It saves a return leg, and it is entirely a statement about what happened.
- Consignee unavailable. Similar, with one caution — "nobody was home" is a claim about a person, and when it is wrong it makes them angry. Word it as what the field system recorded, not as an accusation.
- Held for a reason. Payment pending, documentation, an operational hold. State the category and route to a person. Do not attempt the explanation.
- Damaged or missing. No automation. This is a claim, it involves money and often photographs, and it needs somebody accountable.
The COD collection message and the impersonation risk
A logistics operator handling cash on delivery is in a position criminals like: a legitimate reason to contact somebody about money owed on a parcel they are actually expecting.
Which is why an automated message must never carry a payment link, an account number, or a request to prepay a COD shipment "to avoid a delivery attempt". If your operation genuinely offers a digital payment option at the door, it happens through a controlled flow the customer initiates, and your automated messages should state plainly that you never send payment links over chat. The consistency is what protects the customer, because your name and photograph can be copied by anyone.
The same reasoning covers customs and duty messages, which are a favourite pretext. Anything involving a payment demand goes to a person and a channel you control.
The driver's number, and what happens to a thread
An operational detail with a long tail. When a delivery associate messages a customer from a personal phone — to find a gate, to say five minutes — a relationship exists outside the company's systems. That thread contains the customer's number, their address, and often their photograph of a building.
Associates move between employers frequently. Decide in advance whether field communication happens through company-controlled numbers, what is retained, and what a customer's deletion request actually reaches. That is a data protection question, and what it requires of your company depends on facts we do not know and cannot advise on — the shape of it is here, the answer is your own counsel's.
Proof of delivery, and the photograph problem
Field teams capture proof as images: a signature, a parcel at a door, an OTP screen. Customers dispute those the same way, with a photograph of an empty doorstep.
Nothing in this class of tool reads images. A disputed delivery arriving as a picture is, to an automation, an empty message with an angry person behind it. Media routes to a human, unconditionally, and the automation's contribution is to make sure it gets there fast with the tracking reference already attached.

Volume brings its own discipline
At logistics scale, three controls stop being optional: deduplication, so a re-scan does not send a second identical alert; quiet hours, because hub scans happen at 3am and nobody wants a bag-departure notification then; and a rate cap, so a batch job cannot turn into a burst that looks like spam to the platform.
Meta sets categories, template approval rules and pricing for the Business Platform. They vary by country and change; read Meta's documentation when you build, not an article's summary of it.
What we run today
PostEngage answers Instagram comments and DMs on the official Graph API. That is the whole product — there is no WhatsApp in it. This post is about the channel because operators search for it and deserve an accurate description.
For the channel we do run: seven days to answer a comment, twenty-four hours in a DM thread, restarted only by their own next message. Templated replies are free and unlimited, a credit is spent only when the AI writes new text, the free tier is 100 credits with no card, and packs start at ₹499.
Related: order status from the seller's side and the cash-on-delivery confirmation.



