Skip to content

Merge patch (RFC 7396)

Connect’s PATCH endpoints follow RFC 7396 JSON Merge Patch. This applies anywhere you PATCH a resource with a partial body — most relevantly on PATCH /connect/table_entries/:id for the data and customFieldData fields.

Body has key with…Result
Non-null valueSet or replace the key
null valueDelete the key entirely
Key omittedLeave it untouched

For nested objects (e.g., inside customFieldData), the merge is deep — you can update a single nested field without overwriting siblings.

Starting state:

{
"data": {
"email": "old@example.com",
"phone": "+49 30 1234567",
"notes": "Interested in beginner course"
}
}
PATCH /connect/table_entries/<id>
Content-Type: application/json
{ "data": { "email": "new@example.com" } }

Result: email updated, phone and notes untouched.

{ "data": { "notes": null } }

Result: notes removed entirely. email and phone untouched.

{ "data": { "email": "new@example.com", "notes": null } }

Both apply atomically.

Merge patch can’t express “replace data entirely” in a single request. If you need to clear all keys, you have to:

  1. List the existing keys (e.g., from a GET first).
  2. Send a PATCH with null for each key you want to delete.
  3. Send the new keys in the same PATCH.

In practice this almost never matters — you usually want to update or delete specific fields, not nuke the whole object.

  • Leads resource — primary place merge-patch shows up.
  • Workflows — common patch patterns (move to lead state, archive a value).