I am slightly confused by Trailblazers Help's definition for Attribute Groups. What I do not understand is what is the equivalent of an attribute group in a typical database management system.

Attribute groups collect several data extensions into a single entity for use in organizing and interacting with contact information.

Do they correspond to Views? Or datasets resulted from joining two or more tables?

So, I am reaching out for help here to have a suggestion for my attribute groups setup before it is too late on the Marketing Cloud instance I am responsible for.

Our data model is quite simple.

enter image description here

In the diagram above,

  1. Passenger's Id will be mapped to ContactId. In other words, Passenger has a one-to-one relationship with the contact.
  2. Each Passenger can take part in zero or more number of flights. In other words, Passenger has a one-to-many relationship with Flight ("many" being on the flight side).
  3. Each Booking can contain one or more flights. In other words, Booking has a one-to-many relationship with Flight ("many" being on the flight side).

So the questions are:

  • How many Attribute Groups would you create for the above scenario? My guess is 3: One from Passenger to Contacts and the two for linking the data extensions between Passenger-Flight and Booking-Flight.
  • Do we need a population of this all to work out?

Thanks for your time in advance!


Your schema map on your example scenario is correct, you can do this with three separate Data Extensions in an Attribute Group. There really isn't any black magic behind the curtains.

When desigining the Data Extensions by creating attributes and setting types, pay extra attention to which fields you mark as Primary Keys.

For an example, DE1 is for your Passengers where you would most definitely need to set the PassengerID as Primary Key as you would expect only one Passenger with unique ID to exist in it.

Another good practice would be to keep PassengerID also available on the Booking Data Extension, just in case you need a direct check from a Booking level to some specific Passenger details.

  • You will not need a population, instead when configuring Journey Builder you can opt to use Contact Data path to find proper links between your Data Extensions and attributes.

  • With standard Emails/SMS/triggers you can just utilize AMPscript LookUp to find proper personalization attributes for the content.

  • Thank you! So you suggest that I create one attribute group to contain the entire data model? / Unfortunately, the PassengerId field is not available at Booking level. Only in flight. / Could you briefly specify how the attribute relationships look in your answer? – Disasterkid Jun 11 '19 at 13:33
  • 1
    Assuming you're not using Sales Cloud to synchronise your data over, then yes - first you create your Data Extensions with required attributes, then in Data Designer you create a single Attribute Group - and inside that group you configure your schema with those Data Extensions as you've pictured it here. As for PassengerID on Booking level - this isn't needed, but more like a good to have thing for some specific scenarios :) – Rain Jun 11 '19 at 13:40
  • 1
    Depends - as if you do decide to synchronise, then all the objects you decide to synchronose will be built (and connected) in a whole separate Attribute Group. Meaning if with this synchronisation you decide to bring over the Flight and Booking objects from Sales Cloud, you will end up with two Attribute Groups with more or less the same data. Only problematic thing I see are Journeys using this custom model where you may later want to use more up to date source (SF data) would make you recreate the Journeys from scratch. – Rain Jun 11 '19 at 13:51
  • 1
    My bad if I confused you, jumped ahead a bit. Basically using this custom Attribute Group for Journeys will be fine and as optimal as you manage to make it. There will not be any real downsides to it aside from age of the data, which will depend on how often you update the data extensions. As long as you have the data you need in those Data Extensions for now you should be fine with any/all Journeys utilizing it. – Rain Jun 11 '19 at 14:03
  • 1
    Thank you for the answer and your patience! – Disasterkid Jun 11 '19 at 14:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.