Expand my Community achievements bar.

Join us on September 25th for a must-attend webinar featuring Adobe Experience Maker winner Anish Raul. Discover how leading enterprises are adopting AI into their workflows securely, responsibly, and at scale.

Journey executes but no emails delivered when email field is inside an object array

Avatar

Level 2

Hi everyone,

I’m using Adobe Shared Sandbox and testing a journey in AJO where one profile can have multiple objects (for example, multiple accounts). To model this, I created an object array (accountDetails) inside the profile schema. Each object has:

  • accountId (set up as a secondary identity in a non-people namespace)

  • accountEmail (string field for the account’s email address)

  • other account-level attributes.

What I’ve verified so far:

  • Primary identity = customerId (cross-device).

  • Profile Viewer shows all attributes populated, including the nested accountEmail.

  • Audience qualifies correctly and the journey executes without errors.

  • I tested two ways:

    1. With supplemental identifier = accountId

    2. Without supplemental identifier (just using customerId)

  • In both cases, the journey runs successfully but no emails are delivered.

  • I even used my personal Gmail address in accountEmail to rule out deliverability issues, still nothing reaches the inbox.

  • Content simulation works fine and shows the correct email address from the array. The problem only happens when the journey actually runs.

Question:
Does AJO currently support using an email address that lives inside an object array for delivery? Or does the email action only work with top-level profile email fields (e.g., person.email.address), regardless of whether supplemental identifiers are configured?

Has anyone managed to get live emails to send when the address is stored inside an array field?

Thanks in advance for any insights.

11 Replies

Avatar

Community Advisor

@RS195 Try updating the execution field on the channel configuration with the accountDetails object accountEmail attribute.

Screenshot 2025-08-19 at 10.48.29 AM.png

Thanks, Sathees

Avatar

Level 2

HI @SatheeskannaK, thanks for the response, yes, I did change the execution field, accordingly, also tried overriding also, but still the same. 

Avatar

Employee Advisor

Could you share the expression you used to overwrite the email field, and let me know what the message feedback event status shows when you look up the profile?

Avatar

Level 2

Hi @Mohan_Dugganab,

I used this expression in both the execution field and overwrite field: _tenant.accountDetails.accountEmail

The problem is I’m not seeing any message feedback events generated at all when the journey runs. But when I query the step events, I do see the flow completing (example attached: Read Segment -> Email -> End, all with counts).

RS195_1-1755621985577.png

So, the journey runs through every step, but no message feedback is created.

Thanks!

Avatar

Employee Advisor

You will have to filter for the accountEmail using collection management functions https://experienceleague.adobe.com/en/docs/journey-optimizer/using/orchestrate-journeys/building-adv... 

 

#{ExperiencePlatform.ProfileFieldGroup.profile._tenant.accountDetails.first(currentDataPackField.accountType == 'xyz').accountEmail}

Avatar

Level 2

I updated my expression to something like:
#{ExperiencePlatform.ProfileFieldGroup.profile._tenant.accountDetails.first(currentDataPackField.activeFlag == true).accountEmail}

Thanks again. I set up the journey so that only profiles with activeFlag = true should receive an email. The audience filters down correctly, but when the journey runs it still sends to all objects in the array, not just the ones marked active.

How can I make sure the journey only sends a single email to the profiles that meet the active condition, instead of sending to everything in the array?

Avatar

Community Advisor

@RS195 

The expression mentioned will help us filter the profiles. If a profile has two activeFlags set to true, it will select the first one. However, it will attempt to send the message to all email addresses associated with that profile. Since the execution field relates to the account email for the profile, which can be multiple. I'm curious if you notice anything in the journey report section labeled "Actions error reasons."

Thanks, Sathees

Avatar

Level 2

Hi @SatheeskannaK,

Appreciate the clarification. I also checked the journey report and can confirm there are no “Actions error reasons” logged.

Here’s where I’m stuck:

  • The profile audience filters down correctly using the condition on the array field.

  • But at execution time, the message still attempts to send to every email in the array, not just the one that matches the condition.

What I’m really trying to achieve is:

  1. Send the message only if the array object meets the condition (e.g., flag = true). If no object meets it, don’t send at all.

  2. When it does send, personalize the content with the specific attributes from that single qualifying object, instead of looping through the entire array.

From what I see, the filter expression works for qualification, but execution seems to treat the email field as multi-valued. Do you know if there’s a way to tie the execution field directly to the conditional object, so the send and the personalization both align with that one record?

Avatar

Level 4

this is what I use to use when I want the email from identityMap which contains multiple emails inside:

 

#{ExperiencePlatform.ProfileFieldGroup.profile.identityMap.entry('email').first().id}

 

In case you want another position you can use:

 

#{ExperiencePlatform.ProfileFieldGroup.profile.identityMap.entry('email').at(n).id}

 

where n is the position number.

Avatar

Level 4

Silvio6_0-1757085122276.jpeg

 

Hi! I'm not able to update the Execution address within an Active channel surface.

 

Avatar

Administrator

Hi @RS195,

Were you able to resolve this query with the help of the provided solutions, or do you still need further assistance? Please let us know. If any of the answers were helpful in moving you closer to a resolution, even partially, we encourage you to mark the one that helped the most as the 'Correct Reply.'

Thank you!



Sukrity Wadhwa