Skip to main content

System Architecture

Organizations seek to create identities that allow them to have a holistic view of their customers across data sets. Business data comes from multiple sources, as shown on the left in the figure below. The goal is to unify the data into a more complete customer profile so that the organization can serve customers better. Identity resolution allows organizations to provide customized services to their customers in the various channels the organization supports. The result of Portrait Engine’s resolution is the assignment of a Portrait ID that serves as the matching key for data sets, and as the matching key for leveraging other data sources.

Figure 1. The role of identity resolution in providing high-quality customer interactions.
The role of identity resolution in providing high-quality customer interactions.



Organizations that try to unify their views of customers and households face significant challenges. Among the common data hygiene problems are:

  • Non-matching data structures and field names.

  • Inconsistent names or addresses.

  • Households that do not share a common last name.

  • No common matching keys such as emails or phone numbers.

Portrait Engine solves these problems by creating logic that identifies:

  • The best name.

  • The best phone.

  • The likely current address.

  • The matching interactions.

  • Other business logic rules.

From these calculations, one can derive information such as:

  • The most recent interaction.

  • The locations that were visited.

  • What the customer’s monthly and lifetime value are.

  • The current customer status.

The assignment of a Portrait ID allows connections to be made to records in other data sets. A figure summarizing the Portrait ID and its internal attributes is shown below.

Figure 2. The Portrait ID identifier.
The Portrait ID identifier.



The process by which Portrait Engine evaluates records to determine identities may be summarized by four stages in the block diagram shown below, which are components that will be orchestrated by an application. Input is the specification of data sources. The Unification stage defines a set of rules or relationships that connects the data. The Portrait stage applies an algorithm or routine to dimension your data using the relationships you defined. Finally, the user obtains access to the graph output in the format and location they specify. The user obtains access to the graph output in the form of a JSON, Avro, Parquet, or CSV file.

Figure 3. Detailed Portrait Engine block diagram.
Detailed Portrait Engine block diagram.



LiveRamp-Hosted Architecture

Portrait Engine is available as a LiveRamp-hosted deployment. In this solution, data sources will be sent to LiveRamp via Customer SFTP. Customer data will only reside in the region in which the customer is delivering data—whether in the U.S., EU, or another endpoint.

Figure 4. LiveRamp-Hosted Architecture
LiveRamp-Hosted Architecture

Client-Hosted Architecture

Portrait Engine can be deployed as an application in a customer’s Virtual Private Cloud (VPC) in GCP. Portrait Engine will pull the data sources from within the client VPC and run applications that locally create the first-party graph. These applications will run on the infrastructure that the client has provisioned, using the cadence that the customer configures in the Portrait Engine application.

Once the data has been resolved, the identities can be used by any other analytics or visualization tools or can be segmented and sent externally for activation to any downstream platform such as a customer database, orchestration platform, campaign management tool, or other systems, within or external to that project.

Client-hosted deployment is available in GCP only today. Please speak to your LiveRamp representative about the roadmap delivery of your cloud provider.

Figure 5. Client Hosted Architecture
LiveRamp-Hosted Architecture