ackDB

Edit a person row's field values

Person-grain equivalent of PATCH /observe/companies/{entityId}/fields (#329) - a batch { "<fieldKey>": <value>, … }. Only TWO kinds of field are editable on a human: name (a direct persons.name UPDATE) and the durable-key columns (idl__<type>, replace-the-set through the same layer POST /persons/{personId}/links uses - values are normalized, role inboxes refused, and a value owned by ANOTHER human is REFUSED and recorded as a merge candidate, never re-pointed (first-writer-wins)). Everything else is rejected per-field: there are no person traits, the rollups (affiliation_count, key_count, is_internal, last_active, companies, activity, event columns) are computed, and status is the identity lifecycle set by the merge endpoints. Partial success: valid fields apply, the rest (including key conflicts) come back in errors. An idl__email_address add DECLINED as a fallback (#575 — the person already holds a linkedin_url anchor) that changed nothing else is reported in errors as a per-field notice, never counted in updated: email is a fallback anchor, and this grain has no edge to store it on.

patch/api/v1/ackdb/observe/persons/{personId}/fields

Request

  • Base URL
    http://localhost:3009
  • Auth
    HTTP bearer

Path parameters

personIdstring required

The person_id of the person row to edit.

Request body

object required

Field key → new value. Multiple fields allowed.

Example request

{
  "name": "Elly Chen",
  "idl__email_address": [
    "elly@acme.com",
    "elly@globex.com"
  ]
}

Response

The keys that were updated + a per-field error map for any that were rejected.

Example response

{
  "data": {
    "updated": [
      "measure_status"
    ],
    "errors": {
      "activity": "Field \"activity\" is computed and cannot be edited directly."
    }
  }
}

Changes

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