Explore product-specific spaces to ask questions, share insights, and learn best practices.
Recently active
Boots aims to personalize experiences for 50 million customers with Adobe Experience Cloud by Adobe Abstract Improve experiences across the full customer journey spanning all channels Modernize the website and mobile app to meet customer expectations for digital experiences Create personalized experiences for 50 million Boots customers Results Reduced time to update website content from days to minutes Achieved a 41.5% open rate with targeted loyalty email campaign Optimized web experiences through A/B testing that increased engagement by up to 5% Uses audience segments to deliver the right messaging across all digital channels Whether people are getting a flu shot, picking up baby formula, or even shopping for Christmas presents, Boots is the first stop for millions of shoppers across the United Kingdom. Its popularity is well known, with 85% of the UK population living within 10 minutes of one of Boots’ 2,200+ retail stores. “Boots has thrived as a bricks-and-mortar busine
Reimagining Replication Agents on AEM as a Cloud Service by Damian Langsweirdt & Amol Anand Abstract Part of the journey when evaluating how to migrate to AEM as a Cloud Service involves taking a look at your current AEM implementation to see if there are any incompatibilities or areas which will require refactoring. This may include reviewing documentation, code, and running the Best Practices Analyzer (BPA) tool. One area which may be highlighted during your review is replication agents. In the pre-Cloud Service model, numerous situations called for replication agents. This article won’t cover all use cases, but you can read more background here. With Cloud Service and its new architecture, the rules have changed in this area. Read on for some tips on navigating this change. Author to Publish For standard publishing, or copying content from an author environment to a publish environment, this is handled out-of-the-box with Cloud Service — no custom agents required. See here. P
What is an HTML template tag? | How to use HTML template tag in AEM(Adobe Experience Manager) by Albin Issac Abstract In this post, let us explore what an HTML template tag is and how to use an HTML template tag within AEM components. The tag stores HTML code fragments, which can be cloned and inserted into an HTML document. The tag's content is hidden from users being stored on the client-side. It is inert until activated using JavaScript — the content inside the template tag is not loaded, e.g., Script doesn't run, images don't load, and audio doesn't play until the template is used/activated through javascript. The HTML is not to be rendered immediately when a page is loaded but maybe instantiated subsequently during runtime using JavaScript. Template elements can be placed anywhere inside of,, or and can contain any syntactically correct HTML. The template tag helps render the repeated content through a predefined template — clone the predefined template, fill the dynamic cont
MS Dynamics Authentication Protocol announcement Microsoft is deprecating the WS-Trust authentication protocol for Dataverse on Microsoft Dynamics 365. This means that MS Dynamics 365 customers using Basic Authentication (just ID and password) need to switch to OAuth based connection to use the native Marketo Engage connector before April ’22. Please follow this doc page to complete the upgrade in a few easy steps. You may also go through this video for S2S and WebAPI set up steps. If you own a Sandbox instance, it is recommended to perform the update for the Sandbox environment first followed by Production. Customer may optionally raise a Microsoft support ticket to extend the date for WS-Trust protocol by a maximum of 4 weeks. You would need to submit it before March 24th 2022 for them to consider it. You may also post any queries on the process to -
Hello Analytics Community!I know there has been some discussion over the last few years on doing better date comparisons within Analysis Workspace (YoY, MoM, WoW, etc.). There was an enhancement put in a while ago to allow the graphs to appropriately display the compared dates.I'm hoping to gather some feedback about what would be most beneficial for our users and understand what will make this more useful and easier for you to get to answers regarding these comparisons.Please feel free to leave a comment or, if you are willing, find a time that would work for you to schedule a 30-minute discussion to discuss with me. Thank you!
Hello Team,I am new to aem and frontend, I have already developed project in which a vulnerability is reported for xss injection in text fields(when inserting script to show alert in text field I am getting that alert). I am trying to implement a solution at global level to stop xss scripts. For this I am overlaying the xss protection folder in apps/cq and modifying the config.xml file. I tried several entries one by one<attribute name="text"> <regexp-list> <regexp value = "[a-zA-Z0-9]"/> </regexp-list></attribute>also I tried modifying the existing entry for input tag <attribute name="value"> <regexp-list> <regexp value = "[a-zA-Z0-9]"/> </regexp-list></attribute> Please let me know how can I stop xss injection in fields. Thanks for Help
Abstract of Adobe Summit 2022- A Magnificent Experience by NextRow Digital Abstract With the ever-evolving marketing dynamics, it is very important for marketers and businesses to be up to date with the latest trends and advancements in marketing strategies, technologies, and practices. Adobe Summit 2022 concluded successfully recently. The summit had over 200 informative sessions covering a wide array of topics including the latest trends, practices, developments in marketing and advertising technologies as well as success stories. Well-known personalities from various fields of work were featured as keynote speakers at the event. Fun and Engaging Keynote Session In the opening keynote session, Shantanu Narayen shared insights on customer engagement and personalization at scale. As changing customer expectations are taking a significant place in business conservation, it becomes imperative to know how businesses should engage with customers, deliver digital experiences and personali
A people-centered approach to AI by Adobe Abstract In recent years, the debates surrounding artificial intelligence (AI) have grown at a pace that’s arguably been surpassed only by advances in the tech itself. In business, for example, there is a lack of consensus around the most impactful use-cases for AI. It’s therefore not surprising that more than three out of four businesses say they’re barely breaking even from their AI investments, even as a supermajority consider it a mainstream technology—according to research from PWC. Discussions in the social sciences focus on even greater stakes, from the impact of bias in AI, to concerns about safety and security, to the question of whether the tech could have dire consequences for humanity. The common thread across these debates is the question of humanity’s role in AI’s future. Some see AI’s greatest promise in areas where AI replaces human beings and human endeavor. At Adobe, we see things differently. We take a people-centric appro
What is an HTML template tag? | How to use HTML template tag in AEM(Adobe Experience Manager) by Albinsblog Abstract In this post, let us explore what an HTML template tag is and how to use an HTML template tag within AEM components. The tag stores HTML code fragments, which can be cloned and inserted into an HTML document. The tag's content is hidden from users being stored on the client-side. It is inert until activated using JavaScript — the content inside the template tag is not loaded, e.g., Script doesn't run, images don't load, and audio doesn't play until the template is used/activated through javascript. The HTML is not to be rendered immediately when a page is loaded but maybe instantiated subsequently during runtime using JavaScript. Template elements can be placed anywhere inside of,, or and can contain any syntactically correct HTML. The template tag helps render the repeated content through a predefined template — clone the predefined template, fill the dynamic con
Demystifying Oak Search: Exploring Indexes with Luke by Dan Klco Abstract The Oak Indexes and Queries used by AEM and Apache Sling for searching content are powerful and cloaked in an aura of mystery. Let's work together to pierce that veil, so you can develop AEM / Apache Sling applications to take advantages of the strengths of searching in Oak without experiencing the painful pitfalls. Let's start with Oak Indexes, the feature that makes Oak queries performant. To understand something, we must observe it. While there are some features in AEM to give us a glimpse into the indexes, such as: Oak Index Stats WebConsole Oak Index Definitions WebConsole Lucene Index statistics MBean However, they provide a limited, abstracted view of the indexes. We need to dive deeper. To do so, we can use a tool called Luke to open and explore the Lucene indexes used by AEM & Apache Sling. An aside on Lucene vs Other Index Types This series will be referring to Lucene indexes as AEM as a Clou
We have been facing issues with Clientlibs update. Every time we push new changes to the existing clientlibs, after deployment , it still shows the older one. We are using AEM as cloud, and have tried rebuilding the Clientlibs/clearing the clientlib cache(/libs/granite/ui/content/dumplibs.rebuild.html), but this doesnt work.The workaround is to always update new category name for the client lib, and thus it identifies a new client lib altogether when deployed.Isn't AEM already versioning and rebuilding clientlibs. Any support please.
Hi Everyone, Receive the latest Adobe Journey Optimizer product updates, exciting stories, use cases, tips and more delivered directly to your inbox every quarter. Sign up here for the newsletter. In each newsletter you will find:• Product news and updates including recently released capabilities• Invitations to events and webinars and recordings for recent webinars• Top discussions in the Adobe Journey Optimizer Experience League Community • Case Studies and Use Cases from other Adobe Journey Optimizer Customers• Tips and tricks to help deliver the exceptional customer experiences that drive business success If you have any questions or feedback related to this newsletter, then kindly reach out through the below comment section.
HiWhen I add to my template<sly data-sly-use.storeLink="${'android' == model.device ? model.appleStoreLink : model.googlePlayLink}"></sly>I get the following errorCannot get DefaultSlingScript: org.apache.sling.api.SlingException: Cannot get DefaultSlingScript: data-sly-use needs to be passed an identifierMy model isDevice looks like:public String isDevice() { String userAgent = request.getHeader("user-agent"); if (userAgent.contains("iPhone")) { return "ios"; } else if(userAgent.contains("Android")){ return "android"; } else { return StringUtils.EMPTY; }}Any suggestions what I am doing wrong?
We are attempting to connect to SharePoint using a swagger file and the REST API. We have been able to authenticate using OAuth 2.0 but are hitting a roadblock when trying to test any services contained in the swagger file. We recently were able to do this with ServiceNow and are hoping to do the same thing with SharePoint. The redirect_uris match and the application has been given full control in SharePoint. Thank you. @workflowuser
Content backfill required
Governance might sound like a "leadership problem," but it’s a key concept every Workfront System Administrator must address. The good news is, you can start small, maybe with just a glossary of terms or a small working group, and evolve your practices over time.In this on-demand webinar, originally broadcast on March 30, 2022, Tyler Holt (@tylerholt-adobe), a Consultant in Workfront’s Success Services organization, and Luke Ramlow (@lukera), Application Analyst at Mayo Clinic College of Medicine, covered:What governance in Workfront actually meansExamples of different types of governanceWays governance can evolve and mature over timeMayo Clinic College of Medicine’s multi-year journey to full scale governance (spoiler alert, it didn’t happen overnight!)You can view the recording here and a copy of the slides is attached. Have questions for our speakers? Tag them in a comment below!
Managing AEM Repository Size Growth by Anuj Gangwar Abstract Managing your AEM repository size growth can be challenging for numerous reasons. What’s more, it may suddenly start to grow unexpectedly and fill up space in the assigned drive of your AEM application. In this post, I want to share a few AEM utilities & methods which can help you to not only manage the AEM repository size but also help to improve the AEM application performance. 1: Tar Compaction (also known as Revision Cleanup) By running the regular tar compaction, you can not only control the AEM repository size growth, but it will also help improve the AEM application performance. Tar compaction reclaims the disk space by removing the obsolete/redundant data from your AEM application. You can use both online and offline compaction. You can schedule online Tar compaction during weekdays after business hours & offline compaction on weekends (Non-business hours or during your designated Maintenance Window). 2: G
Demystifying Oak Search: Exploring Indexes with Luke by Daniel Klco Abstract The Oak Indexes and Queries used by AEM and Apache Sling for searching content are powerful and cloaked in an aura of mystery. Let's work together to pierce that veil, so you can develop AEM / Apache Sling applications to take advantages of the strengths of searching in Oak without experiencing the painful pitfalls. Let's start with Oak Indexes, the feature that makes Oak queries performant. To understand something, we must observe it. While there are some features in AEM to give us a glimpse into the indexes, such as: Oak Index Stats WebConsole Oak Index Definitions WebConsole Lucene Index statistics MBean However, they provide a limited, abstracted view of the indexes. We need to dive deeper. To do so, we can use a tool called Luke to open and explore the Lucene indexes used by AEM & Apache Sling. An aside on Lucene vs Other Index Types This series will be referring to Lucene indexes as AEM as a Cl
In my project, I have multiple event listeners, workflows, and Sling jobs that can modify the very same asset at the same time which sometimes causes commit conflicts. Obviously, different JCR sessions try to save different changes. I thought that refreshing the session before the actual .commit() call would help, but it didn't. I need some explanation why the following code throws this exceptionorg.apache.sling.api.resource.PersistenceException: Unable to commit changes to session...Caused by: javax.jcr.InvalidItemStateException: OakState0001: Unresolved conflicts in /content/dam... ResourceResolver rr1 = ...get new service resource resolverResourceResolver rr2 = ...get new service resource resolverNode node1 = rr1.getResource("/content/dam/.../asset.jpg/jcr:content/metadata").adaptTo(Node.class);node1.setProperty("dc:title", "title 1");Node node2 = rr2.getResource("/content/dam/.../asset.jpg/jcr:content/metadata").adaptTo(Node.class);node2.setProperty("dc:title",
I have a page that uses this page template (sling:resourceType = /apps/flinders/components/page/content-page) to test selectors (which I have not done before), I created a copy of /apps/flinders/components/page/content-page/content-page.html and called it /apps/flinders/components/page/content-page/content-page.test.html. The contents of the 2 files are the same EXCEPT 2 changes I made: I added a "hello there" text on the test.html version.The body tag of the test.html version does not have a CSS class attached to it. When viewing the page via view-as-published with the selector (example: http://localhost:4502/content/mysite/en/animals/frogs.test.html?wcmmode=disabled), I do not see the "hello there" text and the body tag has the classes. What am I missing? Thank you. <!DOCTYPE HTML> <html data-sly-use.page="com.adobe.cq.wcm.core.components.models.Page" lang="${page.language}" data-sly-use.head="head.html" data-sly-use.footer="footer.
Hi , I have been trying to install Magento in my local,Tried so many documents, official documentation is not straight forward it is very complex. It is not like we have for AEM https://experienceleague.adobe.com/docs/experience-manager-learn/cloud-service/local-development-environment-set-up/overview.html?lang=en Somewhere it is mentioned that Macbook is prefered for Magento so now I have Mac too. Please anybody who is using Magento cloud in there local , help me the doc or link for installing in my local. It would be very very helpful as I have been stuck at this for almost 2 months I did try Docker desktop option as well. Best RegardsGanesh+91-938020110
We are using proxy Teaser component for our application, with no customization at all.Observing issue with the image quality uploaded via Teaser.The size reduces from around 400KB to just 95 KB , for desktops. The images look blurred or pixelated at times.Is there a way to customize the size or quality of the image for Teaser component.
We need to have custom logging for the below scenario: -User logs in -User logged out -Login Failure We need to print log for the above three events with username, group, timestamp, Server name, IP address. Please let us know if there is any OOTB feature available for this. or any other custom way to achieve that.
We configured our AEM instance to use these OSGi configurationscom.adobe.granite.ui.clientlibs.impl.HtmlLibraryManagerImpl.xmlhtmllibmanager.minify="{Boolean}true"htmllibmanager.processor.js="[min:gcc;languageIn=ECMASCRIPT_2015]"The minify errors and when it encounters05.04.2019 12:24:41.774 *ERROR* [0:0:0:0:0:0:0:1 [1554481481510] GET /content/xxxx/xxxx/us/en/xxxxxx/home.html HTTP/1.1] com.google.javascript.jscomp /etc/designs/sites/xxxxxxxx/main/script.js:4023: ERROR - Object literal contains illegal duplicate key "background", disallowed in strict mode background: "-moz-linear-gradient(" + oldBrowsers + ")",Also it errors here05.04.2019 12:20:12.114 *WARN* [0:0:0:0:0:0:0:1 [1554481211211] GET /content/xxx/xxxxx/us/en/xxxxxx/home.html HTTP/1.1] com.google.javascript.jscomp /etc/designs/sites/xxxx/xxxxx/main/script.js:3349: WARNING - Parse error. String continuations are not recommended. See https://google.github.io/styleguide/javascriptguid
AEM Analytics: Sending Original Field Values in Locales. Part 2 by Exadel Abstract Content migration in AEM is a difficult task unless you know the necessary workarounds and ways to manage content in AEM analytics. In the previous article, our Marketing Technology Practice team was looking at how to manage analytics for plain text fields. In today’s post, we will look at an AEM RTE field in particular. Managing Links Inside AEM Rich Text Editor Managing AEM RTE analytics will be a little different from managing plain text fields. Since the AEM RTE text field stores HTML, we’ll need to find a way to search for all the links inside HTML and then inject the data-an-id attribute into these links. The implementation will consist of 2 parts: on the fly HTML update on AEM RTE editing and managing already existing components. Clientlibs: Injecting Attributes into Links The following code listens to the AEM RTE input field update. Additionally, if you add a link, this JavaScript code will ad
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.