WhatsApp Customer Segmentation: Use Tags to Send the Right Message to the Right People
A tag is the cheapest CRM a WhatsApp team can have. Here is a tag scheme that stays tidy, how to add and remove tags automatically in MonoChat flows, and how to filter a broadcast by them without breaking Meta's opt-in rules.
MonoChat Team Updated: 4 min read
On this page
Most WhatsApp inboxes start the same way. Every customer is a name and a number, and the only way to remember that Mrs. Haddad asked about the premium plan is to scroll up. A few hundred contacts later, that stops working: you cannot tell who is a lead and who is a buyer, you send the same promotion to everyone, and the people who did not want it block you.
Segmentation fixes this, and you do not need a separate CRM to start. A tag on the customer, kept consistent, is enough to reply, route and broadcast differently to different groups.
Start with decisions, not labels
A tag is only worth creating if it changes something you do. Before you add one, finish the sentence “If a customer has this tag, then…”. Three useful answers:
- Who gets which message: only customers tagged
interest:skincarereceive the skincare offer. - Who handles the chat: customers tagged
vipgo to the senior team, see AI-to-human handoff. - Which flow runs: customers tagged
stage:quote-sentget a follow-up after two days.
A tag that does none of these is clutter. Drop it.
A tag scheme that stays tidy
Use one prefix per type, lower case, no spaces. Three types cover most teams:
| Type | Examples | Answers |
|---|---|---|
interest: | interest:skincare, interest:hair | What do they want? |
stage: | stage:lead, stage:quote-sent, stage:customer | Where are they in the buying path? |
consent: | consent:marketing, consent:stopped | What may we send them? |
Write the scheme down once and share it with the team. The most common failure is not a missing tag, it is Skincare, skin care and skincare-interest all meaning the same thing.
Tag customers automatically with a flow
Tagging by hand works for ten chats a day and fails at a hundred. In MonoChat, flows do it while the customer is talking to you. The relevant nodes are:
- Set Customer Tag adds one tag to the customer. Variables are allowed, so a tag can be built from an answer the customer gave.
- Remove Customer Tags removes one or more tags. Separate several tags with commas. Removing a tag the customer does not have changes nothing, so the flow never fails on it.
- Customer Tag condition, in an If node, checks whether the customer has any of the listed tags (includes) or none of them (not-includes).
A flow that starts on New Message Received can ask a Question Answer node which product the customer is interested in, add interest:skincare for the answer, and remove stage:lead when the same customer later pays. The same flow can use the Customer Tag condition first, so a customer who already carries stage:customer skips the introduction.
Tags a flow adds appear immediately when you filter conversations by tag, so a supervisor can open the inbox and see the group at once.
Filter a broadcast by tag
The MonoChat CRM lists contacts and lets you filter them by tags, among other options such as who the contact is assigned to, when they were created or updated, language and profile fields. When you send a broadcast from the CRM:
- Apply the filter for the group you want, for example
interest:skincare. - Click a filter option once to include it, twice to exclude it. Exclude
consent:stoppedthis way. - Save the filter if you will use it again. Saved filters are available in the Custom Filters step of the broadcast, even with no contacts selected by hand.
- Pick an approved template and send. Each recipient then has a record under Bulk Messaging, with delivery status per person.
Segmented sends also help you stay inside Meta’s limits. WhatsApp may cap how many marketing templates one person receives from all businesses, and undelivered messages fail with error code 131049, as the guide to sending bulk messages without a ban explains. A relevant message to a small group is read; the same message to everyone is blocked.
Consent comes first
A tag records what you know. It never grants permission. Meta’s WhatsApp Business Messaging Policy requires that a person gave you their number and opted in to hear from your business before you message them, and that you honor requests to stop. See WhatsApp opt-in for wording and where to collect it.
Make consent part of the scheme:
- Add
consent:marketingonly where the opt-in was actually collected, for example from a flow with the Opt-in node. - Build the audience as “has
consent:marketing” and excludeconsent:stopped. - When a customer asks to stop, tag them
consent:stoppedand removeconsent:marketingwith Remove Customer Tags, so the next broadcast leaves them out.
Keep the scheme healthy
- Review monthly. Open the tag list, merge near duplicates and delete tags nobody filters by.
- Remove stale stages. When a customer moves from lead to buyer, remove the old stage tag in the same flow, so a customer never sits in two stages.
- Keep notes for people, tags for rules. “Prefers calls after 6 pm” belongs in a note; “gets the renewal reminder” belongs in a tag.
A worked example
A skincare shop runs a click-to-WhatsApp ad. The welcome flow asks “Which are you looking for: skin, hair or both?” and tags interest:skincare or interest:hair, plus stage:lead. After a purchase, a second flow removes stage:lead, adds stage:customer, and the Customer Tag condition keeps buyers out of the first-order discount. Two weeks later the shop broadcasts a hair-care template to customers who have interest:hair and consent:marketing, excluding consent:stopped. Nobody receives a message for something they did not ask about.
Sources
- WhatsApp Business Messaging Policy
- Meta for Developers: per-user marketing template limits
- MonoChat help center: Flows and Broadcast Messages
- MonoChat changelog v3.8.36 (Remove Customer Tags action and Customer Tag condition, 26 Oct 2026)
Put this into practice with MonoChat