---
schema_version: "1"
id: 255cc45544590acb867f2bdac4f8c24e7c81b0e063f84784952f94cdf644a808
title: Linked Data Extensions in Journey Builder
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/mktg/264-0-0/mc_jb_data_relationships.md
canonical_url: https://help.salesforce.com/s/articleView?id=mktg.mc_jb_data_relationships.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: b9762feb9bd3bbf1fa4c04f68a711bec1b5049d6a6bf34321af4b13b10264f02
description: Your data setup affects how Marketing Cloud Engagement evaluates the contact attributes used in journey entry source filters, wait activities, or decision splits. Review what happens when a data extension is linked to one or more other data extensions.
products:
  - Marketing
  - Marketing Cloud Engagement
release: "264"
---
# Linked Data Extensions in Journey Builder

Your data setup affects how Marketing Cloud Engagement evaluates the contact attributes used in journey entry source filters, wait activities, or decision splits. Review what happens when a data extension is linked to one or more other data extensions.

In Contact Builder, Data Designer permits linking data extensions to the contact record or to other data extensions. When you create the relationships between data extensions, you can specify the cardinality for the relationship:

- One-to-one relationship
- Population
- One-to-many relationship
- Many-to-many relationship

![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-mktg-mc_journeys_and_automations-264-0-0-production-enus/e08cdd71-c1c1-4ae5-a5e9-8a6dad583ad4/images/icon_tip.png)

Tip Limit the number of rows per contact to 1000 or less. Any contact beyond the 1000th row isn’t used for evaluation.

Cardinality refers to how the data extensions relate to each other based on the attribute links between the two data extensions.

When a filter is used, Marketing Cloud Engagement evaluates contact attributes in activities, entry sources, goals, and exit criteria

To ensure that your intended attributes are evaluated, use attribute-to-attribute comparison in decision splits and event entry sources. This feature allows you to compare two attribute values. You can compare an attribute value from journey data to an attribute value in a linked contact data extension to identify the specific record to evaluate. These examples demonstrate how data extension linking can affect journeys when a filter is used.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-mktg-mc_journeys_and_automations-264-0-0-production-enus/e08cdd71-c1c1-4ae5-a5e9-8a6dad583ad4/images/icon_note.png)

Note We don’t recommend using data extensions with many-to-many relationships in journey entry sources and activities. When you must use a data extension with a many-to-many relationship, use an intermediate data extension.

![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-mktg-mc_journeys_and_automations-264-0-0-production-enus/e08cdd71-c1c1-4ae5-a5e9-8a6dad583ad4/images/icon_example.png)

Example A marketer links a data extension called Customers, which has information about customers, to a data extension called Purchases, which has purchase records. The data extensions are linked on the Contact Key attribute. The Customers data extension has only one record per customer. The Contact key is a primary key in Customers. The Purchases data extension allows more than one record per contact key because a customer can purchase items more than one time. So the marketer links the Customers data extension to the Purchases data extension in a one-to-many relationship. This approach means that a contact key can appear in the Customers data extension one time, but can appear in the Purchases data extension many times.

![Decision Split](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-mktg-mc_journeys_and_automations-264-0-0-production-enus/e08cdd71-c1c1-4ae5-a5e9-8a6dad583ad4/images/icon_example.png)

Decision Split A marketer creates a journey to follow up with survey respondents. The journey sends a follow-up email based on whether the response indicates positive or negative sentiment as tracked in a Survey Respondents data extension. Because customers can respond to multiple surveys, customers can be represented in the data extension more than one time. So the marketer adds a decision split and uses attribute-to-attribute comparison to ensure that the journey evaluates a response sentiment that’s specific to each response. The marketer configures the first decision split path as follows:

Sentiment (from Survey Respondents data extension linked in Contact Builder) = Positive AND

SurveyID (from Journey Data) = SurveyID (from Survey Respondents data extension)

![Event Entry Source](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-mktg-mc_journeys_and_automations-264-0-0-production-enus/e08cdd71-c1c1-4ae5-a5e9-8a6dad583ad4/images/icon_example.png)

Event Entry Source A marketer sets up a journey to follow up with customers who leave their website with unpurchased items in their cart. The marketer configures the Event entry source to admit a contact 1 hour after customers abandon their cart when the cart value is greater than $50. The marketer sets up the filter using the CartValue attribute from contact data. The filter is configured as follows:

CartValue is greater than or equal to $50 AND

CartID (contact data) = CartID (journey data)

This filter ensures that the journey doesn't admit a contact a who abandoned a $10 cart, but does admit a contact who abandoned a $200 cart.

![Goals](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-mktg-mc_journeys_and_automations-264-0-0-production-enus/e08cdd71-c1c1-4ae5-a5e9-8a6dad583ad4/images/icon_example.png)

Goals A marketer creates a journey to encourage customers to make purchases that are greater than $100. Customer purchases are tracked in the Purchases data extension, which is linked to the Customers data extension in a one-to-many relationship. Customers can make multiple purchases. The marketer sets a journey goal that each customer makes a purchase over $100 in total. The journey counts a contact as meeting a goal when they make any purchase over $100. To set up the goal, the marketer configures the goal filter as PurchaseAmount is greater than 100. Marketing Cloud Engagement evaluates the first matching value it finds, even if there are multiple matching values in the data extension. Contact data attributes can’t be compared to journey data attributes in goals.

![Wait by Attribute](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-mktg-mc_journeys_and_automations-264-0-0-production-enus/e08cdd71-c1c1-4ae5-a5e9-8a6dad583ad4/images/icon_example.png)

Wait by Attribute A marketer sets up a journey that emails customers after a purchase. The marketer uses the wait by attribute activity and selects the PurchaseDate attribute from the Purchases data extension. The Purchases data extension is linked to the Customers data extension in a one-to-many relationship. Because of this relationship, a contact can have more than one record matching its contact key in the Purchases data extension. When Marketing Cloud Engagement evaluates the Purchases data extension, it uses the first value that matches the contact key. The wait by attribute activity doesn't compare attributes, so Marketing Cloud Engagement evaluates the first matching value it finds.

#### See Also

- [Attribute to Attribute Comparison](https://help.salesforce.com/s/articleView?id=mktg.mc_jb_attribute_comparison.htm&release=264.0.0&type=5 "Compare an attribute value to another attribute in entry events and decision splits in Journey Builder.")
- [Data Designer in Contact Builder](https://help.salesforce.com/s/articleView?id=mktg.mc_cab_data_designer.htm&language=en_US)
- [Link Data Extensions in Contact Builder](https://help.salesforce.com/s/articleView?id=mktg.mc_cab_link_data_extensions.htm&language=en_US)
- [Configure a Decision Split](https://help.salesforce.com/s/articleView?id=mktg.mc_jb_use_decision_splits.htm&release=264.0.0&type=5 "The Decision Split activity in Journey Builder evaluates contact journey data, then sends each contact down a path based on the filter criteria you set. The paths in a decision split are evaluated in succession from top to bottom. Contacts who meet more than one set of criteria for a path follow the path they qualify for first. Contacts that don’t meet conditions to follow one of the paths you configure follow the Remainder path.")
- [The Contact Event Entry Source](https://help.salesforce.com/s/articleView?id=mktg.mc_jb_entry_events.htm&release=264.0.0&type=5 "An entry event uses data about customer behavior to put contacts into a journey. Entry events generally require a change in data about the customer that triggers an evaluation of that contact for admission in the journey. The records Journey Builder evaluates for events are stored in a data source, which Journey Builder monitors on a schedule that you set.")
- [How to Optimize Journey Builder Performance](https://help.salesforce.com/s/articleView?id=mktg.mc_jb_optimize_sending_in_journey_builder.htm&release=264.0.0&type=5 "The Journey Builder processing rate varies based on your data model, filters, configuration, activities, and content complexity. Journeys share processing resources, so stagger the start time for each journey to reduce the demand and increase the processing speed of individual journeys. Use the System Optimization Dashboard to identify and prioritize optimizations that could increase your overall throughput.")