Unify and manage your data

Partial Updates for Source Mappings

Learn how to use partial operations to add, modify or remove source mapped values in lookups.

Partial updates in source mappings allow you to modify lookup definitions incrementally using the operation field. The supported operations include:

  • INSERT – adds new source values.
  • UPDATE – modifies existing source values.
  • DELETE – removes source values from an RDM lookup.

You can include multiple operation types in a single request, enabling you to insert, update, and delete source-mapped values in the same payload. This approach enables efficient, targeted updates without replacing the entire lookup.

INSERT - Add a new source value

The following table describes the request body parameters for the INSERT operation, which lets you add a new source-specific value to a lookup.

ParameterTypeRequiredDescription Default valuesAccepted values
operationStringYesSpecifies INSERT operation.None"INSERT"
codeStringYesSource value identifier to be added.None"US"
valueStringYesSource value description to be added.None"United States"
enabledBooleanNoIndicates whether the source value is active.true"true" or "false"
canonicalValueBooleanNoMarks if the value is canonical.false"true" or "false"
downStreamDefaultValueBooleanNoIndicates if the value should be default for downstream processes.false"true" or "false"
descriptionStringNoDescription for source valuesNoneNone

Example request for INSERT operation

{
  "operation": "INSERT",
  "code": "US",
  "value": "United States",
  "enabled": true,
  "canonicalValue": false,
  "downStreamDefaultValue": true
}

UPDATE - Modify attributes of an existing source value

The following table describes the request body parameters for the UPDATE operation, which modifies an existing source-mapped value. You must match both the code and value fields exactly to apply updates.

The UPDATE operation can only modify the following parameters: enabled, canonicalValue, and downStreamDefaultValue. You cannot use the UPDATE operation to change the code or value fields of an existing lookup entry.

ParameterTypeRequiredDescriptionDefault ValueAccepted values
operationStringYesSpecifies UPDATE operation.None"UPDATE"
codeStringYesMust match existing code for update.None"US"
valueStringYesMust match existing value for update.None"United States"
enabledBooleanNoUpdated enabled status.true"true" or "false"
canonicalValueBooleanNoUpdated canonical flag.false"true" or "false"
downStreamDefaultValueBooleanNoUpdated downstream default flag.false"true" or "false"
descriptionStringNoDescription for source valuesNoneNone

Example request for UPDATE operation

{
  "operation": "UPDATE",
  "code": "US",
  "value": "United States",
  "enabled": false,
  "canonicalValue": false,
  "downStreamDefaultValue": true
}

This request updates the enabled value to false.

DELETE - Remove an existing source value

The following table describes the request body parameters for the DELETE operation, which removes a source-specific value from the lookup. All fields must match the existing entry exactly.

ParameterTypeRequiredDescriptionDefault ValueAccepted values
operationStringYesSpecifies DELETE operation.None"DELETE"
codeStringYesMust match existing code exactly for deletion. None"US"
valueStringYesMust match existing value exactly for deletion.None"United States"
enabledBooleanYesMust match existing enabled value.true"true" or "false"
canonicalValueBooleanYesMust match existing canonical flag.false"true" or "false"
downStreamDefaultValueBooleanYesMust match existing downstream default flag.false"true" or "false"
descriptionStringNoDescription for source valuesNoneNone

Example request for DELETE operation

{
  "operation": "DELETE",
  "code": "US",
  "value": "United States",
  "enabled": true,
  "canonicalValue": false,
  "downStreamDefaultValue": true
}

Using multiple operations in a single request

You can combine INSERT, UPDATE, and DELETE operations in the same request body. This allows you to update multiple source-mapped values efficiently without replacing the full lookup. When combining operations, follow these rules:

  • Only one value per lookup code can have "canonicalValue": true. If multiple values are marked as canonical, the system returns an error.
  • Only one value per source can have "downStreamDefaultValue": true. If none is specified, the first enabled value for that source becomes the default.
  • Only Include the source mappings you want to modify; any sources or source values not included in the request will remain unchanged.

Example: Existing lookup

[
  {
    "tenantId": "{{rdm_tenant}}",
    "type": "rdm/lookupTypes/Gender",
    "code": "M",
    "enabled": true,
    "sourceMappings": [
      {
        "source": "Reltio",
        "values": [
          {
            "code": "Men",
            "value": "Men",
            "enabled": true,
            "canonicalValue": true,
            "downStreamDefaultValue": false
          },
          {
            "code": "0",
            "value": "0",
            "enabled": true,
            "canonicalValue": false,
            "downStreamDefaultValue": false
          }
        ]
      }
    ]
  }
]
Request body
[
  {
    "tenantId": "{{rdm_tenant}}",
    "type": "rdm/lookupTypes/Gender",
    "code": "M",
    "enabled": true,
    "sourceMappings": [
      {
        "source": "Reltio",
        "values": [
          {
            "operation": "INSERT",
            "code": "Male",
            "value": "Male",
            "enabled": true,
            "canonicalValue": true,
            "downStreamDefaultValue": true
          },
          {
            "operation": "UPDATE",
            "code": "Men",
            "value": "Men",
            "enabled": true,
            "canonicalValue": false,
            "downStreamDefaultValue": false
          },
          {
            "operation": "DELETE",
            "code": "0",
            "value": "0",
            "enabled": true,
            "canonicalValue": false,
            "downStreamDefaultValue": false
          }
        ]
      },
      {
        "source": "Reltio2",
        "values": [
          {
            "operation": "INSERT",
            "code": "Male",
            "value": "Male",
            "enabled": true,
            "canonicalValue": false,
            "downStreamDefaultValue": true
          }
        ]
      }
    ]
  }
]

This request performs three operations on the existing lookup. It inserts a new source value "Male" and sets its canonicalValue to true. It updates the existing value "Men" by changing its canonicalValue to false. Finally, it deletes the source value "0" from the lookup.

Response body

[
  {
    "uri": "{{rdm_tenant}}/Gender/M",
    "value": {
      "tenantId": "{{rdm_tenant}}",
      "type": "rdm/lookupTypes/Gender",
      "code": "M",
      "enabled": true,
      "sourceMappings": [
        {
          "source": "Reltio",
          "values": [
            {
              "code": "Male",
              "value": "Male",
              "enabled": true,
              "canonicalValue": true,
              "downStreamDefaultValue": true
            },
            {
              "code": "Men",
              "value": "Men",
              "enabled": true,
              "canonicalValue": false,
              "downStreamDefaultValue": false
            }
          ]
        },
        {
          "source": "Reltio1",
          "values": [
            {
              "code": "m",
              "value": "m",
              "enabled": true,
              "canonicalValue": false,
              "downStreamDefaultValue": true
            }
          ]
        },
        {
          "source": "Reltio2",
          "values": [
            {
              "code": "Male",
              "value": "Male",
              "enabled": true,
              "canonicalValue": false,
              "downStreamDefaultValue": true
            }
          ]
        }
      ],
      "startDate": 0,
      "endDate": 0,
      "updatedBy": "{{user}}",
      "updateDate": "{{update_date}}",
      "version": "{{version}}"
    }
  }
]