How it actually works
If you cannot explain a tag in five words, it is not a tag. It is a note someone was afraid to delete. Notes belong in a field. Tags are for filters and automations.
Separate the three axes or reporting will always lie. A person can be Google + high-ticket + customer. One tag that tries to be all three will break the next workflow you add.
A taxonomy is a naming spec on one page: source, offer, and status stay separate. Automations only fire on spec tags. Everything else is archived, not 'just in case'.
Tags are switches for filters and automations. They are not notes, not biography, not a place to hide a sentence you were afraid to delete. If you cannot explain a tag in five words, it belongs in a custom field. The spec is one page: prefixes if you need them, no synonyms, three axes that never combine. A person can be source:linkedin + offer:high-ticket + status:customer at the same time. One tag named 'linkedin-high-ticket-customer' will break the next workflow you add because you cannot filter on one axis.
Wire tags at write-in, not in a nightly cleanup. The form, the calendar, the Stripe event, the lead ad — each should apply the spec tag as it writes the contact. Workflows listen only to that list: if a workflow still triggers on a demo tag from a snapshot, you do not have a nomenclature; you have archaeology. Archive junk — do not hide it in a folder of four hundred. Smart lists are rebuilt from spec tags; reporting that groups by tag is otherwise a word cloud.
Two databases show up as: ads report one source, GHL tags another; status:customer exists and the opportunity is still open; automations fire twice because source:google and Google Ads both exist. The intern test is simple — print the spec, pick a contact at random, and read their tags aloud. If you need a translator, the spec is not installed. Automations that 'just need one more tag' are how the list dies. Add a field or add a stage. Do not add a fourth axis in the tag soup.