Update Profile Node

The Update Profile Node synchronizes the data from the current graph to the Xponent Identity Manager and updates the Profile part of the schema. This includes merging (or collapsing) one or more profiles in the profile store and returning a single profile. 

In the prior graphs, user identifier, interaction types, attributes were stored to databases via various logic nodes - example:

With the Update Profile Node, the workflow can be made to be much simpler - example:

 

To make the transition from your current graph to start using the new Update Profile and Save Interaction nodes, please see your Professional Services team member to evaluate the best approach for making the transition.

For details of how to manage the Identifier Type and understanding how the Xponent Identity Manager - please see: Xponent ID Manager

Profile Merging

When the Update Profile Node is executed by the Xponent Engine the following takes place:

  • The identifiers currently in the Identifiers section are used to find all profiles that match 
  • All of these profiles are merged down keeping the oldest profile 
  • The Attributes from the Schema are merged into the remaining profile 
  • The merged set of Identifiers, Attributes, Journey Steps and Interactions are all returned once the node has completed

If no profile exists then a new profile will be created from the Identifiers and Attributes in the schema at the point in the graph that the node was executed

The rules for merging of the attributes follow the general principle that newer information will always overwrite older information. The merge process is equivalent to the lodash merge object function. 

For each data type the rules are as follows: 

  • Integer and Floating Point - newest is kept 
  • Strings - newest is kept
  • Arrays - result values are chosen from the first array in which the value occurs
  • Objects - newer keys are kept, new keys are merged 

Examples

The examples below show what will happen if you use the Update Profile Node given the current Schema setting, the state of the Profile in the Xponent Profile Store and then the returned merged object. 

Imagine that the current state of the schema is: 

{
    "Profile": {
        "Identifiers": {
            "email": [
                "myworkemail@domain1.com"
            ]
        },
        "Attributes": {
            "Integer": 1,
            "Float": 12.34,
            "String": "Hello",
            "Object": {
                "key1": "val1",
                "key2": "val2"
            },
            "Array": [
                1,
                2,
                3,
                4
            ]
        },
        "JourneySteps": [],
        "Interactions": []
    }
}

After the Profile is merged:

Privacy Policy
© 2022 CSG International, Inc.