How to segment contacts on the WhatsApp Business API
Segmentation is the difference between a broadcast that lands and one that quietly burns your quality rating. Instead of blasting the same message to every contact, you split your list into focused audiences — by opt-in source, location, language, purchase history, or how recently someone last messaged you — and send each group content that actually fits. On the official WhatsApp Business API with InfiQ, this is a no-code workflow: you tag and filter contacts inside the InfiQ dashboard, save the audience, and reuse it every time you run a template broadcast. This tutorial walks through it end to end, including the accuracy and cost details most guides skip.
What you'll do
Import and clean your contacts, attach tags and custom attributes, build a saved segment with filters (opt-in, location, language, last-active, order value), test on a small audience, then send category-appropriate templates to each segment. InfiQ handles the API plumbing; you work in a no-code dashboard.Step 1 — Prepare and clean your contact list
Good segments start with clean data. Before you slice anything, make sure every contact carries a valid opt-in and a correctly formatted number, because WhatsApp only permits business-initiated messages to people who agreed to hear from you. In the InfiQ dashboard, import contacts via CSV or connect a source, then let the system flag duplicates and malformed numbers so they never pollute a broadcast. Store phone numbers in full international format so segmentation-by-country works reliably.
- Format every number in E.164 (e.g. +919876543210) — no spaces, no leading zeros.
- Record the opt-in source and date as a field; you will filter on it later.
- Remove or quarantine numbers that bounced or were reported in past sends.
- Standardise one language field per contact so you can route the right template.
Step 2 — Add tags and custom attributes
Tags and attributes are the raw material every segment is built from, so decide your taxonomy before you start clicking. Tags work well for states a contact is in — 'trial', 'paid', 'churned', 'VIP', 'abandoned-cart'. Custom attributes hold values you filter on ranges — city, plan tier, lifetime order value, last purchase date, preferred language. Apply them in bulk on import, or let them update automatically from webhook events and integrations so your segments stay live rather than frozen at import time.
- Keep tag names short, lowercase and consistent — 'vip' not 'VIP customer'.
- Use attributes (not tags) for anything numeric or date-based you'll compare.
- Sync attributes from your CRM or store so segments update themselves.
- Add a 'last_active' timestamp so you can build recency-based audiences.
Step 3 — Build and save the segment
Now combine those tags and attributes into a filtered audience. In InfiQ's segment builder you stack conditions with AND / OR logic — for example, 'opt-in = website' AND 'city = Mumbai' AND 'last_active within 30 days'. The contact count updates as you add filters, so you can see your audience size before committing. Save the segment with a descriptive name and it becomes reusable: every future broadcast can target it, and because the underlying filters are dynamic, a contact who newly matches (or stops matching) moves in and out automatically.
- Start broad, then add one filter at a time and watch the count shrink.
- Name segments by intent — 'mumbai-active-30d' beats 'segment 4'.
- Prefer dynamic saved segments over static one-time exports.
- Always keep an 'opted-in only' condition on any marketing audience.
Step 4 — Test on a small audience, then send
Before a full send, run the message against a tiny slice of the segment — including your own number — so you can confirm the template renders correctly, variables map to the right fields, and the audience logic behaves as expected. Match the template category to the content: marketing templates for promotions, utility templates for order and account updates, authentication for OTPs. This matters for cost as well as approval, because WhatsApp bills per delivered message by category since Meta moved off per-conversation billing on 1 July 2025 — so a well-targeted, correctly categorised send is directly cheaper than a sloppy broadcast to everyone.
- Send to yourself first and read the rendered message on a real phone.
- Verify each {{variable}} pulls from the correct contact attribute.
- Use utility templates for transactional updates, marketing for promotions.
- Ramp volume gradually on a newer number to protect quality rating.
Step 5 — Monitor, refine and re-segment
Segmentation is a loop, not a one-off. After each send, review delivery, read and reply rates per segment, and watch your number's quality rating in the InfiQ dashboard. Segments that consistently under-perform usually signal a targeting or content mismatch — tighten the filters or change the message rather than sending more. Feed reply and click behaviour back into your attributes so your next audience is sharper. Over time you build a library of proven segments you can reuse with confidence.
- Compare read and reply rates across segments to find what resonates.
- Suppress non-responders into a re-engagement segment instead of over-messaging.
- Watch quality rating after every large send and slow down if it dips.
- Move newly qualified contacts into high-intent segments automatically.