Explore product-specific spaces to ask questions, share insights, and learn best practices.
Recently active
Keep Your AEM Content on the Rails by IRINA STANILA Abstract According to Research and Markets, experts predict that the web content management market will grow from $4.91 billion in 2017 to $10.63 billion by 2022. Content management is more than just a matter of filling website pages with text and images. Successful content management requires creating a proper strategy and clear decision-making from Day 1. After working with clients on their Adobe Experience Manager Sites and Assets implementations for the last few years, I have compiled a list of suggested best practices to follow to make sure that as a content owner, you get what you need from your content. Start with a Model - Make content structure decisions early One of the most critical content decisions you’ll make is the definition of your site structure. This should occur before development. Why is this important? This decision will impact how you use AEM going forward. You want your pages to be easily found in Author fo
AEM 6.5.10 - Assets Metadata Based Custom Restriction Provider by Sreekanth Choudry Nalabotu Abstract Goal In Assets, for dam-users group do NOT show jpg assets with metadata assetCategory is RESTRICTED, always show when assetCategory is ALLOWED and when assetCategory is missing/empty you may or may not want to show such assets( depending on admin having good day or bad day...) here is some authorization documentation Solution 1) Add the assetCategory restriction apps.experienceaem.assets.core.acls.EAEMAssetCategoryRestriction package apps.experienceaem.assets.core.acls; import com.adobe.xfa.ut.StringUtils; import org.apache.jackrabbit.JcrConstants; import org.apache.jackrabbit.oak.api.PropertyState; import org.apache.jackrabbit.oak.api.Tree; import org.apache.jackrabbit.oak.api.Type; import org.apache.jackrabbit.oak.spi.security.authorization.restriction.RestrictionPattern; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class EAEMAssetCategoryRestriction implemen
How Petbarn is gearing up for content and cross-channel personalisation at scale by Nadia Cameron Abstract Personalising content more effectively and at scale, refining digital capability using AI and unifying channel experiences are in the sights of Petbarn’s digital chief as the business looks to take the next leap up with its martech stack. Speaking to CMO during the recent Adobe Summit, Greencross the Wellness Company GM digital products and ecommerce, Sandra Sinclair, explained how the company has executed a rapid extension of its martech capabilities over the past 18 months to meet changing customer experience expectations. Greencross owns both the Petbarn and City Farmers retail brands as well as Greencross Vet Clinics. Having initially been a Magento ecommerce client, Greencross first adopted Adobe Target in order to personalise content based on a customer’s session behaviour, conduct better A/B content testing and leverage product personalisation that could take advantage o
I've a servlet written in AEM using Sling ResourceTypes which returns some response. And the path http://localhostL4502/content/example/testpage.productsjson.html is giving the servlet response when I hit through browser. Now I would like to read the same json response in sling Model. How can I call the servlet in sling model. Any example code snippet will be helpful. sample servlet: @Component(service=Servlet.class, property={ Constants.SERVICE_DESCRIPTION + "=Simple Demo Servlet", "sling.servlet.methods=" + HttpConstants.METHOD_GET, "sling.servlet.resourceTypes="+ "exampe/components/structure/page", "sling.servlet.extensions=" + "productsjson", })public class SampleServlet extends SlingSafeMethodsServlet { @Override protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response)throws IOException { response.getWriter().write("Welcome to t
I have just setup AEM 6.5.7 in local with service package adobe-aemfd-linux-pkg-6.0.234 to setup some AEM forms but if I am creating any AEM form it throws error in console as shown below, please suggest any resolution for this problem. Logs of browser console:core.js:656Handler of component is invalid -> TypeError: Cannot read properties of undefined (reading 'flow')at eval (eval at ns.util.sanitizeCQHandler (http://localhost:4502/libs/cq/gui/components/authoring/editors/clientlibs/core.js:273:94), <anonymous>:1:14)at Object.ns.util.sanitizeCQHandler (http://localhost:4502/libs/cq/gui/components/authoring/editors/clientlibs/core.js:273:94)at Object.ns.util.sanitizeCQHandler (http://localhost:4502/libs/fd/af/authoring/editors/clientlibs/form.js:46110:44)at String.<anonymous> (http://localhost:4502/libs/cq/gui/components/authoring/editors/clientlibs/core.js:326:337)at Function.each (http://localhost:4502/etc.clientlibs/clientlibs/granite/jquery.js:377:19)a
JDK 11.0.14 has a well known major P1 bug where it incorrectly inserts both host and authority header with http 2.0 requests, causing http 400 malformed exception responses when hitting nginx and other API providers (notably google) This is the bug in 11.0.14:https://bugs.java.com/bugdatabase/view_bug.do?bug_id=8218546https://access.redhat.com/errata/RHBA-2022:0733It has been patched some time ago in 11.0.14.1 On monday 28th March 2022 at 12:30, adobe changed the java version to the unpatched 11.0.14, on production, without telling us, taking down all our production sites - we were suddenly getting 504 for all the api calls to various backend systems made from within AEM. As we had not changed anything, and there was no restart in the logs, it was extremely hard to debug this, and we were down for a day, losing significant revenue and customer confidence. We created support tickets with Adobe, but it took them 2 days to respond. Two days down would be
Panera Bread drives highly personalized guest experiences with the Adobe Real-Time Customer Data Platform by Julie Hoffmann Abstract Omnichannel is reshaping the world of fast casual dining, and Panera Bread is at the forefront. A full slate of services, including curbside pickup, in-store kiosks, contactless dine-in, and home delivery, have bridged the digital and physical experience for guests. Recently, residents in the town of Ballwin, MO, welcomed a next-generation bakery-café that brings together all these digital technologies with the trademark warmth of the Panera dining experience. It is a clear view into the future of the company, where Panera can consistently meet customers on each individual’s own terms. Panera’s success in omnichannel has defined new priority areas for the company. A critical one is personalization, which now has to be orchestrated across different channels and use cases. The execution is more important than ever, in a competitive fast casual industry wh
Manage publication in Experience Manager Assets by Adobe Abstract As an Adobe Experience Manager Assets administrator, you can publish assets and folders containing assets from your author instance to Experience Manager Assets, Dynamic Media, and Brand Portal. Also, you can schedule the publish workflow of an asset or folder to a later date or time. Once published, the users can access and further distribute the assets to other users. By default, you can publish assets and folders to Experience Manager Assets. However, you can configure Experience Manager Assets to enable publishing to Dynamic Media and Brand Portal. You can publish or unpublish assets at the asset or folder level, using either Quick Publish or Manage Publication option available in the Experience Manager Assets interface. If you make subsequent modifications to the original asset or folder in Experience Manager Assets, the changes are not reflected in the publish instance until you republish from Experience Manager
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
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.