Chameleon supports Single Page Applications (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. 

When installing the Chameleon snippet on your SPA, make sure chmln.identify is called when your app learns what user is on the page (likely because the user logs in or refreshes the page). 

If the content of your SPA changes but no page-refresh or log-in / log-out happens, then chmln.identify does NOT need to be called again.

The chmln namespace is found within the window scope, and can be accessed at window.chmln in scoped frameworks.

Accessing window.chmln from Angular (or Typescript)

declare var window: any;


const chmln = window['chmln'];

Did this answer your question?