Expand my Community achievements bar.

Join Adobe Journey Optimizer product experts for a live Ask Me Anything on October 15th at 8 AM PT about Expanding Your Mobile Reach with RCS & WhatsApp in AJO!
SOLVED

listObject, what functions can use this, and how can I extract values out of it

Avatar

Level 7

Hi there,

 

I have an Object Array that looks something like this:

 

"Account":

[

{"AccountID": "1", "lineofBusiness": "AA", "pymntType": "Cash"},

{"AccountID": "2", "lineofBusiness": "BB", "pymntType": "CreditCard"},

{"AccountID": "3", "lineofBusiness": "CC", "pymntType": "Debit"},

{"AccountID": "4", "lineofBusiness": "CC", "pymntType": "CreditCard"} 

]

 

Let's say I only want to clean up the array to accounts that has pymntType = CreditCard only, so then the expression would look something like this:

filter(#{ExperiencePlatform.Profile.Account, "pymtType", ["CreditCard"]} --> this returns a listObject with pymtType == CreditCard only. 

 

At this point, I have couple questions:

1) What can I do with this listObject? I am not aware of any functions that accept listObject as a parameter

2) How do I extract a value of this new listObject? For example, I want the lineofBusiness at position 0. 

 

Thanks.

 

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

@akwankl 

One of the places where listObject is used on custom actions. Take a look at this documentation.

To retrieve account object values have a look at the collection management functions

Thanks, Sathees

View solution in original post

7 Replies

Avatar

Correct answer by
Community Advisor

@akwankl 

One of the places where listObject is used on custom actions. Take a look at this documentation.

To retrieve account object values have a look at the collection management functions

Thanks, Sathees

Avatar

Level 7

Hi @SatheeskannaK,

 

Is it possible to extract the listObject with the filter function, then grab a value out of listObject? In my example, something like filter(#{ExperiencePlatform.Profile.Account, "pymtType", ["CreditCard"]}.lineofBusiness

 

Thanks.

Avatar

Community Advisor

Can you try along these lines, 

serializeList(#{ExperiencePlatform.Profile.Account.all(currentDataPackField.pymntType == "CreditCard").lineOfBusiness}, ",", true)

Expected output: BB,CC

Thanks, Sathees

Avatar

Employee

Is it possible to write a condition that only selects profiles with a "lineofBusiness": "CC" and "pymntType": "CreditCard"?
So in this scenario only AccountID 4 would qualify?

Avatar

Community Advisor

@sbral Yes, it's possible to use collection management functions with AND conditions.

https://experienceleague.adobe.com/en/docs/journey-optimizer/using/orchestrate-journeys/building-adv... 

Thanks, Sathees

Avatar

Employee

Can you give an example of what the JSON structure looks like for these functions?

#{ExperiencePlatform.ExperienceEventFieldGroup.experienceevent.all(currentDataPackField._aepgdcdevenablement2.purchase_event.receipt_nbr == "10-337-4016").
_aepgdcdevenablement2.purchase_event.productListItems.all(currentDataPackField.SKU == "AB17 1234 1775 19DT B4DR 8HDK 762").name}

and

 #{ExperiencePlatform.ExperienceEventFieldGroup.experienceevent.last(
currentDataPackField.eventType == "commerce.productListAdds").productListItems.last(currentDataPackField.priceTotal >= 150).name}

 I'm not sure where the .name portion comes from.

Avatar

Community Advisor

name is part of the productListItems object. 

JSON Structure:

"_aepgdcdevenablement2": {
"purchase_event": {
"receipt_nbr": "10-337-4016",
"productListItems": [
{
"SKU": "AB17 1234 1775 19DT B4DR 8HDK 762",
"name": "Product Name Here",
"priceTotal": 100.0,
"quantity": 1
},
{
"SKU": "Different SKU# Here",
"name": "Product Name Here",
"priceTotal": 50.0,
"quantity": 2
}
]
}
}

----

{
"eventType": "commerce.productListAdds",
"timestamp": "2025-04-12T18:00:00Z",
"productListItems": [
{
"SKU": "ABC-123",
"name": "Shoes",
"priceTotal": 100.00,
"quantity": 1
},
{
"SKU": "DEF-456",
"name": "Dress",
"priceTotal": 169.99,
"quantity": 1
},
{
"SKU": "GHI-789",
"name": "Kids Toy",
"priceTotal": 70.00,
"quantity": 1
}
],
"identityMap": {
"email": [
{
"id": "example@test.com",
"primary": true
}
]
}
}

Thanks, Sathees