Explore product-specific spaces to ask questions, share insights, and learn best practices.
Recently active
Authors: Sandeep Nawathe and Jody Arthur In Part 1 of this series, we described all the digital components enterprises need to develop a 360-degree view of their customers and the capabilities and limitations inherent in the technologies available to help them do that. Here in Part 2, we + a new approach — one that unifies disparate data sources and system architectures to develop a Unified Profile that is actionable in real-time. With the proliferation of information technology systems, an enterprise’s customer information is often fragmented across disparate sources hampering its ability to fully leverage the power it holds. Delivering the real-time personalized experiences that today’s consumers demand starts with building a holistic understanding of the customer, a Unified Profile. In Part 1 of this series, we described the digital components needed to develop a unified, centrally accessible customer profile that allows an enterprise to target people with personalized cross-channe
Authors: Ye Xu and Douglas Paton In this post, we, Adobe Experience Platform, round up the key takeaways from AWS re:Invent 2019. We look at the big things coming up for Computing, AI and Machine Learning, Database and Analytics, Security, IoT. AWS re:Invent is Amazon Web Services (AWS) annual conference for all things cloud computing. The 8th year of the event, held in November of 2019, was the biggest yet, attracting 60,000 people, and featured the launch of 75 new services for AWS. The new services were launched in over 13 different categories, ranging from Analytics to developer tools, and has some exciting implications for Adobe Experience Platform. Looking at everything from the show would be impossible, but we’ve got a roundup of some of the more applicable new services that were launched. Let’s dive in and take a look. Computing Amazon has made enhancements to Amazon EMR, their big data processing and analysis platform that allows you to run and scale Hadoop, Apache Spark, and
Authors: Amy Durocher, Andrew Kirkpatrick, and Jenny Medeiros This post describes our journey building accessibility into Adobe Experience Platform and our approach to achieving the ambitious goal of becoming accessibility compliant by the end of 2020. The accessible design has rightfully become the focus of leading organizations worldwide. With almost 20% of the global population living with some form of disability, it should no longer be an afterthought to offer different ways for people with sensory, physical, or cognitive impairments to access online products. At Adobe, we firmly support and encourage building inclusive user experiences that are accessible to customers of diverse abilities. To further our commitment, we are purposefully designing new Adobe products with human differences in mind, and revisiting past ones to bring them up to standard. In this post, we share the highlights of our ongoing accessibility journey as we tirelessly work to make Adobe Experience Platform
Authors: Sandeep Nawathe and Jody Arthur This is the first post in a two-part series that explores the challenges inherent in developing a 360-degree view of the customer. In this post, we describe the digital components a business needs to develop a holistic understanding of the customer and the difficulties associated with pulling them all together in the current solution landscape. In Part 2, we will present a new approach to unifying disparate data sources and system architectures to develop a Unified Profile that is actionable in real-time. To be successful, enterprises have always strived to provide the best customer experience. With the rise of digital technology, proactively understanding a customer’s interests has been a key approach for businesses seeking to deliver personalized experiences that engage and delight their customers. And, customers expect this today. They have come to expect relevant material across all their interactions with a brand that optimizes their exper
Authors: @danny-miller , Shruti Jagtap, Douglas Paton In this blog, we look at how modeled a one to many relationships in XDM for Adobe Experience Platform. We discuss the options we had for modeling and the surprises that came up along the way. This blog details a single implementation or customization on Adobe Experience Platform. Not all aspects are guaranteed as general availability. If you need professional guidance on how to proceed, then please reach out to Adobe Consulting Services on this topic. One-to-many (1:M) relationships are everywhere these days. We sign up for things using different names, email addresses, and user names depending on the product or service we’re using. We create a whole host of mini-profiles that all point back to us. This creates a situation where multiple profiles online can all be attributed to a single person. The challenge is that most 1:M profiles end up looking very similar to Figure 1. Not surprisingly, something like that can be fit int
Warning: this blog post will seem out-of-nowhere until you read the next one, which is a Marketo-focused use for the code supplied below. But this had to come out first in preparation. Something’s notable about a <style> element with no attributes (no id, no title, no class or custom data-). While the styles inside will work perfectly, there’s no standard way to distinguish the source, purpose, or implied scope of such an element. Such elements are ridiculously common, of course! You surely have at least one non-attribute-ed <style> in the head of your HTML templates, which you term “local styles.” And 3rd-party libraries can inject many more. But what if you want to reference a specific one of those stylesheets from JS, like the <style> that brands your video player? Well, you’re basically out of luck unless you get to guessin’. See, from a DOM standpoint, the
Hi, RTE in AEM 6.4 is throwing an error when I make the component configurable by adding a checkbox for users in the dialog for authors to use the RTE in any custom component. However, after I select the checkbox and add content to it and click on 'ok' checkmark, it throws an error initially but if I refresh the page, the component is throwing content in RTE correctly. If I again update the content in the same page and click on 'ok' checkmark, it's throwing the error again until I refresh the page.Error message - Uncaught (in promise) TypeError: Cannot read properties of null (reading 'data') - http://localhost:4502/libs/cq/gui/components/authoring/editors/clientlibs/core.894e3547679632b5f44a9833bcb0529b.jsThe code for adding RTE in the component looks like this: <div data-category="${properties.tiletype}" data-sly-test="${properties.includedes}" data-sly-resource="${'something' @ resourceType='/apps/foldername/components/content/genericrichtext'}"></div&g
Last week we published the JCR Query cheat sheet as part of the official AEM documentation: https://experienceleague.adobe.com/docs/experience-manager-65/deploying/practices/best-practices-for-queries-and-indexing.html?lang=en#jcrquerycheatsheet it is appplicable for AEM 6.5 and AEM as a Cloud Service, but the majority of it should be good also for earlier versions down to 6.0. For different type of queries it contains samples which are are the most performant to achieve the expected results, plus the requirements towards the index backing these queries. It contains these queries so you can copy&paste them, has a number of helpful links, and its printable so you can pin it to your wall. And it's the a good learning source for the 3 supported query languages QueryBuilder, XPath and SQL-2. Have fun!Jörg
Hi,Please checkout the KB article for cq:isContainer Propertyhttps://aemlab.blogspot.com/2021/11/cqiscontainer-property-in-aem.html
EDIT: The pictures shown is for 1 group that is not a member of any other group. problem: having issues with permission inheritance in experience fragments (/content/experience-fragments) preferred outcome: all folders and fragments under the parent path will inherit. In my screenshot, all folders and fragments should inherit the permission for the staff folder.-----The permission were setup by going to author.myhost.com/useradmin - the child folder got the permissions from the parent (/content/experience-fragments/staff/digital-services)- the grandchild folder did not inherit the permissions set in the parent (specifically modify permission)- fragment inside the grandchild folder does not have modify
Fast Facts — AEM Best Practices Analyzer (BPA) by Sanjay Kushawaha Abstract The Best Practices Analyzer (BPA) which earlier known as Cloud Readiness Analyzer is used to assess the AEM project code implementation by indicating areas that are not following the best practice guidelines of AEM as a Cloud Service (AEMaaCS). By using the report generated by BPA you can identify the potential code refactoring areas that need to be fixed before deploying it to AEMaaCS. Let’s understand the flow by referring below diagram. Important considerations for BPA It is supported on AEM instance 6.1 or above and can be run by admin or user having administrator rights. It can be downloaded from Adobe Software Distribution Portal and install on AEM Author using Package Manager. Once installed it can be accessed by following the path Tools → Operations → Best Practices Analyzer. Read Full Blog Fast Facts — AEM Best Practices Analyzer (BPA) Q&A Please use this thread to ask the related questions.
DM Classic - S7 - Show default image when a specific Image or Vignette object not found by Sreekanth Choudry Nalabotu Abstract Missing Product Image In Dynamic Media Classic (S7), if the image (specified in URL with others modifiers) is NOT found, you can serve a default image by adding parameter &defaultImage. This helps when there are new images for a product not published yet or missing for some reason, so when users clicks the link or the specific swatch, a default image for the product is shown (instead of a broken or generic 404 image...) Image not found URL eg: http://sample.scene7.com/is/image/S7trainRender/image_does_not_exist With &defaultImage URL parameter: http://sample.scene7.com/is/image/S7trainRender/image_does_not_exist?defaultImage=ninewest_shoe Unavailable Vignette Object While serving an Image Render or Vignette (composed of objects) if the Object name is NOT found, there is no default image parameter here and error Object not found is shown... Sample O
Join us for our first Adobe Analytics Community Q&A Coffee Break, taking place Tuesday, November 2nd, 2021 @ 8am PT - 9am PT 🗓️☕Be sure to MARK YOUR CALENDARS with a link to this thread☕🗓️ We'll be joined by Travis Sabin, aka @tsabin03, Principal Product Manager for Adobe Analytics, who will be signed in here to the Adobe Analytics Community to chat directly with you on this thread about your Adobe Analytics questions pertaining to his focus areas: Quick Segments New Analytics landing page Quick Insights 📊REQUIREMENTS TO PARTICIPATE 📊 Must be signed in to the Community during the 1-hour period Must post a Question about Adobe Analytics THAT'S IT! *(think of this as the Adobe Analytics Community equivalent of an AMA, (“Ask Me Anything”), and bring your best speed-typing game) 📊INSTRUCTIONS 📊 Click the b
In summary, this post will teach you how to optimize the hand-off of email content from your content creation team and create automation that will: Send email content from a Google Sheet to Zapier Create an email program, email asset, and smart campaigns for this email Upload images from Dropbox to the Design Studio using the API so that they can be used in your email Populate your email by transferring the content from your Google Sheet to email variables using the API Create dynamic content sections and populate these sections with the content from your Google Sheet using the API All the Python code used in the Zapier actions, the JavaScript code used in the Google Sheet, and the HTML code for the marketing newsletter can all be found in this directory in Github. N.B. If it is your first time using the API or you need a quick refresher then check out the Quick-Start Guide to the API to see how to make your first API requests in Pos
Hi all, I'm excited to share that we will be starting up our next round of testing. Many of you reached out during our first round and was deferred to this one instead. With that, we will be reaching out to those folks first before we take on other testers—be on the lookout for an email. If you would like to be added to our waitlist, please comment below! In the meantime, a little teaser—can you spot the Workfront tasks on the board living side-by-side with the ad hoc items?
Hello Community, I need your help on a topic. I have several locally folders containing assets that i would like to upload to my aem author instance on the cloud. I have read the documentation at : https://github.com/adobe/aem-upload. I am a little bit confused : aio-aem aem:upload test.pdf -c admin:admin -h http://localhost:4502/content/dam : folder aem-upload-1635701310972 is created but no asset is uploaded into it with following error : error: unhandled exception attempting to upload files direct binary access not supported2. Running it on instance on cloud, i have : error: post https://author-XXX.adobeaemcloud.com/api/assets/aem-upload-1635709461348 < failed with status code 4012021-10-31T19:44:21.523Z [] error: unhandled exception attempting to upload files Request failed with status code 401 Thanks in advance for your help. Regards.
Hey Guys,https://www.techinnovia.com/osgi-services-and-components/here is my next article part 5 out of 8 on OSGI Services and Components Services Architectural LayerService: Publish Find Bind?Declarative ServicesOSGI ComponentsService Component Runtime(SCR)At the end of article it has video contains demonstration of project!Feel free to leave your feedback please! 😉 Cheers!
Hi, I am facing an issue when having a selectbox with a custom datasource in a multifield.When the dialog with this multifield is open the first time (no data for the multifield are present in the repo) then the dialog opens. The editor is able to select items in the selectboxes, add new selectboxes inside the multifield and so on. But when the dialog gets closed and the data are saved in the repo and the editor tries to open this dialog again, a javascript error occors and the dialog does not open anymore.The interesting thing is, when I have the same dialog configuration but the selectbox has static items instead of a custom dataset then everything works fine. Not working dialog configuration:<myCustomMultifield jcr:primaryType="nt:unstructured" sling:resourceType="granite/ui/components/coral/foundation/form/multifield" composite="{Boolean}true" required="{Boolean}true" fieldLabel="My Custom Multifield"> <field jcr:primaryType="nt:unstructured" sling:reso
There isn't any documentation on this out of the box metric, so thought I'd post here to see if anyone has had experience using it.Basically, we have a custom evar that captures the unique ID of visitors when they login to our mobile app.Days since last visit ("DSLV") against the unqiue id evar however, seems to work only in some instances.Client care advised that we need to set our id evar to 'never expire' (currently set to expire on visit) and that this was the issue.However, further investigation reveals this information to be incorrect.In production (with id evar expires on visit), DSLV against the id evar seems to work in some cases, even if the visitor has not returned since the last visit.In development (with id evar never expires), DSLV against the id evar does not work if the visitor has not returned since the last visit, which seems counterintuitive. It also only works in some cases otherwise.Curious to know if anyone has used this metric with good accuracy against a unique
Show/Hide Page Properties Based on Template in AEM by Bimmisoi Abstract In AEM , editable templates usually share the same page component, which means the same page properties dialog. Below are the steps to show/hide page properties based on the template. 1. Create a jsp under apps “/apps/project-name/granite/rendercondition/template/template.jsp” with below code. <%@include file="/libs/foundation/global.jsp"%> <%@page session="false" import="com.adobe.granite.ui.components.Config, com.adobe.granite.ui.components.rendercondition.RenderCondition, com.adobe.granite.ui.components.rendercondition.SimpleRenderCondition, com.core.utils.TemplateRenderConditionUtil, org.apache.sling.api.resource.Resource, org.apache.sling.api.resource.ValueMap, com.adobe.granite.ui.components.ComponentHelper, com.adobe.granite.xss.XSSAPI, com.day.cq.i18n.I18n"%> <% final ComponentHelper cmp = new ComponentHelper(pageContext); Config cfg = cmp.getConfig(); String path = cfg.get("templatePath"
Proving marketing’s impact successfully relies not only on the data itself but the ability to tell the RIGHT story. Join 6X time Marketo Engage Champion @jessica_kao3 as she walks through 5 of the most important reports everyone should be using to pull the right metrics, tell the right story to the right people, and earn the attention and respect of the C-Suite. You'll walk away with: The 5 key metrics that really matter How to lead the data conversation and focus on storytelling and insight How to prove that Marketing Operations is an ACCELERANT to your company's digital marketing revenue Looking for additional resources? SLIDES - Reporting for the C-Suite: Own a seat at the table with 5 key Marketo Engage reports BLOG - Marketo Success Series: Reporting WEBINAR - Beginner Workshop: Measuring ROI for your unique business needs Have more questions or tips of your own on how to report on R
We have extended the PDF viewer core component in our AEM environments. We have also created API keys for each of the domains in the Adobe Developer Console. When we set up the PDF viewer component in our STAGE author environment, we get the message "This application domain is not authorized to use the provided PDF Embed API Client ID. (please see attached screenshots) The API key is set up to the correct domain.
Purpose: Moving Workfront Customers Interested in Participating in Customer Research to Adobe's Experience Cloud Customer Feedback Panel Subject: In an effort to centralize research at Adobe, we are requesting all Workfront customers who want to participate in product research studies and pre-release testing to sign up for Adobe’s Experience Cloud Feedback Panel. Upon sign-up you will be asked questions about your areas of interest and will only be solicited to participate in studies specific to those interests. The benefits to you moving to the Customer Feedback Panel will be: *All product teams will recruit participants from the same source, which will help keep teams aligned on who is talking to who about what. We will not over-contact you with research requests. *You will be able to select what type of research you want to participate in‚ÄîAlphas/Betas, Usability Sessions, Strategic Discussions, etc. *You will be able to provide feedback on other Adobe products if intereste
Hey everyone, I'm having trouble with my workflow trying to save a document to filesystem. Basically, we have a custom step that help us save documents into filesystem and is working as expected (it saved attachments from an Assign Task to a specific file location). Here you have to set the file location including the name of the file and the document that you want to save: The problem I'm having is with the Generate Document of Record, I have the following configuration for the step. formData represents the all the data the user submitted from a form and document is just the variable type Document. This is the error triggered when trying to save a document from the Generate Document of Record:com.adobe.granite.workflow.WorkflowException: Process execution resulted in an errorat com.adobe.granite.workflow.core.job.HandlerBase.executeProcess(HandlerBase.java:201)at com.adobe.granite.workflow.core.job.JobHandler.process(JobHandler.java:260)at org.apache.sling.event.impl.jo
Dareboost is saying we should be gzipping our SVG files (from DAM). Any suggestions how we can do this, e.g. in dispatcher or OSGi files? Its the cloud AEM version, so somewhat limited.
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.