Contact
/api/v1/crm/contactsA person at a customer account.
listgetcreateupdatedeleteSchema
| Field | Type | Notes |
|---|---|---|
| id* | uuid | Server-assigned ULID with type prefix (e.g. per_…). |
| tenant_id* | string | Tenant scope — auto-stamped from the caller's JWT. |
| app_id | string | App scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present. |
| created_at* | date-time | Server stamp. |
| updated_at* | date-time | Server stamp; updated on every patch. |
| created_by | uuid | Person id from the caller's JWT (sub). |
| updated_by | uuid | Person id from the last writer's JWT (sub). |
| source | string | Provenance tag — defaults to 'edm'. |
| source_type | enum | frontend | backend | server | system | apiWhere the write originated. Defaults to 'api'. |
| is_deleted | boolean | Soft-delete flag. Excluded from default list queries. |
| deleted_at | date-time | Stamped when soft-deleted; null otherwise. |
| deleted_by | uuid | Person id who soft-deleted; null otherwise. |
| schema_version | number | Document schema version. Bumped on incompatible writes. |
| account_id | string | Account this contact belongs to. Null for unattached/orphan contacts. Format: acc-<uuid>. |
| first_name | string | Given name. |
| last_name | string | Family name. |
| display_name | string | Display name. Computed from firstName + lastName if blank. |
| Work email address. Unique within (tenantId, accountId). | ||
| phone | string | Phone number in E.164 format. |
| job_title | string | Job title at their company. |
| seniority | string | Seniority level at the contact's company. |
| decision_role | string | Role this contact plays in deal decisions. |
| is_primary | boolean | True if this is the primary contact at the account. |
| linkedin_url | string | LinkedIn profile URL. |
| reports_to_contact_id | string | Contact ID of this person's manager within the account. |
| last_interaction_at | date-time | Timestamp of the most recent interaction with this contact. |
| opted_in | boolean | Whether this contact has opted in to marketing communications (GDPR/CASL). |
| opted_in_at | date-time | Timestamp when the opt-in was recorded. |
| gdpr_consent | json | GDPR/CASL consent record. |
| custom_fields | json | Per-tenant schema extension for additional fields. |
| tags | json | Free-form string tags. |
| version | number | Optimistic-concurrency version counter. |
API
client.customer.contacts.*Loading manifest…