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

# Contacts

> Everyone who has called or been called, and what you know about them.

A contact is created the first time a number calls in or is dialled out —
whether a person or a virtual agent answered. You do not have to load anybody
for the list to fill.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/firetone/images/contacts-list.png" alt="Contacts" />

<Note>
  Withheld and anonymous caller IDs create **no** contact. Recording them would
  produce one shared "customer" whose history is a mixture of unrelated people.
</Note>

## Attributes

Structured fields you own: an account number, a plan, a renewal date. These come
from a CSV import or from editing a contact, and they are what an **agent sees
when the call connects**.

That is worth knowing when you choose what to export: those columns are not
metadata, they are what your colleague reads while talking to the person.

## Attributes are merged, never replaced

Importing a file again adds and updates fields; it does not wipe the ones
already there. An import that flattened them would quietly destroy work an
earlier campaign or a person had done.

The consequence: a value cannot be *removed* by re-importing. Edit the contact.

## Memory

Separate from attributes, and the distinction matters. **Attributes** are
tenant-owned truth somebody typed. **Memory** is what was learned in
conversation, and each entry carries the call it came from — so when an agent
says something wrong, the fact can be traced rather than argued about.

## Do not call

Marking a contact do-not-call takes them out of every campaign's dialling, at
the point the dialler picks work up rather than as a filter afterwards. They
still appear on a campaign's list, shown as **suppressed**, so the sheet says
who will never be rung rather than quietly omitting them.

## How numbers are matched

One customer is one contact, however their number is written.
`+919216217231`, `919216217231`, `9216217231` and `09216217231` all find the
same contact: on a call, in a search, when an agent adds details, and in a
list import.

* A number written **without its country code** is read in a country. That's
  your organisation's **Country** by default (Organisations → edit), or the
  one you choose when adding a contact or importing a list. If a number isn't
  valid in that country, it's kept exactly as typed rather than guessed.
* **New contacts** are saved in full international form (`+91…`). Contacts
  saved before this are matched as they are and never rewritten.
* **Adding a number that already exists** in any form is refused, and the
  message names the contact it belongs to.
* **Do-not-call** applies to every form of the number.
