Unify and manage your data

Association of Crosswalk With Proper Contributor

When overriding an existing entity, it is possible to associate crosswalks with an existing contributor.

The customers can POST entities with more than one "contributorProvider":true property in case of a new entity. In case of an existing entity, only one "contributorProvider":true property can be posted (override case).

If you want all crosswalks (new and already existing) to be moved to the specified contributor, then you should specify "dataProvider":false  and "globalContributorProvider":true  properties for a crosswalk from the desired contributor.

Note: Options "contributorProvider":true or "globalContributorProvider":true  can be used only for non- "dataProvider" crosswalks, otherwise an error will occur. Also, an error will occur if two non- "dataProvider" crosswalks from different contributors are marked as the contributor provider.

If you specify both "contributorProvider":true and "globalContributorProvider":true in the same crosswalk, then the "globalContributorProvider" logic will be applied.

Suppose there is an entity with the following crosswalk tree:

{
   "merges":[
      {
         "time":1413408570877,
         "user":"user",
         "mergeReason":"Merge
by hand",
         "mergeRules":"",
         "losers":[
            {
               "crosswalks":[
                  {
                     "URI":"entities/fb.1/crosswalks/9ju9",
                     "type":"configuration/sources/FB",
                     "ownerType":"entity",
                     "value":"fb.1"
                  }
               ],
               "URI":"entities/fb.1"
            }
         ]
      }
   ],
   "crosswalks":[
      {
         "URI":"entities/lnkd.1/crosswalks/BZ3K",
         "type":"configuration/sources/LNKD",
         "ownerType":"entity",
         "value":"lnkd.1"
      }
   ],
   "URI":"entities/lnkd.1"
}

It has two contributors ("fb.1" and "lnkd.1") and each contributor contains one crosswalk.

Assume that you are going to add some values with a new crosswalk: "fb.2". You want to associate this new crosswalk with the "fb.1" contributor. In this case you need to execute the following request:

POST{
   TenantURL
}/entities
Headers:Authorization:Bearer 204938ca-2cf7-44b0-b11a-1b4c59984510,
Content-Type:application/json Body:[
   {
      "type":"configuration/entityTypes/Individual",
      "attributes":{
         "Name":[
            {
               "value":"New name"
            }
         ],
        ...
      },
      "crosswalks":[
         {
            "type":"configuration/sources/FB",
            "value":"fb.1",
            "dataProvider":false,
            "contributorProvider":true
         },
         {
            "type":"configuration/sources/FB",
            "value":"fb.2",
            "dataProvider":true
         }
      ]
   }
]
Note: There is non-" dataProvider " crosswalk "fb.1" with the "contributorProvider":true  property.

The crosswalk tree will appear as follows:

{
   "merges":[
      {
         "time":1413408570877,
         "user":"user",
         "mergeReason":"Merge by hand",
         "mergeRules":"",
         "losers":[
            {
               "crosswalks":[
                  {
                     "URI":"entities/fb.1/crosswalks/9ju9",
                     "type":"configuration/sources/FB",
                     "ownerType":"entity",
                     "value":"fb.1"
                  },
                  {
                     "URI":"entities/fb.1/crosswalks/hk3f",
                     "type":"configuration/sources/FB",
                     "ownerType":"entity",
                     "value":"fb.2"
                  }
               ],
               "URI":"entities/fb.1"
            }
         ]
      }
   ],
   "crosswalks":[
      {
         "URI":"entities/lnkd.1/crosswalks/BZ3K",
         "type":"configuration/sources/LNKD",
         "ownerType":"entity",
         "value":"lnkd.1"
      }
   ],
   "URI":"entities/lnkd.1"
}

If you post a new entity without the "contributorProvider"  property for the "fb.1" non- "dataProvider" crosswalk (default behavior), you will get the following crosswalk tree:

{
   "merges":[
      {
         "time":1413408570877,
         "user":"user",
         "mergeReason":"Merge by hand",
         "mergeRules":"",
         "losers":[
            {
               "crosswalks":[
                  {
                     "URI":"entities/0YjDHlq/crosswalks/9ju9",
                     "type":"configuration/sources/FB",
                     "ownerType":"entity",
                     "value":"fb.1"
                  }
               ],
               "URI":"entities/0BFcxNd"
            }
         ]
      },
      {
         "time":1413409970877,
         "user":"user",
         "mergeReason":"Merge by crosswalks",
         "mergeRules":"",
         "losers":[
            {
               "crosswalks":[
                  {
                     "URI":"entities/0YjDHlq/crosswalks/hk3f",
                     "type":"configuration/sources/FB",
                     "ownerType":"entity",
                     "value":"fb.2"
                  }
               ],
               "URI":"entities/0G2cxkL",
               "phantomEntity":true
            }
         ]
      }
   ],
   "crosswalks":[
      {
         "URI":"entities/0YjDHlq/crosswalks/BZ3K",
         "type":"configuration/sources/LNKD",
         "ownerType":"entity",
         "value":"lnkd.1"
      }
   ],
   "URI":"entities/0YjDHlq"
}