Chameleon makes it easy to create, deploy and manage in-product user guidance. We are built for browser-based web applications, and rely on JavaScript to show the guidance. 

Each product is architected uniquely and are goal is to support all common technologies, but please refer to the items below to help ensure a successful implementation. For further questions, please email our technical support team.


Chameleon supports all modern browsers, including Google Chrome, Mozilla Firefox, Apple Safari, Microsoft Internet Explorer (v11.0 and up) and Microsoft Edge, for showing users product tours. 

For building product tours, we recommend using Chrome. 

If you have users on old IE versions, you can select to not show them tours, by using our audience targeting / user segmentation functionality

If you believe that Chameleon is not rendering correctly or accurately on any browser, please send a screenshot to and we'll try to resolve asap.

Mobile web and mobile apps

Chameleon DOES support mobile web; Chameleon experiences are built to be responsive and will adjust as elements on your page move based on browser size. 

At this stage, Chameleon does NOT support native mobile applications. 

Learn more about how to enable Chameleon for mobile web here.

Single-page apps (SPAs) and front-end frameworks

Chameleon DOES support SPAs and all common front-end frameworks (e.g. React, Angular, Ember, etc.) using our URL and element matching conditions. 

Chameleon requires an initial page load to identify users, but then polls regularly to check whether a tour should show based on changing criteria (page URL or user activity). There is no separate implementation work required for single-page applications. 

Chameleon supports common front-end frameworks out-of-the-box and does not require any special engineering work. Simply implement our JavaScript code snippet or integrate via Learn more about these options here.

Multiple products and environments

Chameleon DOES work if you want to use for different products (with different domains) or different environments. 

You simply install Chameleon in the same manner (using your same unique code snippet) across all these products and environments. You can then specify which step should show on which product / environment by configuring the URL within the "Trigger" section for that step. 

Any account-level styling and configurations for your Chameleon account will apply across all these domains. This includes the admins on your account being able to access tours. For billing, we will use the total uniquely identified users across all domains to calculate your total MAU count.

Dynamic URLs and multiple subdomains

Chameleon DOES support dynamic URLs (where parts of the URL change based on the specific user) and multiple subdomains (e.g. for your different customers) for your application.

You can use wildcard or regex matching to configure any step to a specific URL. You can also substitute any part of the URL with the specific user data, by using variables. This is akin to using merge tags to replace a part of a string with the specific content for that user. Learn more about how to use these here

You can use a similar approach to handle personalized subdomains. If you change your subdomains by customer name, then we encourage you to send this part of the URL as a company attribute. Learn more about this here.  


Chameleon DOES support the use of iframes within your application, and you will be able to build tours across iframes. 

To ensure this works smoothly, please ensure that the Chameleon code snippet is implemented separately within each iframe component. Also ensure iframes load content from the same subdomain as the top-level page, or the iframe element does not use the 'sandbox' attribute.

Anonymous users

Chameleon PARTLY supports anonymous (unidentified) users, but does NOT support aliasing (yet).

This is relevant when showing tours to users who are not logged in to your product, and therefore not identified. To enable this to work, you must identify that user using any UID (Chameleon does not show tours to any users without a UID) although this does not need to correlate with any actual IDs from your database or records. 

We do anticipate supporting automatic identification and aliasing of anonymous users soon, so email or message us if this is important to you!

Strict security standards

Chameleon takes security very seriously and we seek to continually improve our systems with the most cutting-edge techniques to guard against any attacks or unauthorized access. We use best-in-class cloud services (such as AWS, Heroku, Compose) and serve over HTTPS using 256 bit SSL encryption. You can read more about our practices here.

Chameleon does not collect any personally identifiable data by default (we track user agent, IP address and URLs). We store any data you send to us (including from events that you define within Chameleon) but are NOT currently HIPAA certified. 

If your application contains a "Content Security Policy" (CSP) (to limit which third-party code may be executed on the pages of your application) then you must whitelist our domains to enable Chameleon to function. Read more about how to do this here.

Multilingual support

Chameleon supports multiple languages in two ways:

  1.  By manually duplicating tours for different languages and targeting them based on user property (e.g. browser language)
  2. Using liquid logic to pipe in variable content for each user and displaying that in the same tour

Learn more about how to work with different languages here

Did this answer your question?