Skip to main content
PATCH
Update contact by ID
This endpoint uses the PATCH verb but behaves like a PUT (full replacement). Any fields that are NOT included in the payload will be cleared/removed. Always send the full contact object if you don’t want to lose existing data.
To synchronize and mass update your contacts with Qomon database, use POST /contacts/upsert instead. This synchronous endpoint costs 5 rate-limit tokens per request.
To specify the advanced fields (survey, consents, etc), you need to use the formdatas structure with form_id and form_ref_id.
  • form_id: the ID of the advanced field
  • form_ref_id: the ID of the value of the advanced field
  • data: free text if the field (“forms”) type is Text, Integer, or Date (input format: YYYY-MM-DD'T'HH:mm:ss.SSS'Z'; responses may return up to microsecond precision: YYYY-MM-DD'T'HH:mm:ss.SSSSSS'Z'); otherwise, use the value of the refvalue
  • date: the date of the formdata entry
To specify the custom fields, you need to use the custom_fields structure with form_id and form_ref_id.
  • form_id: the ID of the custom field
  • form_ref_id: the ID of the value of the custom field
  • data: free text if the field (“forms”) type is Text, Integer, or Date (input format: YYYY-MM-DD'T'HH:mm:ss.SSS'Z'; responses may return up to microsecond precision: YYYY-MM-DD'T'HH:mm:ss.SSSSSS'Z'); otherwise, use the value of the refvalue
  • date: the date of the custom_field entry
NB:
  • Each patch will generate new ids for formdatas and custom_fields. (due to the full replace behavior: soft delete + recreate)
  • If you don’t send the exhaustive list of formdatas or custom_fields, the missing ones will be deleted (soft).
  • For Text, Integer and Date Fields, if you add a formdata or custom_field, it will be added to the existing ones.
  • For Radio (single select), if you add a formdata or custom_field, it will replace the existing ones.
  • For Checkbox (multi-select) fields, any new value will be added to the existing ones.
  • If you change a formdata or custom_field, it will update it. (the id is not required here because of the full-replace behavior).

Authorizations

Authorization
string
header
required

OAuth2 access token. Pass the token in the Authorization header as Bearer <token>. The token is looked up in Redis to resolve the caller identity.

Path Parameters

contactId
integer<int64>
required

Contact ID.

Required range: x >= 0
Example:

42

Body

application/json
data
object
required

Response

OK

data
object
required
status
string
required

Operation result.

Example:

"success"

Last modified on July 7, 2026