POST …/contacts/update
Synchronously update an existing contact. All fields are optional except contact_id. Only fields you provide are changed — this is a patch-style update, not a full replace.
This endpoint is synchronous — the response confirms the update inline.
Request
Body fields
first_name and last_name are supported but deprecated. Use full_name instead.This endpoint does not require the calling user to be an org admin or assigned contributor. Inbound webhooks bypass the standard ownership gate.
Behavior details
- Phone — if the number already exists on the contact, it is bumped to verified status. If it is new, it is added.
- Email — added only if not already present. No deduplication beyond exact match.
- Tags — only new tags are added. Existing tags are never removed.
- Contributors — users are resolved by full name within the org. Users already on the contact are skipped.
- Address — Goliath attempts to resolve the address to a known property (
tryToFindPropertyId: true).