Skip to main content

Chameleon

Chameleon is a product adoption platform that helps teams build in-app experiences—including product tours, tooltips, launchers, surveys (Microsurveys), and a HelpBar—to drive user onboarding, engagement, and feedback. Its REST API lets you manage these Experiences programmatically and retrieve user, company, segment, and analytics data for reporting and integration with your data stack.

Chameleon icon

Power end-to-end data operations for your Chameleon API with Nexla. Our bi-directional Chameleon connector is purpose-built for Chameleon, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Chameleon or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Chameleon workflows fast, secure, and fully governed.

Features

Type: API

SourceDestination

  • Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
  • Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
  • API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
  • Request optimization with intelligent batching, retry, and caching to minimize API calls and costs

Prerequisites

Before creating a Chameleon credential in Nexla, ensure that you have the following:

A Chameleon Account

You need an active Chameleon account with administrator or developer access to your organization's dashboard. The Chameleon REST API operates against the account associated with the secret token you generate, so the data accessible through Nexla is determined by the account that issues the token.

A Chameleon API Secret Token

Chameleon authenticates REST API requests using an account-specific secret token, which Nexla sends in the X-Account-Secret request header. This token is the server-side API Secret—it is distinct from the public Account Token that is embedded in your installation JavaScript snippet, and it should never be exposed in client-side code.

To generate your API Secret token:

  1. Sign in to your Chameleon Dashboard.

  2. Navigate to Settings > Tokens.

  3. Locate the API Secret (also referred to as your secret token), and generate a new token if one does not already exist.

  4. Copy the token value and store it securely.

    API Secret tokens are account-specific and can only be viewed or copied once at the time of generation. Save the token in a secure location immediately, as you will not be able to retrieve it again later.

Keep your API Secret confidential

Your API Secret grants full access to your Chameleon account data and Experiences. Treat it like a password—do not share it in publicly accessible locations such as client-side code, version control, or support tickets. If a token is exposed, regenerate it from the Settings > Tokens page.

For complete information about Chameleon API authentication, refer to the official Chameleon Authentication documentation.

Authenticate

Create a credential in Nexla

  1. After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.

  2. Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.

  3. Chameleon uses API key authentication. Enter your Chameleon API Secret token in the API Key field. Nexla includes this value in the X-Account-Secret header of each request to the Chameleon REST API at https://api.chameleon.io. This is the secret token generated from the Settings > Tokens page in your Chameleon Dashboard, obtained in Prerequisites, and should be kept secure.

    The value entered here corresponds to the API Secret token, not the public Account Token used in your in-app JavaScript snippet. Using the public Account Token will result in authentication failures.

  4. Click the Save button at the bottom of the overlay. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation.

Use as a data source

To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Chameleon connector tile, then select the credential that will be used to connect to the Chameleon instance, and click Next; or, create a new Chameleon credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Chameleon endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below. Click on an endpoint to see more information about it and how to configure your data source for this endpoint.

List Tours

This endpoint returns all Tours configured in your Chameleon account. Tours are multi-step in-app guided walkthroughs used for onboarding and feature adoption. Use this endpoint to inventory your Tours or to build reports on the Experiences you have published.

  • This endpoint requires no additional configuration. Select the template, and Nexla will retrieve all Tours accessible to the credentialed account.
  • Results are paginated automatically, so Nexla fetches all available pages until the full list of Tours has been ingested.

To retrieve the full configuration of a single Tour—including its steps and content—use the "Get Tour" endpoint with the corresponding Tour ID.

Get Tour

This endpoint retrieves the full configuration of a single Tour by ID, including its steps and content. Use this endpoint when you need the complete definition of a specific Tour rather than a summary list.

  • Enter the Tour identifier in the Tour Id field. You can obtain this ID from the "List Tours" endpoint, which returns each Tour along with its unique identifier.
  • This endpoint returns a single Tour object and is not paginated.

The Tour Id field is required. Configure the "List Tours" endpoint first to identify the IDs of the Tours you want to retrieve in detail.

List Surveys

This endpoint returns all Surveys (Microsurveys) configured in your Chameleon account. Surveys collect in-app feedback such as NPS, CSAT, and product feedback. Use this endpoint to inventory your Surveys or to pair Survey metadata with their collected responses.

  • This endpoint requires no additional configuration and automatically retrieves all Surveys for the credentialed account.
  • Results are paginated automatically.

To retrieve the individual answers submitted by users, use the "List Survey Responses" endpoint.

List Survey Responses

This endpoint returns all Survey responses collected in your Chameleon account. Use this endpoint to download Microsurvey response data periodically for analysis in your data warehouse or BI tools.

  • This endpoint requires no additional configuration and automatically retrieves all responses for the credentialed account.
  • Results are paginated automatically, making it suitable for ingesting large volumes of response data.

Pair this endpoint with "List Surveys" to associate each response with the Survey that produced it.

List Tour Interactions

This endpoint retrieves Tour interaction analytics—such as starts, completions, and step views—used to evaluate Experience performance. Use this endpoint to build engagement and adoption dashboards.

  • This endpoint requires no additional configuration and automatically retrieves interaction records for the credentialed account.
  • Results are paginated automatically.

Interaction data is most useful when joined with the "List Tours" endpoint to attribute each interaction to a named Experience.

List Segments

This endpoint returns all Segments defined in your Chameleon account. Segments are groups of users defined by filters and are used to target Experiences. Use this endpoint to audit your targeting rules or to sync segment definitions externally.

  • This endpoint requires no additional configuration and automatically retrieves all Segments for the credentialed account.
  • Results are paginated automatically.

List Companies

This endpoint returns a paginated list of all companies tracked in your Chameleon account. Use this endpoint to retrieve account-level (company) records for B2B reporting and segmentation analysis.

  • This endpoint requires no additional configuration and automatically retrieves all companies for the credentialed account.
  • Results are paginated automatically, allowing efficient ingestion of large company lists.

List User Profiles

This endpoint returns a paginated list of all user profiles tracked in your Chameleon account. Use this endpoint to export the users Chameleon knows about, along with their associated properties, for analysis or syncing to other systems.

  • This endpoint requires no additional configuration and automatically retrieves all user profiles for the credentialed account.
  • Results are paginated automatically.

To retrieve a single user by ID, use the "Get User Profile" endpoint.

Get User Profile

This endpoint retrieves a single user profile by its Chameleon profile ID. Use this endpoint when you need the full record for one specific user rather than a complete list.

  • Enter the user's Chameleon profile identifier in the Profile Id field. You can obtain this ID from the "List User Profiles" endpoint.
  • This endpoint returns a single profile object and is not paginated.

The Profile Id field is required. Use the "List User Profiles" endpoint first to identify the profile IDs you want to retrieve.

List Deliveries

This endpoint returns a paginated list of deliveries, with optional filtering by model or profile. A delivery represents an on-demand Tour or Survey sent to a specific user. Use this endpoint to audit which Experiences have been targeted to which users.

  • This endpoint requires no additional configuration and automatically retrieves deliveries for the credentialed account.
  • Results are paginated automatically.

List Data Imports

This endpoint returns all data imports—CSV-based or filter-based—submitted to your Chameleon account. Use this endpoint to monitor the status and history of bulk data operations such as profile updates, tagging, and deletions.

  • This endpoint requires no additional configuration and automatically retrieves all imports for the credentialed account.
  • Results are paginated automatically.

List Data Properties

This endpoint returns a paginated list of data properties—both custom and integration-derived—defined in your Chameleon account. Properties are the attributes available on user and company profiles and can be referenced in Segment filters and Experience targeting.

  • This endpoint requires no additional configuration and automatically retrieves all properties for the credentialed account.
  • Results are paginated automatically.

List Event Names

This endpoint returns a paginated list of event names tracked in your Chameleon account. Event names represent the user actions Chameleon records and can be used to trigger or target Experiences.

  • This endpoint requires no additional configuration and automatically retrieves all event names for the credentialed account.
  • Results are paginated automatically.

List Tooltips

This endpoint returns all Tooltips configured in your Chameleon account. Tooltips are contextual in-app hints attached to specific UI elements. Use this endpoint to inventory your Tooltip Experiences.

  • This endpoint requires no additional configuration and automatically retrieves all Tooltips for the credentialed account.
  • Results are paginated automatically.

List Launchers

This endpoint returns all Launchers configured in your Chameleon account. Launchers are persistent in-app widgets (such as checklists or menus) that let users discover and re-open Experiences. Use this endpoint to inventory your Launcher Experiences.

  • This endpoint requires no additional configuration and automatically retrieves all Launchers for the credentialed account.
  • Results are paginated automatically.

List Helpbars

This endpoint returns all HelpBars configured in your Chameleon account. The HelpBar is an in-app search and help widget that surfaces content to users. Use this endpoint to inventory your HelpBar Experiences.

  • This endpoint requires no additional configuration and automatically retrieves all HelpBars for the credentialed account.
  • Results are paginated automatically.

List Themes

This endpoint returns a paginated list of visual themes used to style your Experiences. Themes control the look and feel—colors, fonts, and styling—applied to Tours, Surveys, and other Experiences. Use this endpoint to audit the styling configurations in your account.

  • This endpoint requires no additional configuration and automatically retrieves all Themes for the credentialed account.
  • Results are paginated automatically.

List URLs

This endpoint returns all URLs configured in your Chameleon account. URLs define where in your application Experiences are displayed. Use this endpoint to review the URL targeting rules in use.

  • This endpoint requires no additional configuration and automatically retrieves all URLs for the credentialed account.
  • Results are paginated automatically.

List URL Groups

This endpoint returns all URL groups configured in your Chameleon account. URL groups bundle multiple URLs together for reuse in Experience targeting. Use this endpoint to review reusable URL targeting collections.

  • This endpoint requires no additional configuration and automatically retrieves all URL groups for the credentialed account.
  • Results are paginated automatically.

List Changes

This endpoint returns all changes and edits made in your Chameleon account. Use this endpoint to build an audit trail of configuration changes across your Experiences.

  • This endpoint requires no additional configuration and automatically retrieves all change records for the credentialed account.
  • Results are paginated automatically.

List Alert Groups

This endpoint returns all alert groups configured in your Chameleon account. Use this endpoint to inventory the alert configurations associated with your Experiences.

  • This endpoint requires no additional configuration and automatically retrieves all alert groups for the credentialed account.
  • Results are paginated automatically.

List Webhooks

This endpoint returns a paginated list of registered webhook subscriptions in your Chameleon account. Webhooks forward Chameleon-tracked events in real time to external systems. Use this endpoint to audit which webhook subscriptions are currently active.

  • This endpoint requires no additional configuration and automatically retrieves all webhook subscriptions for the credentialed account.
  • Results are paginated automatically.

Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.

Manual configuration

Chameleon data sources can also be manually configured to ingest data from any valid Chameleon API endpoint, including endpoints not covered by the pre-built templates, chained API calls, or custom request parameters. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.

Chameleon endpoints are served from the base URL https://api.chameleon.io—for example, https://api.chameleon.io/v3/edit/tours to list Tours or https://api.chameleon.io/v3/analyze/profiles to list user profiles. Date/time macros are particularly useful for Chameleon analytics endpoints that accept date ranges or time-based filters, such as those used to retrieve responses or interactions for a specific window.

Chameleon list endpoints wrap results in a named array—for example, Tours are returned under a tours array and profiles under a profiles array, so the path to data would be entered as $.tours[*] or $.profiles[*] respectively. Chameleon list endpoints also return paging information under a cursor object, which can be preserved as metadata alongside each record. The X-Account-Secret authentication header is added automatically by Nexla based on your Chameleon credential configuration and does not need to be added as a request header.

Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new Chameleon data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.

Use as a destination

Click the + icon on the Nexset that will be sent to the Chameleon destination, and select the Send to Destination option from the menu. Select the Chameleon connector from the list of available destination connectors, then select the credential that will be used to connect to the Chameleon organization, and click Next; or, create a new Chameleon credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Chameleon endpoints. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.

Trigger Delivery

This endpoint triggers a Tour or Survey delivery to a specific user on demand. Use it to programmatically show an Experience to a targeted user based on data flowing through Nexla.

  • This endpoint sends a POST request to the deliveries API. Each record in the Nexset should include the fields required by Chameleon to identify the Experience and the recipient:

    • model_kind: The type of Experience to deliver, either tour or survey.
    • model_id: The identifier of the specific Tour or Survey to deliver.
    • Recipient identifier: One of uid, profile_id, or email to specify the user who should receive the Experience.
  • Map your Nexset attributes to these fields so that each record produces a valid delivery request.

Once a delivery has been triggered, it cannot be modified. To adjust a pending (not yet triggered) delivery, use the "Update Delivery" endpoint.

Update Tour

This endpoint updates a Tour, including publishing or unpublishing it, adjusting URL group targeting, and updating tags. Use it to manage Tour lifecycle and targeting programmatically.

  • Enter the identifier of the Tour to update in the Tour Id field. You can obtain this ID from the "List Tours" data source endpoint.
  • This endpoint sends a PATCH request. Map the fields you want to change into each record, such as:

    • published_at: Set to an ISO 8601 timestamp to publish the Tour, or to null to unpublish it.
    • URL group targeting and tags: Include the relevant attributes to adjust where the Tour appears and how it is labeled.

The Tour Id field is required. Only the attributes included in each record will be updated; omitted attributes retain their existing values.

Update Delivery

This endpoint updates a pending delivery by ID. Use it to modify a delivery that has been scheduled but not yet triggered.

  • Enter the identifier of the pending delivery in the Delivery Id field. You can obtain this ID from the "List Deliveries" data source endpoint.
  • This endpoint sends a PATCH request. Map the delivery attributes you want to change into each record.

Once a delivery has been triggered, it can no longer be updated. This endpoint applies only to pending deliveries.

Create Data Import

This endpoint bulk-ingests, tags, or deletes user and company data via CSV or filter expressions. Use it to perform large-scale data operations on Chameleon profiles and companies.

  • This endpoint sends a POST request. Each record should specify the operation to perform:

    • kind: The import operation, one of update_csv, delete_csv, tag_csv, tag_filters, or delete_filters.
    • model_kind: The target record type, either profile or company.
  • Map the remaining import payload attributes—such as the CSV reference or filter expression—into each record according to the selected operation.

Use the "List Data Imports" data source endpoint to monitor the status and history of imports submitted through this destination.

Delete User Profile (GDPR)

This endpoint permanently deletes a user profile and all associated Experience records, events, and metrics, supporting GDPR and CCPA compliance ("forget") requests.

  • Enter the Chameleon profile identifier to delete in the Profile Id field. You can obtain this ID from the "List User Profiles" data source endpoint.
  • This endpoint sends a DELETE request and does not require a request body.

This operation is irreversible. Deleted profiles and all of their associated data cannot be recovered, so confirm the profile identifier before activating this destination.

Create HelpBar Search Item

This endpoint creates or upserts a HelpBar search item so that custom content appears in the in-app HelpBar. Use it to surface help articles, links, or actions to users through HelpBar search.

  • This endpoint sends a POST request. Map the search item attributes—such as its title, content, and any associated action—into each record.
  • Because this endpoint upserts, sending a record for an existing search item updates it rather than creating a duplicate.

Update HelpBar Search Item

This endpoint updates an existing HelpBar search item by ID. Use it to modify the content or configuration of a specific search item already present in your HelpBar.

  • Enter the identifier of the HelpBar search item to update in the Search Item Id field.
  • This endpoint sends a PATCH request. Map the attributes you want to change into each record.

The Search Item Id field is required. Only the attributes included in each record are updated.

Create Data Property

This endpoint creates a new custom data property for use on user or company profiles. Properties define the attributes you can store, segment on, and reference in Experience targeting.

  • This endpoint sends a POST request. Map the property definition attributes—such as the property name and type—into each record.

Use the "List Data Properties" data source endpoint to review existing properties before creating new ones, to avoid duplicate definitions.

Create Webhook

This endpoint registers an outbound webhook for real-time event notifications. Use it to subscribe an external endpoint to Chameleon events as they occur.

  • This endpoint sends a POST request. Each record must include the webhook subscription details:

    • url: The destination URL that will receive event notifications.
    • topics: The list of events to subscribe to, such as tour.completed or response.finished.

Use the "List Webhooks" data source endpoint to confirm that your webhook subscriptions were registered successfully.

Manual configuration

Chameleon destinations can also be manually configured to send data to any valid Chameleon API endpoint. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.

Chameleon write operations commonly use POST to create resources (such as deliveries, imports, or webhooks), PATCH to update existing resources (such as Tours or deliveries), and DELETE to remove resources (such as a user profile for GDPR compliance). Chameleon's REST API accepts JSON request bodies, so JSON is the appropriate format for most operations. Chameleon endpoints are served from the base URL https://api.chameleon.io—for example, https://api.chameleon.io/v3/edit/deliveries to trigger a delivery. For update/upsert operations, include the ID of the object to be updated at the end of the URL.

Nexla can also automatically send the response received from the Chameleon API after each call to a new Nexla webhook data source, letting you track the status of each API call. The X-Account-Secret authentication header is added automatically by Nexla based on your Chameleon credential configuration and does not need to be added as a request header.

Save & activate

Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To send the data to the configured Chameleon endpoint, open the destination resource menu, and select Activate.

The Nexset data will not be sent to Chameleon until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.