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

# CRM Overview

> Manage contacts, companies, and custom objects through the Zeeg CRM API.

The Zeeg CRM API lets you programmatically manage all data inside the Zeeg CRM — contacts (people), companies, and any custom objects your workspace has created. It is designed for data migrations, bi-directional syncs, and integrations with external systems.

## Scopes

| Scope       | What it allows                                                  |
| ----------- | --------------------------------------------------------------- |
| `crm:read`  | Read all CRM objects and records                                |
| `crm:write` | Create, update, and delete CRM records; also grants read access |

All read endpoints accept either scope. All write endpoints require `crm:write`.

## Standard objects

Zeeg CRM ships with two built-in objects. They are always present in every workspace and cannot be deleted.

### People (`people`)

Represents a contact — an individual person your team interacts with.

| Attribute        | API key                   | Type                 | Notes                                        |
| ---------------- | ------------------------- | -------------------- | -------------------------------------------- |
| ID               | `id`                      | text                 | UUID, read-only                              |
| First Name       | `first_name`              | text                 |                                              |
| Last Name        | `last_name`               | text                 |                                              |
| Emails           | `emails`                  | text                 | Unique. Accepts email validation.            |
| Phone Number     | `phone_number`            | phone\_number        |                                              |
| Job Title        | `job_title`               | text                 |                                              |
| Description      | `description`             | text                 |                                              |
| Company          | `crm_customer_company_id` | relation → companies | Links person to a company                    |
| Contact Owner    | `contact_owner_member_id` | user                 | Workspace member responsible for the contact |
| LinkedIn         | `linkedin`                | text                 | URL                                          |
| X (Twitter)      | `twitter`                 | text                 | URL                                          |
| Facebook         | `facebook`                | text                 | URL                                          |
| Instagram        | `instagram`               | text                 | URL                                          |
| Created At       | `created_at`              | datetime             | Read-only                                    |
| Last Modified    | `updated_at`              | datetime             | Read-only                                    |
| Last Interaction | `last_interaction`        | datetime             | Auto-updated from calendar/email activity    |
| Next Interaction | `next_interaction`        | datetime             | Auto-updated from scheduled meetings         |

### Companies (`companies`)

Represents an organisation your team works with.

| Attribute        | API field                 | Type        | Notes                                                                    |
| ---------------- | ------------------------- | ----------- | ------------------------------------------------------------------------ |
| ID               | `id`                      | text        | UUID, read-only                                                          |
| Name             | `name`                    | text        | Required                                                                 |
| Domain           | `domain`                  | text        | Unique within workspace. Used as matching attribute for assert (upsert). |
| Description      | `description`             | text        |                                                                          |
| Website URL      | `websiteUrl`              | text        | URL                                                                      |
| Primary Location | `primaryLocation`         | text        |                                                                          |
| Industries       | `industries`              | multiselect | Array of industry IDs                                                    |
| Account Owner    | `account_owner_member_id` | user        | Workspace member responsible for the account                             |
| LinkedIn         | `socials.linkedin`        | text        | URL                                                                      |
| X (Twitter)      | `socials.twitter`         | text        | URL                                                                      |
| Facebook         | `socials.facebook`        | text        | URL                                                                      |
| Instagram        | `socials.instagram`       | text        | URL                                                                      |
| Created At       | `createdAt`               | datetime    | Read-only                                                                |
| Last Modified    | `updatedAt`               | datetime    | Read-only                                                                |
| Last Interaction | `last_interaction`        | datetime    | Auto-updated                                                             |
| Next Interaction | `next_interaction`        | datetime    | Auto-updated                                                             |

## Custom objects

In addition to the two standard objects, workspaces on eligible plans can create custom objects (e.g. `deals`, `products`, `tickets`). Each custom object has its own set of custom attributes.

Use `GET /crm/objects` to list all objects — standard and custom — along with their full attribute schemas.

## Getting started

The recommended workflow for importing or syncing data:

```
1. GET /v2/crm/objects
   → Discover all objects and their attribute keys

2. PUT /v2/crm/companies?matchingAttribute=domain   (for each company)
   → Create or update companies by domain

3. POST /v2/crm/people   (for each person)
   → Create people records, linking them to companies via crm_customer_company_id
```

<Note>
  All timestamps in responses are in **ISO 8601** format with UTC offset (e.g. `2025-06-01T10:00:00+00:00`).
</Note>
