Webhooks / Update Contact
Update Contact
Patch an existing contact by ID.
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
POST {WEBHOOK_BASE_URL}/{token}/contacts/update
Content-Type: application/json
{
"contact_id": "a1b2c3d4-0000-0000-0000-000000000000",
"phone_number": "5550000002",
"contact_email": "john.new@example.com",
"tags": ["follow-up"],
"note": "Called on March 19 — interested in selling.",
"contributors": ["Sarah Smith"]
}
Body fields
| Field | Type | Required | Description |
|---|---|---|---|
contact_id |
string (UUID) | Yes | ID of the contact to update |
full_name |
string | No | Replaces the contact’s name |
phone_number |
string | No | Adds the number or bumps an existing one to verified |
contact_email |
string | No | Added if not already present |
contact_address |
string | No | Added as a linked property |
note |
string | No | Creates a new note on the contact |
tags |
string[] | No | Adds new tags — existing tags are not removed. Case-insensitive dedupe. |
source |
string | No | Ensures the source option exists and sets it on the contact |
contributors |
string[] | No | Adds users as participants — skips anyone already on the contact |
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).
Responses
Success
200 OK
{
"success": true,
"contact_id": "a1b2c3d4-0000-0000-0000-000000000000"
}
Error responses
| Status | Cause |
|---|---|
400 |
contact_id is missing |
401 |
Invalid or inactive token |
404 |
No contact found with the given contact_id |