Explore product-specific spaces to ask questions, share insights, and learn best practices.
Recently active
Does your organization rely on weekly team meetings to catch up on accomplishments or challenges? Or use in-person drive bys to see how things are going? As work from home is suddenly the norm, being able to track upcoming or completed work for your team is crucial. More than ever, effective work management can help keep your people aligned and productive. By building a team dashboard with a series of reports, in a single view, you can see what is being worked on, what is late, planned, or completed and what roadblocks are causing delays. The most common reports within a team dashboard are detailed below with suggestions on how to build these within your own environment using filters, groupings, views, and charts.OVERDUE TASKS BY ASSIGNEEBecause tasks can have more than one assignee, an assignment report would be best used to pull this information. This allows the same task to appear under both assignments rather than just the primary assignee. To start, select Repo
Happy Friday Everyone! The Skills Exchange was awesome, some fantastic content, ideas, and celebrities (Monique) joined in all the fun. Several had asked about slides so I'm providing them here; download them as needed. Here is a link to the Skills Exchange session, https://experienceleague.adobe.com/en/docs/events/the-skill-exchange-recordings/workfront/aug2025/fusion-user-account-creation
I've been following the WKND tutorial again (https://experienceleague.adobe.com/en/docs/experience-manager-learn/getting-started-wknd-tutorial-develop/project-archetype/component-basics)Although it was going well, I've now run into an issue where 'npm run watch' does absolutely nothing similar to what happens in the instructor's video. I first followed the tutorial on my own project which I made from just the archetype, and when reaching the part where I'm supposed to run 'npm run watch', it ran a localhost:8080 instance instead of just building the frontend, and it ended up completely removing any and all CSS on the actual pages I wanted to work on when I ran it like the tutorial did. After debugging and searching for a while I simply gave up on that end due to not finding any answers. At first I believed it to be an issue with my project, so I cloned it from the github repository provided by the tutorial, switched to the tutorial/component-basics-solution and ran 'npm run watch'
Universal Editor with Classic AEM Components by @daniel-strmecki Introduction The Universal Editor is Adobe's new, modern content editing interface for AEM. It provides a seamless editing experience across sites, experience, and content fragments. While it’s tailored for headless and edge delivery, as the name suggests, it is designed to be universal. Therefore, it can be used for editing any website, regardless of the framework or technology used to deliver it. This includes classic AEM delivery that uses components built with HTL and Sling. In this post, we'll walk through the steps required to make classic AEM components work with the Universal Editor. We'll demonstrate the feasibility of this approach, while also discussing whether and when it makes sense to migrate and what alternatives we should consider first. Key points Adobe 's Universal Editor is definitely the future of AEM authoring. It is modern, headless, editor-friendly, and designe
Hi All, With the new Cloud SDK apache POI JAR gets shipped along with SDK and while running my test case i am getting this error .java.lang.NoClassDefFoundError Could not initialize class org.apache.poi.xssf.usermodel.XSSFWorkbook Earlier i had imported the JAR from the dependency.How to fix these issues. How we can fix this .Any inputs are highly appreciated. Thanks
Each month, teams across Adobe Workfront host FREE webinars, interactive workshops, customer panels, and open Q&A sessions on various topics for System Administrators. If you want to learn best practices, ask questions and collectively brainstorm solutions, or connect with other system administrators to build your network, sign up for one or all of the following events: September 5 at 9:00 a.m. PT – Connect: Admin Chat for Marketing & Creative September 9 at 8:00 a.m. PT – Admin 101: Getting Workfront Data September 16 at 8:00 a.m. PT – Admin 101: Bring Your Questions September 17 at 11:00 a.m. PT – Making JSON sing with Workfront Fusion + JSONata September 22 at 6:00 a.m. PT – Workfront Collective September 23 at 9:00 a.m. PT – Fast and Functional: Blueprints in Adobe Workfront September 30 at 8:00 a.m. PT - Pitch Perfect: Defining & Communicating Workfront Value October 2 at 10:00 a.m. PT - Wak
Wow—What a Kickoff! 🎉 On 12th August 2025, the London AEM User Group held its very first session—and the energy was off the charts! Over 20 AEM pros tuned in for a lively, practical conversation on the question every team is weighing right now:👉Should we move to AEM 6.5 LTS or AEM as a Cloud Service (AEMaaCS), including Edge Delivery Services (EDS)? The chat was buzzing, the questions were sharp, and more than a few people admitted this decision feels like “choosing between two favourite children.” 😅 Honestly, you had to be there—the mix of energy and ideas was contagious.This wasn’t just another meetup; it felt like the foundation of a local AEM family, where curiosity and collaboration take center stage. A recording of the 42-minute session is available for anyone who couldn’t attend live. Speaker Highlights 🎤 @jineet_vora , VP Lead Software EngineerBroke down why the question isn’t “Which is better?” but “Which i
Hi All, I see some issues with Repoinit. I'm using the script below to apply permissions to all the child nodes under /content/experience-fragments/global-branding. The permissions are being applied only to the folder and not to the XFs (cq:Page). Specifically, only the read permission is being applied, not the modify permission. I have even deleted the service user and reinstalled the packages, but no luck.Has anyone encountered a similar issue? Please let me know. org.apache.sling.jcr.repoinit.RepositoryInitializer~project.cfg.json{"scripts": ["create path /conf/test (sling:Folder)","set ACL for everyone\nallow jcr:read on /conf/test\nend","create service user brandWriteUser","set ACL for brandWriteUser\nallow jcr:read, jcr:write, jcr:modifyProperties, jcr:addChildNodes, jcr:removeNode on /content/brand/en\nend","set ACL for brandWriteUser\nallow jcr:read, jcr:write, jcr:modifyProperties, jcr:addChildNodes, jcr:removeNode on /content/experience-fragments/global-branding\nen
You have a robust multi-subscription model using Marketo Custom Objects, where each Subscription+Person combo has robust metadata about when somebody subscribed/unsubscribed, why, and how. The boss goes, “Can we get a scheduled report of people who subscribed to any newsletter in the past month?” You know just what to do: Then they throw in “Can we compare that to the 2 prior months?” You almost say, “Sure” but decide to play around a bit. Then the uh-oh hits you. First, the between operator won’t work because it requires hard-coded dates, and this is to be a dynamic Smart List: Next, you try to combine in past before and in past (like you would with person fields): But that’s got a fatal flaw: each filter may be looking at a different CO record, i.e. a different newsletter! This Smart List fetches people who: (a) have at least one Subscriber record with Subscribed At earlier than 1 month agoAND(b) have at least one Subscriber record with
We upgraded our AEMasCS to Java21 by Sarav Prakash Overview Sharing the steps followed, problems faced and fixes workarounds made. https://medium.com/@bsaravanaprakash/we-upgraded-our-aemascs-to-java21-0c6b4a90f76d Q&A Please use this thread to ask questions relating to this article
Enable Universal Editor on any React app in 4 easy steps by Saravana Prakash OverviewBullet point instructions for activating Universal Editor on any React application. This article specifically covers using AEM as Headless Content Provider. The react application runs graphql query; fetches content and renders. By enabling universal over the react application, content authors can seamlessly edit content, in a user-friendly intuitive way. Previous authoring experience expects authors needing AEM training. Universal editor simplifies this experience. https://medium.com/@bsaravanaprakash/enable-universal-editor-on-any-react-app-in-4-easy-steps-e7c454af6008 Q&APlease use this thread to ask questions relating to this article
Streamlining Data Integration: Edge Network, AEP and Google Campaign Manager 360Kritika Pareek, Julien Piccini Integrating Adobe Experience Platform (AEP) with Google Campaign Manager 360 (CM360) to track and send conversion events from the Adobe Edge Network was a challenging but rewarding project. CM360, unlike AEP, isn't optimized for direct event streaming, necessitating creative solutions to bridge the gap. Business Use Case The objective was to establish a reliable method to forward conversion events from Adobe Edge Network to CM360. We tried reduce reliance on client-side scripts and improve data accuracy. The solution utilized the Campaign Manager 360 API to upload conversions in batch format, ensuring seamless integration while aligning with CM360’s attribution models and reporting standards. Project Context The project focused on forwarding the conversion events from AEP to Google
window.postMessage and corresponding window.onmessage listeners enable secure communication between cross-origin windows, including IFRAMEs. The postMessage API is ubiquitous, used by popular JS widgets like media players (YouTube, Spotify), meeting schedulers (Calendly), chat popups, and forms[1]. Code in the main window listens for messages from these widgets and relays data to analytics dashboards, MAPs, and so on. To make the “secure” part a reality, it’s standard to check the origin property of every message to ensure it came from a known child window:[2] window.addEventListener("message", function(e){ if( e.origin !== "https://video.example.ly" ) return; // do lots of special stuff with e.data, like sending a Munchkin // "clickLink" event }); Browsers guarantee the origin of MessageEvents sent via postMessage will be the document.location.origin of the sending window. Can’t get around it: if an IFRAME at https://pages.example.com/some/lp.html uses window.pa
AEM VLT IntelliJ Plugin: Streamlining AEM Development Workflows by Kostiantyn Diachenko Overview AEM Devs - here's a free plugin that'll change how you work with JCR If you're still toggling between IntelliJ, CRXDE Lite, and terminal windows to manage AEM content, this one's for you. I introduces a powerful yet lightweight plugin that integrates FileVault operations right into IntelliJ. The AEM VLT IntelliJ Plugin provides a seamless way to synchronize content between your local development environment and AEM instances, leveraging the Apache Jackrabbit File Vault library for reliable content transfer. This plugin bridges the gap between your IDE and AEM repository, allowing developers to push and pull content directly from within IntelliJ IDEA. Whether you're working in local instances - this tool makes life a lot easier. Read more and see it in action: Full article on Medium Get it from marketplace: https://plugins.jetbrains.com/plugin/27469-a
AEM Rapid Launcher by Santosh Sai Overview Hi AEM developers 👋, I’m excited to share AEM Rapid Launcher, a lightweight Python-based GUI tool I’ve built to streamline local AEM project workflows — including launching Author/Publish instances, module deployments, Git-based project setup, and more. 🧰 Key Features: Start/stop AEM instances with a single click Deploy individual modules or full builds with profile support View and filter logs in real-time Clone/import AEM projects from Git Tabbed interface for Author, Publish, Dispatcher, and Config management 🌐 Read the full story & setup guide in my latest blog:🔗 https://techinnovia.com/simplifying-aem-local-development-with-aem-rapid-launcher/ 📦 Open Source on GitHub:🔗 https://github.com/github-santosh-sai/aem-rapid-launcher 💬 I’d love your feedback, suggestions, and contributions. Let’s make local AEM development faster and more delightful! Q&A Please
As the Workfront platform expands across different lines of business in your organizations, how are Admins solving for request queue access? Let's say we have a request queue for Marketing Materials, but only a subset of users in the organization needs access to the queue - are you sharing with groups, teams etc? How are you managing those assignments at the user level. Trying to brainstorm and think about how best to accomplish this without a ton of need for user management that takes up Admin time.
Instead of iterating/filtering over items to create a new list of forms, fields or other objects, it literally takes 2 modules: The first to transform the object into JSON, the second JSONata. In JSONata you can filter / map (transform) and many other things. https://tryjsonata.org for online learning/testing - just slap the JSON in here and work out the set of functions.My use case: I have a data CSV to import, where each row has a column that is a dropdown in WF. So I want to check: remove any WF option that is not in the new data file add any option that is not yet in WF. The JSONata expression is this: ( $importList := {{31.json}}; /* from a previous transformToJSON module */ $existing := {{30.json}}; /* from a previous transformToJSON module */ $oktokeep := $filter( $existing, function ( $v ) { $v.value in $importList ? true:false }); $toadd:= $map($filter( $importList , function ($v){ ( ($v in $existing.value) ? false :true ) }), function ($v) { { "objCode": "POP
I wanted to find out who the project or instance admin vs. rely on tribal knowledge for this. This is so one can communicate need for access or any customization that may be needed on a project or instance. So "About" under Help would be useful to cover the instance and admins. Similary on a Project summary apart from the project owner knowing who the admin is would be valauble.
Dear Adobe Campaign Community, Your time is precious, and we understand the importance of efficiency when it comes to troubleshooting issues with Adobe Campaign. That's why we're excited to again bring you our carefully curated collection of Top KCS (Knowledge-Base) Articles for July 2025, designed to help you resolve common challenges swiftly and effectively. Our Top KCS Articles are your shortcut to: Quickly identifying and resolving recurring issues. Accessing expert insights and best practices for Adobe Campaign. Streamlining your troubleshooting process for maximum productivity. Empowering yourself with the knowledge to tackle any campaign-related problem head-on. Why spend hours searching for solutions, when our Top KCS Articles have already done the heavy lifting for you? Let us help you save time so you can focus on what truly matters – creating exceptional campaigns with Adobe Campaign. Start supercharging your problem-solving skills today by exploring our Top KCS
Thank you so much to @lyndsy-denk for sharing her templated approach for global campaigns with localization scenarios! It’s always so exciting to get a peek “under the hood” of a real process and see all the ins and outs. It just goes to show how powerful custom forms can be, especially to help you adapt Workfront to your own processes. Seeing it live definitely broadened our horizons! We’re including some links to the slides, recording, and some helpful resources below.Slides (Primarily announcements – Lyndsy demo’d her instance live!) Workshop recording Additional tips/resources shared in the chat:Considering adding a Report of Reports to the top of your dashboard as a makeshift table of contents, so users or stakeholders know what is included. Download the slide deck from the November Skill Exchange event for more information (page 16) For stakeholders who want visibility into related projects, consider adding them as the Project Sponsor or adding a custom form/field to your projec
Test Automation on AEMaaCS (part 2) by @daniel-strmecki Introduction In the first part of our test automation blog series, we explored why test automation is essential for AEM as a Cloud Service (AEMaaCS), where continuous delivery and shared code ownership simply make manual testing inefficient. We covered the four pillars of a robust testing strategy: Unit tests to catch backend bugs early UI tests to protect the end user and authoring experience Lighthouse tests to ensure great frontend performance and SEO Backend performance tests to validate scalability With these foundations in place, in the second part, we'll focus on automating test execution and reporting, turning strategy into action. First, we'll discuss which tooling options are available for writing and executing different types of tests in AEMaaCS. Then, we'll check which automation options are available in Cloud Manager. Finally, we'll demonstrate how to get this type of automati
Creating AEM Service Users Using Sling Repo Initializer by Jonathan Saurez Overview Learn how to create AEM Service Users using Sling Repository Initializer (SRI), an efficient and automated approach compatible with AEM 6.5.4+ and AEM as a Cloud Service. This method simplifies user creation and permission assignment, ensuring consistency across environments. Read more Q&A Please use this thread to ask questions relating to this article
Email Integration with OAuth SMTP by Ashwini SatheOverviewAEM as a Cloud Service offers OAuth 2 support for its integrated Mail Service to allow organisations to adhere to secure email requirements. AEM’s DefaultMailService supports both Basic and OAuth 2 authentication. Basic authentication is easy to achieve but might not support modern security requirements. OAuth 2 is more secure than basic authentication.OAuth 2 support is available in AEM for multiple email providers like gmail, outlook etc. Here we will be mainly focusing on Microsoft Office 365 Outlook.Before we start with the setup, we need to consider below requirementsIs client SMTP public/internet or private/intranet? — If it is public, then we have to enable flexible egress in advanced networking on AEM as a Cloud Service. If it is private, then dedicated egress needs to be enabled and the dedicated IP needs to be whitelisted.Which SMTP port? — SMTP on ports 25/587/468 needs to be enabled by
How to Programmatically Send Notifications to Users in AEMby NeerajI have always wondered how we could notify users after executing background logic using AEM Sling Jobs. Unlike workflows with built-in notification mechanisms, there didn’t seem to be a direct way to inform users once a job was completed. This led me to explore different options, and that’s when I came across the TaskManager API.So just for the context: AEM includes an Inbox feature that enables users to receive notifications for assigned tasks. While workflows automatically trigger these notifications, we can use TaskManager API to send these notifications programmatically Full ArticleRead the full article with implementation on https://medium.com/@neerajchaudhary856/how-to-programmatically-send-notifications-to-users-in-aem-c198673a89bf Q&APlease use this thread to ask questions relating to this article
Can Caching of Sling Models Optimize Performance? Dear AEM Community,I'd like to share my recently published article exploring an important optimization technique for AEM development: caching in Sling Models. Article OverviewI examine how properly implemented caching can significantly improve AEM applications' response times and resource efficiency. The article covers:- A developer-friendly explanation of how cacheable Sling Models work- Concrete performance benefits with real-world implications- Critical pitfalls to avoid, including heap space exhaustion and memory retention issues- Best practices for implementation with code examples- Practical recommendations for monitoring and optimizing performance Key InsightsThe article provides guidance on when to use the cache=true annotation parameter, how to manage references carefully to prevent memory leaks, and techniques to measure the performance impact of your caching strategy.I've included code samples demonstrating bot
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.