Skip to main content

How to identify your users in Chameleon

Understand how to identify your users and fix the most common issues.

Written by Pulkit Agrawal
Updated today

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:

  1. The user ID must be stable β€” it should not change when a user logs in again.

  2. Call chmln.identify() as soon as the user is known on the page, not before.

  3. 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:

  1. Open your browser console (don't worry, it's not as technical as it sounds!)

  2. Type chmln.data.profile and press Enter

  3. You'll see exactly what Chameleon knows about the current user

  4. No data or an error message? That's our clue that identification isn't working

  5. Use chmln.data.profile.attributes and chmln.data.company.attributes in the console to diagnose whether custom properties or company-level attributes are set correctly.

  6. 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.profile and chmln.Snippet.debug() from your browser console.

Did this answer your question?