13

Turns out this had a really easy answer (after conferring with Sitecore Support). XML-files for Automation Engine must have the prefix sc., so I renamed MyPredicates.xml to sc.MyPredicates.xml, and lo and behold the exception disappeared and my rules were executed without any problems. Seeing as the documentation never mentions this, it is a very easy ...


6

Sadly, my solution was too ambitious for the Sitecore predicate engine. The solution was to re-write the condition to a bare-bones implementation where a Facet it retrieved by strong-typed class. public class ExmReminderEmailDateCondition : ICondition, IMappableRuleEntity, IContactSearchQueryFactory { public Expression<Func<Contact, bool>> ...


6

Due to the technological and fundamental differences between Engagement Plans and Marketing Automation, there is no migration path short of manually recreating the plans. Marketing Automation uses different workflow logic and it's integration with EXM (in 9.0.1+) are much easier to use and more clear. Lastly, because of the Silverlight implementation of ...


5

Not clear what the Marketer role which you mentioned above, but to your question to access Marketing Automation module, you need to have the "Marketing Automation Editors". You can refer the detail of each and every role in Sitecore documentation here


5

As mentioned elsewhere, the log files are in [yourxconnectroot]\App_data\jobs\continuous\AutomationEngine\App_Data\Logs. You can change the log level in: \App_data\jobs\continuous\AutomationEngine\App_Data\Config\sitecore\CoreServices\sc.Serilog.xml If you need to debug your custom activities, do the following: Stop the service: [instancename]_automation-...


5

Without having done any testing, I think that one of the important considerations here would be "what kind of personalization conditions will cause performance impacts?" The rules engine is very performant in general, so it's really the performance of the individual conditions that would matter. Some personalization conditions would be relatively ...


4

The real problem with the question/answer linked in the description is the use of custom methods as part of the expression. This type of exception is normally about types of queries that are not currently supported by XConnect. The blocking problem on this one is trying to query on properties of a date. Comparisons with this shape are supported: c....


4

Campaigns are not treated as live events OOTB. Live events are only detected for page events and outcomes by corresponding processors: Sitecore.Xdb.MarketingAutomation.Tracking.Pipelines.RegisterPageEvent.LivePageEventInspector Sitecore.Xdb.MarketingAutomation.Tracking.Pipelines.RegisterOutcome.LiveOutcomeInspector Both of the processors check for ...


4

When does is it written to xDB Like the other answers said, it is written when the session closes. The time it takes to be written is in the web.config, in the session config. In the xml below, it is the timeout. This number is in minutes. <sessionState mode="InProc" cookieless="false" timeout="20" sessionIDManagerType="Sitecore.SessionManagement....


3

The Marketing Automation engine requires you to define custom facets that will be available when the contact is evaluated. You will need to patch in your custom facet to the IncludeFacetNames section of the sc.MarketingAutomation.ContactLoader.xml config You would need to add the MemberInfo facet to the IncludeFacetNames. You could create a patch file sc.(...


3

You can not add anonymous contacts to Automation Plans. You will need to identify them first. Additionally, if you are planning on sending this user an email, you have to know information about the contact, thereby making it a known contact. It sounds like you need to add a Custom Submit Action to your Sitecore Form to identify the contact, set the email ...


3

Based on Sitecore documentation engagement plan enrollments are not merged. Hence you have to implement any required logic yourself. Be it purging the source contact from all plans before merging or enrolling surviving contact into the same plans that the dying contact was part of. Please refer to Marketing Automation API on how to do it.


3

Nothing significant from a performance perspective. But there are other issues. I wouldn't worry about this from a performance perspective. While there is a certain overhead on the Rules Engine I would not consider it significant enough to have any real performance impact for up to a good chunk of conditions. That said, there are a few things to consider: ...


3

In my opinion, the only answer to your question is "it depends". It depends on many factors: what is the acceptable page generation time how many visits your site has how many servers you have can you cache some parts of your pages how fast your servers are how fast you can get the client zip code and many many more. Maybe instead of creating ...


3

Please check SSL certificate of {website}.xconnect in IIS. Also please check the license file of .\Website\App_data\jobs\continuous\AutomationEngine\App_Data and thumbprint of .\Website\App_data\jobs\continuous\AutomationEngine\App_Config\ConnectionStrings.config file. There might be some problem there.


3

There are generally two reasons why one would get the Required Anti-Forgery Cookie error message. There is a client issue with your browser preventing the cookies from being read correctly. The error message shown is actually a red herring, and there's an underlying error occurring. You will generally have to look through log files to find the underlying ...


2

There are several components that go into creating an Activity Type. Once you have the code implemented, you need to ensure the rest of the system is configured to make use of your new code. Step 1: IActivity implementation Create a class which implements the IActivity interface. This class should have the logic you want to implement as an action or ...


2

I have checked birmit's blog, actually you have to update angular dependency to 5. package.json is => { "name": "demo9.features.sendemailpromo", "version": "0.0.0", "description": "Sitecore 9 Marketing Automation Demo", "private": true, "angular-cli": {}, "scripts": { "predev": "npm install && rimraf ./codegen/", "dev": "ngc -p ...


2

There are a couple of different approaches, but first a bit of background information. When a contact/interaction/facet is added/updated and submitted to xConnect (at the end of the session), a work item is created for the Marketing Automation engine. This work item will then be evaluated against any active Marketing Automation campaigns where the start/end ...


2

Where the Marketing Automation logs located depends how the service was installed. The one of the way how to determine where the log for marketing automation located just to find the current service in services. Right mouse click and choose Properties. See "Path to executable". When you know the root location just go to "App_Data\Logs" if it was not changed ...


2

I suspect you are running into a certificate issue where you have self signed certificates in the Trusted Root that need to be removed. Check out this blog post. https://getfishtank.ca/en/blog/sitecore-9-xconnect-status-403-forbidden-certificate-error The main point of the post is to remove the non-self signed certificates in your root. Get-Childitem ...


2

The plans a contact is enrolled in is stored in a built-in facet on the contact called AutomationPlanEnrollmentCache. You can get the facet like this: using (XConnectClient client = SitecoreXConnectClientConfiguration.GetClient()) { var contact = client.Get( new IdentifiedContactReference("Your Known ID Type", "Your Contact ID"), new ...


2

So, I found the reason my listener wasn't firing. It turns out, the listener Sitecore.EmailCampaign.Activities.ClickListener listens for a specific ClickPageEventId. The GUID that it's listening for 87431B9B-FA39-4780-BEB3-1047B9E61876 is the GUID of the OOB Click Email Link goal that has shipped with Sitecore forever. I had no idea that any of the ...


2

I have experienced this issue first hand in the past. The Marketing Automation engine is the sole process responsible for determining whether the contact has met the requirements in order to enter or proceed through a Marketing Automation plan. All of the Custom Listener rules depend on the Marketing Automation engine being able to load the Contact and the ...


2

Not sure of the underlying reason for it, however if you deactivate the message it will be unprotected and you can then move it to the dynamically created folder in the environment that you've moved it to. If you then activate it, the campaign will appear in the list of available campaigns in your Marketing Automation plan.


1

In the end what worked for me was installing all the latest Windows updates. However, since I am working on an enterprise PC it was not enough to just "Check for updates" since that did not check outside the company for updates. I had to use "Check online for updates from Microsoft". These are the updates that were installed: KB4293803 - GDR 2002 for ...


1

In older Sitecore versions this code used to work: AutomationStateManager manager = Tracker.Current.Session.CreateAutomationStateManager(); var plans = manager.GetAutomationStates().Select(s => s.PlanItem); I'm not sure if it still work in the latest but it should be a good place to start.


1

Not sure if you are still having this issue but if you do, you can try the below steps: Root cause: This error occurs when the marketing service tries to connect to xConnect but xConnect does not start up properly. Hence, the marketing service fails, and thus the installation. This can happen for several reasons in which the most common are: Untrusted ...


1

Update 1: example of an expression. One additional challenge there is that you need to get the type of the facet so that you can feed it into the GetContactPredicate call: private static Expression<Func<Contact, bool>> GetContactPredicate(Type facetType, string facetKey, string propertyName, object value) { var contact = ...


1

The fix for me on this issue was to grant permission to IISUser on the xConnect certificate. Steps: Right click on certificate Click on manage private keys and grant permission to IISUser.


Only top voted, non community-wiki answers of a minimum length are eligible