Skip to content
TriedDocs
Contacts

Update contact

Change a contact's phone number, name, email, custom fields or do-not-call flag.

PATCHhttps://api.tried.com.au/update-contact/{id}

Updates the fields you send and leaves the rest unchanged. To merge many contacts by phone number at once, use Import contacts.

Request#

Field Type Required Description
id string Yes Path parameter. The contact_id.

Body:

Field Type Required Description
phone_number string No New E.164 number. Must not belong to another contact.
first_name string or null No Up to 100 characters. null clears it.
last_name string or null No Up to 100 characters. null clears it.
email string or null No A valid email address. null or "" clears it.
custom_fields object No Replaces all custom fields. Values can be string, number or boolean and are stored as strings. Send {} to clear them.
do_not_call boolean No Do-not-call flag.

Example request#

curl -X PATCH https://api.tried.com.au/update-contact/contact_4b8e2f1a9c3d5e7f6a0b2c4d \
  -H "Authorization: Bearer $TRIED_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "do_not_call": true, "custom_fields": { "plan": "Enterprise" } }'
const id = "contact_4b8e2f1a9c3d5e7f6a0b2c4d";
const res = await fetch(`https://api.tried.com.au/update-contact/${id}`, {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.TRIED_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ do_not_call: true, custom_fields: { plan: "Enterprise" } }),
});
const contact = await res.json();
import os, requests

contact_id = "contact_4b8e2f1a9c3d5e7f6a0b2c4d"
res = requests.patch(
    f"https://api.tried.com.au/update-contact/{contact_id}",
    headers={"Authorization": f"Bearer {os.environ['TRIED_API_KEY']}"},
    json={"do_not_call": True, "custom_fields": {"plan": "Enterprise"}},
)
contact = res.json()

Response#

200 OK

{
  "contact_id": "contact_4b8e2f1a9c3d5e7f6a0b2c4d",
  "phone_number": "+61412345678",
  "first_name": "Sam",
  "last_name": "Nguyen",
  "email": "sam@example.com",
  "custom_fields": { "plan": "Enterprise" },
  "do_not_call": true,
  "created_timestamp": 1760850000000,
  "last_modification_timestamp": 1760857200000
}

Fields are described in Create contact.

Errors#

Status When
400 Body fails validation, for example email: Invalid email.
401 Missing or invalid API key.
403 The key's IP allowlist or scopes reject the request, or the caller has the read-only member role. This route needs the calls scope.
404 Contact <id> not found.
409 A contact with <phone_number> already exists.
429 Rate limit exceeded. See Rate limits.

See Errors for the body format.

Retell compatibility#

Same path and method as Retell. custom_fields replaces the whole object rather than clearing single keys set to null, and phone_number and email can be changed here.