¶ Visible tag
An agent can see a tag on a conversation or contact and reasonably believe the person is included in a segment.
Operations
Repair historical drift between tag association tables. ReplyBox has one org-wide Tag catalog, but tags can appear inconsistent when conversation, contact-directory, and legacy contact associations fall out of sync.
reconcile-tags
First move
The command reports and repairs historical drift. Use it when a tag is visible in one surface but audience filters or contact-directory state disagree.
cd apps/api
python -m app.cli reconcile-tags
Why it matters
The directory side is load-bearing for broadcasts because audience filters read contact-directory tags.
An agent can see a tag on a conversation or contact and reasonably believe the person is included in a segment.
If contact_directory_entry_tags is missing the same relationship, the durable audience source is incomplete.
Broadcast filters read the directory association, so historical drift can exclude people without making the tag look broken in the inbox.
Data model
tagsThe org-wide tag catalog. It names the tag once for the workspace.
conversation_tagsConversation-level association used by inbox workflows and historical conversation context.
contact_directory_entry_tagsThe broadcast-critical directory association. Audience filters use this side.
contact_tagsLegacy contact association that can participate in historical drift and repair.
When to run
Reconciliation is for data drift. If the product behavior itself is unclear, start with the tags product guide first.
crm_card_tags; CRM card labels stay outside tag mirroring, broadcast filters, and reconcile-tags.
Triage flow
Capture the tag name, workspace, contact, conversation, and affected broadcast or saved filter.
reconcile-tagsLet the command report and repair historical drift before attempting direct database edits.
Verify contact_directory_entry_tags now matches the expected segment behavior.
Record the command output, affected ids, and whether this was drift, product misunderstanding, or a new bug.