Skip to main content
Patch any combination of fields on a person record. Only the flags you pass are written. Omitted fields stay untouched. Pass --remove-company to detach the current company. Pass --company-id or --company-name to reassign.

Synopsis

talkvalue path person update <id> [options]

Arguments

ArgumentTypeDescription
<id>integerPerson ID to update.

Options

FlagTypeDescription
--first-name <name>stringReplace the first name.
--last-name <name>stringReplace the last name.
--primary-email <email>stringSet the primary email. Must already exist on the record or be added in the same call via --email.
--email <email>string (repeatable)Replace the email list. Repeat for each address.
--primary-phone <phone>stringSet the primary phone.
--phone <phone>string (repeatable)Replace the phone list. Repeat for each number.
--job-title <title>stringReplace the job title.
--address <address>stringReplace the address.
--avatar-url <url>stringReplace the avatar URL.
--linkedin-url <url>stringReplace the LinkedIn URL.
--x-url <url>stringReplace the X (formerly Twitter) URL.
--company-name <name>stringAssign or rename the company by display name.
--company-id <id>integerAssign the company by ID.
--remove-companyflagDetach the current company. Do not combine with --company-name / --company-id.

Examples

1. Update a single field

talkvalue path person update 142 --job-title "Head of Growth"
Prints the updated record as a table. Only jobTitle changes server-side.

2. Replace the email list and set the primary

talkvalue path person update 142 \
  --email "alice@acme.com" \
  --email "alice.kim@personal.com" \
  --primary-email "alice@acme.com" \
  --json
Replaces the full email list and sets the primary in one call.

3. Detach a company in a script

talkvalue path person update 142 --remove-company --json \
  | jq -e '.data.company == null'
jq -e exits non-zero if the assertion fails, so the script halts when the detach did not take effect.

Response

The full updated record comes back, matching the shape of person get:
{
  "data": {
    "id": 142,
    "name": "Alice Kim",
    "primaryEmail": { "email": "alice@acme.com", "type": "WORK", "domain": "acme.com" },
    "emails": [
      { "email": "alice@acme.com", "type": "WORK", "domain": "acme.com" }
    ],
    "primaryPhone": "+1-415-555-0199",
    "company": { "id": 88, "displayName": "Acme Inc.", "domain": "acme.com", "nameUpdatable": true },
    "jobTitle": "Head of Growth",
    "channels": [/* … */],
    "events": [/* … */],
    "mergeOperations": [],
    "createdAt": "2026-04-12T00:00:00Z"
  }
}

Troubleshooting

  • --primary-email is not on the record. The address you pass to --primary-email must already exist on the person or be added in the same call via --email. Otherwise the command exits non-zero without writing.
  • --remove-company combined with a company assignment. Passing --remove-company alongside --company-id or --company-name is rejected and the command exits non-zero. Choose one.
See Exit codes for the full mapping.

See also