Unify and manage your data

Synchronization configuration

Learn about the synchronization configuration section of the Subscriptions API.

The Subscriptions configuration includes the synchronizationConfig section where you can specify how synchronization between the DT and the CT should be done.

There are two ways to synchronize updates between DT and CT:
  1. REALTIME - Changes on the DT trigger events that get processed and applied to the CT in real time.
  2. PULL - Changes from events on the DT are applied to the CT when a pull event task is run. You can run this manually ad hoc or schedule it. The changes to be applied are taken from the DT activity log instead of the event here.
The rules governing entity synchronization are defined in the “entities” section of the synchronizationConfig definition. This section has a number of properties:
  • types - defines the entities which are to be synced from the DT to the CT.
  • action - describes the mode of the synchronization. There are three options:
    1. AUTOSUBSCRIBE - whenever a match is triggered between the DT and the CT, the DT record will be merged with the CT record. The “matchRules” section is used to define the match rules to use for matching.
    2. MANUAL_MATCH - if there's a match between a record in the DT and the CT, a potential match is created in the CT. This option will create a potential match regardless of whether the match rules of the DT is automatic or suspect.
    3. COPY - does a straightforward copy from the DT to the CT regardless of whether there's a match or not.
  • matchRules - The matchRules section enables you to define a list of match rules in the DT to use for matching with the CT. If the section is empty, then all of the match rules on the data tenant will be used.
  • filter - Filter property can be used to select a subset of data to be transferred from the DT to the CT. The filter uses Reltio's search format filter. For more information, see the mapping section.
  • connections - defines how a relationship should be copied from the DT to the CT depending on whether or not the start and end entities of the DT are present in the CT.

Sample Synchronization configuration

{
  "dtSyncType": "PULL",
  "ctSyncType": "REALTIME",
  "entities": [
    {
      "types": [
        "configuration/entityTypes/HCP"
      ],
      "action": "AUTOSUBSCRIBE",
      "matchRules": [
        "<matchRule1>",
        "<matchRule2>"
      ],
      "filter": "<filter1>",
      "connections": [
         {
             "onCreateOnly": false,
             "types": [
                "configuration/relationTypes/Contractor"
             ],
             "strategy": "ALL|IMPORT_IF_ENTITIES_SUBSCRIBED|IMPORT_IF_START_ENTITY_SUBSCRIBED|IMPORT_IF_END_ENTITY_SUBSCRIBED"
         }
      ],
      "thresholds": {
        "default": 2,
        "extendSubscription": "false",
        "custom": [
          {
            "matchRules": [
              "configuration/entityTypes/HCP/matchGroups/PersonByMESuspect2"
            ],
            "threshold": 2,
            "extendSubscription": "false"
          }
        ]
      }
    },
    {
      "types": [
        "configuration/entityTypes/HCP"
      ],
      "action": "MANUAL_MATCH",
      "matchRules": [
        "<matchRule3>"
      ],
      "filter": "<filter>"
    },
    {
      "types": [
        "configuration/entityTypes/HCO"
      ],
      "action": "COPY"
    }
  ],
  "relations": [
    {
      "types": [
        "configuration/relationTypes/AffiliatedWith"
      ],
      "action": "COPY"
    }
  ]
}

In the following topics, let’s deep dive into the three types of actions/modes of synchronization to understand which type of action would give us the desired results for our use cases.