> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tied.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Labels and custom attributes

> A taxonomy automation and reporting can share.

A label and a custom attribute solve the same underlying problem — marking something about a conversation or a contact that Tied does not already track — but they are shaped for different jobs.

## Labels — a shared, flat set of tags

A label is a title, a color, an optional description, and a switch for whether it shows in the sidebar. Titles are unique per account and case-folded automatically, so `VIP` and `vip` are the same label whether you meant them to be or not.

Labels apply to conversations and contacts. Renaming one updates every place it is already used rather than leaving the old name orphaned, so renaming a label your team has been using for months is safe to do.

## Custom attributes — typed fields

A custom attribute belongs to either a conversation or a contact, and — unlike a label — has a real type: text, number, currency, percent, link, date, a fixed list of values, or a checkbox.

<Info>
  **You cannot shadow a built-in field.** Tied blocks a custom attribute key that collides with a
  standard field the object already has — `status`, `priority`, `assignee_id` and similar on a
  conversation; `email`, `phone_number`, `blocked` and similar on a contact. If a key you want is
  rejected, that is almost certainly why.
</Info>

An attribute can also carry a regex pattern to validate what gets typed into it, with a hint shown to whoever is filling it in.

## What automation reads

An automation rule's conditions can match on a label directly, and on any custom attribute key your account has defined — not just the built-in list. Its actions include adding and removing labels. A macro carries the identical add-label and remove-label actions, so anything you can automate on a schedule, you can also trigger by hand.

## What reporting reads

Every label carries its own scoped view of the conversations, messages and reporting events it has touched. That is what makes a question like "how many resolved conversations were labeled billing this month" something Tied can actually run as a query, rather than something you reconstruct from memory or a spreadsheet.

<Tip>
  Build your label set with reporting in mind from the start. A label added after the fact only
  covers conversations going forward — it has no way to retroactively tag conversations that closed
  before it existed.
</Tip>

## Next

<CardGroup cols={2}>
  <Card title="Automation rules" icon="workflow" href="/automation">
    Conditions and actions that key off labels and custom attributes.
  </Card>

  <Card title="Contact attributes" icon="user-round" href="/contacts/attributes">
    The contact-side half of the same custom attribute system.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.