CUSTOM FIELDS & TAGS

A real contact database for WhatsApp — unlimited fields, unlimited tags , groups that power your broadcasts.

Build the contact model your business actually needs. Thirteen custom field types (text, number, date, dropdown, toggle, phone, URL and more), unlimited tags, lifecycle stages, and contact groups you target directly from a broadcast. Import a spreadsheet with a field-mapping wizard, edit thousands of contacts at once, and merge duplicates safely. No per-plan caps on fields or tags.

app.whatsmark.io/setup/custom-fields

New Custom Field

Define a new custom field for your contacts.

* Label

Company Name

* Slug

company_name

* Type

Text
Required
Show in Table
CancelSave

Message

Enter @ to add merge field

Start on WhatsApp, expand when you are ready

Built for WhatsApp first — Messenger and Instagram when you need them.

WhatsMark runs your marketing, sales, and support on WhatsApp today. Add Messenger and Instagram to the same shared inbox and automations whenever you want — no new tool, no re-platforming.

WhatsApp
WhatsApp

Broadcasts, chatbots, templates, and a shared team inbox — on the official Cloud API.

Live
Facebook Messenger
Messenger

Campaigns, instant templates, and automation straight from your Facebook Page.

Live
Instagram
Instagram

DM automation and campaigns for Instagram — landing soon.

Coming soon

Sound familiar?

Three things every D2C team already lives with

Twenty labels is not a database

Meta's free WhatsApp Business app caps you at 20 custom labels and gives you zero custom fields. The first time someone asks for "all Mumbai customers tagged men's-shoes", labels can't answer — you end up with a spreadsheet on the side and a memory of which agent owns which label. That's not a CRM, that's a guess.

Most BSPs cap your data model by plan

AiSensy: 5 attributes on Basic, 20 on Pro, unlimited on Enterprise. Wanotifier: 10 tags+attributes on Essentials, 25 on Advanced. So the moment your business needs a 26th field — `loyalty_tier`, say — you're forced into the top tier or you start abusing existing fields. The platform's pricing model is shaping your data model. That's backwards. WhatsMark doesn't cap fields or tags by plan.

Re-importing a list quietly creates duplicates

Export from your CRM, import to your WhatsApp tool, export again next month, re-import — and now you have two of every contact, each with half the history. A safe importer skips the phone numbers it already has instead of duplicating them, and gives you a clean way to merge the duplicates you already inherited. Most tools do neither.

The four pieces

What you actually need to run WhatsApp marketing at scale

Thirteen field types, unlimited fields

Text, Text Area, Number, Date, Email, URL, Phone, Dropdown, Radio, Checkbox, Toggle, Color, and Time — a real typed field taxonomy, not a flat bag of strings. Add `loyalty_tier` (dropdown: bronze/silver/gold), `lifetime_value` (number), `birthday` (date), `consent_marketing` (toggle), `crm_link` (URL). Fields are unlimited on every plan — no 5/20/25 cap — and the schema is yours to evolve as the business does.

Unlimited tags + lifecycle stages

Tag contacts by interest (`men's-shoes`, `women's-shoes`), source (`ctwa`, `organic`, `referral`), language (`en`, `hi`, `ta`), or any axis you invent — past Meta's 20-label ceiling, with no per-plan cap. Every contact also carries a lifecycle stage (Guest → Lead → Customer) plus your own editable Status and Source lists, so you can see where each contact sits at a glance.

Groups that power your broadcasts

Organise contacts into named groups — `diwali-shoppers`, `wholesale-buyers`, `clinic-patients` — and target a group directly when you launch a broadcast, no re-export. Add or remove hundreds of contacts from a group in one bulk action. Groups are the working list primitive here: build one, name it, and reuse it across campaigns.

CSV/XLSX import, bulk edits, safe merge

Import a spreadsheet with a field-mapping wizard — point each column at the phone key, a standard field, or an existing custom field — processed in the background with a downloadable error report. Numbers you already have are skipped, not duplicated. Bulk-edit a selection or a whole filter: add or remove tags, change lifecycle, assign an owner, add to a group. And when you inherit duplicates, merge them by hand — labels and groups union onto the record you keep. Every bulk change lands in an audit log with who did it and when.

Scenario 01 / Festive targeting (e-commerce)

Tag the right shoppers, group them, broadcast to the group.

A D2C footwear brand wants the Diwali blast to reach the right customers. It imports last quarter's buyers with a mapped CSV, bulk-tags the men's-category shoppers `mens-shoes` and adds the Mumbai-metro ones to a `diwali-mumbai` group in one action. When the broadcast goes out, the brand targets that group directly. After the campaign, it bulk-tags the responders `diwali-2026-converter` — a ready-made seed list for next year.

  • CSV/XLSX import with a field-mapping wizard; existing numbers are skipped, not duplicated
  • Bulk-tag a filtered selection, then bulk-add them to a named group in one action
  • Broadcast targets the group directly — no re-export, no copy-paste list
  • Post-campaign, bulk-tag responders `diwali-2026-converter` for next year's seed list
9:41
WhatsMark
WhatsMark.io

online

📋 (internal note): tag mens-shoes matched · added to group diwali-mumbai via bulk action

Hi Aanya ✨ Diwali pick for you — 25% off the Chelsea boot in your size, today only. Free shipping above ₹1,499.

Shop Now
View Collection

10:14 AM ✓✓

Shop Now

10:19 AM

Delivered ✓ Read ✓ — here you go, size 7 reserved for the next 30 minutes at checkout.

10:19 AM ✓✓

📋 (internal note): responder bulk-tagged diwali-2026-converter — seed list for next year's broadcast

Scenario 02 / Lifecycle fields (SaaS)

Model the trial journey in typed custom fields — then act on them.

A B2B SaaS team models its trial funnel on the contact record: `plan` (dropdown: trial/starter/pro), `trial_day` (number), `first_action_at` (date), `renewal_date` (date), `consent_marketing` (toggle). These fields sync in from the product backend via the REST API, one contact at a time. The CX team filters the contact list to day-7 trials with no activity and reaches out by hand from the shared inbox, updating the lifecycle stage to Customer once they convert.

  • Typed fields — dropdown, number, date, toggle — model the whole trial journey on the contact
  • Fields updated from the product backend via the per-contact REST API (Professional plans and up)
  • Filter the contact list on status, source, lifecycle, and owner to find the right cohort
  • Bulk-change lifecycle to Customer on conversion; every change is captured in the audit log
9:41
WhatsMark
WhatsMark.io

online

Hi Karan — quick check-in on day 7 of your Helix trial. Saw you set up the workspace but no data source connected yet. Want a 5-min walkthrough?

11:02 AM ✓✓

Honestly yes — was stuck on the BigQuery auth step.

11:08 AM

📋 (internal note @csm-priya): Trial day 7, first_action_at still null. BigQuery auth blocker — known issue with service-account JSON. Assigning to Priya for a hand-hold call.

11:09 AM ✓✓

Priya from CSM here. I'll grab 15 min today and unblock the BigQuery step end-to-end. Free at 4 PM IST?

11:11 AM ✓✓

Once you're connected I'll flip your lifecycle to Customer — welcome aboard in advance.

Book 4 PM IST
Try Another Time

11:12 AM ✓✓

Scenario 03 / Clean migration (healthcare)

Move a messy patient list in, merge the duplicates, keep the history.

A multi-speciality clinic moves off a spreadsheet-and-phone setup. It imports its patient list with the field-mapping wizard — mapping `uhid`, `specialty` (dropdown), `preferred_doctor` (dropdown), `last_visit_at` (date) to custom fields — and the importer skips the numbers already in the system instead of doubling them. For the handful of genuine duplicates that predate the migration (a patient added twice, once per front-desk), reception merges them by hand: the record they keep inherits every label and group from the other, and no chat history is lost.

  • Field-mapping wizard maps clinic-specific columns (UHID, specialty, preferred doctor) to typed custom fields
  • Re-running the import skips existing phone numbers — no accidental patient duplicates
  • Manual merge unions labels and groups onto the record you keep; conversation history is preserved
  • Editable Status and Source lists let the clinic model its own intake stages
9:41
WhatsMark
WhatsMark.io

online

📋 (import): patient-list.xlsx mapped — uhid, specialty, preferred_doctor, last_visit_at → custom fields. 1,842 rows, 1,796 imported, 46 skipped (existing numbers).

📋 (import): 2 duplicate front-desk entries found for Sunita (UHID-4422 and UHID-4501, same phone number).

📋 (merge): reception merged UHID-4501 into UHID-4422 — labels, groups, and full chat history unioned onto the kept record. No history lost.

Hi, is my cardiology appointment with Dr. Mehra still on for Thursday?

2:47 PM

Yes Sunita — Thursday, 11:00 AM with Dr. Mehra, same as before the merge. Your full visit history is still on file.

2:49 PM ✓✓

What your customers see

Sample contact records typed fields in action — across three verticals.

Real WhatsApp threads — drop them straight into your account or use them as starting templates.

E-commerce contact record
9:41
WhatsMark
WhatsMark.io

online

phone: +91 98XXXXXX12 · first_name: Aanya · last_name: Kapoor · city: Mumbai · language: hi

 ✓✓

lifecycle: Customer · loyalty_tier: silver (dropdown) · lifetime_value: 18420 (number)

 ✓✓

last_purchase_at: 2026-04-22 (date) · consent_marketing: on (toggle)

 ✓✓

crm_link: https://… (url) · brand_colour: #3b0764 (color)

 ✓✓

tags: men's-shoes, mumbai-metro, ctwa-acquired · group: diwali-mumbai

 ✓✓

SaaS contact record
9:41
WhatsMark
WhatsMark.io

online

phone: +1 415XXXXXXX · first_name: Karan · company_name: Helix Analytics (text)

 ✓✓

plan: trial (dropdown — trial / starter / pro) · trial_day: 7 (number)

 ✓✓

first_action_at: (empty — no key action yet, date) · renewal_date: 2026-06-04

 ✓✓

consent_marketing: on (toggle) · crm_link: https://app… (url, HubSpot record)

 ✓✓

lifecycle: Lead · tags: trial-day-7-no-action, smb, en · group: q3-trials

 ✓✓

Healthcare contact record
9:41
WhatsMark
WhatsMark.io

online

phone: +91 99XXXXXX44 · first_name: Sunita · uhid: UHID-4422 (text)

 ✓✓

date_of_birth: 1974-02-11 (date) · specialty: cardiology (dropdown)

 ✓✓

preferred_doctor: Dr. Mehra (dropdown) · last_visit_at: 2026-02-09 (date)

 ✓✓

consent_marketing: off (toggle, service-only) · hms_link: https://hms… (url)

 ✓✓

lifecycle: Customer · tags: follow-up-due, hi · group: cardiology-patients

 ✓✓

Integrations

Plays well with what you already use

Connect natively where we have direct adapters. Use webhooks or our REST API for everything else. Honest status flags — we don't pretend an integration ships when it doesn't.

Ge

Generic CSV / XLSX import

Bulk import with a field-mapping wizard

Available
An

Any CRM / backend

Per-contact field & tag writes via the REST API

Via API / Webhook
Sh

Shopify

Store-event triggers into flows (contact match by phone)

Available

By the numbers

Specific, defensible, no fabricated stats.

Custom field types

13

Text, number, date, dropdown, toggle, phone, URL, color, time and more

Custom fields & tags per tenant

Unlimited

Every plan, every tenant — no 5/20/25 field or tag caps

Bulk edit in one action

Thousands

Tag, group, reassign, or restage a whole filter — with an audit log

FAQ

Common questions, honest answers

Don't see your question? Email me at mailto:[email protected] — I read and answer every one personally.

A label (we call them tags) is a single membership flag — `vip`, `mumbai-metro`. A custom field is a typed property with a value — `lifetime_value = 18420`, `birthday = 1974-02-11`, `loyalty_tier = silver`. WhatsMark gives you both, unlimited on every plan. Meta's free WhatsApp Business app gives you 20 labels and zero fields — that's the floor most buyers are escaping.

Thirteen: Text, Text Area, Number, Date, Email, URL, Phone, Dropdown, Radio, Checkbox, Toggle, Color, and Time. Dropdown, Radio, and Checkbox let you define a fixed set of options; Toggle is a simple on/off flag for things like marketing consent. It's the kind of typed field taxonomy a HubSpot or a Salesforce gives you, applied to your WhatsApp contact list.

You can't inside Meta's free Business app — it caps at 20 custom labels. To go past that you move to a Cloud-API platform like WhatsMark, where tags are unlimited on every plan. Most BSPs also cap by plan: AiSensy allows 5 attributes on Basic, 20 on Pro; Wanotifier allows 10 tags+attributes on Essentials, 25 on Advanced. WhatsMark doesn't ladder fields or tags by plan — they're unlimited on every tier, including Free.

Two truthful ways today. Organise contacts into a named group and target that group when you launch a broadcast — the cleanest reusable option. Or, in the campaign wizard, filter the contact list by status, source, lifecycle stage, or owner (and search), then select the matches. Rule-based self-updating "segments" — the Mailchimp/Klaviyo style where a saved rule re-evaluates at send time — aren't part of the product today; groups and filters are the honest, shipped way to build an audience.

Filter the contact list to the people you want — say all Mumbai men's-shoes contacts — or select them individually, then choose Bulk Edit. You can add or remove tags, change the lifecycle stage, add to or remove from a group, assign an owner, or activate/deactivate — on the whole selection in one action. Large batches run in the background so the UI stays responsive, and every bulk change is written to an audit log with the acting user and timestamp. (Bulk-setting a *custom* field value across many contacts isn't supported yet — custom fields are edited per contact or via the API.)

Upload a CSV or XLSX, run the field-mapping wizard — point each column at the phone key, a standard field, or an existing custom field — and the file is processed in the background with a downloadable error report for any rows that fail. Duplicates are handled by skipping: if a phone number already exists in your account, that row is skipped and noted in the report rather than creating a second contact. Import doesn't overwrite existing contact data — it adds new contacts and leaves the ones you already have untouched.

The phone number is the unique key, so the importer won't create a duplicate on its own. For duplicates you inherited from elsewhere, merge is a deliberate action you run on two records: you pick which one to keep, and the other's labels and groups are unioned onto it while any blank fields on the record you keep are filled in from the other. Notes follow the merge and conversation history is preserved for both identities — nothing is deleted. It's a safe, reviewable merge, not an automatic guess.

Yes, per contact — the REST API lets you create or update a contact with its custom fields, tags (labels), and groups, and there's a batch-create endpoint for up to 100 at a time. API access is a paid-plan capability (it's off on Free) and is metered by a monthly request quota. Note there's no bulk "set this field on 4,000 contacts" API call today — bulk field changes are done per contact or through the in-app bulk actions for tags, groups, and lifecycle.

Every WhatsMark workspace has its own fully isolated contact database, fields, tags, and groups — so an agency running each client as its own workspace already gets clean per-client separation with nothing shared between them. A single master account that provisions and switches between client sub-accounts from one dashboard is on our B2B roadmap, not shipped yet — so today the honest setup is one workspace per client. Ask us where the reseller/sub-account work stands if that's central to you.

Not ready to start today?

Get the WhatsApp automation starter kit —
the flows every business should run.

No spam — just the starter kit in your inbox.