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

# Contacts

> Contacts show every number your agents have dealt with, together with its calls, SMS and WhatsApp history.

## What you see

The **Contacts** tab (in the **Observe** section) groups everything that
happened with one phone number: inbound and outbound calls, SMS sent after a
call and WhatsApp messages. One row is one number.

The table shows the number of calls and messages, total talk time, the last
call with its disposition and the date of the last contact. A number on the
**Do not call** list is marked in red, so it stands out before anyone dials
it again.

Search works by number: type the last digits (`123 456`) or the full number
in any spelling. `+48 600 123 456` and `0048600123456` are the same contact.

## Contact history

Clicking a row opens the timeline: calls and messages, newest first. A call
leads to the call details screen with the recording and transcript, a message
shows its text, direction and delivery status.

## The Do not call list

A number on the **Do not call** list is not dialled from anywhere: not by a
campaign, a single call, the API, a lead form, a missed-call callback or a
test call from the panel. A form or missed-call webhook answers
`{"status":"do_not_call"}`, the API answers `403`. No SMS goes to such a
number either: not from a call, not after one, not from the queue. The
person asked not to be contacted, not only not to be rung.

Open the list with **Do not call list** at the top right of **Contacts**. It
shows every number, where it came from and when. There you can:

* add a number by hand,
* import a CSV or a plain list of numbers, one per line. With a header, the
  column called `phone`, `telefon` or `numer` is used; without one, the first
  column holding numbers. Semicolons from Polish Excel work too. A number
  that is already listed is not added twice,
* remove a number that got there by mistake. From then on it may be called
  and texted again.

### Numbers add themselves

The person does not have to ask you. A number lands on the list as **Caller
request** in two ways:

* **During a call.** Every agent on a phone call, outbound and inbound, has
  the built-in `mark_do_not_call` tool and a rule in its prompt: when
  somebody says "please don't call me again" or "take me off your list", the
  agent lists their number, confirms politely and ends the call, without
  arguing. The note on the entry names the call.
* **By SMS.** A reply that is, as a whole, `STOP`, `STOP SMS`, `NIE` or
  `REZYGNUJĘ` (case, Polish letters and a trailing full stop do not matter)
  lists the sender, on plfon and Telnyx numbers alike. The sender gets one
  confirmation SMS, from the number they texted, billed like any other. A
  second `STOP` sends no second confirmation. An ordinary reply that merely
  contains "nie" ("nie mogę jutro") changes nothing.

<Warning>
  A bare `NIE` ("no") is an opt-out too. If your SMS ask for a TAK/NIE answer
  (confirming an appointment, say), word them differently, e.g. "reply 1 to
  confirm, 2 to cancel" - otherwise cancelling a visit also opts the patient
  out of contact.
</Warning>

An opt-out holds across the whole organization, in every campaign and agent:
somebody who asked for peace did not ask about one list only. Later campaign
attempts to the number are skipped.

The one exception is a test call to your own phone, the number from your
registration. A test call to anyone else also keeps to 08:00-21:00 their
local time, like every other outbound call.

## Where the data comes from

Contacts are not a separate database you have to maintain. They are derived
from what is already in the system: completed calls, SMS and WhatsApp
messages. A new number appears after its first call or message, with no
import.

A number in national form (`600123456`) and the same number with a prefix
(`+48600123456`) are two contacts today. Merging by suffix would mean
guessing the country, and a wrong guess would fold two people into one.

There are no names or notes on a contact yet. Ask if you need them.


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