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

# How the pieces fit

> Workspace, agent, channel, contact — and which one owns what.

Four things, and most confusion later comes from mixing up two of them.

## Workspace

Your company. It owns billing, your team, your contacts and your WhatsApp
account. Everything is scoped to a workspace, and nothing crosses between two.

## Agent

One assistant, with its own knowledge, instructions, tools and channels. A
workspace can have several — a sales agent and a support agent, say.

<Warning>
  Agents do not share memory with each other. A customer who talks to your sales
  agent and your support agent is one **contact** in your inbox, but each agent
  only sees its own conversations. That is deliberate: two agents can be two
  brands, and one reading the other's transcripts would be a surprise nobody
  asked for.
</Warning>

## Channel

Where a customer talks to the agent: the **website widget**, **WhatsApp** or
**Telegram**. An agent has at most one of each.

Shopify, WordPress and PrestaShop are **not** channels. They are doors onto the
website widget — ways of getting it onto a page without editing theme code.

## Contact

A person. One contact can have several conversations across several channels,
and the agent will remember what was said on the others.

### How two channels become one person

This is the part worth understanding, because the obvious version of it leaks
data.

A person is joined across channels only on evidence **they did not give you**:

| Signal                                | Who vouches for it                 | Joins? |
| ------------------------------------- | ---------------------------------- | ------ |
| A signed customer id from your server | Your own server, by HMAC           | Yes    |
| The sender of a WhatsApp message      | Meta delivered it from that number | Yes    |
| A phone number typed into a chat      | Nobody                             | **No** |

That last row is the whole design. A phone number is not a secret. If typing one
into a chat were enough to link records, anybody could type your customer's
mobile and be handed their WhatsApp history.

So: to have signed-in customers recognised, [your server signs their
id](/install/signed-in-customers). Everything else stays separate, and a
visitor who cannot be verified is treated as anonymous — which is the safe
default, not a degraded one.

<Note>
  **Telegram does not join.** There is no phone number unless the user shares a
  contact card, and matching on display name would merge two different people
  called Priya into one memory. Telegram conversations are read once a customer
  is linked by other means; they never do the linking.
</Note>

## What the agent remembers

Within a conversation, the recent history. Across conversations, a short digest
of what the same customer said on their **other** channels — so somebody who
asked on WhatsApp and then came to your website does not start again from
nothing.

That digest is deliberately small. It is capped at a handful of messages and
never includes your team's internal notes.
