Build better products with our product team
The same way we currently train any personalization engine using a "maximize revenue" setup – but allow the revenue to be reduced by negative events (even to below zero).Cancel flows only have one reliably measurable metric for training – and it's the thing we don't want them to do. I can't train it to go with "not" canceling because a large portion of those events are non-actions (i.e. "did not cancel"). There are some buttons that are alternatives to canceling – but what if they come back after clicking those buttons? Same goes for if they navigate away to a non-cancel related page. Training against negative events (like canceling a subscription) is a powerful application that many companies (like BlackBack) are starting to address. I'd prefer not to by a bunch of third party tools to work on something that Target Personalization would be perfect for with this one capability added. Additionally, this goes beyond just canceling as there are all kinds of negative or semi-negative events (like returns/exchanges, warranty claims, and calls to customer service) that we frequently optimize our site to prevent.Note: A similar solution (albeit less dynamic) would be to allow to optimize for "minimum revenue".
I have set up our new structure at my company for how to go about A/B Testing when we need to send to a large audience size – essentially, the only way we are able to A/B Test and follow the method for breaking out our total audience into different groups is via Random Sample A/B Testing in a smart campaign. Let me explain my thought process below: Audience Size generated via smart list is 28,000 people and we find that 1,000 people have the same domain (e.g., @siemens.com) and we don't want to send to those people at the same time due to the possibility of receiving hundreds of soft bounces, which could then hurt our deliverability rates. Now, if we had 9,000 people, then that would be a different story as this is what I'm proposing: Using an Email program template and this is what the structure would be (with details baked into my reasoning): Template (Structure): Email program (Parent) – do Email Program (A/B Testing) for audience size of 9,999 people or less (smaller audience size). Smart List – this will be used to generate the audience for 9,999 or less – please see processes below on how to set-up 10,000+ email sends a/b testing vs 9,999- email sends a/b testing 01 Workflows folder – houses all workflows 01a Populate Random Audience (10,000+) – this will only be used to split up the audience sizes – groups need to be in an even number to do proper A/B Testing (e.g., 4 groups, 6 groups, 8 groups, etc.) 01b Send Email 01 (External) – do Random Sample (A/B Testing) for audience size of 10,000 people or more (larger audience size) 01b Send Email 01 (Internal) – will be able to send to our internal stakeholders (marketing seed list such as myself and anyone else within my organization) – the reason we need to have this is because this will give our stakeholders the ability to see their emails goes out without having to worry about communication send limits based on Setup tab unchecking “Block non-operational emails” box. We have dozens of emails going out each week, so we don’t want internal stakeholders not getting the emails we send out based on them reaching their communication send limit, so it only makes sense to have a separate workflow for them. Please note, if doing an A/B Test, please send when winner is expected to be chosen (when doing Email Program A/B) or when final A/B Test runs (when doing Random Sample A/B). We should be able to know the time to send. 01d Invited (Non-Success) – this will be able to mark their program status once the email gets delivered to the recipient. This is helpful to have, especially for when we are sending out of the Email program (Parent) since we can’t mark their program status at the parent-level alone. 99 Clicked CTA (Success) – this will be able to mark their success for clicking the main CTAs within any said email and will check to see if they visited any of the said pages, and then will change their program status to Email > Clicked CTA within the flow step. 02 Emails folder Houses the email assets 03 Lists folder Houses the static list assets needed Notes on each static list: 00 Total Audience (Exported) – this will be used to generate the audience for 10,000 or more (smart list tab will have audience criteria, and people’s tab will have our members). From here, export members into CSV from people’s tab, and then work CSV as such: keep only email addresses, go to Data > Remove Duplicates > leave Email Address checked > Run > Save CSV 01a Invite List – this will be where you import the CSV mentioned above and this will be used in the smart campaign 01a Populate Random Audience (10,000+)’s smart list tab to then break out our random audience groups within this smart campaign’s flow tab 02a through 02 etc. This can depend on how big your list is – (e.g., Total Audience = 28,000 will break list into four groups listed from 02a Random Audience (Group 1) all the way to 02d Random Audience (Group 2)). This is important to have these in Even Groups as mentioned earlier because if we plan to do A/B Testing (2 variables being tested) we need to have an even split, or a total group number that is divisible by 2 (e.g., 4 total groups = 2 groups get Test A, and 2 groups get Test B) and these will each have Wait steps of 30 mins in-between one another under the 01b Send Email 01 (External) workflow, found in this smart campaign’s flow step Other folders: 04 Reports folder – houses all reports needed 99a Misc folder (archived) – houses any workflow fix programs that are out of the ordinary if we ran into any hiccups. 99b NIU folder (archived) – houses any workflows, emails, lists, reports, etc. that are not-in-use any longer. Now that I explained the structure of the program, let's see screenshots in order: Step 1: Locate your program Step 2: Generate your Smart List Step 3: From here, export members into CSV from people’s tab, and then work CSV as such: keep only email addresses, go to Data > Remove Duplicates > leave Email Address checked > Run > Save CSV <no screenshot to avoid privacy legal issues> Step 4: Reimport CSV list into 01 Invite List Step 5: Locate the 01a Populate Random Audience (10,000+) smart campaign Step 6: Set up the 01a Populate Random Audience (10,000+) smart campaign calling the 01 Invite List we just imported into Set for total campaign exceeds (number greater than your generated audience that is planning to run through this smart campaign (e.g., set to 50,000 with audience of 26,047) Step 7: Set up to send out of 01b Send Email 01 (External) May be hard to see the Flow step, but essentially, to avoid soft bounce issues, and trying to do the "Random Sample is 50" A/B Test that Joe Reitz introduced on his YouTube channel, Marketo Fu, it essentially is saying Group 1 gets Test A, Wait 30 minutes, Group 2 gets Test B, Wait 30 minutes, Group 3 gets Test A, Wait 30 minutes, and Group 4 gets Test B. Then you'd set up your Internal send for your seed list, and set up your triggered campaigns to capture non-success (program status change for Email > Invited in the flow step, but the smart list would listen to see if the email is delivered to them) and success (program status change form Email > Clicked CTA in the flow step, but the smart list would listen to see if the CTA within the email was clicked) (Notice: And you can see how you'd want to filter out for ghost clicks within the success triggered smart campaign - I have another example where I talked about this here: https://nation.marketo.com/t5/product-discussions/shared-blog-i-want-to-believe-but-your-email-link-clicks-aren-t/m-p/320151#M180821) And then, you would schedule the emails to go out and let Marketo do it's magic. Hope this was insightful, and could help A/B Test all while avoiding potential soft bounces, which would then in-turn help increase deliverability rates. Happy Marketo! Best,Dillon
First of all, I am totally happy with the automatic trigger campaign clean up that Marketo runs twice a year. However, there will always be some triggers that do need to stay active, even though the volume running through them is really low. Having to manually comb through the alert list of smart campaigns that will be deactivated to manually deactivate and activate the ones you need to keep going is tedious at best. Would it not be possible to introduce a flag to "protect" a trigger campaign from being auto-deactivated?
Request for Feature Enhancement (RFE) Summary: Requesting that folders be returned in search results (in addition to files) Use-case: We often want to see inside a whole project folder, not just a file from that folder Current/Experienced Behavior: Workaround: we can access the folder from a search by removing the file name in the URL from a file that we know is inside the folder Improved/Expected Behavior: A folder is delivered in the search results Environment Details (AEM version/service pack, any other specifics if applicable): 2021.11.6019.20211109T172940Z Customer-name/Organization name: King County Screenshot (if applicable): Please see screen recording posted to Support ticket E-000521299 Code package (if applicable):
Description - If an AEM fragment is being used on a live Target activity, allow updates made in AEM to be updated/exported to Target without pausing the Target activity. Right now you have to pause the activity, then re-export the fragment to Target, then re-activate the activity. Why is this feature important to you - Very inefficient to pause and reactivate the Target activity every time a minor change is made to an AEM fragment being used on that activity. Makes it difficult to keep content updated when using AEM fragments on Target activities. Interrupts the visitor experience when activities are paused, especially those that include nearly full-page AEM fragments, because visitors see a nearly blank webpage while activity is paused. How would you like the feature to work - When updating an AEM fragment, allow us to update/export the fragment in Adobe Target while it's live on a Target activity. No pausing of activity required. Fragment updates on live activity with no additional steps required. Current Behaviour - Error message shown when attempting to update an AEM fragment in Target if the fragment is live on a Target activity. Target activity must be paused while fragment is updated to Target. Logistically, some activities cannot be paused. In that case our team must remove the fragment from the activity, sync the activity, make updates in AEM, update fragment to Target, place fragment back on Target activity, and re-sync activity.
It would be really good to have some quality metrics, we’d like to know the usage, not just the amount of views, of our dashboards and reports
There should be an option in a user's profile where they can set a delegate who will get ALL of their notifications, tasks, etc during a set time period.
Time Off calendar Gantt view needs to be enhanced. It doesnt have TODAY button because it takes me to back 15 month or post 15 months and manually getting back to today is difficult. Also, the view should show USER NAME just ONE TIME and time off horizontally vs many times row item of same user name, which is confusing.
As planners, we would like to quickly access the "next project" by simply clicking on a "Next Project" button at the top of the screen, when we are done managing/updating one project without having to open a new tab or click the back button multiple times. Perhaps this "Next Project" button would pull from data based on an Active Project list that that project owner owns.
The customization options for the Invitation Emails need to be more customizable. For example, I would like to have our logo included, maybe our branding (colors, fonts at a minimum) and because we are SSO enabled, the message about creating a password, etc. is not applicable and confusing. I would love to be able to customize this email altogether and not have my name specifically mentioned in the email if I do add a custom message. I would like to include links to our process manuals as well.
Ability to share documents/folders/zipfile links with anyone (not just registered users) like dropbox can do. If someone has the link, they can download the file.Useful when releasing files to a vendor and they want to subcontract the work outAlso useful for translations. The translation team can forward the link to the contractor doing the translation anywhere internationally.These zipfile links should have the ability to have embargo and expiration date / time
Users would like more granular control over notifications:Within a notification users would like to be able to select which fields are included in the notificationTurn on or off different notifications for email vs slack vs teams vs in-app vs mobile appNotification control at the global vs team vs role vs project levelNotification control by calendar. e.g. cancel, defer, or delay all (or specific) notifications while user is OOO or outlook calendar says they’re in a meeting.
Users would like more granular control over notifications:Within a notification users would like to be able to select which fields are included in the notificationTurn on or off different notifications for email vs slack vs teams vs in-app vs mobile appNotification control at the global vs team vs role vs project levelNotification control by calendar. e.g. cancel, defer, or delay all (or specific) notifications while user is OOO or outlook calendar says they’re in a meeting.
Request for Feature Enhancement (RFE) Summary: Enable the Copyright page display in AEM Assets without overriding the XMP web statement property Use-case: Right now, if we want to enable the custom coypright page to display whenever a licensed asset is going to be downloaded, the XMP web statement property is being overriden by the content path to the copyright page. Current/Experienced Behavior: Right now, if we want to enable the custom coypright page to display whenever a licensed asset is going to be downloaded, the XMP web statement property is being overriden by the content path to the copyright page. Improved/Expected Behavior: We don't want the web statement property to be overriden becauase we are losing important info Environment Details (AEM version/service pack, any other specifics if applicable): AEMACS Customer-name/Organization name: Accenture Screenshot (if applicable): Code package (if applicable):
Request for Feature Enhancement (RFE) Summary: Support for NginX as a dispatcher Use-case: Any AEM setup where a dispatcher is used. NginX outperforms Apache: NginX is faster than Apache, has a smaller codebase and can handle more request than Apache with less load on the machine. It would be beneficial for both the Adobe's server (because NginX is lighter for the machine) and the client (because NginX can handle requests faster). Current/Experienced Behavior: No NginX support Improved/Expected Behavior: NginX support Environment Details (AEM version/service pack, any other specifics if applicable): any AEM version Customer-name/Organization name: National Lottery Screenshot (if applicable): Code package (if applicable):
Request for Feature Enhancement (RFE) Summary: When setting an Experience Fragment in a blueprint, live copies will not automatically pick the correct corresponding language version of the Experience Fragment. This makes our author's output slower on Experience Fragments. And it increases the risk of human error/inconsistency significantly. Use-case: A multilingual setup making use of Experience Fragments. Each Experience Fragment has a Blueprint (en) and a language copy. And in Sites, a Blueprint (en) and live copies in the same languages. Current/Experienced Behavior: When an author creates or updates pages in Sites blueprint, and we synchronize those changes into the live copies, the Experience Fragments in those pages have to be adapted manually to the correct laguage. This means authors cannot manage Experience Fragments from the Blueprint in a multilingual setup. It means an Author is forced to go an manually pick the correct Experience Fragment in each language, whereas it as simple as chaning the language part from the pointer to the correct language, e.g Experience-fragments/en/test/master -> Experience-fragments/nl/test/master In our multilingual setup: this step is repeated for all the languages, because we use a language copy structure inside Experience Fragments, the action is very simple, but repetitive and error-prone. Authors need to repeat the same change in the Blueprint and each Live Copy individually, which results in loss of time on repetitve tasks and the introduction of possible errors. Improved/Expected Behavior: Pointers to Experience fragments are automatically translated in "Sites" when sites and Experience fragments both use the same language structure. Environment Details (AEM version/service pack, any other specifics if applicable): 6.5.8.0 Customer-name/Organization name: National Lottery Screenshot (if applicable): Code package (if applicable):
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.
Sorry, we're still checking this file's contents to make sure it's safe to download. Please try again in a few minutes.
OKSorry, our virus scanner detected that this file isn't safe to download.
OK