CRM · Customer Data

The fastest signal-to-segment path in the platform

Tags are lightweight labels you stick on contacts — manually, via auto-rules, via flows, via the API. They are the path of least resistance for capturing fast-moving signal: "interested in laptop", "complained about shipping", "needs callback Friday". Stack tags freely. Surface them in segments. Audit every change.

  • Multi-value tags with categories and colors
  • Auto-apply rules from any contact signal
  • Bulk add or remove on filtered audiences
  • Full add/remove audit log per contact
The problem

Tags drift — until they are governed

Tags are the most useful and most abused primitive in any CRM. They start clean: "VIP", "Hot Lead", "Refund Pending". Six months in, the same database has "VIP", "vip", "VIP-Customer", "vip_2023", "vipgold", "Vip ⭐", and nobody remembers which one the broadcast filter is checking. The marketing manager defends "VIPgold" because that is what her flow uses; support uses "VIP-Customer" because that is what was there when she joined. The segment that should be "all VIPs" silently misses 40% of them.

This is what happens when tags are unstructured strings with no governance. The platform lets anyone create a tag by typing it, lets two people type the same idea two ways, and never reconciles. The data eventually lies, and the team's confidence in segments quietly erodes.

Tags in SabNode CRM are governed. Tag names are canonicalised (case-insensitive, whitespace-trimmed, no duplicates). Tags can be grouped into categories ("Status", "Intent", "Source") with controlled vocabularies — only an admin can create a new tag in a category, and existing tags rename across all references atomically. Auto-apply rules eliminate the human typing inconsistency by deriving tags from signals deterministically. The result is a tag library that grows with intention, not entropy.

What it is

Tags, in depth.

A Tag is a labelled flag on a contact, with optional category, color and description. Contacts can carry any number of tags simultaneously — "VIP", "Hindi speaker", "Refund pending", "B2B account" can all live on the same record without conflict. Each tag has metadata: when it was added, by whom (user, flow, rule, API), and an optional expiry date for time-bounded signals like "Promo recipient — expires in 7 days". Tag history per contact is queryable and never overwritten.

Auto-apply rules are the workhorse. Define a rule like "if last_message_intent = refund_request AND no_resolution_in_24h, apply tag refund-escalation". The rule engine evaluates every relevant event and applies tags deterministically — no human typing, no inconsistency. Rules can also remove tags: "if order_status = delivered, remove tag awaiting-shipment". This is how you keep tags accurate over time without manual hygiene.

Tags are second-class citizens to segments deliberately — they are cheap, fast and human-friendly while segments are the rigorous query layer. Most teams use both: tag liberally to capture signals as they happen ("interested in laptop"), then build segments that combine multiple tags with other filters ("tagged interested-in-laptop AND in segment Active-Last-30-Days"). Tags surface in flows (branch on tag), broadcasts (target by tag), and the contact UI (filter and color-coded badges).

Governance is built in. An admin defines tag categories ("Lifecycle", "Intent", "Channel", "Risk") and decides whether each category is open (anyone can add a new tag value) or closed (only admins). The library page surfaces tags by usage, last-applied recency, and contact count — stale tags get flagged for cleanup. Renames propagate atomically: rename "VIP-Customer" to "VIP" and every contact, segment, flow and rule updates in one transaction. No broken references.

Capabilities

Everything you get with Tags.

7 capabilities
01

Multi-value tags

A contact can carry unlimited tags simultaneously. Tags do not conflict — "VIP" and "At risk" can both apply when both are true. Each tag carries metadata: when, by whom, optional expiry. Tags surface as colored badges in every contact UI.

02

Auto-apply rules

Define rules that add or remove tags based on contact events, field changes, flow outcomes, broadcast engagement, AI outcomes. Rules run in real time. Replaces 80% of manual tagging and eliminates human inconsistency.

03

Categories with vocabularies

Group tags into categories like Lifecycle, Intent, Source. Mark a category as closed (only admins create values) for governance-critical fields, open (anyone) for fast-moving signal capture. Categories surface as filters in the contact UI.

04

Bulk add and remove

Select up to 50,000 contacts via filter and add or remove tags in one operation. Progress bar, partial failure reporting, and 24-hour undo. The standard tool for mass cleanup after a migration or campaign.

05

Tag expiry and TTL

Apply a tag with a TTL — "Promo recipient" expires in 7 days, "Out of office" expires on a date. Expired tags auto-remove silently. Audit log captures the auto-removal. Replaces manual cleanup of stale signals.

06

Atomic renames

Rename a tag once and every reference — contacts, segments, flows, rules, broadcasts — updates atomically in a single transaction. No half-renamed mess, no broken references. The standard tool for fixing legacy taxonomy debt.

07

Per-contact audit log

Every tag add and remove is logged with timestamp, source (manual / flow / rule / API), and the user or system that triggered it. Surfaces in the contact timeline. Critical for compliance teams who need to prove why a contact was treated a certain way.

Use cases

Built for the way teams actually work.

D2C
Case 01

D2C interest capture mid-conversation

Auto-apply rule: if customer mentions "laptop" or "macbook" or "thinkpad" in any inbound, apply tag interested-in-laptop with 30-day TTL. Marketing builds a segment from the tag and sends a flash sale broadcast. Tag expires automatically; campaign does not re-spam stale leads next month.

SaaS
Case 02

B2B SaaS deal-stage parallel signals

Deals live in Kanban with one stage at a time, but contacts carry parallel intent tags: "needs SSO", "wants HIPAA", "evaluating against competitor X". Auto-applied from conversation analysis. AE prep page shows all active intent tags so the next call addresses every concern, not just the latest one.

Healthcare
Case 03

Healthcare risk flagging

Auto-apply rule on AI conversation outcome: if patient mentions chest pain, apply tag clinical-priority with no TTL. Flow watches for the tag and routes to a triage nurse within 5 minutes. Tag also gates marketing — promotional broadcasts skip contacts with clinical-priority active.

Logistics
Case 04

Logistics dispute tracking

Conversation analysis tags contacts with dispute-shipping, dispute-quality, dispute-pricing. Ops dashboards show open disputes by type. Tag removed automatically when the resolution flow completes. Replaces a spreadsheet that the ops lead used to maintain by hand.

EdTech
Case 05

EdTech course-affinity tagging

Auto-apply tags by inquired course: interested-mba, interested-iit, interested-bank-exam. A single student can carry multiple. Segments combine course tag with other signals to drive targeted nurture flows. Course catalog change updates rules; tags re-derive on next event without manual re-tagging.

How it works

From signup to first send in minutes.

Tags is included on every SabNode workspace. No separate billing, no extra setup — flip it on from your workspace settings.

  1. 01

    Create a tag

    From the contact page, the tag library, or a flow node. Pick a category if one applies. Optional color and description. Save promotes the tag to the library.

  2. 02

    Apply manually or via rule

    Manual: click on a contact, pick a tag. Rule: define the condition in the auto-apply rules page, the engine handles the rest as events flow. Both paths share the same audit log.

  3. 03

    Use in segments and flows

    Filter segments by tag presence or absence. Branch flows on contact_has_tag. Target broadcasts by tag. Tags become the fastest path from "I noticed X" to "automate response Y".

  4. 04

    Govern and clean up

    The tag library page shows usage, recency and stale tags. Rename or merge tags atomically. Mark categories closed when governance matters. Bulk remove obsolete tags from filtered contacts.

  5. 05

    Audit and export

    Per-contact tag history surfaces in the timeline. Export the full tag matrix for analytics or BI. API endpoint lets external systems query and modify tags with the same audit guarantees.

Plays well with

Works with the tools you already ship on.

ShopifyHubSpotPipedriveSalesforceGoogle SheetsSlackZapierMeta WhatsApp Cloud API
Frequently asked

Questions about Tags.

Can't find what you're looking for? Talk to our team.

When should I use a tag versus a custom field?
Use a tag when the signal is binary, multi-value, fast-changing, or experimental — "interested in X", "needs callback". Use a custom field when the signal is structured and singular — `kyc_status` (one of: pending, verified, rejected), `birth_date` (one date). Tags are stack-friendly (a contact can have many), fields are typed and singular. In doubt, start with a tag and promote to a field if the signal becomes load-bearing.
How do auto-apply rules differ from flows?
Auto-apply rules are narrow and fast: they evaluate one condition and add or remove one tag. They run on every relevant event in milliseconds. Flows are broad and orchestrated: they coordinate multiple steps, calls, waits and side effects. If you need to "tag the contact and send a message and update a field", that is a flow. If you need to "tag the contact when X is true", that is a rule. Rules feed flows by changing tag state that flow triggers can observe.
Can I version tag changes?
Every tag change is captured in the audit log with full metadata. A contact's tag history is queryable end-to-end — "what tags did this contact have on 2024-08-15?". Bulk tag operations create a single audit entry covering all affected contacts so the operations team can audit the action without scanning thousands of individual entries. Tag library renames are versioned at the library level.
How does tag expiry work?
When you apply a tag with a TTL — relative ("expires in 7 days") or absolute ("expires on 2024-12-31") — the engine schedules an auto-remove at the expiry moment. At the scheduled time the tag is removed and an audit entry captures the auto-removal. You can extend the TTL by re-applying the tag (which updates the expiry) or remove it earlier manually. TTL is per-application, not per-tag — the same tag on different contacts can have different expiries.
Can I import tags from a CSV?
Yes. CSV import has a tags column that accepts comma-separated tag names. The importer canonicalises names, creates missing tags in the default category, and applies all in one transaction. For more granular control (set TTL per tag, specify category), use the bulk-edit API which accepts JSON per-row tag actions.
What is the limit on tags per contact?
No hard limit. Production contacts carry 5-30 active tags on average, with some power users running 100+ on key accounts. The contact UI virtualises the tag list above 20 so dense profiles stay performant. If you find yourself over 50 tags per contact regularly, consider whether some should be promoted to custom fields with structured values instead.
How are tags handled when contacts merge?
Tag sets union — the merged contact carries every tag from both source contacts, with the earliest timestamp preserved for "applied at". Conflicting TTLs use the longer remaining window. Audit log captures both source histories so the merged contact's tag history is complete. Unmerge (within 30 days) splits tags back to whichever source contact originally received them.
CRM · Customer Data

Ship tags into production this week.

No credit card. No sales call required. Spin up a workspace, plug in a number, and your team is live in under an hour.