Create client contact
Promote an existing person into a client contact by linking them to a client company. The associated company is automatically flagged as a client.
Idempotency: A person can be an active client contact for at most one client company per team (DB constraint). If a non-deleted client contact already exists for this person, the existing record is returned with is_new: false and the echoed client_id reflects the contact’s actual client company — compare it to the requested client_id to detect mismatches. New contacts return 201 with is_new: true; existing contacts return 200.
Status: When client_contact_status_id is omitted, the team default status is assigned. Pass null to leave the new contact without a status.
Owners: When owner_ids is omitted, the authenticated caller is auto-assigned (if they are a team member). Pass an empty array to create a contact with no owners.
Authorizations
Authenticate with a Bearer token: API key, OAuth token, or session token.
Body
Person UUID to promote into a client contact. Get IDs from POST /v1/persons/search or POST /v1/persons.
Client company UUID this person belongs to. Get IDs from GET /v1/companies. The company is automatically flagged as a client when this contact is created.
Optional client contact status UUID. When omitted, the team default status is used. Use GET /v1/client-contacts/statuses to discover available status IDs.
Optional team member UUIDs to assign as client-contact owners. If omitted, the authenticated caller (when they are a team member) is auto-assigned.