# Customer Contacts

The people behind each customer — who you actually talk to, what they do, and every address and number they write from — identified automatically from your conversations.

**Contacts** lives in the sidebar under a customer's name, beside Client Pulse and Activities. It answers the question you ask before every call: *who do we actually talk to at this company, and what do they do?*

Salfio builds the list for you. Every person who appears in the customer's emails, meetings, and messages — as a participant or as the sender of a message — becomes a contact. Nothing is typed in by hand, and nothing is enriched from the web: everything on the page comes from communications already captured in Salfio.

Your own colleagues never appear here. Contacts are the customer's people; members of your organization are recognized by their email address and phone number and left off the list.

## What each contact shows

**Name and job title.** The title is read from what people actually say in conversation — a signature block, an introduction, a line like "I'll loop in our head of ops". A contact Salfio has not found a title for reads **No job title** rather than guessing one.

Beside the title, a badge says where it came from:

- **AI identified** — extracted from the customer's conversations.
- **Manually edited** — set by a person. Salfio never overwrites a manually set title.

**Nicknames.** Short forms people are actually addressed by, shown as *Also known as "Mar"*. Useful when the name on the account and the name in the thread are not the same.

**Every address and number.** One person often writes from more than one address — a personal mailbox and a shared one, an old domain and a new one — and may also appear on WhatsApp under a phone number. Salfio keeps all of them on the same contact and lists every one. There is no "primary" address: if you have two ways to reach someone, you see both.

**Activity.** When they were last active, how many of this customer's conversations they appear in, and when they were first seen. These counts are scoped to this customer — the same person at two customers shows each relationship separately.

## Sorting the list

The list opens with the most recently active people first, which is usually what you want before a call. Use the control in the top right to switch to:

- **Last active** — most recent first (the default).
- **Name** — alphabetical.
- **Conversations** — the people you exchange the most with, first.

## When the list is empty

A customer with no contacts yet shows an empty state. Contacts are built on a recurring pass over each customer's conversations, so a newly created customer — or one whose integrations have just been connected — fills in shortly after its conversations are imported. Nothing is required from you.

## Keeping contacts accurate

Contacts are read-only on this page. The list is rebuilt from your conversations, so it follows the relationship on its own: a person who stops appearing in a customer's conversations eventually drops off that customer's list, and someone new appears as soon as they show up in a thread.

A person is listed for a customer only once they take part in a conversation. Someone merely *mentioned* by name in an email — a colleague described but never copied in — is recognized as a person but is not attached to the customer until they actually appear in a conversation.

## Related pages

- [Administrator Tools](./administrator-tools.md)
- [Agent Tools](./mcp-external-servers.md)
- [Assign a Slack channel to a client over the API](./guides-assign-slack-channel.md)
- [Authenticated health check](./api-reference-gethealth.md)
- [Authentication](./api-authentication.md)
- [Cards](./cards.md)
- [Changelog](./changelog.md)
- [Changelog](../changelog.md)
- [Connect a workspace](./getting-started-connect-workspace.md)
- [Connect an integration](./getting-started-connect-integration.md)

# Agent Instructions

This portal answers questions programmatically. To receive a synthesized,
source-cited answer instead of crawling page by page, append the `?ask=`
query parameter to any page URL on this site:

    /guides/quickstart?ask=how+do+I+authenticate

Optional parameters:

- `&goal=<what-you-are-trying-to-do>` steers the answer toward your
  objective (e.g. `&goal=write+a+python+client`).
- `&version=<label>` scopes the answer to a mounted version when the
  portal publishes more than one.

The response is `text/markdown`: the answer followed by a `# Sources` list
of the portal pages it was grounded in. Status codes are the contract:

- `200` — the answer; `402` — the portal owner’s plan or answer credits are
  exhausted (surface this to your operator; do NOT retry); `429` — you are
  rate-limited; back off for the `Retry-After` seconds; `503` — the answer
  lane is temporarily unavailable; fall back to crawling the `.md` pages.

For the full corpus map read `llms.txt` at the site root; for the tool
surface (search + page fetch as MCP tools) see `/mcp`.
