Skip to content

Product Development

Chameleon
API integration

Ship Product Development features without building the integration. Full Chameleon API access via Proxy and 90+ MCP-ready tools for AI agents — extend models and mappings to fit your product.

Talk to us
Chameleon

Use Cases

Why integrate with Chameleon

Common scenarios for SaaS companies building Chameleon integrations for their customers.

01

Sync CRM data to power in-app targeting

Let your users push account, user, and health-score data from your platform into Chameleon so their product teams can segment tours, surveys, and launchers by firmographics or lifecycle stage without manual CSV imports.

02

Stream product events to trigger contextual guidance

Forward behavioral events from your SaaS into Chameleon so PMs can trigger tooltips, tours, or microsurveys the moment a user hits a specific action, limit, or milestone.

03

Pipe Chameleon feedback into your analytics or CRM

Capture tour completions, survey responses, and launcher interactions via webhooks so your customers can measure adoption ROI inside the tools they already use for reporting, CS workflows, or lifecycle automation.

04

Federate knowledge base content into HelpBar

If you're a docs, helpdesk, or content platform, push articles into Chameleon's HelpBar search index so your users' end-customers can find your content natively via CMD+K inside their own product.

05

Automate in-app interventions from external triggers

Allow CS platforms, workflow builders, or lifecycle tools to programmatically schedule a specific Chameleon tour or survey for an individual user when an external condition is met — such as a dropping health score or renewal risk.

What You Can Build

Ship these features with Truto + Chameleon

Concrete product features your team can ship faster by leveraging Truto’s Chameleon integration instead of building from scratch.

01

User & company identity sync

Continuously upsert user profiles and company records with standard and custom properties into Chameleon using the profile and company ingest endpoints, individually or in bulk.

02

Custom event streaming pipeline

Push product usage events into Chameleon in real-time or batched, enabling event-triggered tours, tooltips, and surveys based on behavior in your SaaS.

03

HelpBar content indexer

Bulk upsert, update, and delete search items in Chameleon's HelpBar so external articles, docs, or records appear in the in-app spotlight search.

04

Programmatic delivery scheduler

Create, update, and cancel Chameleon deliveries to force-trigger a specific tour or microsurvey for a target user profile within a defined time window.

05

Webhook-driven interaction listener

Subscribe to Chameleon webhook events to capture tour, survey, launcher, and tooltip interactions and route them to downstream systems without polling.

06

Survey response exporter

Pull raw survey responses — including NPS, ratings, and open-text answers — from Chameleon to centralize feedback in a VoC, analytics, or data warehouse workflow.

SuperAI

Chameleon AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

chameleon_account_verify

Verify your Chameleon Account Secret token to confirm it is valid and API access is working. Returns the account object including its id.

list_all_chameleon_profiles

List user profiles (your product's end-users identified to Chameleon), newest first, with cursor pagination and optional company expansion. Returns profile records with id, uid, email, company_id, created_at, updated_at, last_seen_at, browser fields, percent, delivery_ids and any custom properties. Optional: limit, before, after, expand.

chameleon_profiles_search

Search user profiles with Segmentation filter expressions: match on any property you have sent (role, plan, last_seen_at ...), on experience interactions (completed or exited a tour, answered a microsurvey with a given score) or on events, combined with and/or and nested groups. Returns matching profile records with id, uid, email, company_id, created_at, updated_at, last_seen_at, browser fields, percent, delivery_ids and any custom properties. Required: filters.

chameleon_profiles_count

Count the user profiles matching a set of Segmentation filter expressions (same filters as profiles.search), without returning the profiles. Returns: count. Optional: filters, filters_op.

chameleon_profiles_get_id

Get a single user profile by its Chameleon ID. Returns the profile with id, uid, email, company_id, created_at, updated_at, last_seen_at, browser fields, percent, delivery_ids and any custom properties. Required: profile_id.

chameleon_profiles_get_number

Look up a single user profile by your own identifier: uid (your user id) or email. Pass exactly one of them. Returns the profile with id, uid, email, company_id, created_at, updated_at, last_seen_at, browser fields, percent, delivery_ids and any custom properties. Required: one of uid or email (or id).

chameleon_profiles_delete_id

Clear (reset) a user profile: resets browser and activity properties, removes microsurvey responses and tracked events, reverts the user's experience counts and assigns a new percent. The profile itself remains. Returns the cleared profile with last_cleared_at. Required: profile_id.

chameleon_profiles_delete_number

Clear (reset) a user profile identified by your uid: resets browser and activity properties, removes microsurvey responses and tracked events, reverts the user's experience counts and assigns a new percent. The profile itself remains. Returns the cleared profile with last_cleared_at. Required: uid.

chameleon_profiles_forget_id

Permanently delete a user profile and all associated data (experiences, events, metrics) for data-privacy opt-outs. Irreversible; backups are purged within 3 months. Returns the profile id and a deletion record id as proof of the request. Required: profile_id.

chameleon_profiles_forget_number

Permanently delete a user profile identified by your uid or email and all associated data (experiences, events, metrics) for data-privacy opt-outs. Irreversible; backups are purged within 3 months. Returns the profile id and a deletion record id as proof of the request. Required: uid or email.

list_all_chameleon_companies

List companies (accounts your users belong to), newest first, with cursor pagination. Returns company records with id, uid, created_at, updated_at, last_seen_at, profile_count and any custom company properties (domain, plan, clv ...). Optional: limit, before, after, expand.

chameleon_companies_search

Search companies with Segmentation filter expressions on any company property (only the property and group kinds are supported), with optional sorting by any property and offset paging. Returns matching company records with id, uid, created_at, updated_at, last_seen_at, profile_count and any custom company properties (domain, plan, clv ...). Required: filters.

chameleon_companies_count

Count the companies matching a set of Segmentation filter expressions (property and group kinds), without returning them. Returns: count. Optional: filters, filters_op.

chameleon_companies_get_id

Get a single company by its Chameleon ID. Returns the company with id, uid, created_at, updated_at, last_seen_at, profile_count and any custom company properties (domain, plan, clv ...). Required: company_id.

chameleon_companies_get_number

Look up a single company by your own identifier (uid). Returns the company with id, uid, created_at, updated_at, last_seen_at, profile_count and any custom company properties (domain, plan, clv ...). Required: uid.

chameleon_companies_delete_id

Delete a company by its Chameleon ID. Returns the deleted company record. Required: company_id.

chameleon_companies_delete_number

Delete a company identified by your own uid. Returns the deleted company record. Required: uid.

list_all_chameleon_segments

List Chameleon segments (saved audience definitions), newest first, with cursor pagination. Returns segment records with id, name, items (filter expressions), items_op, created_at and updated_at. Optional: limit, before, after.

get_single_chameleon_segment_by_id

Get a single Chameleon segment by id, including its filter items. Returns: id, name, items, items_op, created_at, updated_at. Required: id.

chameleon_segments_list_experiences

List the experiences attached to a Chameleon segment of one kind: tours, microsurveys or launchers. Returns the experience records (id, name, style, position, published_at ...) under the chosen kind, with cursor pagination. Required: segment_id, kind.

list_all_chameleon_tours

List Chameleon tours (multi-step product tours), newest first, with cursor pagination. Returns tour records with id, name, style, position, published_at, segment_ids, tag_ids, dashboard_url, content_summary, audience_summary and all-time stats (started, completed, exited counts). Optional: limit, before, after.

get_single_chameleon_tour_by_id

Get a single Chameleon tour by id. Returns: id, name, style, position, published_at, experiment_at, experiment_range, segment_ids, tag_ids, rate_unlimit_at, dashboard_url, content_summary, content_semantics, audience_summary, stats. Required: id.

update_a_chameleon_tour_by_id

Update a Chameleon tour: publish it by setting published_at to the current ISO 8601 time, unpublish it by setting published_at to null, or add/remove an Environment (url_group_id) or Tag (tag_id) using a + or - prefix on the id. Returns the updated tour. Required: id.

list_all_chameleon_tour_interactions

List interactions users had with a specific Chameleon tour (started, displayed, completed, exited), newest first, with cursor pagination and optional profile/company expansion. Use before/after together to stop at your last imported interaction. Returns interaction records with id, state, tour_id, group_id, group_kind, defer_count, defer_until, goal_at, created_at, updated_at and the profile. Required: id (the tour id).

list_all_chameleon_surveys

List Chameleon Microsurveys. Returns each survey's id, name, position, published_at, dashboard_url, and aggregated stats. Optional: limit (defaults to 50, max 500), before, and after.

get_single_chameleon_survey_by_id

Get a single Chameleon Microsurvey by id. Returns the survey including id, name, position, published_at, dashboard_url, and aggregated stats. Required: id.

update_a_chameleon_survey_by_id

Update a Chameleon Microsurvey by id to change its Environments, attach or remove Tags, or publish it. Returns the updated survey including id, name, position, published_at, and stats. Required: id.

list_all_chameleon_survey_responses

List Chameleon Microsurvey responses for a given Microsurvey, including the button clicked, any text or dropdown input, and when the survey was finished. Returns: id, created_at, updated_at, survey_id, profile_id, href, button_text, button_order, button_id, input_text, comment_step_input_text2, dropdown_items, other_text, comment_step_dropdown_items, comment_step_other_text,…

delete_a_chameleon_survey_response_by_id

Delete a Chameleon Microsurvey response by id; deleting also clears the response's associated metrics and summaries. Returns: id. Required: id.

list_all_chameleon_deliveries

List Chameleon Deliveries that directly trigger an Experience to specific users. Returns delivery records including id, model_kind, model_id, profile_id, from, until, at, and options. Filterable by Experience or User Profile.

create_a_chameleon_delivery

Create a Chameleon Delivery to directly trigger an Experience (a tour or survey) to one specific user, optionally within a from/until time window. Returns the created delivery object including id, model_kind, model_id, profile_id, from, until, and options. Required: model_kind and model_id. Pending Deliveries are limited to 3 per User Profile.

update_a_chameleon_delivery_by_id

Update a pending Chameleon Delivery by id, adjusting its time window, personalization options or filters. Returns the updated delivery object including id, model_kind, model_id, profile_id, from, until, and options. Required: id. Accepts the same parameters as create. A Delivery that is already triggered (at timestamp set) can no longer be updated.

delete_a_chameleon_delivery_by_id

Cancel a Chameleon Delivery that has yet to happen by id. Returns an empty 204 response on success. Required: id. A Delivery that is already triggered (at timestamp set) can no longer be deleted.

list_all_chameleon_limit_groups

List all Chameleon Rate Limit Groups. Returns: id, created_at, updated_at, name, description, kind, rate_limit_size, rate_limit_kind, tag_ids, campaign_ids. An account typically has 1-5 Limit Groups so the response is small.

get_single_chameleon_limit_group_by_id

Get a single Chameleon Limit Group by id. Returns: id, created_at, updated_at, name, description, kind, rate_limit_size, rate_limit_kind, tag_ids, campaign_ids. Required: id.

chameleon_limit_groups_list_experiences

List the Experiences (Tours and Microsurveys) attached to a Chameleon Limit Group. Returns limit_group with its attached tours and surveys, plus tags when the group's kind is tags; only published Experiences are included by default. Required: limit_group_id.

list_all_chameleon_alert_groups

List all Chameleon alert groups together with the Experiences currently matching each group's alert conditions. Returns: id, name, kind, interval, style, experiences, tag_ids, campaign_ids, created_at, updated_at, published_at, last_notified_at, slack_uid, opt_in_slack_at, emails, opt_in_email_at. Accounts typically have only a handful of alert groups, so the response is small.

get_single_chameleon_alert_group_by_id

Get a single Chameleon alert group by id, including all Experiences currently matching its alert conditions. Returns: id, name, kind, interval, style, experiences, tag_ids, campaign_ids, created_at, updated_at, published_at, last_notified_at, slack_uid, opt_in_slack_at, emails, opt_in_email_at. Required: id.

list_all_chameleon_launchers

List Chameleon launchers configured for your product. Returns: id, created_at, updated_at, name, title, description, preset, segment_ids, published_at, tag_ids, position, list_type, search_placeholder, quantifier_url, quantifier_urls, trigger_text, blocked_domains, empty_state_content, icon_size, screen_position, position_type, trigger, trigger_type, items, stats. Max 500 per page.

get_single_chameleon_launcher_by_id

Get a single Chameleon launcher by id. Returns the full launcher record including its name, preset, segment_ids, menu items, and all-time stats. Required: id.

update_a_chameleon_launcher_by_id

Update a Chameleon launcher to change its properties or publish/unpublish it via published_at. Returns the updated launcher including its id, name, published_at, segment_ids, tag_ids, and items. Required: id.

list_all_chameleon_tooltips

List Chameleon tooltips. Returns each tooltip's id, name, position, published_at, created_at, updated_at, style, and tag_ids. Max 500 per page.

get_single_chameleon_tooltip_by_id

Get a single Chameleon tooltip by id. Returns the tooltip's id, name, style, position, published_at, created_at, updated_at, and tag_ids. Required: id.

update_a_chameleon_tooltip_by_id

Update a Chameleon tooltip by id to change its properties or to publish or unpublish it. Returns the updated tooltip including its id, name, style, position, published_at, and tag_ids. Required: id. Prefix url_group_id with + or - to add or remove an Environment; set published_at to a timestamp to publish or null to unpublish.

list_all_chameleon_webhook_subscriptions

List all Chameleon webhook subscriptions in a complete, un-paginated result. Returns: id, uid, name, last_item_at, last_item_state, last_item_error. Required: kind (webhook or zapier_hook).

create_a_chameleon_webhook_subscription

Create a new Chameleon webhook subscription that POSTs to a https endpoint. Returns: id. Requires kind, url, topics, and experience_ids. Limited to 5 total webhook endpoints.

delete_a_chameleon_webhook_subscription_by_id

Delete a Chameleon webhook subscription by id. Returns the deleted webhook's id. Required: id.

list_all_chameleon_urls

List all Chameleon domains (Urls), optionally filtered by top-level domain. Returns: id, created_at, updated_at, url_group_id, host, domain, enabled, installed_at, first_seen_at, last_seen_at, unlisted, archived_at. Max 500 per page.

get_single_chameleon_url_by_id

Get a single Chameleon domain (Url) by id. Returns: id, created_at, updated_at, url_group_id, host, domain, enabled, installed_at, first_seen_at, last_seen_at, unlisted, archived_at. Required: id.

create_a_chameleon_url

Create a Chameleon Url to enable a new domain. Returns the created Url with id, host, domain, and enabled state. Requires host and enabled (one of on, off, or subdomain).

update_a_chameleon_url_by_id

Update a Chameleon domain (Url) by id: change its authorization state, archive it, or assign it to an Environment. Returns: id, created_at, updated_at, url_group_id, host, domain, enabled, installed_at, first_seen_at, last_seen_at, unlisted, archived_at. Required: id.

chameleon_urls_bulk_update

Bulk update multiple Chameleon domains (Urls) with the same enabled, archived_at, or url_group_id change. Returns the updated Urls with id, host, domain, and enabled. Requires ids.

list_all_chameleon_url_groups

List Chameleon Environments (Url Groups) used to group Domains and split Experience data by environment. Returns: id, created_at, updated_at, archived_at, name, description, short_name, style_short_name_color. Max 500 per page.

get_single_chameleon_url_group_by_id

Get a single Chameleon Environment (Url Group) by id. Returns the Url Group including its id, name, description, short_name, and style_short_name_color. Required: id.

create_a_chameleon_url_group

Create a Chameleon Environment (Url Group) to group Domains and split Experience data by environment. Returns the created Url Group including its id, name, description, short_name, and style_short_name_color. Required: name.

update_a_chameleon_url_group_by_id

Update a Chameleon Environment (Url Group) by id — rename it, restyle it, or archive it. Returns the updated Url Group including its id, name, description, short_name, and style_short_name_color. Required: id.

list_all_chameleon_tags

List Chameleon tags used to group and filter Experiences in the dashboard. Returns each tag's id, uid, name, description, models_count, and last_seen_at.

get_single_chameleon_tag_by_id

Get a single Chameleon tag by id. Returns: id, created_at, updated_at, uid, name, description, models_count, disabled_at, last_seen_at. Required: id.

chameleon_tags_bulk_update

Apply multiple tag operations (add, remove, or replace tags) across Chameleon Experiences in one request. Returns each updated model's final tag state: model_id, model_type, tag_ids. Required: updates. Tag names are normalized and created automatically if they don't exist.

list_all_chameleon_properties

List Chameleon properties for a given kind, optionally filtered by integration and ordered by most recent. Returns: id, created_at, updated_at, name, description, kind, prop, integration, last_seen_at, types, values. Required: kind. The list is un-paginated.

create_a_chameleon_property

Create a property in Chameleon to track custom data sent to User Profiles, Events, or Companies. Returns the created property including its id, name, description, kind, prop, and created_at. Requires name, description, and kind (one of profile, event, or company).

update_a_chameleon_property_by_id

Update a Chameleon property by id, changing its name or display description. Returns the updated property including id, name, description, kind, prop, created_at, and updated_at. Required: id.

list_all_chameleon_imports

List Chameleon data imports used to bulk-add User Profiles or Companies via CSV. Returns: id, created_at, updated_at, name, kind, model_kind, tag_import_id, on_model_missing, head_columns, import_at, properties, filters, segment_ids, excluded_segment_ids, stats.

create_a_chameleon_import

Create a Chameleon data import to bulk-tag, update, or delete User Profiles or Companies from an uploaded CSV file. Returns the created import object including its id, kind, name, model_kind, properties, head_columns, and run stats. Requires properties (each with name and prop) and file.

get_single_chameleon_import_by_id

Get a single Chameleon import by id, useful for tracking import progress via its stats. Returns: id, created_at, updated_at, name, kind, model_kind, tag_import_id, on_model_missing, head_columns, import_at, properties, filters, segment_ids, excluded_segment_ids, stats.

update_a_chameleon_import_by_id

Update a Chameleon import by id — upload the CSV file separately and/or trigger the import with import_at set to now. Returns the import record: id, kind, name, model_kind, properties, head_columns, and stats including last_import_state. Required: id. Once triggered (import_at set), an import can no longer be updated.

chameleon_imports_download_csv

Download the originally uploaded CSV data for a Chameleon import by id — same endpoint as show with a .csv suffix. Returns the raw CSV file as the response body rather than a JSON import record. Required: id.

list_all_chameleon_embeddables

List Chameleon Embeddables (persistent in-app widgets rendered inline in your product) that follow a specified set of parameters. Returns: id, created_at, updated_at, archived_at, name, description, style, position, segment_ids, published_at, tag_ids, rate_unlimit_at, dashboard_url, stats.

get_single_chameleon_embeddable_by_id

Get a single Chameleon Embeddable by id. Returns: id, created_at, updated_at, archived_at, name, description, style, position, segment_ids, published_at, tag_ids, rate_unlimit_at, dashboard_url, stats. Required: id.

update_a_chameleon_embeddable_by_id

Update a Chameleon Embeddable by id to change its Environments or Tags, or to publish/unpublish it (send the current timestamp in published_at to publish, or null to unpublish). Returns: id, created_at, updated_at, published_at. Required: id.

list_all_chameleon_themes

List all Themes configured for your Chameleon account. Returns: id, created_at, updated_at, name, description, css, content_summary, dashboard_url, style_font, style_font_size, style_font_weight, style_line_height, style_title_font_size, style_title_font_weight, style_title_line_height, style_button_font_size, style_color_background, style_color_text, style_color_title,…

get_single_chameleon_theme_by_id

Get a single Chameleon Theme by id. Returns the full Theme record including id, name, description, css, default, created_at, updated_at, dashboard_url, and style_* typography, color, and spacing properties. Required: id.

list_all_chameleon_event_names

List Chameleon event names, including events sent via the JavaScript API and integrations like Segment. Returns: id, created_at, updated_at, name, description, uid, kind, source, published_at, last_seen_at, filters, content_summary, dashboard_url. Max 500 per page.

get_single_chameleon_event_name_by_id

Get a single Chameleon event name by id. Returns: id, created_at, updated_at, name, description, uid, kind, source, published_at, last_seen_at, filters, content_summary, dashboard_url. Required: id.

list_all_chameleon_changes

List Chameleon Changes across all Experiences. Returns changes with id, model_type, kind, object diff, and the admin user who made them.

chameleon_changes_list_for_model

List Chameleon Changes for a specific model. Returns changes with id, model_type, kind, object diff, and the admin user who made them. Required: model_kind, model_id.

chameleon_changes_summary_for_model

Get the Change Summary for a specific Chameleon model. Returns: model_id, kind, change_id, path, object, changes. Required: model_kind, model_id.

list_all_chameleon_helpbar

List the HelpBar configured in Chameleon (there is only one per account). Returns the Search record including its id, placeholder, keyboard shortcut settings (key_meta, key_uid), recent/pinned group titles, published_at, and label_themes.

chameleon_helpbar_upsert

Create or update the HelpBar in Chameleon — one exists per account, so this single endpoint upserts it. Returns the saved Search record including id, placeholder, key_meta, key_uid, title_recent, title_pinned, published_at, and label_themes. Publish it by setting published_at to the current time.

list_all_chameleon_search_items

List the SearchItems indexed for the Chameleon HelpBar. Returns each item's id, uid, title, description, pinned_at, icon, actions, and title_labels. Pass search_import_id to fetch only items created or updated by a given SearchImport.

chameleon_search_items_upsert

Create or update a SearchItem in the Chameleon HelpBar; sending an existing uid updates that item instead of creating a new one. Returns the saved item with id, uid, title, description, pinned_at, actions, and title_labels. Required: uid.

update_a_chameleon_search_item_by_id

Update a HelpBar SearchItem in Chameleon by id. Returns the updated item with id, uid, title, description, pinned_at, actions, and title_labels. Required: id.

delete_a_chameleon_search_item_by_id

Delete a previously created HelpBar SearchItem in Chameleon by sending its uid. Returns an empty 204 response on success. Required: uid.

chameleon_search_items_bulk_delete

Bulk delete previously created HelpBar SearchItems in Chameleon by sending an array of their Chameleon IDs. Returns an empty 204 response on success. Required: ids.

chameleon_search_items_bulk_update

Batch update multiple Chameleon SearchItems (HelpBar searchable content) in one request, applying the same property changes to every listed item (e.g. update the icon or the SearchGroup of many items at once). Returns the updated SearchItem record including its id, uid, title, description, actions, and title_labels. Required: ids (array of Chameleon SearchItem IDs to update).

create_a_chameleon_search_import

Create a Chameleon search import by uploading a CSV of your product navigation so Users can jump to those items from the HelpBar. Returns the created search import with id, created_at, and updated_at. Required: file (CSV).

get_single_chameleon_search_import_by_id

Get a Chameleon search import by id to track the progress of the CSV import. Returns: id, created_at, updated_at. Required: id.

chameleon_profile_ingest_upsert

Create or update a Chameleon user profile via the incoming webhook; a profile that does not yet exist by uid is created first. Returns the profile's Chameleon id. Identify the profile by uid, email, or id; all other properties are stored on the profile and processed synchronously.

chameleon_profile_ingest_bulk_upsert

Bulk create or update multiple Chameleon user profiles in one request; profiles not previously sent to Chameleon are created first. Returns the id of the accepted batch. Required: profiles (an array of profile objects, each identified by uid or email). Batch requests are limited to 16mb.

chameleon_company_ingest_upsert

Create or update a Chameleon company — a company that does not yet exist by uid is created first, then updated with the other properties in the request. Returns: id. Pass uid (or the Chameleon id) plus any properties to store; property names are normalized to lower case and underscores and updates are processed synchronously.

chameleon_company_ingest_bulk_upsert

Bulk create or update Chameleon companies by sending an array of company objects, each with the same schema as a single company update. Returns: id. Required: companies (each item must include its Company ID as uid). Each batch is limited to 16mb and processed asynchronously; on_model_missing defaults to create.

create_a_chameleon_event_ingest

Track an event for a user in Chameleon. Returns: id. Required: name; pass uid or id to address the user. Events are processed asynchronously, typically within thirty seconds, and any additional body keys are attached as event properties.

chameleon_event_ingest_bulk_create

Track up to 1,000 events for Chameleon users in a single request. Returns: count. Required: events (a non-empty array; each item needs name plus a user identifier — id, uid, or email). Invalid items are reported by index without blocking valid neighbours.

chameleon_translations_download

Download the translation file for a single Chameleon Experience in YAML or JSON format. Returns the translation set: id, language, and experiences with per-step translatable text. Required: kind, edit_id, format.

chameleon_translations_download_for_kind

Download the translation file for all Chameleon Experiences of a given kind in YAML or JSON format. Returns the translation set: id, language, and experiences with per-step translatable text. Required: kind, format.

chameleon_translations_download_mixed

Download a combined translation file covering a mixture of many different Chameleon Experience types in YAML or JSON format. Returns the translation set: id, language, and experiences with per-step translatable text. Required: format.

chameleon_translations_upload

Upload one or more translated Chameleon translation files (YAML or JSON) for processing. Returns the processed translation set: id, language, and experiences. Provide either file (single) or files (multiple); each file's language.code must be set to the target language code, as leaving it as default overwrites primary content.

Why Truto

Why use Truto’s MCP server for Chameleon

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 800+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

How It Works

From zero to integrated

Go live with Chameleon in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s Chameleon account

Use Truto’s frontend SDK to connect your customer’s Chameleon account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call Chameleon

Truto’s Proxy API is a 1-to-1 mapping of the Chameleon API. You call us, we call Chameleon, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate Chameleon’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about Chameleon on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

How does authentication work for the Chameleon integration?

Truto handles Chameleon authentication on your behalf. Your end users connect their Chameleon account once, and Truto manages the credentials and token lifecycle so your product code only deals with normalized API calls.

Can I sync custom user and company properties into Chameleon?

Yes. The profile and company ingest endpoints accept arbitrary custom properties alongside standard fields, and you can also manage property definitions directly via the properties endpoints.

Does the integration support bulk operations?

Yes. Chameleon exposes bulk upsert endpoints for profiles, companies, events, and HelpBar search items, as well as bulk update endpoints for tags, URLs, and search items — so you can backfill or sync large datasets efficiently.

How do I get real-time updates from Chameleon instead of polling?

Use the webhook subscription endpoints to create and manage subscriptions for Chameleon events like tour completions, survey responses, and launcher interactions. Truto normalizes delivery so you receive events reliably.

Can I programmatically trigger a tour or survey for a specific user?

Yes. The deliveries endpoints let you create a scheduled delivery of a specific experience (tour or microsurvey) to an individual profile within a time window, and update or cancel it later.

Which Chameleon resources can I read and manage?

Through Truto you can access profiles, companies, segments, tours, tooltips, launchers, surveys and responses, deliveries, URLs and URL groups, tags, properties, imports, embeddables, themes, event names, changes, HelpBar search items, translations, and webhook subscriptions.

Chameleon

Get Chameleon integrated into your app

Our team understands what it takes to make a Chameleon integration successful. A short, crisp 30 minute call with folks who understand the problem.