Explore product-specific spaces to ask questions, share insights, and learn best practices.
Recently active
I Have a requirement, where i need to get dam:sha1 of asset to find asset duplicates. However Asset metadata gets created post processing of asset, if i check "dam:sha1" immediately in code it gives NPE. So how can i check if asset has been processed and i pick dam:sha1 property from metadata post that?
[This discussion has been updated with the March 2025 assets - slide deck and recording]. Thank you to everyone who joined, asked questions, and shared additional pointers in today's workshop, 10 Text Mode Tips in Adobe Workfront with the Customer Success team! Text mode raises a lot of questions, so I'm glad we were finally able to deliver a session on this most-requested topic. If you missed the session, no worries - here is a link to the recording and a copy of the slide deck with ready-to-use, copy/paste text mode is attached. Examples shared during the workshop include: Changing ID to nameFiltering for objects in a pending approval statusComparing fields in a filterRemoving hyperlinksMerging columnsand more! If you are just getting started with text mode, I'd recommend bookmarking and familiarizing yourself with the API Explorer (this will be your single source of truth for text mode) and reviewing customer submitted examples in the Reporting Cookbook
A True Enterprise Jamstack CMS: Combining AEMaaCS and Next.JS - as an Alternative to EDSby @daniel-strmecki OverviewFor the demo presented in this article, we've set four main goals to satisfy all important stakeholders:Top-performance and browsing experience for end-users: We want our site to be blazing fast, provide great user experience and search engine optimization (SEO) so it's highly ranked by search engines like GoogleWYSIWYG editing experience for authors: Even though we'll split the experience layer from the CMS, we still want editors to get instant, in-context previews for all edits they make before publishing themState-of-the-art frontend development experience: As an alternative to plain JavaScript used in EDS, we'll develop our front-end components with server-side React components and Next.js frameworkFlexible JAMstack architecture: Allowing clients to avoid vendor lock-in and choose the different state-of-the-art tools in the different architecture layersSo far we
I need to read a folder and create a combined Proof for every file.Any ideas?Best regards
Hi TeamWe are currently developing a custom Adaptive Form component using Core Forms Components. However, we are unable to see the "Display Pattern" option, which is available in Forms Foundation (Legacy) Components. Problem:In AEM Forms (OSGi forms add-on on-premises), when using Adaptive Forms Core Components, the Display Pattern property is missing in the Core Component dialog.RegardsVara
What is AB Testing? A/B Testing is a controlled experiment to compare two versions of something (A vs B) to determine which performs better. It's used to optimize conversions, engagement, or any metric that matters. How it works? Identify a goal – increase email CTR, landing page signups, form submissions etc. Create two variants – A (current/default), B (new/test). Split the audience – Randomly show A to 50%, B to 50%. Measure performance – Track key metrics. Analyze results – Use statistical significance to decide if B beats A. When to use AB testing? In nutshell, AB testing represents an experiment. It is an iteration with an hypothesis (assumption) - that the new variant is better. The job of AB testing is to accept or reject this hypothesis. A/B testing helps you know what works better - not what you think works better. Hence, use it when you are looking for improvements through iterations. There can be many scenarios.
Another chance to sing the praises of Marketo forms over other form builders. Marketo forms are just, well, normal. Others’ forms, by and large, are needlessly weird and obscure. Take filling fields from UTM params. On a Marketo form, you just set up a field as type Hidden and set it to Autofill from a param like utm_campaign. Doesn’t matter what the back end Marketo field is called: could be literally utm_campaign, or the more precise last_utm_campaign, or one of those fields with a backstory like UTM_Campaign_Really_Use_This_One_Guys. Not so with a Squarespace form. There, even if a field is called utm_campaign it’s impossible to fill it from the param utm_campaign. Unless you use the custom JS below, you can only fill from param names that start with SQF_ and are all caps. That’s crazy! Nobody wants to append SQF_UTM_CAMPAIGN to links. Even if teeeechnically utm_* params aren’t “standard,” they’re so widely supported that they might as well be.
Introduction (Part 1)Ever wanted to make your website personalized for each visitor without slowing it down? That's exactly what we'll achieve by setting up Adobe Target Node SDK in Akamai EdgeWorker. We'll be using something called ODD (On-Device Decisioning) - think of it as having a smart assistant that makes quick decisions about what content to show each visitor, right at their doorstep. In this Part 1 guide, we'll walk through the set-up process, with more technical details coming in Part 2.How It Works: System Flow User Action: When someone types hostname/abc/home.html in their browser, they're asking to see a webpage. Think of this like walking into a store and asking for a specific product.Request Routing: This request first arrives at Akamai (a global network of servers). It's like having a branch of a local store that can handle your request instead of going to the main warehouse.Rule Matching: Akamai sees that this specific webpage (hostname/abc/home.html) has special
In previous posts, we covered migrating Adobe Analytics and Target to Edge Data Collection using the data object. Migrating Adobe Audience Manager (AAM) to Web SDK ensures you maintain alignment between audience management and your updated Analytics and Target set ups. In this blog, we’ll discuss some important considerations to keep in mind when migrating AAM to Web SDK. You can find a complete Web SDK migration tutorial here. Comparing Web SDK and Server-Side Forwarding First, let's take a look at AAM with server-side forwarding compared to Web SDK. Most legacy AAM implementations leverage Adobe Analytics data by enabling server-side forwarding (SSF) through the Analytics report suite. When migrating to Web SDK, AAM must be enabled in the datastream. Enabling the AAM service allows data to be sent to AAM and services such as ID syncs, cookie destinations, or URL destinations, to be returned back to the page on the Web SDK interact call response. While SSF is still available
If you have a follow-up question from the Skill Exchange session The Proof Positive Way to Enhance your Approval Experience with Monique Evans from Stanley Black & Decker (@moniqueevans) that originally aired on August 15, 2024, you’re in the right place! Leave your comment below and our speakers will do their best to reply. And if you see a question below that you know the answer to, don’t be shy! We’d love for you to answer from your own experience and perspective. Have questions about another Skill Exchange session? You can see the full list of discussion threads here. On-Demand Viewing - This session is now available on-demand, you can find the recording here. (Tip: Use the links in the left navigation to watch other Skill Exchange sessions!)
What would be the simplest approach to have aem 6.5 treat the various tif extension variations (tif tiff TIF and TIFF) as the same or convert them during upload? Ideally this would occur as a file is uploaded and would trigger the Naming Conflict popup if another file has the same name but a different tif extension (ex: filename.tif and filename.TIFF would be treated the same). My initial concept is to overlay the javascript here: /libs/dam/gui/coral/components/commons/fileupload/clientlibs/fileupload/js/fileupload.jsand have it convert the extension of the various tif extensions to a single variation like .tif during the getDuplicates function. Any suggestions? Or is this the best approach?
Hello AEM Community, I'm facing challenges customizing the 'Share Link' popup in latest AEM SDK (v2025.4.20476.20250414T214138Z-250300) and would appreciate your expertise. Here is the issue:I want to add the text field and a button into the popup. For the same, I am trying to customize the Assets "Share Link" popup by overlaying "/libs/dam/gui/content/assets/adhocassetsharedialog" to "/apps/dam/gui/content/assets/adhocassetsharedialog".Working: AEM SDK v2024.3.15575.20240318T214814Z-231200 (Older Version)Not Working: AEM SDK v2025.4.20476.20250414T214138Z-250300 or in any of the latest version. Has anyone successfully customized Share Link popup in any of the AEM latest version?Would greatly appreciate any insights or workarounds. Thank You!
Hi, I have downloaded the CDN logs from AEMaaCS development environment after setting up traffic filter rules in cdn.yaml file and running the pipeline.I ran the vegeta command to simulate a DOS attack. The WAF Dashboard - Elastic, has a warning message "field aem_env_name.keyword not found in data view aem-cdn-logs" and the Dashboard does not render any details. I see some differences in the expected CDN Log format mentioned in the docs vs the CDN log format generated for the development environment. Not sure what is preventing the Elastic dashboard to not recognize and analyze the CDN logs from the development environment. Can you please suggest a solution? Thank you!
Hello AEM community, We are looking for compliance and monitoring in our security team with our AEMaaCS solution.I have some questions about the Audit Log and best practices on externalising it as "surprisingly for us" this is JCR nodes instead of a log file. I have found the Audit Log just logs Assets, Replication, Pages events... however it lacks users permissions or ACLs changes or basically any User Management events. Where this information is Audit? I know there are some logs which may contain this information. If anyone has a listing on which specific logs to enable in INFO or DEBUG mode are recommended for auditing will be great.Anyone can share any experience on externalising the Audit Log? Best practices on how to take this out to an external system.Maintenance Tasks. I have seen that Adobe is changing the strategy of 7 years of keeping Audit Log to 7 days and purging. I suppose is because performance issues in the JCR due to the amount of content that can be generat
Ever wanted to create a SPAM filter for bot submissions to your forms or run automation based on bot submissions? Well, the integration with Google's reCAPTCHA v3 allows you to do just that! OR if you want to take things to the next level and set up your own custom rules for bot identification using AI then check out the Integrating Marketo with ChatGPT post. What is Google reCAPTCHA v3? Google reCAPTCHA v3 is a method of determining the likelihood that a form submission was carried out by a bot. Unlike reCAPTCHA v2, which offers a challenge to the user before submitting the form (yeah those annoying images that pop up asking you to select every polka-dot colored fire hydrant), reCAPTCHA v3 does not offer any challenge but passes a score to Marketo that can be used for triaging after the form has been submitted. When a form-fill comes into a Marketo form it will be given a “CAPTCHA Raw Score” from 0 to 1 in increments of 0.1 with lower scores ind
This article explores the risks and considerations associated with sending too many marketing emails. It also showcases the Marketo Communication Limits feature and outlines three methods for tracking email send data, helping you set the right limits for your instance. In today’s ever-changing digital landscape, email marketing is still one of the most cost-effective marketing channels out there. When paired with the power of a robust marketing automation platform like Marketo Engage, organizations can send targeted, personalized communications that can enhance customer relationships, expand brand outreach, and boost conversions/sales. But as with any other marketing channel, strategy is key. And as marketers, we know the foundation of a strong email marketing strategy is getting the right message to the right audience at the right time. We also know it’s equally important to be mindful of the frequency at which we’re sending these messages. What Is Email Overload
Consistently setting Acquisition Program (AP) is a best practice for data completeness and reporting (if you need a refresher on the importance, start here!), but it's possible to find yourself in a situation where this best practice wasn't always followed historically in your instance. If this is you, don't be overwhelmed. This scenario is not uncommon, and more importantly, it IS fixable. You can remedy this by backfilling both the Acquisition Program and the Acquisition Date fields. ~~Sounds easy, but how do I actually do that~~ you might be thinking... Let's talk about a framework you can employ to accomplish this! Understand the scope Is it only 10% of your database that doesn't have Acquisition Program? Is it a bigger amount like 60% that doesn't? You want to be clear on this first because if it's a smaller percentage, you might decide you're OK with it and instead focus your time and efforts on ensuring everyone has AP moving forward. If it's a lar
Using Splunk for Log Search & Monitoring on AEM as a Cloud Service by OpsInventor Abstract Attempting to develop on and run a modern website without a log aggregator and without metrics and graphs is a clinic on infuriation and frustration. When did the such-and-such problem start? Was it before or after the deployment? Has it always been this way? Are all pages slow or just this one page? It’s throwing errors now – was it always throwing errors? Does this error correlate to anything? These are the classes of questions that you get faced with when you only have access to a downloaded log, but are unable to search on it, graph it, and measure it across time and across multiple servers. When AEM as a Cloud Service first launched, the only mechanism to get at logs was downloading whole logs via Cloud Manager. Adobe later offered the ability to tail the logs of individual pods via a somewhat involved process using Adobe IO. But now, there’s a third and vastly better way to instrument
Hi Adobe Community,We’re using the default page exporter template in AEM to generate ZIP files. In one of our sites, the page has the cq:designPath property set, and the exported ZIP includes the /etc/designs folder — but does not include the /var folder, which results in missing clientlibs needed to render the page as a static HTML.Interestingly, in the same instance, another site that doesn’t use the cq:designPath property correctly exports the ZIP including the /var folder.We’re trying to understand:What’s the expected behavior when cq:designPath is used in a page?How can we ensure that the /var folder is also included in the export when using cq:designPath?Is there a way to explicitly define that in the export template nodes?Additionally, the official documentation (https://experienceleague.adobe.com/en/docs/experience-manager-65/content/sites/administering/contentmanagement/page-exporter) mentions as a troubleshooting step that /var/contentsync can be deleted and will regenerate.
I have a dropdown with three options [a, b, c].Two of my dialog fields are only valid for two dropdown options [b, c]Is there some OOTB way to show two dialog fields if 'b' or 'c' is selected in the dropdown with showhidetargetvalue? <layout jcr:primaryType="nt:unstructured" granite:class="cq-dialog-dropdown-showhide" sling:resourceType="granite/ui/components/foundation/form/select" class="cq-dialog-dropdown-showhide" cq-dialog-dropdown-showhide-target=".layout-showhide-target" fieldLabel="Select component layout" name="./layout"> <items jcr:primaryType="nt:unstructured"> <option-1 jcr:primaryType="nt:unstructured" text="option 1" value="option-1"/>
We are excited to announce the Adobe Marketo Engage Community Member of the Year for 2024! A big congratulations to this year’s winner: @sanfordwhiteman. Sanford has shown exceptional commitment to the Marketo Community, by selflessly offering his expertise to assist others, writing his many in-depth, highly technical blogs, and sharing valuable feedback. His contributions have greatly enriched the community and inspired others to get involved. Thank you Sanford; your work has significantly impacted countless learners, empowering them to grow in their understanding of our products. Thanks to your efforts, new members are not only learning faster but also feel encouraged to participate more actively. As we step into FY25, we encourage Sanford and all community members to keep the momentum going. Let’s work together to make the community even stronger by sharing knowledge, engaging with peers, and inspiring one another to grow!
Release 8.7.4 April, 2025 Check out the details about what's new, general improvements, fixes and compatibility updates in this latest Campaign v8 Release here: Release 8.7.4 New features SMS REST API support - The Transactional Messaging REST API is now available for the SMS channel. When both email and mobilePhone are present in the payload, you can use the “wishedChannel” field to specify the channel. If not provided, email will be used by default unless wishedChannel explicitly requests SMS. Multilingual deliveries - Starting Campaign Web User interface April release, you will be able to send multiple email deliveries in different languages, and access the related dynamic reports. This capability will only be available in Adobe Campaign Web User Interface at the end of April, and require a server update to Campaign v8.7.4. Please find the detailed information around the new features and fixes here: Latest Release If y
We’re excited to share the on-demand session recordings from Adobe Summit 2025, specifically focused on AEP & RTCDP. Whether you want to revisit a session or catch up on ones you missed, this curated list brings together the most relevant insights for AEP & RTCDP users, practitioners, and champions. Check out the full list of sessions below – organized for quick reference, with direct links to each recording: Session Name Speakers (Name & Designation) Recording Link Accelerating Audiences: Learn How to Action on Your Audience Strategy [S508] Josee Healey, Sr. Product Marketing Manager - Adobe Real-Time CDP, Adobe / Shelby Mansuri, Sr. Manager, Product Management, Adobe Recording Link Adapting to Evolving Challenges in the Media and Advertising Industry [S941] Ian Dejong, Principal Strategist - Media, Entertainment & Trust, Adobe / Angelo Sinibaldi, Director Data Commercialization and Strategy, Nine Entertainment Recording Link AI-Driven Excellence: How AI As
All email validation services fundamentally do the same thing: look up the domain to see if it has an MX record if it has one, connect to the MX and pretend they’re about to send an email quit after sending RCPT TO, before sending a message body report whether RCPT TO returned 250 OK or not[1] They can — okay, since I’ve built such services myself, we can — dress ’em up with “heuristic analysis” and “suspicious domain databases,” but the foundation is the same. Here’s the log of a service hitting our corporate server to validate sandy+test-ssloptional@figureone.com: 94.46.244.65 [1DB4] 20:44:55 Connected, local IP=66.165.231.34:25 94.46.244.65 [1DB4] 20:44:55 >>> 220 icewarp.figureone.com ESMTP IceWarp Epos Update 1 build 17; Sun, 13 Apr 2025 20:44:55 -0400 94.46.244.65 [1DB4] 20:44:55 <<< EHLO douglas.email-validator.com 94.46.244.65 [1DB4] 20:44:55 >>> 250-icewarp.figureone.com Hello douglas.email-validator.com [94.46.24
Log in to Target and go to: “Administration > Implementation”Under the section: “Debugger tools” click on “Generate New Authorization Token”Copy the bold text (Not the text in the “Authorization Token” field) it should read something like this:mboxTrace=window&authorization=6a7dad4a-8bcc-4466-a019-214d3a3bf098This is the extra code that you will need to add to the URL where you are checking to see if Target is running. Browse to the URL in question where you are testing.If the URL has no other URL parameters add the mboxTrace with a ? prefix if there are other parameters you will have to add it with a & prefix.Example1: https://www.domain.com/?mboxTrace=window&authorization=6a7dad4a-8bcc-4466-a019-214d3a3bf098Example2: https://www.domain.com/?param1=true&mboxTrace=window&authorization=6a7dad4a-8bcc-4466-a019-214d3a3bf098Open the browser console. (For Chrome right click anywhere and select “Inspect”)In the browser console switch to the “Network” tab.Filter/Se
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.