With Chameleon's Heap integration, you can better analyze and target Chameleon Experiences. You can learn more about Heap by visiting our integration page.

The Heap integration includes two components:

  • Data Destination: send Chameleon data to Heap (for analyzing Experiences).

  • Data Source: get Heap data into Chameleon using Heap events or webhooks (for targeting Experiences).

Quick access

Heap as a data destination

With this aspect of the integration, you will see Chameleon Events under the Chameleon Source within Heap. The data that's sent includes (but is not restricted to) the following events:

  • Chameleon Started Tour / Microsurvey

  • Chameleon Completed Tour / Microsurvey

  • Chameleon Step Seen

  • ...

Chameleon events are first-class events within Heap in the Chameleon Source:

For full details of all Chameleon data sent to Heap, use our schema Google Sheet:

Setting up

The Heap integration can be enabled with a single click. Simply visit the Heap integrations page in the Chameleon Dashboard and toggle on "Send Chameleon Data to Heap":

This will automatically begin sending data to your Heap account. This works by using the existing Heap code on your website, and so data will only be sent on pages where the Heap script is present and working.

You will then see events flow into your Heap account; and you can check this in the Live View, as below:

Event properties sent as part of these events include the Experience name, URL, and others (e.g. Step number) where relevant.

Defining Chameleon events within Heap

⚠️ LOOK OUT: For integrations connected prior to July 2021 you will need to first "Define" these within Heap to see these events in your reports and to leverage them in any analysis. For integrations connected after July 2021, these events will automatically be defined by Heap. 👌

To define events within Heap, you will need to click on the event, and then click Define Event:

Alternatively, you can visit the "Definitions" section of your Heap dashboard, and then define the event.

Then, you will have to name the event, which can be the same as the default Chameleon name, or as per your own analytics taxonomy. You may also wish to create a separate category for all the events sent by Chameleon.

Once the event is defined, you will have access to it everywhere in your Heap dashboard.

Example use cases

You can use these events to define funnels and see this reporting within Heap:

You can also set up custom names for key events by editing the Event Criteria, and leveraging these custom (virtual) events in your analysis. 

This can help you monitor and improve your Experience performance. 

Heap as a data source

There are three ways to get data from Heap into Chameleon and target Chameleon Experiences:

Heap Segments

You can now use “Heap Segments” as a data source to target different groups of users in Chameleon with Tours relevant to them. Here’s how to set it up:

1. Create a cohort of users in Heap based on their past behaviors or current rights. Inside Heap, go to the "Definitions" page and click "New Definition -> New Property".

Then, select how the data should be synched with Chameleon (just once, daily, or custom)

Finally, when selecting what Heap User ID will link to Chameleon User ID, pick "Identity" and confirm.

2. Go to integrations in your Chameleon dashboard and click “Configure” on the Heap Integration.

3. Click “Connect” to sync Heap Segments

4. Go to Segments in the Chameleon Dashboard, add a new filter and click “Heap Segments”.

5. Choose which Segment you want to target by selecting one of the two options: 'is a member of' or 'is not a member of' and pick the relevant Heap Segment.

6. Save it as a new Segment in Chameleon and give it a name so you'll know what you're working with.

7. Target the Segment in Chameleon with Experiences that are relevant to those users.

Heap events

You can also forward tracked events in Heap to Chameleon. To do this, create a “snapshot” on any defined event in Heap and use that snapshot to trigger a “track event” action in Chameleon.

  1. Define an event in Heap and add a new snapshot property on the event from the events view.

  2. Set the property value to chmln.track("event name"); where event name can be replaced with any event name you want to show up in Chameleon for this event.

  3. Test performing that event on your site and see if the event appears within Chameleon. You can view all your events within Chameleon in your dashboard here.

Note: Events shown on the Data Management page within Chameleon are updated every 15 minutes.

Heap webhooks

Using Heap's Webhooks feature enables you to get data out of Heap in real-time. If you have access to this feature, you will find it under the Integrations list in Heap.

To configure this feature, and have Heap and Chameleon communicate through webhooks, you'll need to make use of Chameleon's Incoming Webhooks, which you can find on your Chameleon Dashboard's Integrations page.

👉 Learn more about Chameleon's Webhooks

Here, you'll find three different endpoints, user properties, company properties, and user events -- each containing a unique URL.

The setup process for events and user properties is very similar, differing only in the Data to Send section. Let's give it a quick overview:

  • Under Basic Configuration, add the endpoint URL that corresponds to the data you're sending to Chameleon.

  • No specific Headers are required. Authentication is built into the Endpoint URL (which contains your unique Chameleon token).

  • For sending user (or company) properties, under Data to Send, add the following properties:

    • Key: uid, type: property, value: Identity *

    • Any other fields you want to send to Chameleon.

  • For sending user events, under Data to Send, add the following properties:

    • Key: uid, type: property, value: Identity *

    • Key: name, type: constant, value: event name (replace 'event name' with the actual event name) **

    • Key: at, type: constant, value: $now ***

  • Under Triggering Events, choose the Heap event that will trigger this webhook to run.


* You will need to make sure you are sending the same uid to both Heap and Chameleon as part of your installation.

** You will find the event in Chameleon named according to what you define here.

*** This will be the time for your event. you can also specify this differently as per your system of keeping time or the time you want to set the event to have occurred.

With this functionality, you can now send events from Heap to Chameleon to help define your target audience for a Chameleon Experience.

More integrations

Did this answer your question?