Skip to main content
SahuSa1
Level 3
May 20, 2026
Question

Events source data to Profile schema mapping in AEP

  • May 20, 2026
  • 1 reply
  • 14 views

Hi Adobe Community, Greetings!

 

For a certain use case, we were exploring options to create calculated fields from events source table and map it to a profile type schema. Will this work?

In the events source dataset, there are fields which says what is the account type of the user, whether its active or not (Active flag), Identifier, etc.

What we wanted to build in AEP was to create flag/boolean fields for a particular user, accounting for each account type. 

For ex - A user can have multiple accounts, say Savings account, Spending account, tax saving account, high returns account. What we want to create is 4 fields for each user. So the schema would essentially have Identifier + 4 account type fields. 

 

Logic of each field-

  • Identifier: would be mapped to Identifier.
  • Savings Active: if Account type = Savings account AND Active account = True, then Savings Active field turns true else remains false. 
  • Spending Active: if Account type = Spending account AND Active account = True, then Spending Active field turns true else remains false. 
  • Similarly, other fields are updated.

This would be done in the mapping section of dataflow. 

 

So, my doubt is around - 

If for a user, I received 4 rows, one after the other, where the condition satisfies only that fields should be updated and other fields should not be evaluated. Will that happen, or by default if any condition is not satisfied, the flags are turned to false?

 

For ex - User 1 has Account type = Savings account and Active flag = true, will that update only Savings Active fields to true, while not updating the other field values in the dataset/schema in AEP? or Along with updating Savings Active field, will it also update other fields to false by default?

 

Thanks,

Sambit

1 reply

DineshK
Level 2
May 21, 2026

Hey, great question — let me break this down simply.

 

Think of it like a spreadsheet first

Your events data looks like this — multiple rows per user:

Identifier Account Type Active
User 1 Savings True
User 1 Spending False
User 1 Tax Saving True

What you want to end up with is this — one row per user:

Identifier Savings Active Spending Active Tax Saving Active
User 1 True False True

That's the goal. Now here's the problem.

 

Why dataflow mapping alone won't do this

The mapping section processes one row at a time. It doesn't know what came before or after. So when it sees row 1 (Savings, True), it has no idea what to put in the Spending or Tax Saving columns — it'll either leave them blank or set them to false.

You're essentially asking it to collapse 3 rows into 1. It can't do that on its own.
 

The right tool — Computed Attributes

AEP has a feature built exactly for this. It looks at all events for a user and calculates a single value on their profile.

For your case you'd create 4 computed attributes, one per account type. The logic for each one is simple:

  • Savings Active → has this user ever had an event where account type = Savings AND active = true? If yes, set to true.
  • Same logic for Spending, Tax Saving, High Returns.

AEP handles the rest automatically. No row-by-row confusion.

Find it in: AEP UI → Profiles → Computed Attributes
 

If you still want to use the mapping section

You can, but one important thing — use null instead of false for fields that don't match on a given row.

So instead of:

 

if account_type = Savings AND active = true → savingsActive = true, ELSE false

Write it as:

 

if account_type = Savings AND active = true → savingsActive = true, ELSE null

Why does this matter? When AEP builds the profile it merges all the rows together. A null means "don't touch this field". A false means "overwrite whatever was there with false". So if row 1 sets savingsActive = true and then row 2 comes in for Spending and sets savingsActive = false — you've just wiped out the true value you needed.

null preserves it. false destroys it.

Thanks/ 
Dinesh K