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
tagsin 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.