# Entity relationships

> Which Reply object contains, uses, or references which — the organization containment chain, the outreach object graph, and the ownership rules that move data between them.

**An organization contains workspaces, each with its own users, roles, and data; the owner belongs to every workspace. Contacts group under accounts — one account per contact — and into lists. A sequence contains steps, enrolls contacts, sends through assigned email accounts on a schedule, and replies land as conversations in the shared inbox.**

_Status: Reviewed — human-edited, facts not yet confirmed against the product._

Two graphs cover the Reply object model: the organization containment chain (who can see
what) and the outreach object graph (what acts on what). Both diagrams are plain text so
they stay machine-readable.

## Organization structure

```text
Organization
  ├─ Workspaces (teams / client groups)
  │     ├─ Users   one user can join several workspaces, with a different role in each
  │     ├─ Roles   workspace roles are local; team-wide roles span workspaces
  │     └─ Data    contacts, sequences, templates — isolated per workspace
  └─ Organization owner   automatically a member of every workspace
```

| Subject | Relationship | Object | Rule |
| --- | --- | --- | --- |
| Organization | contains | Workspaces | Each workspace has its own users, roles, and settings |
| Workspace | contains | Users | A user can belong to several workspaces, with a different role in each |
| User | belongs to | Organizations | One set of credentials can belong to multiple organizations; permissions apply independently per organization |
| Organization owner | member of | Every workspace | Automatic; cannot be removed or reassigned |

Data does not cross workspaces: contacts, sequences, and email accounts remain isolated
per workspace even when a user works in several of them. Roles and permissions:
[Permissions and roles](/reference/permissions).

## Outreach object graph

```text
Prospect data (search)
      └─ adds → Contacts ────────────────┐
                   │ at most one         │ grouped by
                   ▼                     ▼
             Account (Company)         Lists
                   │
                   │ enroll
                   ▼
              Sequence ── contains → Sequence steps (email, LinkedIn, call, task)
                 │  │
                 │  └─ timed by → Sending schedule
                 │
                 └─ sends through → Email accounts (one or many per sequence)
                          │
              replies land in
                          ▼
                 Conversations → Inbox (one surface across all connected accounts)
```

| Subject | Relationship | Object | Rule |
| --- | --- | --- | --- |
| Account ([Company](/specifications/companies)) | groups | [Contacts](/specifications/contacts) | One contact can only be in one account at a time; an account can hold many contacts |
| [List](/specifications/lists) | groups | [Contacts](/specifications/contacts) | Used to stage, organize, and bulk-move contacts |
| Account list | groups | Accounts | An account can be added to several lists at once |
| [Sequence](/specifications/sequences) | contains | [Sequence steps](/specifications/sequence-steps) | Email, call, task, and LinkedIn steps with delays and settings |
| [Sequence](/specifications/sequences) | enrolls | [Contacts](/specifications/contacts) | Each enrollment carries its own per-sequence status — see [Statuses](/reference/statuses) |
| [Sequence](/specifications/sequences) | sends through | [Email accounts](/specifications/email-accounts) | Selected from the accounts connected to the Reply account; a sequence can use several |
| [Sequence](/specifications/sequences) | timed by | [Schedule](/specifications/schedules) | A sequence cannot run without a sending schedule |
| [Conversation](/specifications/conversations) | belongs to | [Contact](/specifications/contacts) | Replies are matched to the contact and tracked in their activity |
| [Inbox](/specifications/inbox) | aggregates | [Conversations](/specifications/conversations) | One surface across all connected email accounts; one inbox category per thread |
| [Prospect data](/specifications/prospect-data) search | adds | [Contacts](/specifications/contacts) | Search results become contacts you can list and enroll |

The Jason AI layer extends sequences with three more objects —
[Offers](/specifications/offers), [Playbooks](/specifications/playbooks), and
[Knowledge bases](/specifications/knowledge-bases); each is specified on its own page.

## Ownership and what moves where

- Objects have owners: contacts, accounts, and sequences can be reassigned to another team member with a change-owner action.
- When a user is removed from a workspace, their contacts, sequences, schedules, unfinished tasks, and templates transfer to the organization owner; their connected email accounts and completed tasks are deleted permanently. This cannot be undone.
- Deleting a workspace permanently deletes all related data — sequences, contacts, templates.

## Three relationships that surprise people

- A contact can be enrolled in **more than one sequence at a time**; each enrollment carries its own status. Conflicts are governed by [contact enrollment rules](/behavior/contact-enrollment).
- "Campaign" is not a separate object relating to sequences — it **is** the sequence under its former name. See [Campaigns](/specifications/campaigns).
- Moving a contact to an account is a move, not a copy: a contact belongs to at most one account, so assigning a new one replaces the old membership.

## Related

- [Terminology](/reference/terminology)
- [Lifecycle diagrams](/reference/lifecycle-diagrams)
- [Permissions and roles](/reference/permissions)
- [Product map](/start/product-map)

## Build with Reply

- REST API: [docs.reply.io](https://docs.reply.io/api-reference/introduction) — each object above maps to an endpoint group
- MCP: [agents.reply.io/mcp](https://agents.reply.io/mcp) — contact, sequence, and inbox operations across the same graph
