people

Update person

Partial attribute edit: identity fields, phones, channel statuses, company link, tags, external_refs. An identifier edit that collides with another live row persists and flags the edited row status duplicate, naming the primary in duplicate_of_sid (never a 409; make_person_primary swaps the roles). tag_sids is full-replace. status and playtable_sid are service-managed. Profile content is field values, not here. At least one field, else 422 nothing_to_update.

Contract:

  • MCP tool update_person, registry package mcp.playtables/people, mount playtables.people.
  • Operation update, response envelope update.
  • Flags: none.
patch/api/people/{sid}

Request

  • Base URL
    https://beta.getsales.io/playtables/v1
  • Auth
    HTTP bearer and API key in header Team-SID

Path parameters

sidstring required

Person sid (cr_pp_…).

Request body

full_namestring nullable

New display name (1..255): a manual observation that outranks every source until reset; null records a manual none (no name shown). Never a column write.

avatar_urlstring uri nullable

New profile photo URL (max 2048): a manual observation; null records a manual none.

ln_member_idstring nullable

Identity edit - re-runs the duplicate flag (a collision flags this row, never a 409).

ln_idstring nullable

Raw LinkedIn profile URN (ACoAA...), no spaces; identity edit, re-runs the duplicate flag.

sn_idstring nullable

Raw Sales Navigator URN (ACwAA...), no spaces; identity edit, re-runs the duplicate flag.

recruiter_idstring nullable

Raw Recruiter URN (AEMAA...), no spaces; identity edit, re-runs the duplicate flag.

ln_nicknamestring nullable

Vanity slug or profile URL (reduced to its axis on write); re-runs the duplicate flag.

work_emailstring email nullable

Identity edit - re-runs the duplicate flag (a collision flags this row, never a 409); stored lowercased.

personal_emailstring email nullable

Identity edit - re-runs the duplicate flag; stored lowercased.

work_phone_numberstring nullable

Plain string, E.164 preferred; identity edit on the E.164 twin, re-runs the duplicate flag.

personal_phone_numberstring nullable

Plain string, E.164 preferred; identity edit on the E.164 twin, re-runs the duplicate flag.

linkedin_status'need_enrichment' | 'enrichment_failed' | 'no_data' | 'blocked' | 'ok'

Channel status override (need_enrichment | enrichment_failed | no_data | blocked | ok).

email_status'need_search' | 'no_data' | 'bounced' | 'ok' | 'catch_all' | 'unverified' nullable

need_search | no_data | bounced | ok; null = channel not initialized.

phone_status'need_search' | 'no_data' | 'ok' nullable

need_search | no_data | ok; null = channel not initialized.

company_sidstring nullable

Must exist; the person's company then resolves from the account. null unlinks the company.

company_namestring nullable

A manual observation of a name that is not an account, read when no company_sid links the row; null records a manual none.

company_ln_idstring nullable

A manual observation of the company LinkedIn id, read when no company_sid links the row; null records a manual none.

tag_sidsstring[] nullable

Full-replace of the tag array.

external_refsobject nullable

Free-form CRM sync map, full-replace; keys integration-defined, stored as-is.

Response

update success envelope.

successtrue required
operation'update' required
updated_fieldsstring[] required
previous_valuesobject required
kept_fieldsstring[]

The fields this write did not change because the person's own value stands on them (stamped person); read the item for what landed.

Changes

No recorded changes to this operation across all 1 revision of this API.