CRUD events
Learn how to configure Create, Read, Update, and Delete (CRUD) events in Reltio.
By default, all Create, Read, Update, and Delete (CRUD) events from Reltio APIs are sent to queues or topics as messages in JSON format.
The example CRUD Events display the CRUD events.
CRUD Events
Headers: tenantId; eventType; sourceObjectUri.
{
	"type": <string>,
	"object": <fields of target entity/relationship configured by JMSEventsFilteringFields/RelationEventsFilteringFields>,
	"ovChanged": <true|false> //only for ENTITY_CHANGED and RELATIONSHIP_CHANGED, optional - might not present 
       when "analyzeOvChanges" streaming property is set to false
}
        objectVersion header to order the events of the same object instead of using fields that have timestamps, such as createdTime, updatedTime or any fields that originate from the crosswalk. The messages contain the header only if it’s included in the JMSEventsFilteringFields property based on the message streaming configuration. The header value is an incremental number, which is updated after every change in the business object. So, the message with the highest objectVersion header value will contain the latest object state.entity/relationship and configuring by JMSEventsFilteringFields/RelationEventsFilteringFields streaming property:If largeObjectsSupport is true and the compressed size of the event exceeds the limit then the event will be sent again without the object but with URI of the object, event type and exceededQueueSizeLimit flag.
 
     {
	"type": <string>, 
       "ovChanged": <true|false>//only for ENTITY_CHANGED and RELATIONSHIP_CHANGED, optional - might not present 
       when "analyzeOvChanges" streaming property is set to false
	"exceededQueueSizeLimit": true
    }
You can configure the content of the object field by JMSEventsFilteringFields streaming property for events.
The following example explains the configuration of the content of object field by JMSEventsFilteringFields streaming property for entities’ events.
object field for entity includes only fields that are specified in JMSEventsFilteringFields when JMSEventsFilteringFields is absent, object includes all available fields. It can’t be empty.  
            "JMSEventsFilteringFields": [
            "createdBy",
            "createdTime",
            "type",
            "uri"
        ],
Then object field is as follows:
Example: Object field
 "object": {
 "uri": "entities/1GXxZFUA",
 "type": "configuration/entityTypes/HCP",
 "createdBy": "auto20201019_Adminebaih",
 "createdTime": 1603108780415
}
        You can configure the content of an object field by RelationEventsFilteringFields streaming property for relations’ events.
The object field for relation includes only fields that are specified in RelationEventsFilteringFields. It works similarly as JMSEventsFilteringFields.
Fields (defined)
JMSEventsFilteringFields and RelationEventsFilteringFields.)URITypecreatedBycreatedTimeupdatedByupdatedTimestartDateendDateAttributesCrosswalksTagsRatingsconsolidatedRating
JMSEventsFilteringFields
Entities
- roles
 - ctSubscribedUris
 - defaultProfilePic
 - label
 - secondaryLabel
 
- analyticsAttributes
 
- name
 
- potentialMatchTOs
 - matchRules
 - matchScore
 - relevance
 
- timestamp
 - members
 
- timestamp
 - members
 
RelationEventsFilteringFields
- startRefPinned
 - startRefIgnored
 - endRefPinned
 - endRefIgnored
 - startObject
 - endObject
 
The CRUD Events table describes the various types of CRUD events, which are supported:
| CRUD Events | Description | 
ENTITY_CREATED | This event indicates that the entity was created. This event doesn’t include any additional fields. | 
ENTITY_REMOVED | This event indicates that the entity was removed (by DELETE /entity/id request). This event doesn’t include any additional fields. | 
ENTITY_REMOVED_GDPR | This event indicates that the entity was removed (by GDPR request). After removing only two records for every entity, these are left: ENTITY_CREATED and ENTITY_REMOVED_GDPR. This event doesn’t include any additional fields. | 
ENTITY_LOST_MERGE | This event indicates that the entity was merged to another entity. This event doesn’t include any additional fields. | 
ENTITY_CHANGED | This event indicates that the entity was changed. This event doesn’t include any additional fields. | 
RELATIONSHIP_CREATED | This event indicates that a relationship was created between this entity and any other entity. In the case of an added Reference Attribute (for example, Address), the ENTITY_CHANGED event also appears in the result. | 
RELATIONSHIP_REMOVED | This event indicates that a relationship between the entity and some other entity was removed. In the case of a Reference Attribute (for example, Address) the ENTITY_CHANGED event also appears in the result. | 
RELATIONSHIP_REMOVED_GDPR | This event indicates that a relationship between the entity and some other entity was removed (by GDPR request). In the case of a Reference Attribute (for example, Address), the ENTITY_CHANGED event also appears in the result. | 
RELATIONSHIP_CHANGED | This event indicates that a relationship between the entity and some other entity was changed. In the case of the Reference Attribute (for example, Address), the ENTITY_CHANGED event also appears in the result. | 
GROUP_CREATED | Currently, not used | 
GROUP_REMOVED | Currently, not used. | 
GROUP_CHANGED | Currently, not used. | 
INTERACTION_CREATED | This event indicates that the interaction was created. This event doesn’t include any additional fields. | 
INTERACTION_REMOVED | This event indicates that the interaction was removed (by DELETE /entity/id request). This event doesn’t include any additional fields. | 
INTERACTION_CHANGED | This event indicates that the interaction was changed. This event doesn’t include any additional fields. | 
ENTITIES_SPLITTED | For the winner entity, this event indicates that some entities were unmerged from it. For an unmerged entity, it indicates that the entity was unmerged from its parent. | 
ENTITIES_MATCHES_CHANGED | This event is fired when the list of Potential Matches for an entity was changed. | 
RELATION_LOST_MERGE: | This event is generated when merging relationships for loser relations. | 
RELATIONSHIP_MERGED:  | This event is launched when merging relations (like ENTITIES_MERGED for entities). | 
ENTITY_BUSINESS_PROCESS_CHANGED | For workflow functionality, there are commonly designated business process objects connected to an entity. For any change to the business process for an entity (even if the business process was created or deleted), the platform fires the event. | 
Lookup code and value in attributes are serialized to event JSON. {
   "type":"ENTITY_CHANGED",
   "uri":"entities/00009ab",
   "deltas":{
      "ovChanged":true,
      "delta":[
         {
            "type":"ATTRIBUTE_ADDED",
            "attributeType":"configuration/entityTypes/Location/attributes/Street",
            "newValue":{
               "value":"NewStreet",
               "ov":true,
               "id":"7",
               "sources":[
                  "Reltio"
               ]
            }
         },
         {
            "type":"ATTRIBUTE_CHANGED",
            "attributeType":"configuration/entityTypes/Location/attributes/City",
            "newValue":{
               "value":"ChangedCity",
               "ov":true,
               "id":"8",
               "sources":[
                  "Reltio"
               ]
            },
            "oldValue":{
               "value":"InitialCity",
               "ov":true,
               "id":"8",
               "sources":[
                  "Reltio"
               ]
            }
         },
         {
            "type":"ATTRIBUTE_REMOVED",
            "attributeType":"configuration/entityTypes/Location/attributes/Country",
            "oldValue":{
               "value":"RemovedCountry",
               "ov":false,
               "id":"9",
               "sources":[
                  "Facebook"
               ]
            }
         }
      ]
   }
}Example: RELATIONSHIP_CREATED
{
  "type": "RELATIONSHIP_CREATED",
  "object": {
    "uri": "relations/VnEqtJj",
    "type": "configuration/relationTypes/HasAddress",
    "createdBy": "auto20190828AdminawgMp",
    "createdTime": 1566970796552,
    "updatedBy": "auto20190828AdminawgMp",
    "updatedTime": 1566970796552,
    "startRefPinned": false,
    "startRefIgnored": false,
    "endRefPinned": false,
    "endRefIgnored": false,
    "attributes": {
      "BusinessCode": [
        {
          "type": "configuration/relationTypes/HasAddress/attributes/BusinessCode",
          "ov": true,
          "value": "AAA",
          "lookupCode": "A",
          "lookupRawValue": "A",
          "uri": "relations/VnEqtJj/attributes/BusinessCode/1dM9qjo8J"
        }
      ],
      "CareOf": [
        {
          "type": "configuration/relationTypes/HasAddress/attributes/CareOf",
          "ov": true,
          "value": "B",
          "uri": "relations/VnEqtJj/attributes/CareOf/1dM9qjsOZ"
        }
      ],
      "AddressType": [
        {
          "type": "configuration/relationTypes/HasAddress/attributes/AddressType",
          "ov": true,
          "value": "India",
          "lookupCode": "INDIA",
          "lookupRawValue": "091",
          "uri": "relations/VnEqtJj/attributes/AddressType/1dM9qjwep"
        }
      ],
      "SourceCD": [
        {
          "type": "configuration/relationTypes/HasAddress/attributes/SourceCD",
          "ov": true,
          "value": "081",
          "lookupError": "1003: RDM canonical value mapping not found for value [081] and source [Reltio] in tenant [tst01messaging]",
          "uri": "relations/VnEqtJj/attributes/SourceCD/1dM9qk0v5"
        }
      ]
    },
    "crosswalks": [
      {
        "uri": "relations/VnEqtJj/crosswalks/1dM9qk5BL",
        "type": "configuration/sources/Reltio",
        "value": "VnEqtJj",
        "reltioLoadDate": "2019-08-28T05:39:56.552Z",
        "createDate": "2019-08-28T05:39:56.552Z",
        "updateDate": "2019-08-28T05:39:56.552Z",
        "attributes": [
          "relations/VnEqtJj/attributes/BusinessCode/1dM9qjo8J",
          "relations/VnEqtJj/attributes/AddressType/1dM9qjwep",
          "relations/VnEqtJj/attributes/SourceCD/1dM9qk0v5",
          "relations/VnEqtJj/attributes/CareOf/1dM9qjsOZ"
        ],
        "singleAttributeUpdateDates": {}
      }
    ]
  }
}event name. These event types don’t include any information other than the name of the event.CHANGE_REQUEST_CREATED: This event is generated when a Data Change Request (DCR) is created.CHANGE_REQUEST_CHANGED: This event is generated when a Data Change Request (DCR) is changed.CHANGE_REQUEST_REMOVED: This event is generated when a Data Change Request (DCR) is deleted.
The ENTITIES_SPLITTED event type has an extra field including split participant URIs:
{
	"type": <string>,
	"object": <serialized ObjectTO (EntityTO/RelationTO)>,
	"ovChanged": <true|false>,
	"uris": <List<string>>
}
The following types of CRUD events aren’t supported:
ACTIVITY_CREATED_UPDATEDACTIVITY_REMOVEDENTITY_LOSER_REMOVEDRELATION_WOULD_CHANGERELATION_WOULD_DELETEENTITIES_CATEGORY_TREE_STRUCTURE_CHANGED
ovChanged flag is always true for ENTITY_CHANGED events sent for these related entities. This is due to a change in reference attribute. This type of optimization is to avoid negative impact on performance when there’s a difference in calculation, in case some referenced entity along with many related entities were changed.SNAPSHOTDELTASNAPSHOT_WITH_DELTA
SNAPSHOT. The request JSON is as follows:{
	"type": <string>,
	"object": <serialized ObjectTO (e.g. EntityTO/RelationTO)>,
	"ovChanged": <true|false> //only for ENTITY_CHANGED and RELATIONSHIP_CHANGED, optional - may not be present when "analyzeOvChanges" streaming property is set to false,
	"exceededQueueSizeLimit": <true|false> // populated when TRUE
}DELTA is as follows:{
	"type": <string>,
	"uri": <source_object_uri>,
	"exceededQueueSizeLimit": <true|false>, // populated when TRUE
	"deltas": {
		AttributesDeltaCollection
	}
}For more information, see About Delta Changes for Attributes.
Delta event examples
The following example shows the DELTA payload for the ENTITY_CREATED event:
{
	"type": "ENTITY_CREATED",
	"uri": "entities/loc2",
	"deltas": {
		"ovChanged": false,
		"delta": [
			{
				"type": "ENTITY_CREATED",
				"newValue": {
					"uri": "entities/loc2",
					"type": "configuration/entityTypes/Location",
					"createdBy": "test",
					"createdTime": 1662985373660,
					"updatedBy": "test",
					"updatedTime": 1662985373660,
					"attributes": {
						"AddressLine1": [
							{
								"type": "configuration/entityTypes/Location/attributes/AddressLine1",
								"ov": true,
								"value": "AL1",
								"uri": "entities/loc2/attributes/AddressLine1/5"
							}
						]
					},
					"crosswalks": [
						{
							"uri": "entities/loc2/crosswalks/6",
							"type": "configuration/sources/NPI",
							"sourceTable": "source_table",
							"value": "NPI_LOC2",
							"reltioLoadDate": "2022-09-12T12:22:53.660Z",
							"createDate": "2022-09-12T12:22:53.660Z",
							"updateDate": "2022-09-12T12:22:53.660Z",
							"attributes": [
								"entities/loc2/attributes/AddressLine1/5"
							],
							"singleAttributeUpdateDates": {}
						}
					],
					"analyticsAttributes": {},
					"label": "AL1",
					"secondaryLabel": ""
				}
			}
		]
	}
}The following example shows the DELTA payload for the RELATIONSHIP_CREATED event. You can also see other attributes that are needed for a relationship event. These attributes help tie the event with its corresponding start object.
{
	"type": "RELATIONSHIP_CREATED",
	"uri": "relations/rel1",
	"deltas": {
		"ovChanged": false,
		"relationType": "HasAddress",
		"startObjectUri": "entities/hcp1",
		"endObjectUri": "entities/loc1",
		"delta": [
			{
				"type": "RELATIONSHIP_CREATED",
				"newValue": {
					"uri": "relations/rel1",
					"type": "configuration/relationTypes/HasAddress",
					"createdBy": "test",
					"createdTime": 1662985373660,
					"updatedBy": "test",
					"updatedTime": 1662985373660,
					"startRefPinned": false,
					"startRefIgnored": false,
					"endRefPinned": false,
					"endRefIgnored": false,
					"crosswalks": [
						{
							"uri": "relations/rel1/crosswalks/8",
							"type": "configuration/sources/NPI",
							"sourceTable": "source_table",
							"value": "NPI_REL1",
							"reltioLoadDate": "2022-09-12T12:22:53.660Z",
							"createDate": "2022-09-12T12:22:53.660Z",
							"updateDate": "2022-09-12T12:22:53.660Z",
							"attributes": [
								"relations/rel1/attributes/AddressType/7"
							],
							"singleAttributeUpdateDates": {}
						}
					],
					"startObject": {
						"objectURI": "entities/hcp1",
						"crosswalks": []
					},
					"endObject": {
						"objectURI": "entities/loc1",
						"crosswalks": []
					}
				}
			}
		]
	}
}The following example shows the DELTA payload for the ENTITY_CHANGED event:
{
	"type": "ENTITY_CHANGED",
	"uri": "entities/hcp1",
	"deltas": {
		"ovChanged": true,
		"delta": [
			{
				"type": "ATTRIBUTE_ADDED",
				"attributeType": "configuration/entityTypes/HCP/attributes/Address",
				"newValue": {
					"ov": true,
					"id": "rel1",
					"crosswalks": [
						{
							"type": "configuration/sources/NPI",
							"value": "NPI_REL1",
							"sourceTable": "source_table"
						}
					]
				}
			}
		]
	}
}The following example shows the DELTA payload for the RELATIONSHIP_REMOVED event:
{
	"type": "RELATIONSHIP_REMOVED",
	"uri": "relations/rel2",
	"deltas": {
		"ovChanged": false,
		"relationType": "HasAddress",
		"startObjectUri": "entities/hcp1",
		"endObjectUri": "entities/loc2"
	}
}The following example shows a CHANGE_REQUEST_CREATED event:
{
  "type": "CHANGE_REQUEST_CREATED",
  "object": {
    "uri": "changeRequests/0001Hur",
    "createdBy": "User",
    "createdTime": 1738687741226,
    "updatedBy": "User",
    "updatedTime": 1738687741226,
    "changes": {
      "entities/00005KL": [
        {
          "id": "0000wbZ",
          "type": "IGNORE_ATTRIBUTE",
          "createdTime": 1738687741226,
          "createdBy": "User",
          "objectType": "configuration/entityTypes/HCP",
          "attributePath": "FullName/0",
          "oldValue": {
            "value": "FullName"
          },
          "newValue": {
            "value": "FullName"
          },
          "newPinOrIgnoreValue": true,
          "attributeType": "configuration/entityTypes/HCP/attributes/FullName"
        },
        {
          "id": "0000o53",
          "type": "DELETE_ATTRIBUTE",
          "createdTime": 1738687741226,
          "createdBy": "User",
          "objectType": "configuration/entityTypes/HCP",
          "attributePath": "FullName/0",
          "oldValue": {
            "value": "FullName"
          },
          "newValue": {
            "value": "FullName"
          },
          "crosswalk": {
            "type": "configuration/sources/Reltio",
            "value": "00005KL",
            "dataProvider": true
          },
          "newPinOrIgnoreValue": false,
          "attributeType": "configuration/entityTypes/HCP/attributes/FullName"
        },
        {
          "id": "0000jon",
          "type": "UPDATE_ATTRIBUTE",
          "createdTime": 1738687741226,
          "createdBy": "User",
          "objectType": "configuration/entityTypes/HCP",
          "attributePath": "FullName/0",
          "oldValue": {
            "value": "FullName"
          },
          "newValue": {
            "value": "Name"
          },
          "crosswalk": {
            "type": "configuration/sources/Reltio",
            "value": "00005KL",
            "dataProvider": true
          },
          "newPinOrIgnoreValue": false,
          "attributeType": "configuration/entityTypes/HCP/attributes/FullName"
        },
        {
          "id": "0000fYX",
          "type": "INSERT_ATTRIBUTE",
          "createdTime": 1738687741226,
          "createdBy": "User",
          "objectType": "configuration/entityTypes/HCP",
          "attributePath": "FullName",
          "newValue": {
            "value": "Name"
          },
          "crosswalk": {
            "type": "configuration/sources/Reltio",
            "value": "00005KL",
            "dataProvider": true
          },
          "newPinOrIgnoreValue": false,
          "attributeType": "configuration/entityTypes/HCP/attributes/FullName"
        },
        {
          "id": "0000sLJ",
          "type": "PIN_ATTRIBUTE",
          "createdTime": 1738687741226,
          "createdBy": "User",
          "objectType": "configuration/entityTypes/HCP",
          "attributePath": "FullName/0",
          "oldValue": {
            "value": "FullName"
          },
          "newValue": {
            "value": "FullName"
          },
          "newPinOrIgnoreValue": true,
          "attributeType": "configuration/entityTypes/HCP/attributes/FullName"
        },
        {
          "id": "00010rp",
          "type": "UPDATE_START_DATE",
          "createdTime": 1738687741226,
          "createdBy": "User",
          "objectType": "configuration/entityTypes/HCP",
          "newValue": [
            ""
          ]
        },
        {
          "id": "00019OL",
          "type": "UPDATE_ROLES",
          "createdTime": 1738687741226,
          "createdBy": "User",
          "objectType": "configuration/entityTypes/HCP"
        },
        {
          "id": "0001585",
          "type": "UPDATE_END_DATE",
          "createdTime": 1738687741226,
          "createdBy": "User",
          "objectType": "configuration/entityTypes/HCP",
          "newValue": [
            ""
          ]
        },
        {
          "id": "0001Deb",
          "type": "UPDATE_TAGS",
          "createdTime": 1738687741226,
          "createdBy": "User",
          "objectType": "configuration/entityTypes/HCP"
        }
      ]
    },
    "type": "configuration/changeRequestTypes/default",
    "state": "AWAITING_REVIEW"
  }
}