Tags

Flat tag-based segmentation. Replaces nested lists. Color-coded for visual scanning.

Why tags, not lists

A contact can hold many tags simultaneously, in any combination. Lists force you to duplicate contacts across overlapping audiences ("paid customers" + "newsletter subscribers" = two list memberships, two unsubscribe states). Tags collapse that into a single contact with two labels.

Add tags

  • Per contact: contact detail → tag input → type or pick.
  • Bulk: select rows → "Add tag" / "Remove tag".
  • On import: apply a tag to every row of a CSV. See CSV import.
  • From integrations: every poll-based integration (Firebase, Supabase, Sheets, Airtable) can apply tags on contact upsert.
  • From the API: include tags in the upsert payload.

Use tags as segments

  • Campaign recipients: filter by tag (one or many, AND/OR).
  • Sequence triggers: auto-enroll any contact who gains tag X.
  • URL filters: /contacts?tags=customer,paid.

Color coding

Each tag gets a deterministic color (djb2 hash → 10-color palette). Same tag = same color across the dashboard. No manual configuration.

Tag registry
The Manage tags dialog (Contacts → tag dropdown → Manage) lets you rename or delete tags across all contacts at once. Tags with zero contacts survive in the registry until you delete them — useful for prepping segments before contacts arrive.