---
title: "Update a partner contact"
method: PATCH
path: "/partners/{identifier}/contacts/{contact_identifier}"
tags: ["Partner Contacts"]
---

# Update a partner contact

`PATCH /partners/{identifier}/contacts/{contact_identifier}`

## Request

- Base URL: `https://api.lassotech.com/api/v1/rest`
- URL: `https://api.lassotech.com/api/v1/rest/partners/{identifier}/contacts/{contact_identifier}`
- Auth: API key in header `x-lasso-access-token`

Updates a contact's details and links CRM records to it. Requires `partners_edit` permission.

Only the fields you send are changed. Sending null clears `title`, `linkedin_url` or
`phone_number`; `name` cannot be cleared. The email address cannot be changed.

`name` and `phone_number` belong to the person rather than to this partner. Once the person
has activated their Lasso login, or is also a contact or team member in another Lasso account,
a request that changes either is refused with `422` and `NOT_EDITABLE`. Sending the value they
already have is accepted, so a sync that always sends the full profile keeps working.

CRM IDs are added, never replaced or removed: a different ID from the one this contact already
holds for that CRM, or one another contact holds, is a `409`; an empty one is a `422` with
`CANNOT_BE_CLEARED`.

As with create, a key without `partners_read` gets only the contact's `slug` back.

## Path parameters

- `identifier` string, required
- `contact_identifier` string, required

## Query parameters

- `by` 'slug' | 'id' | 'lasso_key' | 'name' | 'external'
- `external_system_type` string
- `external_object_type` string

## Request body

- object
  - `name` string
  - `phone_number` string, nullable
  - `title` string, nullable
  - `linkedin_url` string, nullable
  - `hubspot_contact_id` string
  - `salesforce_contact_id` string
  - `pipedrive_person_id` string

## Response `200`

Contact updated, or unchanged if there was nothing to change

- object
  - `contact` PartnerContact: A contact at a partner organization (shown as a Partner Contact in Lasso).
    - `slug` string: The contact's Lasso key. Use it to address the contact in the path.
    - `partner_slug` string
    - `name` string, nullable
    - `email` string, nullable
    - `phone_number` string, nullable
    - `title` string, nullable
    - `linkedin_url` string, nullable
    - `role` string, nullable: The contact's role at the partner, which decides what they can see and do in the partner portal.
    - `status` 'active' | 'deleted'
    - `external_ids` ExternalId[]: CRM records linked to this contact.
      - `system_type` string, required: e.g. HUBSPOT, SALESFORCE, PIPEDRIVE
      - `object_type` string, required: e.g. company, contact, deal, opportunity, account
      - `identifier` string, required
    - `created_at` string, date-time
    - `updated_at` string, date-time

## Other responses

- `401`: Missing or invalid API key
- `403`: API key lacks required permission
- `404`: The partner was not found, or it has no active contact with this slug
- `409`: A CRM contact ID you sent is already linked to another contact, or this contact already holds a different ID for that CRM
- `422`: The update was refused. Messages include `NOT_EDITABLE` (`name`, `phone_number`), `REQUIRED` (`name` sent empty), `CANNOT_BE_CLEARED` (an empty CRM ID), and `MULTIPLE_PARTNERS_FOUND` (`identifier`, for an ambiguous `?by=name`).
- `429`: Rate limit exceeded. Wait the number of seconds in `Retry-After`, then retry.

---

[API](https://skmtc.dev/onelasso/apis/lasso-rest-api.md) · [All operations](https://skmtc.dev/onelasso/apis/lasso-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/onelasso/apis/lasso-rest-api/revisions/bbc328f5e2d1?raw)
