3

In SC9.1, I have a marketing automation that is triggering EXM emails. I'm using the where contact clicked email condition to direct the visitor through the automation. Marketing automation is not picking the click condition from the email. I see the click activity in the Experience Profile activity tab, so I know that it's making it to xDB. My automation is working for goals triggered, and where contact opened email, but not for contact clicked.

Any tips on how to debug this would be appreciated.

enter image description here

  • Is this a fresh 9.1 environment? Or an upgraded environment? And upgraded from what version? – Pete Navarra Mar 15 '19 at 16:26
  • Upgrade from 8.2 (rev. 170614). I guess I should fire up EXM on my 9.1 habitat home & see if it works. – James Williamson Mar 15 '19 at 18:13
  • In 9.0.1, there was an issue with the contact model (in xConnect) where the facets were commented out that prevented the contact from having interactions available to marketing automation. I'll have to dig up which file that was (can't right now) but that might be the issue. – Pete Navarra Mar 15 '19 at 18:52
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 appropriate facets. This is controlled through the configuration file <xconnect>\App_Data\jobs\continuous\AutomationEngine\App_Data\Config\sitecore\MarketingAutomation\sc.MarketingAutomation.ContactLoader.xml

In Sitecore 9.0.1 (and possibly 9.0.2), large sections of this file were commented out, preventing Marketing Automation from loading contact and interaction facets correctly.

There are two sections that are important here:

  • MarketingAutomation.Loading.ContactFacetsConfigurator
  • MarketingAutomation.Loading.InteractionFacetsConfigurator

Both nodes should exist and not be commented out.

Below is the Vanilla Sitecore 9.1 version of this file.

<Settings>
  <!--
    Marketing Automation contact loader configuration
  -->
  <Sitecore>
    <XConnect>
      <MarketingAutomation>
        <Engine>
          <Services>
            <!-- The contact loader which loads contacts and interactions from XConnect -->
            <MarketingAutomation.Loading.ContactLoader>
              <Type>Sitecore.Xdb.MarketingAutomation.Loading.ContactLoader, Sitecore.Xdb.MarketingAutomation</Type>
              <As>Sitecore.Xdb.MarketingAutomation.Core.Loading.IContactLoader, Sitecore.Xdb.MarketingAutomation.Core</As>
              <LifeTime>Scoped</LifeTime>
            </MarketingAutomation.Loading.ContactLoader>
            <!-- Load a fixed duration of previous interactions for the contact -->
            <MarketingAutomation.Loading.FixedHistoryConfigurator>
              <Type>Sitecore.Xdb.MarketingAutomation.Loading.FixedHistoryConfigurator, Sitecore.Xdb.MarketingAutomation</Type>
              <As>Sitecore.Xdb.MarketingAutomation.Core.Loading.IContactExpandOptionsConfigurator, Sitecore.Xdb.MarketingAutomation.Core</As>
              <LifeTime>Singleton</LifeTime>
              <Options>
                <MaximumAge>30.00:00:00</MaximumAge>
              </Options>
            </MarketingAutomation.Loading.FixedHistoryConfigurator>
            <!-- Include or exclude contact facets for the contact during loading -->
            <MarketingAutomation.Loading.ContactFacetsConfigurator>
              <Type>Sitecore.Xdb.MarketingAutomation.Loading.ContactFacetsConfigurator, Sitecore.Xdb.MarketingAutomation</Type>
              <As>Sitecore.Xdb.MarketingAutomation.Core.Loading.IContactExpandOptionsConfigurator, Sitecore.Xdb.MarketingAutomation.Core</As>
              <LifeTime>Singleton</LifeTime>
              <Options>
                <IncludeFacetNames>
                  <Addresses>Addresses</Addresses>
                  <ConsentInformation>ConsentInformation</ConsentInformation>
                  <Emails>Emails</Emails>
                  <EngagementMeasures>EngagementMeasures</EngagementMeasures>
                  <ListSubscriptions>ListSubscriptions</ListSubscriptions>
                  <Personal>Personal</Personal>
                  <InteractionsCache>InteractionsCache</InteractionsCache>
                </IncludeFacetNames>
                <!--
                <ExcludeFacetNames>
                  <Facet1>MyExcludeFacet</Facet1>
                  <Facet2>MyExcludeFacet2</Facet2>
                </ExcludeFacetNames>
                -->
              </Options>
            </MarketingAutomation.Loading.ContactFacetsConfigurator>
            <!-- Include or exclude interaction facets for the interactions during loading -->
            <MarketingAutomation.Loading.InteractionFacetsConfigurator>
              <Type>Sitecore.Xdb.MarketingAutomation.Loading.InteractionFacetsConfigurator, Sitecore.Xdb.MarketingAutomation</Type>
              <As>Sitecore.Xdb.MarketingAutomation.Core.Loading.IContactExpandOptionsConfigurator, Sitecore.Xdb.MarketingAutomation.Core</As>
              <LifeTime>Singleton</LifeTime>
              <Options>
                <IncludeFacetNames>
                  <UserAgentInfo>UserAgentInfo</UserAgentInfo>
                  <WebVisit>WebVisit</WebVisit>
                  <IpInfo>IpInfo</IpInfo>
                  <ProfileScores>ProfileScores</ProfileScores>
                </IncludeFacetNames>
                <!--
                <ExcludeFacetNames>
                  <Facet1>MyExcludeFacet</Facet1>
                  <Facet2>MyExcludeFacet2</Facet2>
                </ExcludeFacetNames>
                -->
              </Options>
            </MarketingAutomation.Loading.InteractionFacetsConfigurator>
          </Services>
        </Engine>
      </MarketingAutomation>
    </XConnect>
  </Sitecore>
</Settings>

Other Thoughts - Session Timeout

Your listener is only listening for 5 minutes. The click is processed via the Content Delivery server and is bound by the Session Timeout. If the default Session Timeout is 20 minutes, but your listener is only listening for 5 minutes, it's entirely possible that Marketing Automation engine is stopping the listener before the CD server is able to end the session and save the interactions to the collection service.

Try either increasing the listener to a value more than your session time out (say 2 hours) or decreasing your session timeout. In development, I generally set this to 1 minute.

|improve this answer|||||
  • Hah! - Thanks. I was uploading log files to SC support when this came in. Thanks. I'll do this & report back. RE: Session timeout - I'm doing the 5 minute listening so I can demo it to the client in real time. I'm using Chris Auer's xDB DTO module to clear session manually. – James Williamson Mar 18 '19 at 13:58
1

So, I found the reason my listener wasn't firing. It turns out, the listener Sitecore.EmailCampaign.Activities.ClickListener listens for a specific ClickPageEventId.

enter image description here

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.

enter image description here

I had no idea that any of the OOB goals were dependencies for system functionality. `

|improve this answer|||||

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.