> ## 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>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.