Skip to main content
Using Recurrence to define frequency

Learn how to set when and how often a Tour or a Microsurvey should repeat.

Tiago Mota avatar
Written by Tiago Mota
Updated over 2 months ago

One of the most important best practices for showing in-product Experiences is making sure these are contextual and non-intrusive. There are multiple ways to control how your Experiences show up.

And with Recurrence, you can also set whether your Tour or Microsurvey should repeat and how often. Depending on its purpose, you have multiple options to cover different use cases.


Availability & Usage

πŸ” Available for all plans

πŸ“ Ready to power your Tours, Embeddables, Microsurveys


πŸ“Ί Watch the video below for a quick overview of Recurrence and how to use it in Chameleon.


Recurrence refers to whether a Tour (Announcement), an Embeddable, or a Microsurvey should repeat and how often it will do so after it has been exited or completed by users. This is an important component to ensure your Experiences are not disruptive and will display to the users that are most prone to engage with them.

β„Ή If the Experience is snoozed, it is not marked as exited or completed in Chameleon. This means your users will still be in that Experience and submit to the applied snooze rule.

For example, you have a Microsurvey set to show immediately and have a 'remind me later' button, which snoozes it for two days. After clicking the 'remind me later' button, it will only show again after two days, regardless of the Recurrence option set.


You'll configure the Recurrence when building your Experience in the Dashboard, where you can pick between several options:

  • Don't repeat after it is exited or completed

  • Repeat on the next page load

  • Repeat immediately after exited or completed

  • Repeat after an event occurred

  • Repeat on a time-based recurrence: each week, month, quarter, half-year, year

β„Ή If you set up your Recurrence to every "month", Chameleon will do its best to use the same time frame each month, but this may differ. For example, if someone completes your Tour on February 5th, they will see it again on March 5th. However, if they complete it on February 28th, they will see it again on March 31st, since that's the "end of the month".

πŸ‘‰ If you want to have a Tour show only once when setting the Tour NOT to repeat after exited or completed, make sure that the Tour has a clear way to be completed and that any dismiss options are exiting the Tour and not snoozing it.

Leverage the data you're sending to Chameleon to show the right Experience at the right time after a user has performed an action in your product. Any event that you sync to Chameleon can be used to trigger the Recurrence of a Tour or a Microsurvey.

β„Ή In cases where you set an event-based Recurrence to an Experience and you update that event to a different one down the road, the Experience will show immediately to users for which the 2nd event occurred more times than the 1st.

You'll get notified in the Dashboard of any event overlaps before publishing your new version to your users.

This option is useful to connect to users after they performed specific actions, successfully (or not), and connect to them to further guide or ensure they get unblocked. Here are a few ways you can leverage this:

  • when they invite new teammates

  • if they submit support tickets

  • when they run into errors or limits

  • after they completed a task with success


"To repeat or not to repeat, that is the question", a great mind once could've said. Nonetheless, this is an important aspect that should go into the planning of your guidance.

Each Recurrence setting is unique and you should time it with the action required from the user, to achieve the right outcome.

Repeating a Tour or a Microsurvey is useful if you want it to show it again to the same user. For this, you can use either:

  • Repeat on the next page load

    Effective when the first Step does not have a trigger action (such as a user click), since you may not want it to re-appear immediately after it ends.

  • Repeat immediately after exited or completed

    Useful when the first Step has a trigger action such that the trigger action (or label/icon) is available again for the user to act upon. This is particularly effective for self-serve use cases, such as:

    • Help icon for a certain feature;

    • Feature or page walkthroughs.

  • Repeat on a time-based Recurrence

    Great to use when you have regular processes for acquiring feedback and you want to ensure your users' input is always in your loop.

β„Ή An Experience with any of these Recurrence options will repeat as long as they continue to meet all the necessary conditions for it to show (such as Target Audience, URL Rules, Element Rules, triggers, etc.). In cases when the user falls out of the Target Audience, it will not show again for this user, even if it is set to repeat.

Showing an Experience once is great for one-time messages, or collecting precise feedback. For example, when you have:

  • An onboarding Tour with a welcome walkthrough

  • A one-off feature launch

  • Downtime or outage update

Or when you want to:

  • find out how a new feature is performing

  • learn more about new users and their needs

πŸ‘‰ If you select Not repeat after exited or completed, then the Experience will show until a user either:

Once an Experience that is set to not repeat is either exited or completed, it will not show again to that same user.

πŸ’‘ You can also repeat an Experience to test it: you can set a testing Segment that includes just you (or your teammates) and then experience the Tour as an end-user.


Dismiss options take precedence over the set Recurrence setting. When your users snooze an Experience, they haven't completed or exited it, so they will still be eligible to see it.

πŸ“ Let's say a Tour is set to show on each page load but has a 'remind me later' button, which snoozes it for two days. After clicking the 'remind me later' button, the Tour will only show again after two days, regardless of whether it is set to show on each page load.

Did this answer your question?