Skip to main content
PATCH
Update a contact

Authorizations

Authorization
string
header
required

An Enrik API key, sent as Authorization: Bearer <key>. A key reaches public operations only, and only those whose scopes it holds. A few parameters need a scope beyond their operation’s, which the parameter names. The scopes:

  • setup:read: Read the workspace setup and its company profile.
  • setup:run: Change the setup: confirm the company profile, authorize sponsored drafting and background company research, choose what to set up and complete setup.
  • workspace:read: Read the workspace’s own profile: its health summary and setup state.
  • crm:read: Read companies with their signals, contacts and the saved views over them.
  • crm:write: Create, update and restore companies and contacts, and create, update and delete saved views.
  • crm:delete: Delete companies and contacts.
  • twin:read: Read the Company Twin: structured company knowledge and its signals.
  • discovery:read: Read ICP profiles, ICP assessments, discovery briefs, discovery jobs, candidates and the signal library.
  • discovery:write: Create and change ICP profiles, discovery briefs and signal-definition drafts, and review discovery candidates.
  • discovery:run: Create, start and cancel discovery jobs, and edit a draft one. Uses provider budget.
  • enrichment:read: Read the enrichment configuration and its results, including a record’s enrichment, formula and custom-API cells.
  • enrichment:run: Launch and cancel enrichment. Spends enrichment credits.
  • automation:read: Read workflows and agents with their run history, including a record’s agent cells.
  • automation:run: Run existing workflows and agents.
  • exports:read: Read export jobs and the fields an export can carry.
  • exports:run: Create, preview, start, cancel and archive CSV exports of companies, contacts and candidates, and download the file. Also needs crm:read. Delivering an export to a webhook destination stays in the app.
  • integrations:read: Read connections, field mappings, CRM sync jobs and webhook destinations.
  • webhooks:read: Read webhook subscriptions, the event types they can name and their delivery log.
  • webhooks:write: Subscribe a receiver URL to webhook events; edit, test, pause, resume and archive a subscription and rotate its signing secret; redeliver an event. Only workspace owners and admins can grant it.
  • reporting:read: Read analytics and dashboards.
  • assistant:read: Read the Assistant: its threads, messages and pending approvals.
  • assistant:run: Converse with the Assistant. Uses the workspace’s AI quota.
  • assistant:write: Approve or reject the changes the Assistant proposes.

Path Parameters

contactId
string<uuid>
required

The contact’s id.

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$

Body

application/json

What to change on a contact. A field left out keeps its value.

firstName
string | null

The first name; null clears it.

Maximum string length: 255
lastName
string | null

The last name; null clears it.

Maximum string length: 255
email
string<email> | null

The e-mail address; null clears it.

Maximum string length: 254
Pattern: ^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
phone
string | null

The phone number; null clears it.

Maximum string length: 50
jobTitle
string | null

The job title; null clears it.

Maximum string length: 255
ownerUserId
string<uuid> | null

The owning member, by user id; null clears it. List the members, and their ids, with GET /v1/workspace-members (needs crm:write).

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
companyId
string<uuid> | null

The company the contact works for; null unlinks it.

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
customFields
object

Custom field values to set, by key; the keys left out keep their values.

expectedUpdatedAt
string<date-time>

The contact’s updatedAt as you read it. When the contact has changed since, the update is refused with 409 stale_version and nothing is written. Leave it out to apply the fields you send whatever changed meanwhile.

Pattern: ^((\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\d|3[01])|(0[469]|11)-(0[1-9]|[12]\d|30)|(02)-(0[1-9]|1\d|2[0-8])))T([01]\d|2[0-3]):[0-5]\d(:[0-5]\d(\.\d+)?)?Z$

Response

A person in your workspace.

A person in your workspace.

id
string
required

The contact’s id.

workspaceId
string
required

The workspace the contact belongs to.

firstName
string | null
required

The first name.

lastName
string | null
required

The last name.

email
string | null
required

The e-mail address, lower-cased.

phone
string | null
required

The phone number.

jobTitle
string | null
required

The job title.

ownerUserId
string | null
required

The member who owns the contact, by user id. List the members, and their ids, with GET /v1/workspace-members (needs crm:write).

companyId
string | null
required

The company the contact works for.

customFields
object
required

Custom field values, by the custom field’s key.

createdBy
string | null
required

The user who created the contact; null when an API key did.

updatedBy
string | null
required

The user who changed the contact last.

createdAt
string<date-time>
required

When the contact was created.

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
updatedAt
string<date-time>
required

When the contact last changed. Send it back as expectedUpdatedAt to update safely.

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
deletedAt
string<date-time> | null
required

When the contact was deleted; null while it is live.

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
company
object | null

With include=company: the linked company, or null when there is none or it is deleted.

enrichmentCells
object

With include=enrichmentCells: each enrichment column’s state for this record, by column id.

formulaCells
object

With include=formulaCells: each formula column’s state, by column id.

customApiCells
object

With include=customApiCells: each custom-API column’s state, by column id.

agentCells
object

With include=agentCells: each agent column’s state, by column id.