---
"@context": https://schema.org
"@type": TechArticle
"@id": https://www.twilio.com/docs/segment/connections/destinations/catalog/chameleon#article
headline: Chameleon Destination
description: Connect the Segment Chameleon destination to send user and event data to Chameleon for targeting in-app product tours and tracking conversions.
url: https://www.twilio.com/docs/segment/connections/destinations/catalog/chameleon
inLanguage: en
dateModified: 2026-07-15T17:40:17.000Z
author:
  "@type": Organization
  name: Twilio Developer Education Team
publisher:
  "@type": Organization
  name: Twilio
---

# Chameleon Destination

## Destination Info

* Accepts [Alias](/docs/segment/connections/spec/alias), [Group](/docs/segment/connections/spec/group), [Identify](/docs/segment/connections/spec/identify), [Track](/docs/segment/connections/spec/track) calls.
* Refer to it as **Chameleon** in the [Integrations object.](/docs/segment/guides/filtering-data/#filtering-with-the-integrations-object)

### Components

* [Browser](https://github.com/segment-integrations/analytics.js-integration-chameleon)

## Connection Modes

[Learn more about connection modes.](/docs/segment/connections/destinations/#connection-modes)

### Device-Mode

* web: yes
* mobile: no
* server: no

### Cloud-Mode

* web: no
* mobile: no
* server: no

The Chameleon destination code is open-source on GitHub. You can [view the Chameleon integration source](https://github.com/segment-integrations/analytics.js-integration-chameleon).

## Getting started

When you enable the Segment direct destination on the [Chameleon dashboard](https://app.trychameleon.com/settings/integrations), Chameleon immediately starts receiving your app's user and event data collected by Segment.

You may need to enable your website domain on the [Chameleon Domains Dashboard](https://app.trychameleon.com/settings/domains) to see User events and properties on Chameleon.

## Identify

Identify calls let you target product tours to specific segments of users. Read more about how segmentation works in [Chameleon's docs](https://help.trychameleon.com/en/articles/1500422-how-to-create-a-target-audience).

At a minimum, send the following traits:

* `email`
* `name`

Send properties that you would like to use to segment users into a handful of groups. Examples of properties you might use to segment users include:

* `account role` (admin vs user)
* `account value` (paid vs free)
* `account status` (converted vs retained)

Examples of other specific properties you might send include:

* `credit` (# of dollars in account)
* `respoitory_count` (# of authorized items)
* `support_requests_count` (# of touchpoints generated)
* `chats_count` (# of times user reached out for help)

The more Chameleon knows about your user, the more effectively you can target them. For example, you could show different tutorials to the account admin and other team members.

## Track

Send your app's events to Chameleon for two main reasons:

1. Signal a `conversion` from a product tour (a user successfully completing the action that they were prompted to take with the tour).
2. Trigger a specific product tour.

Product tours should lead to user actions, so each Chameleon product tour offers the option of tagging a 'conversion event' that helps you track how successful your tour is. Chameleon collects data about each tour (users starting, completing, and conversions) and sends it back to your preferred analytics provider. Read more about the [analytics Chameleon tracks](https://help.trychameleon.com/en/articles/1226450-what-analytics-does-chameleon-provide).

## Help

For more information, refer to [Chameleon's docs](https://help.trychameleon.com/) or [email them](mailto:support@trychameleon.com).

## Engage

You can send computed traits and audiences generated using [Engage](/docs/segment/engage) to this destination as a **user property**. To learn more about Engage, schedule a [demo](https://segment.com/contact/demo).

For user-property destinations, an [identify](/docs/segment/connections/spec/identify/) call is sent to the destination for each user being added and removed. The property name is the snake\_cased version of the audience name, with a true/false value to indicate membership. For example, when a user first completes an order in the last 30 days, Engage sends an Identify call with the property `order_completed_last_30days: true`. When the user no longer satisfies this condition (for example, it's been more than 30 days since their last order), Engage sets that value to `false`.

When you first create an audience, Engage sends an Identify call for every user in that audience. Later audience syncs only send updates for users whose membership has changed since the last sync.

## Settings

Segment lets you change these destination settings from the Segment app without having to touch any code.

| Field   | Description | Required | Type   |
| ------- | ----------- | -------- | ------ |
| API Key |             | Yes      | string |
| fastUrl | fastUrl     | No       | string |
