Playbooks · 5 min read
Keyword Triggers Where Every Trigger Is a Private Message
On Instagram, a keyword can be shouted in public. Somebody types PRICE under a Reel where four hundred other people can see it, and the automation fires off a comment that was made on your post, on your surface, in front of an audience.
There is no equivalent surface here. No comments, no public replies, nothing under a post that a stranger can leave a word on. Every trigger on this channel is a message that one person typed to a business number and pressed send on, in private, on purpose.
That is not a small difference in plumbing. It changes what people type, how many of them you ever hear from, and where a keyword list has to come from.
People write differently when nobody is watching
A public comment is performative and short. PRICE. LINK. Interested 🙌. It is a codeword, and the codeword exists because the caption asked for it.
A private message is a question. It is longer, it is politer, it opens with hi or hello ji, it apologises for messaging late, and it contains the actual thing the person wants to know rather than a token that stands in for it. Nobody types PRICE into a private thread. They type bhaiya ye wala kitne ka hai.
So a keyword list ported over from a public-comment automation matches almost nothing. The words are the wrong shape.
A comment keyword is a password you handed out. A message keyword is a guess about how a stranger phrases a question.
You only ever see the people who wrote
The second consequence is quieter and worse. On a post, you can see the people who scrolled past without commenting — they show up in the view count, and the gap between views and comments tells you the ask did not land.
Here, the people who did not message you are invisible. There is no denominator. You cannot tell the difference between a rule that nobody triggers because the words are wrong and a rule that nobody triggers because nobody has that question. The only evidence you will ever get is the messages that did arrive, which makes reading them non-optional.
The one case where the string is yours
There is an exception, and it is the entry point. A click-to-chat link can carry a prefilled message, so a link on a product page can open the thread with I want to know about the blue kurta already typed. A QR on a counter can do the same.
That is the closest thing this channel has to a campaign codeword, and it is worth using — a distinct prefilled string per entry point tells you which door somebody came through without asking them.
Two honest caveats. The sender can edit the prefilled text before sending, and some of them will. And a prefilled string only exists for people who arrived through your link; the walk-in who found the number on the invoice types whatever they like.
How matching actually behaves

Case and punctuation fold away, so Price? and price and PRICE are one thing. Nothing else folds. kitna is not kitne, daam is not dam, kitna in Devanagari is not kitna in Latin script, and a matra changes a word rather than decorating it. Each spelling is a separate entry, and the list is long because the language is.
Two more fields decide more than the keyword list does:
Any-of versus all-of. Any-of is a net. All-of is a filter. Use any-of for a question — a customer asking about delivery might say any one of nine words. Use all-of when a single word is ambiguous and needs a second word to disambiguate it.
Negative keywords. The word price appears in what is your pricing model for agencies, which is a sales enquiry, and in the price is too high, I want a refund, which is a complaint that must never get an automated answer. A negative list is how you keep the second one out.
Harvesting, not inventing
- Open the last two hundred inbound messages. Not a sample you remember — the actual scroll.
- Write down the first line of each, verbatim. Spelling mistakes included. The mistakes are the data.
- Group them by what the person wanted, not by the words. You will usually find that four or five wants cover most of the file.
- For each want, list every distinct string that expressed it. Expect nine or eleven entries for one question. That is normal and it is why this works.
- Now write the negative list from the messages that contained the same word and meant something else.
- Re-read the file in a month. New spellings arrive with new customers.
About "free forever"
Keyword triggers are frequently sold as the free tier, and on Instagram that is straightforwardly true in our product: a templated reply costs nothing and there is no cap on how many go out. A credit is spent only when the AI writes new text, one credit per reply. Free tier is 100 credits with no card, and packs start at ₹499.
On the Business Platform the arithmetic has a second term, because Meta bills the business for conversations by category, and those rates and rules are revised more often than any article gets updated. A tool can give away its own keyword matching and the conversation still has a cost attached to it. Take the current numbers from Meta's documentation rather than from a pricing page that summarises them.
Where this stands today
PostEngage does not ship WhatsApp. The product answers Instagram comments and DMs and nothing else; there is no beta, no flag, no plan tier that turns this on. The channel advice above is real, and the tool it describes is not ours.
For the wider picture of what governs this channel in India, start here. For the same matching problem on a surface that does have public comments, the Instagram version is here, and the builder decisions no-code hands back to you are the companion to this post.

