Explore product-specific spaces to ask questions, share insights, and learn best practices.
Recently active
Description Fix the backend missing link-key field generation bug that causes orchestration joins to fail when adding Message Feedback attributes during the Enrichment step. Why is this feature important to you Leveraging message feedback data is fundamental to orchestration. Having to build reverse join workarounds by querying the dataset within the Build Audience step just to avoid database errors is highly unintuitive for practitioners. How would you like the feature to work Users should be able to seamlessly select and join message feedback dataset attributes directly within standard Enrichment activities without triggering failure states. Current Behaviour Adding Message Feedback attributes to an Enrichment step causes the campaign to fail with a database (ODBC) error due to a missing link-key field generation during orchestration joins
Description Ensure the "Source" field in the template interface accurately distinguishes between natively created AJO templates and those synced from external integrations (like Knack). Why is this feature important to you When external integrations feed templates into the system, labeling them all identically as native creates organizational confusion, forcing teams to rely on rigid naming prefixes and dedicated folders to find the right assets. How would you like the feature to work The system should automatically flag the true origin source in the template list UI rather than defaulting externally synced templates to the native source name. Current Behaviour The "Source" field in the template interface cannot be relied upon to distinguish between templates originating in external integrations (like Knack) versus those created directly in AJO, as the UI lists the source as "AJO" for both
Description Allow the UI to gracefully handle the deletion of a "Fork" activity without requiring the manual removal of all subsequent downstream transitions first. Why is this feature important to you Campaign iteration should be fluid. Painstakingly deleting every downstream node just to remove a single fork creates extreme friction and wastes practitioner time during the active build phase. How would you like the feature to work The UI should allow users to delete a fork and automatically sever the downstream transitions, rather than blocking the deletion entirely. Current Behaviour The UI will not let you delete a "Fork" activity if subsequent activities are attached, requiring you to painstakingly delete all transitions following the fork first
Increase the architectural limit that restricts orchestrated campaigns to a maximum of 10 inline message activities. Why is this feature important to you Complex, multi-touch orchestration often requires significantly more than 10 total touches. Forcing architects to split their logic across multiple disconnected orchestrated campaigns fractures the customer journey and vastly complicates reporting. How would you like the feature to work Scale the backend architecture to support a substantially higher limit of inline campaigns (messaging actions) on a single orchestration canvas without triggering 6017-500 errors. Current Behaviour OCM imposes a strict hard limit of 10 inline message activities per orchestrated campaign, returning a cryptic "OCM error 6017-500" if exceeded
Retain a UI or Query Service metadata link back to the original AJO template name after an email is published in an Orchestrated Campaign. Why is this feature important to you Once an email is live, it becomes practically impossible to trace which template was originally used without relying on manual implementation notes, which severely hinders template auditing, governance, and optimization efforts. How would you like the feature to work Published messages should persist a metadata attribute indicating the Source Template used to create them, maintaining a traceable link back to the original asset. Current Behaviour Once an AJO template is applied to an OCM email and published, it becomes an independent message and AJO does not retain a UI or Query Service metadata link back to the original template name
Ensure the batchInstanceID is reliably populated across all runs within the ajo_message_feedback_event_dataset. Why is this feature important to you Accurate correlation of message events is essential for campaign analysis. Having to string together messageExecutionID, messageID, and correlationID because the batch instance ID is missing creates brittle and unnecessarily complex reporting queries. How would you like the feature to work The system should guarantee the generation and inclusion of the batchInstanceID for all batch executions across all campaign runs. Current Behaviour When querying the ajo_message_feedback_event_dataset for tracking, the batchInstanceID is sometimes completely empty and is not guaranteed across all campaigns
Expose the exact profile counts transferring between discrete nodes in a system dataset or backend table. Why is this feature important to you While the UI displays profile counts, data engineers and architects need programmatic access to this transition data to validate complex campaigns and feed external observability dashboards. How would you like the feature to work Implement a step event table for OCM (similar to what exists for AJO) that logs the exact profile counts moving between specific activities on the daily basis. Current Behaviour There is no system dataset or backend table exposed to the end user that provides the exact profile count transferring between two discrete node activities on a daily basis
Provide a navigation path or UI link from the Audience UI back to the specific definition or source Orchestrated Campaign that generated it. Why is this feature important to you Robust governance requires understanding exactly how an audience was built. Relying solely on strict naming conventions or external documentation to keep track of audience definitions leads to platform clutter and an inability to trace back the origin of a flat profile list. How would you like the feature to work Audiences generated by OCM should retain metadata linking them back to the source campaign, allowing users to view the logic that created them directly from the Audience portal. Current Behaviour OCM saves audiences purely as flat lists of profiles and currently provides no navigation path back to the definition or source campaign from the Audience UI
Introduce a Dry run or message-skipping feature within the Test Mode for OCM workflows. Why is this feature important to you Validating multi-step workflows is impossible when Test Mode halts progression at the first message activity. Deleting and re-adding nodes just to test downstream flow logic introduces unnecessary friction and risk into the build phase. How would you like the feature to work Similar to the "Dry run" feature in AJO, practitioners should be able to simulate the full progression of a workflow without being halted by or actually triggering the sending of an email node. Current Behaviour When using Test Mode, you cannot test the progression of a workflow past the first message activity without actually skipping the sending emails note
Provide out-of-the-box reporting for individual conditional blocks rendered during personalization within OCM messages. Why is this feature important to you Marketers heavily use Dynamic Content condition blocks to serve tailored experiences (e.g., showing Block A vs. Block B). Without native variant-level reporting, teams are forced to track distinct link URLs or redesign entire use cases as Content Experiments just to see how many users saw which block. How would you like the feature to work The reporting UI should natively break down message exposure metrics by the specific dynamic content variants that were rendered for the audience. Current Behaviour Reporting is strictly at the message or channel level, with no out-of-the-box reporting available for individual conditional blocks rendered during personalization
Update the Campaign Reporting UI to allow filtering by specific run timestamps rather than just aggregating metrics by day. Why is this feature important to you Enterprise orchestrations often run multiple times a day (e.g., every 6 hours). Without instance-level granularity in the UI, stakeholders face massive reporting blindspots and must rely on custom AEP query service backends to properly distinguish performance between multiple runs on the same day. How would you like the feature to work The Batch Instance selector in the reporting UI should permit filtering by precise execution timestamps, not just by the date. Current Behaviour If an orchestrated campaign runs multiple times a day, the OOTB UI only shows aggregated daily metrics because the Batch Instance selector filters by day, not by timestamp
Allow Orchestrated Campaigns to natively evaluate freshly updated table values mid-execution rather than relying on execution-time snapshots. Why is this feature important to you We often need to verify if a user achieved an action (like changing an order status or receiving a previous email) right before sending a subsequent message. Inserting wait periods of several hours just to natively re-query updated datasets severely degrades the real-time nature of orchestrated messaging. How would you like the feature to work Introduce a configuration that forces a live evaluation of specific linked relational datasets mid-canvas before proceeding to the next delivery node. Current Behaviour Because OC relies on a batch-oriented snapshot at execution time, it does not evaluate freshly updated table values mid-execution
Enable OCM to perform a live Unified Profile Service (UPS) lookup to check consent before every email send, rather than relying on a static batch snapshot. Why is this feature important to you Strict compliance with privacy regulations demands that if a user denies consent mid-execution, they are immediately suppressed. Relying on workarounds like injecting wait periods and rebuilding audiences before every single channel send creates incredibly bloated and inefficient workflows. How would you like the feature to work The engine should automatically verify current consent status via a live UPS ping immediately before executing any delivery node, identical to how an AJO Journey operates. Current Behaviour OCM operates on a batch-oriented model using a "snapshot" taken at publication or run time; if a user denies consent while a campaign is mid-execution, they will still receive the scheduled emails
Introduce a runtime profile status to natively block profile re-entry while a user is still actively in-flight within an Orchestrated Campaign. Why is this feature important to you For daily recurring campaigns, architects currently face overlapping, concurrent journeys because profiles are pulled in again before exiting the workflow. Resolving this currently requires maintaining a custom active flag explicitly in the data model and updating it via external systems, which adds unnecessary architectural overhead. How would you like the feature to work OCM should natively expose a runtime profile status (such as "active" or "in-progress") that acts as a built-in mechanism to natively block campaign re-entry while a user is still actively in-flight. Current Behaviour Unlike standard Journeys, OCM does not natively expose a runtime profile status, providing no built-in mechanism to natively block re-entry while a user is still in-flight
Ensure Enrichment activities only expose the specific relational row that matched the initial "Build Audience" criteria rather than bleeding into the entire related-record level. Why is this feature important to you Practitioners need precise downstream personalization. When the system qualifies a profile based on a specific condition (like an order status of "Pending") but exposes all orders associated with that user during enrichment, it necessitates building redundant filtering logic directly inside the Enrichment data setup to prevent personalization errors. How would you like the feature to work The Enrichment step should automatically inherit and restrict the relational data to only the specific row that matched the initial condition in the Build Audience step. Current Behaviour The "Build Audience" step only qualifies the Person ID, and the downstream enrichment step automatically exposes the broader related-record level for that person rather than restricting it to the matched
Your ecommerce platform isn't slow because of traffic. It's slow because of architecture.Global ecommerce is heading toward $7.4 trillion by 2026. And the brands eating that market share all have one thing in common: they ditched monolithic platforms years ago.As someone who architects large-scale commerce platforms daily, Adobe Commerce, Shopify Plus, headless builds, here's what I'm seeing on the ground:The shift to Composable Commerce is no longer a trend. It's the baseline.What composable actually means in practice:→ Your frontend (Next.js / React) is completely decoupled from your backend→ Your commerce engine handles cart, catalog, pricing, nothing more→ AI and personalization run as a dedicated layer, not bolted on plugins→ ERP, CRM, PIM, OMS connect via event-driven APIs not fragile point-to-point integrationsAnd the new frontier nobody's talking about enough: Zero-Click Commerce.AI agents are starting to shop on behalf of consumers. They don't browse. They decide. If your prod
Why third not second?
I need to create a Segment for Abandon Rate where customer did not purchased or ordered product after checkout process.I created an segment however need your help to understand if this correct? HITSExclude (HITSVISITSProduct Views exists- THEN -Cart Additions exists- THEN -Cart Views exists- THEN -Checkouts exists- THEN -Orders exists)- AND -VISITSHITSProduct Views exists- THEN -HITSCart Additions exists- THEN -HITSCart Views exists- THEN -HITSCheckouts exists- THEN Within 1 Hit(s) -HITSPage exists- THEN -Exclude (HITSPage exists)
AEM Multi-tenant Website: Restrict cq:tags for User Groups by SourcedCode.com (Brian Ka Sing Li) Overview Of most common multi-tenant websites, user groups are used to determine what AEM content authors can make changes to. The most popular requirement for a multi-tenant website is the ability to only edit tags for a specific brand. In this case, the way you can achieve this is by permissions. In this blog, we will ensure that all “WKND Members” will be able to create, read, update, and delete nodes under /content/cq:tags/wknd-shared, while these members will not be able to read any other tags listed under /content/cq:tags/*. Click here to learn more: https://sourcedcode.com/blog/aem/aem-multi-tenant-website-restrict-cqtags-for-user-groups
Congratulations to @Wilson-Faure for your recognition as our AEM Champion of the Month for April! 🙌 🤩Wilson has one of the most loyal fan bases of any AEM expert I know. On top of being wicked smart with Adobe Experience Cloud products, his generosity with his time and kind personality make him a true force within the community. As a Champion, he always goes the extra mile by hosting a User Group meeting, sharing best practices with customers, and, dare I say, "stealing the show" at the karaoke bar?!Wilson, thank you for being you. We’re so happy to have you as an Adobe Champion! 👏
We’re currently evaluating an enterprise API migration strategy for an AEM Cloud implementation and wanted to get input from teams that already went through something similar.Historically, our downstream AEM services relied on a middleware layer that handled:response transformation, field normalization, validation mappings, and compatibility logic for consuming components.Now that we’re moving closer to direct enterprise API consumption, we’re debating whether it’s better to:Introduce a transformation/adaptor layer temporarily to preserve compatibility for existing AEM services/componentsORRefactor all consuming services directly against the new API contractMain concerns are:scalability, long-term maintainability, regression testing effort, performance overhead, and dependency coordination across multiple teams.Would be interested in hearing how other enterprise AEM Cloud teams approached this tradeoff in production environments.
While exploring Adobe Analytics MCP integrations, one question that came to mind was around method-level access control and governance.For teams directly connecting MCP with tools like Claude or ChatGPT:Is there currently any way to provide granular access to specific MCP methods? For example, can access be restricted so certain user groups can only use selected MCP tools/methods?This becomes more interesting from an enterprise perspective, especially if future MCP capabilities expand toward:creating reports modifying variables deleting configurations other administrative operationsCurious to know how others are currently thinking about:MCP guardrails monitoring MCP usage internal governance approval workflows controlled MCP integrationsI was also exploring an OAuth/API-based MCP approach where an internally hosted middleware layer could potentially help with additional monitoring, validations, logging, or custom guardrails before executing MCP methods.I also created a small document w
Is anyone else experiencing issues with updating Report Builder queries this morning? I keep get an error message saying that “Segments are currently available”
Description - (I am sure this has been asked many times, so I just wanted to revive the idea) We need an automatic "Previous Period" date range component that automatically creates a dynamic lookback window relative to the selected date range on the panel. Why is this feature important to you It is basically not practicable to have fixed previous date range components in place that only work until one changes the panel date range. Example Freeform table using the last 7 full days (Panel date range) vs the previous 7 days (custom date range in the workspace project). Now, someone decides to change the date range on the panel to "last 30 full days" Result the custom date range still displays only 7 days, the rest is 0 the comparability between panel date range and freeform table is completely useless this becomes even more obvious / erroneous if you are applying a summary change visualization on the two columns, not taking the same number of data points into consideration Ho
We should have the option to disable / remove the opt-out link in scheduled projects. We’re sending scheduled projects to distribution lists with 200+ recipients. But we can’t manually add 200+ recipients in the Adobe scheduler efficiently. Therefore we only have a single email address in the scheduler (an internal distribution list).Here’s the issue: everyone receives the same scheduled project containing the same opt-out link. If only one person of the 200 recipients clicks on the opt-out link the whole distribution list is removed from the scheduler which this is stopping the scheduled report for the whole list on almost a daily basis.
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.