> For the complete documentation index, see [llms.txt](https://docs.zero.inc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.zero.inc/getting-started/key-concepts/records.md).

# Records

Records are the data in your workspace. Lists, views, agents, reports and the API all point back at them, and a record exists exactly once however many lists it appears in.

## The three record types

| Record type | What it represents                                                | Typical identifier       |
| ----------- | ----------------------------------------------------------------- | ------------------------ |
| **Company** | A business or organization you interact with — the account level  | **Website Domain**       |
| **Contact** | An individual person, usually working at a company                | **Email**                |
| **Deal**    | A revenue opportunity that moves through the stages of a pipeline | **Pipeline** + **Stage** |

Each type ships with a fixed set of standard properties — the labels you see in list columns, the properties panel, filters and reports. [Companies](/getting-started/key-concepts/records/companies.md), [Contacts](/getting-started/key-concepts/records/contacts.md) and [Deals](/getting-started/key-concepts/records/deals.md) list them in full. Anything beyond them is a [custom property](/settings/custom-properties.md), which behaves like a standard one everywhere: grids, filters, agents, the API. That is where business-specific data belongs — plan tier, lead source, renewal date.

## How records relate

* A **contact belongs to at most one company** (the **Company** property); the company lists its people under **Contacts**.
* A **deal belongs to at most one company** and links to any number of contacts. Each side shows the other.
* **Owners** on all three types are workspace members, and a record can have several.
* Relations work in both directions in filters and reports — filter contacts by `Company → Industry`, group deals by `Company`.

When an email or calendar event syncs, Zero links it to the matching contacts, their companies and the related deals, so activity lands on every record it concerns.

A contact can hold several addresses in **All Emails** and a company several domains in **All Domains**. The first entry is the primary one — the **Email** sequences and agents send to, the **Website Domain** shown as the company's website — but activity on any of them matches the same record, and merging two records keeps both sets.

## The record page

Open a record from a list, from search, or from a link in chat and you land on its page at `/{workspace}/records/{companies|contacts|deals}/{id}`. The header, tabs and properties panel are covered in [Record view](/tracking-context/record-view.md); the timeline on the **Activity** tab in [Activity feed](/tracking-context/activity-feed.md); attachments on the **Files** tab in [Files](/tracking-context/files.md).

## How records get created

Most records arrive without anyone typing them in:

* **Manually** — **Add company**, **Add contact** and **Add deal** from a list, the command menu, or the header menu of a related record.
* **Import** — CSV, or a migration from HubSpot, Attio, Pipedrive or Affinity. See [Data Import](/getting-started/data-import.md). Imported records keep their source identifier in **External ID**.
* **Mailbox and calendar sync** — with **Auto-contact creation** on, Zero creates contacts from the people you email and meet, skipping your own domains. See [Mailbox Settings](/settings/mailbox-settings.md) and [Calendar Settings](/settings/mailbox-settings/calendar-settings.md).
* **Agents** — an agent action can create or update any of the three types. See [Agents](/features/agents.md).
* **MCP and the API** — assistants connected over MCP use `add_company`, `add_contact` and `add_deal` (plus the matching `edit_*` and `find_*` tools); the REST API exposes `POST /api/companies`, `/api/contacts` and `/api/deals`. See [MCP](/developers/mcp.md).

**Created by** and **Created at** always tell you which path produced a record.

## Removing, archiving and deleting

Three different things, worth keeping straight:

* **Remove from the list** takes a record out of one list. The record and its other lists are untouched.
* **Archiving** is a soft delete. The record disappears from lists, search and reports but keeps its history. Filter on the **Archived** property to find archived records, and set **Archived** back to false to restore one (for example with `PATCH /api/{type}/{id}`). Agents and MCP tools archive rather than delete (`archive_companies`, `archive_contacts`, `archive_deals`), as does `DELETE /api/{type}/{id}?archive=true`.
* **Deleting** is permanent — **Delete record** on the record page, **Delete records** in a list's selection toolbar. The confirmation says so. Archive instead, unless the record was a mistake.

If you have two records for the same company or person, [merge them](/settings/merging-duplicates.md) rather than deleting one.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.zero.inc/getting-started/key-concepts/records.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
