Skip to main content

Update Contact Value

Updates a single field value for a contact.

PUT /v1/funnels/{funnelId}/contacts/{contactId}/values

This endpoint updates one field at a time, identified by fieldName. Standard contact fields, address sub-fields, and custom properties are all supported. Any fieldName that is not a known field and not a reserved system field is stored as a custom property under the contact's properties map.

Authentication

Requires the x-perspective-api-key header. See Authentication for details.

Path parameters

NameTypeRequiredDescription
funnelIdstringYesThe ID of the funnel the contact belongs to.
contactIdstringYesThe ID of the contact to update.

Request body

FieldTypeRequiredDescription
fieldNamestringYesThe field to update. See Allowed field names below.
valuestringYesThe new value for the field.
skipAutomationTriggerbooleanNoWhen false (default), automation workflows triggered by the field change will execute. Set to true to bypass automation.

Allowed field names

The following standard field names are recognised:

fieldNameUpdates
firstNameContact's given name.
lastNameContact's family name.
emailContact's email address.
phoneContact's phone number.
statusContact's lifecycle status. Must be one of the statuses configured for the funnel.
websiteContact's website URL.
birthdayContact's birthday.
postalCodeContact's postal / ZIP code. (zip is also accepted as a legacy alias.)
cityContact's city.
stateContact's state or region.
countryContact's country.
streetContact's street address.
houseNumberContact's house number.

Any other name that is not a reserved system field is treated as a custom property and stored in the contact's properties map.

Example request body

{
"fieldName": "firstName",
"value": "Jane",
"skipAutomationTrigger": false
}

Example request

curl -X PUT https://api.perspective.co/v1/funnels/fnl_abc123/contacts/cnt_abc123/values \
-H "x-perspective-api-key: $PERSPECTIVE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"fieldName": "firstName",
"value": "Jane"
}'

Response

Returns 200 OK with { data: ContactValuesResponse }.

FieldTypeDescription
idstringThe ID of the updated field value record.
fieldNamestringThe field name that was updated.
valuestringThe new value that was set.
updatedAtstring (ISO date-time)Timestamp when the field was last updated.

Example response

{
"data": {
"id": "val_zyx987",
"fieldName": "firstName",
"value": "Jane",
"updatedAt": "2025-06-02T10:15:30.000Z"
}
}

Errors

See Errors for the full list of status codes and handling guidance.

StatusMeaning
400Missing fieldName or value, or the fieldName is a reserved system field that cannot be updated.
401Missing or invalid API key.
403Your API key does not have crm:write permission.
500Internal server error.