In today’s hyper-personalized digital landscape, marketers are expected to deliver relevant, timely, and consistent content across multiple channels. But managing this at scale—especially with real-time updates—can be daunting.
Enter the powerful integration of Adobe Experience Manager as a Cloud Service (AEM) Content Fragments with Adobe Journey Optimizer (AJ... This duo empowers marketers to:
Let’s explore how this works, and then dive into a detailed, real-world use case to bring it all to life.
AEM Content Fragments are channel-neutral, structured content blocks stored in JSON format. They allow marketers to manage content independently of design, making them ideal for omnichannel delivery.
Let’s walk through a detailed example of how a fashion retailer like LUMORA Collective can use AEM and AJO to run a personalized flash sale campaign.
LUMORA Collective is a global fashion powerhouse known for its diverse portfolio of clothing brands, each catering to a unique audience and style.
VYNA
Elaré
WildLoom
LUMORA plans ahead of the year for two types of Flash sales:
The marketer goal is to send personalized flash sale alerts to customers based on their preferred product category and browsing history during both of these planned flash sales campaign.
fragment_name
description
brand
title
body1
body2
cta
4. Click 'Create' button to create Content Fragment by selecting the previously created Content Fragment model
5. Author content fragments for each brand and as shown below
Brand: VYNNA, EOS Flash sales Content Fragment
{ fragment_name: "VYNA_EOS_flash_sales" description: "JSON content for Flash sale alerts" brand: "VYNA" banner_image: "imagelink" title: "Hey {{customerName}},your street style just got hotter. " body1: " Flash Sale: Get {{discount}} off on {{productCategory}} at VYNA " body2: "Shop {{productName}} now" cta: {{ctaLink}} } |
Brand: Elaire, EOS Flash sales Content Fragment
{ fragment_name: "Elaire_EOS_flash_sales" description: "JSON content fro Flash sale alerts" brand: "Elaire" banner_image: "imagelink" title: "Hi {{customerName}},elevate your wardrobe with timeless pieces from Elaré. " body1: " Enjoy {{discount}} off on our curated {{productCategory}} collection" body2: "Featured for you: {{productName}}. Explore the Collection" cta: {{ctaLink}} } |
Brand: WildLoom, EOS Flash sales Content Fragment
{ fragment_name: "WildLoom_EOS_flash_sales" description: "JSON content fro Flash sale alerts" brand: "Elaire" banner_image: "imagelink" title: "Hey {{customerName}},your next adventure deserves a new look body1: " Flash Sale: {{discount}} off on {{productCategory}} at WildLoom " body2: "We picked this just for you: {{productName}} Ends soon – don’t miss it! Shop the Vibe" cta: {{ctaLink}} } |
5. Use the AEM Content Fragment selector to browse and select your tagged fragment.
6. Use filters to find only approved fragments.
7. Select the required Content Fragment and click select to include into AJO editor
8. Use the preview icon to view the content inside selected AEM Content fragment
if profile.preferredCategory = "VYNA" {{fragment id='aem:391418cd-0da1-4568-a5ac-8c02a38cee91?repoId=author-p22655-e59471.adobeaemcloud.com' result='cf'}} ------------ fragment: VYNA_EOS_flash_sales else if profile.preferredCategory = "Elaire" {{fragment id='aem:391419cd-0da1-4009-a5ac-8c02a38cfd22?repoId=author-p22655-e59471.adobeaemcloud.com' result='cf'}} ------------ fragment: Elaire_EOS_flash_sales else if profile.preferredCategory = "Wildoom" {{fragment id='aem:391419cd-0da1-4009-a5ac-8c02a38cfd22?repoId=author-p22655-e59471.adobeaemcloud.com' result='cf'}} ------------ fragment: WildLoom_EOS_flash_sales <html> <css> ... </css> {{{cf.banner_image}}} {{{cf.title}}} {{{cf.body1}}} {{{cf.body2}}} {{{cf.cta}}} </html> |
2. Map each placeholder to a data source, within the fragment helper.
Mapping of placeholders with string/profile/contextual attributes can be done using an intuitive form based UI experience. Follow the steps below:
Updated content with placeholder mappings:
if profile.preferredCategory = "VYNA" {{fragment id='aem:391418cd-0da1-4568-a5ac-8c02a38cee91?repoId=author-p22655-e59471.adobeaemcloud.com' result='cf' customerName = profile.person.name.firstName productCategory = profile.interests.category productName = profile.lastViewedProduct.name discount = "30%" ctaLink = "https://brand.com/sale"}} ------------ fragment: VYNA_EOS_flash_sales else if profile.preferredCategory = "Elaire" {{fragment id='aem:391419cd-0da1-4009-a5ac-8c02a38cfd22?repoId=author-p22655-e59471.adobeaemcloud.com' result='cf' customerName = profile.person.name.firstName productCategory = profile.interests.category productName = profile.lastViewedProduct.name discount = "30%" ctaLink = "https://brand.com/sale"}} ------------ fragment: Elaire_EOS_flash_sales else if profile.preferredCategory = "Wildoom" {{fragment id='aem:391419cd-0da1-4009-a5ac-8c02a38cfd22?repoId=author-p22655-e59471.adobeaemcloud.com' result='cf' customerName = profile.person.name.firstName productCategory = profile.interests.category productName = profile.lastViewedProduct.name discount = "30%" ctaLink = "https://brand.com/sale"}} ------------ fragment: WildLoom_EOS_flash_sales <html> <css> ... </css> {{{cf.banner_image}}} {{{cf.title}}} {{{cf.body1}}} {{{cf.body2}}} {{{cf.cta}}} </html> |
Previews show the different variations applied based on the profile.preferredCategory
LUMORA Collective runs Flash sales campaigns not only for End of Season sales, but also Black Friday sales. In order to curate their Black Friday sales, they can easily swap the older EOS fragments with BlackFriday fragments with no further changes needed at the authoring.
Additional to the End Of Season Flash Sales Content Fragment, LUMORA also have created a Black Friday Flash Sales Content Fragment (both of the AEM Content Fragments belonging to the same fragment model)
Brand: VYNNA, Black Friday Flash sales Content Fragment
{ fragment_name: "VYNA_Black_Friday_flash_sales" description: "JSON content for Flash sale alerts" brand: "VYNA" banner_image: "imagelink" title: "Hey {{customerName}},your street style just got hotter this season " body1: "Flash Sale: This Black Friday get {{discount}} off on {{productCategory}} at VYNA " body2: "Shop {{productName}} now" cta: {{ctaLink}} } |
LUMORA Collective plans to curate and run campaigns for their new Summer Linen collection based on user location and language.
Locations: New York, Toronto, Dubai, Barcelona, Tokyo
Languages: English, French, Spanish, Japaneese
Total variants: 5 (locations) X 4 (languages) = 20 variants
In order to cater to the above use case, LUMORA can create unique AEM Content Fragments which can be accessed, utilized and re-used in AJO content authoring editor based on conditional logic.
For example, there are 4 different AEM Content Fragments created with unique content: Lumora_Summer_English, Lumora_Summer_French, Lumora_Summer_Spanish, Lumora_Summer_Japaneese
Conditional logic based on location and language can be added within AJO content editor to choose from the unique variants for each combinations. Some of the combinations could be defined as below:
{ if ((profile.location=="New York" AND profile.preferredLanguage="English") OR (profile.location=="Dubai" AND profile.preferredLanguage="English") OR profile.location="New York" OR profile.preferredLanguage="English") --------- fragment 'Lumora_Summer_English' else if ((profile.location=="Toronto" AND profile.preferredLanguage="French") OR profile.preferredLanguage="French") --------- fragment 'Lumora_Summer_French' else if ((profile.location=="Barcelona" AND profile.preferredLanguage="Spanish") OR profile.preferredLanguage="Spanish") --------- fragment 'Lumora_Summer_Spanish' else if ((profile.location=="Tokyo" AND profile.preferredLanguage="Japaneese") OR profile.preferredLanguage="Japaneese") } |
With AEM + AJO, marketers can:
This is especially powerful for:
Scenario: A travel agency wants to upsell hotel upgrades before departure.
The fragment could include placeholder such as name, destination to be added to the content for personalization.
Hi {{name}}, enhance your trip to {{destination}} with a luxury hotel upgrade or a guided city tour!
Scenario: A hotel chain sends tier-based loyalty offers.
The fragment could include placeholder such as name, destination to be added to the content for personalization.
Hi {{name}}, as a {{loyaltyTier}} member, enjoy 20% off your next stay at any of our resorts!
Scenario: A provider sends post-visit care instructions.
The fragment could include placeholder such as name, destination to be added to the content for personalization.
Hi {{name}}, your care plan includes {{carePlan}}. Your next appointment is on {{appointmentDate}}.
Scenario: A brand wants to insert dynamic offers into campaigns.
The fragment could include placeholder such as name, destination to be added to the content for personalization.
Special offer just for you: {{offerTitle}} – Save {{discount}} on {{product}} until {{expiryDate}}!
The integration of AEM Content Fragments with Adobe Journey Optimizer is a game-changer for marketers. It enables:
Whether you're in retail, travel, hospitality, or healthcare, this integration empowers you to deliver the right message to the right person—at the right time.
여기에 의견을 추가하려면 등록된 사용자이어야 합니다. 이미 등록되어 있다면 로그인하시기 바랍니다. 아직 등록하지 않은 경우 등록 후 로그인하시기 바랍니다.