Here is what I did:

  1. I set Component A to show after Goal A was triggered during a past or current interaction'. Then I triggered Goal A and I was successfully identified as a contact by adding an email query string [email protected] to the web address. I could see the personalized component A as expected.

  2. After session timeout I visit the site again with the same query string expecting to see personalized component A (because its personalization rule is supposed to fire on more than just the current session, but also return sessions), but I do not. I do see some useful diagnostic info:

    a) The same Contact ID and Contact email info as the previous session were detected, which confirm that the visitor is identified correctly.

    b) Goal A's ID shows up as a past session triggered goal, which confirms the user behavior was correctly saved after session ends.

  3. However, after I refresh the page, I do see personalization component A show up (without triggering Goal A in the current session). I think the correct behavior here is to show personalized component A in the return session without I having to hit refresh.

Here is goal A:

where the Page X has been visited during the current visit

Here are two similar rules I have tried:

  1. where the Goal A was triggered during a past or current interaction and when the number of elapsed days is not equal to 999999999 and when the past number of interactions is not equal to 999999999

  2. where the Goal A was triggered during a past or current interaction and when the number of elapsed days is greater than or equal to 0 and when the past number of interactions is greater than or equal to 0

Any one knows why this is happening? Thanks!

  • Can you provide version level of sitecore? Commented Jan 3, 2018 at 19:41
  • Tested on 8.2 (rev. 161221) as well as 9.0. They have the same behavior. Thanks! @PeteNavarra Commented Jan 3, 2018 at 20:25
  • 1
    If I recall correctly (present memory is more geared toward SXP9), there are other options in the Personalization box. And that the option you're selecting has one for number of elapsed days. Is this set to zero? Secondly, can you provide some code around how you are triggering the goal/page event? EDIT: Just read that you tried that rule. Basically, what I am getting at, is that I have successfully used this exact personalization option on goals in Sitecore 9 without any issue. But I had issues with it, when I realized I wasn't saving the goal correctly to xConnect. Commented Jan 3, 2018 at 20:45
  • I could see the goal was successfully triggered in Step #1 described above though.. So when i come to Step #2 the rule condition should become true as the goal was indeed triggered in a past interaction; but it looks like the rule condition only becomes true after I hit refresh. Commented Jan 3, 2018 at 20:57
  • Are you using incognito for step 2? And out of curiousity why a query param? Commented Jan 3, 2018 at 21:33

1 Answer 1


After spending some time with the question asker, we determined the root issue.

The root problem statement was that Personalization wasn't occuring unless the user in the above example refreshed their browser.

The reason behind this is that the IdentifyAs() method was being called in a component that isn't executed until Sitecore has already determined what components to display. So to see a new component based on a page trigger, the page has to be refreshed. So the "anonymous" contact will always see the component without personalization because the contact hasn't been identified.

Instead, I told her to consider identifying the contact earlier, or just live with the fact that a page refresh will have to occur.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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