Enhance your adoption efforts with lifecycle emails that are synced to your in-app Experiences. This way you engage users in different mediums to drive adoption and meet their learning preferences.
Send your Customer.io data to Chameleon to continue pushing users on their learning journey. And send your Experience data back to Customer.io to time specific campaigns to users based on in-app engagement.
Availability & Usage
🔐 Available for all plans
⚙️ Enable from the Dashboard
How does this integration work?
With our Customer.io integration, you can coordinate lifecycle emails and campaigns with Chameleon Experiences. This way, you can engage users with more personalized content and in-app education, as well as personalize your messages with your data.
You can use Customer.io as a:
Data Destination -- send Chameleon data to Customer.io (to use in sending other messaging, such as emails)
Data Source -- get Customer.io data (webhooks) into Chameleon (for targeting Tours and personalizing content)
Setting up the integration
Enable the Customer.io integration in a few clicks and have your data flowing to your account, to leverage in your email campaigns. Head over to the Customer.io integration page in your Dashboard and enable the integration.
Next, Chameleon automatically sends Experience events to Customer.io from the client-side.
To send your Customer.io data in real-time for targeting and personalizing Experiences you'll use webhooks.
There are three types of data you can update within Chameleon using incoming webhooks.
To set this up, start by visiting your Customer.io Integrations page, under Settings, and find the Webhooks option.
There will be two types available and you can use either or both to send data to Chameleon:
In both cases, when setting up the webhook, get the endpoint URL from the Customer.io integration page in Chameleon
Use Customer.io webhooks to sync Chameleon Segments
Our current integration is not set up to sync segments across the two tools, however, you can utilize Customer.io's API to do this.
The Customer.io documentation, currently states that you can pull a list of people in a given segment using their
/v1/exports/customers endpoint in their API. Alternatively, you can create a segment-triggered campaign based on the segment, set the email inside to “Queue Draft” in the webhook, and then monitor the
email_drafted events for that
How to use it?
With the integration enabled and your data flowing, you have different possibilities in Chameleon and Customer.io.
Leverage your Customer.io data in your Chameleon Segments, to create custom audiences for your Experiences, or use it to personalize content within Experiences (e.g. variables within your Steps), as below.
In Customer.io you can leverage your Chameleon data to trigger engagement campaigns based on Experience data. For example, triggering an onboarding sequence if users dismiss your in-app walkthroughs.
Leverage your Chameleon data as part of an event-triggered email campaign, or use these events as part of your Customer.io segments, which can then be further used for any notification or message you send via Customer.io.
The events sent by Chameleon are:
Started Tour (Chameleon)
Completed Tour (Chameleon)
Exited Tour (Chameleon)
Step Seen (Chameleon)
Previewed Tour (Chameleon) -- for admins only
You can view this within your Customer.io account, on the Activity page:
Event properties sent as part of these events include the Tour name, URL, and others where relevant (e.g. Step number).
For full details of all Chameleon data sent to Customer.io, use our schema Google Sheet:
What fields can be sent to the webhook in the JSON payload?
The webhook can be configured to "set user properties" or "log an event" simply by using a different endpoint in the Chameleon REST API. For the case of sending user properties, you can send anything you would otherwise send to
For example, you could set a property when a user reaches a milestone in your application, such as
upsell_readiness_score, and use this as a filter within a Target Audience to show an Experience (e.g. prompting the user to book a sales meeting).
What does each field do?
What fields cannot be sent to the webhook?
Certain attribute names are reserved. These include
created_at and are listed here.
While nested field two-levels deep are supported, further nesting (object within object within object) is not.
How do we map Customer.io User IDs to Chameleon UIDs?
Typically the 'User ID' (UID) you send to Chameleon (within the
chmln.identify call) is a Database ID and thus also used to identify users within Customer.io.
To check the UID being sent for any Chameleon user, open the developer console and enter