Chameleon uses a chmln.identify() call to know who is on the page. Without it, no Experiences will load. This article explains how the call works, how to verify it is running correctly, and how to fix the most common issues.
What is User Identification?
User identification is the process of sending a unique ID for each logged-in user to Chameleon. This is essential for showing the right Experience to the right user. The unique ID can be the same as your database ID or another identifier, such as email.
π You can learn more about what it takes to install Chameleon.
The chmln.identify() method pulls user data from your app to identify your users. Without this method, Chameleon will not load into the page.
Here's what it looks like:
chmln.identify(USER.ID_IN_DB, { // Unique ID in your database
email: USER.EMAIL,
// Add other pertinent parameters here
});
Three rules to follow:
The user ID must be stable β it should not change when a user logs in again.
Call
chmln.identify()as soon as the user is known on the page, not before.Use the same ID across all your integrations (Segment, Amplitude, Salesforce, etc.) so data stays in sync.
Here's how to make sure your users are being properly identified:
Check in your Chameleon Dashboard, on the Installation page that a green banner is displayed indicating that data is being correctly received.
This does not prove that users are being identified correctly but does indicate that the user identification method is being called.
Double-check this per domain from the same Installation page's 'Verify installation' tab.
You can also test each domain to see whether Chameleon receives data correctly
β οΈ A domain showing "No user profiles identified in the last 48 hours" means either the snippet is not installed on that domain, no users have logged in, or the chmln.identify() call is not reaching Chameleon. Use the Test again button to re-run the check after any fix.
βΉοΈ If a domain does not appear in the list at all, try refreshing a page on that domain while logged in, then come back and check again.
If your installation has issues, the Chameleon Chrome Extension will notify you of any errors that need your attention π.
Open it while browsing your product
Any issues? The extension will let you know what needs attention - like the message below:
π‘ The message above indicates that you are on a domain or subdomain that doesn't have Chameleon installed, and you should check that in the 'Verify Installation' tab.
If all seems well, double-check that Chameleon recognizes you as the person currently logged in.
When you need to dig deeper:
Open your browser console (don't worry, it's not as technical as it sounds!)
Type
chmln.data.profileand press EnterYou'll see exactly what Chameleon knows about the current user
No data or an error message? That's our clue that identification isn't working
Use
chmln.data.profile.attributesandchmln.data.company.attributesin the console to diagnose whether custom properties or company-level attributes are set correctly.Execute
chmln.Snippet.debug()in the developer console for advanced debugging; this command helps highlight critical implementation issues.
Common issues (and how to fix them)
π¬ Not sure why your users aren't being identified? Ask Copilot β describe what you're seeing and Copilot can help you pinpoint the issue and find the right fix.
What happens: User data is sent to Chameleon when it is available on a web page/application. For some apps, this data is loaded after the page loads and is sent to Chameleon after a small delay.
The fix: Have your development team call chmln.identify() at just the right moment β when user data becomes available.
What happens: Data on a web page should be sent immediately after the page is loaded. This is most likely caused by an issue with how Chameleon has been installed.
The fix: We recommend involving your engineers to make sure that Chameleon is being loaded as soon as the page loads, including when it is reloaded.
What happens: When installing Chameleon, we ask developers to identify users by their unique IDs. Guest visitors without login credentials can slip through unnoticed.
The fix: Create a unique cookie-based ID for these visitors so Chameleon can still recognize them.
β Note that identifying anonymous users to Chameleon will have an impact on your MTU count, as each anonymous user is counted as an additional user.
What happens: User IDs are inconsistent across your tech stack or integrations.
The fix: Implement a single unified user ID across all integrations and applications.
π Have any questions or issues? Review the best way to get help.
Still stuck?
If you see a "User identification not detected" error in the Chrome Extension, read How to fix the 'User identification not detected' error.
If users are identified but Experiences are still not showing, read Why isn't my Experience showing?.
If you are using Twilio Segment or Freshpaint, ensure those tools are configured to identify users. Read their respective integration guides for details.
Contact Chameleon support with the output of
chmln.data.profileandchmln.Snippet.debug()from your browser console.





