Manage Object Records using External ID
An External ID is a unique identifier used to maintain relationships between records in the Conga Advantage Platform and external systems. It serves as a consistent reference across systems, enabling seamless data synchronization and integration without depending on Conga's internal ID values.
To support managing object records using External ID field, a few APIs are enhanced and newly introduced. For more information, see the following sections.
Enhanced APIs
The following Data APIs are enhanced to support External ID field.
Prerequisite: The IsExternalIdValidationEnabled configuration flag is true.
-
To check the configuration flag value, use the
GET {baseURL}/api/config-management/v1/configurations/{category}/{name}
endpoint and pass the category asPlatform
and name asIsExternalIdValidationEnabled.
-
To update the configuration flag value, use the
PUT {baseURL}/api/config-management/v1/configurations
endpoint and pass the category, name,and value as thePlatform
,IsExternalIdValidationEnabled
, andtrue
respectively.
-
POST {baseURL}/api/data/v1/custom-objects/{objectName}/{id}
andPOST {baseURL}/api/data/v1/custom-objects/{objectName}/bulk
- Create new record(s) using the ID and/or external ID field values, passed in the payload, to create new record(s).Refer to the following table to understand the behavior when you pass ID and/or external ID:
ID in payload? External ID in payload? Behavior Validation Yes Yes Create a record using the ID
field value as provided in the payload, and ensure theexternalId
is unique.ExternalId unique validation Yes No Create a record using the ID
field value as provided in the payload and set theexternalId
to null.NA No Yes Generate a new GUID and create a record using the ID
field value with the new GUID value.ExternalId unique validation No No Generate a new GUID and create a record using the ID
field value with the new GUID value and set theexternalId
to null.NA -
PUT {baseURL}/api/data/v1/custom-objects/{objectName}/{id}
- Update the record using the ID parameter, and ensure the externalId is unique whenever the value is changed. -
DELETE {baseURL}/api/data/v1/custom-objects/{objectName}/bulk
- Delete a record using ID or an external ID filed. For this, a new parameter,DeleteByField,
with Id and ExternalId options is added. -
PUT {baseURL}/api/data/v1/custom-objects/{objectName}/bulk
- Update records using ID or external ID field. For this, a new parameter,UpdateByField,
with Id and ExternalId options is added. Refer to the following tables for each option's behavior.Refer to the following table to understand the behavior when you want to update records by ID field.
ID in payload? External ID in payload? Behavior Validation Yes Yes Update the record using the ID
if it exists, and ensure theexternalId
is unique.ExternalId unique validation Yes No Update the record using the ID
if it exists, andexternalId
will remain tha same.NA No Yes Invalid scenario. Throw a validation error. Throw a validation error if the ID is not found, indicating that the ID must exist. No No Invalid scenario. Throw a validation error. NA Refer to the following table to understand the behavior when you want to update records by externalId field.
ID in payload? External ID in payload? Behavior Validation Yes Yes Update the record using the externalId
if it exists.The record's ID must match the ID provided in the payload. If not, give an error. Do not allow the ID to be updated in any case. Yes No Invalid scenario. Throw a validation error. Throw a validation error indicating that the externalId must exist. No Yes Update the record using the externalId
if it exists.ExternalId unique validation No No Invalid scenario. Throw a validation error. Throw a validation error indicating that the externalId must exist. -
PATCH {baseURL}/api/data/v1/custom-objects/{objectName}/bulk
- Upsert records using ID or external ID field. For this, a new parameter,UpdateByField,
with Id and ExternalId options is added. Refer to the following tables for each option's behavior.Refer to the following table to understand the behavior when you want to upsert records by ID field.
ID in payload? External ID in payload? Behavior Validation Yes Yes Update the record using the ID
if it exists, and ensure theexternalId
is unique.ExternalId unique validation Yes No Update the record using the ID
if it exists, andexternalId
will remain tha same.NA No Yes Generate a new GUID to use as the ID, create a new record with ID, and ensure the externalId
is unique.ExternalId unique validation No No Generate a new GUID to use as the ID, create a new record with ID, and ensure the externalId
remains null.NA Refer to the following table to understand the behavior when you want to upsert records by externalId field.
ID in payload? External ID in payload? Behavior Validation Yes Yes Update the record using the externalId
if it exists.The record's ID must match the ID provided in the payload. If not, give an error. Do not allow the ID to be updated in any case. Yes No Update the record using the ID
if it exists, keepingexternalId
unchanged. If theID
does not exist, create a new record with that ID, and set theexternalId
to null.NA No Yes Update the record using the externalId
if it exists.ExternalId unique validation No No Generate a new GUID to use as the ID, create a new record with ID, and ensure the externalId
remains null.NA
New APIs
The following Data APIs are newly introduced to support the external ID field.
There is no dependency on the IsExternalIdValidationEnabled
configuration flag.
-
PUT {baseURL}/api/data/v1/custom-objects/{objectName}/by-externalId/{externalId}
- Update a record using an external ID.Refer to the following table to understand the behavior when you pass ID along with the external ID in the payload.
ID in payload? Behavior Validation Yes Update a record by externalId
The record's ID must match the ID provided in the payload. If not, give an error. Do not allow the ID to be updated in any case. No Update a record by externalId
NA -
GET {baseURL}/api/data/v1/custom-objects/{objectName}/by-externalId/{externalId}
- Fetch a record using an external ID. -
DELETE {baseURL}/api/data/v1/custom-objects/{objectName}/by-externalId/{externalId}
- Delete a record using an external ID.