With Chameleon's Customer.io integration, you coordinate lifecycle emails and campaigns with Chameleon product tours. To learn about Customer.io visit our integration page.
The Customer.io integration includes two components:
- 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)
Send data from Chameleon to Customer.io
From this configuration page you can 'Send Chameleon data to Customer.io' but turning the toggle on.
This will then send Chameleon events automatically to Customer.io from the client-side. This means that the Customer.io code needs to be installed on the pages of your product (where Chameleon Experiences are seen by end-users) and users are identified with the same ID as they are to Chameleon.
The events sent by Chameleon are:
- Started Tour (Chameleon)
- Completed Tour (Chameleon)
- Exited Tour (Chameleon)
- Step Seen (Chameleon) -- by request, to avoid flooding you with events.
- 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 (e.g. Step number) where relevant.
You can then use this activity by users to be a part of an event-triggered email campaign. You can also 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.
Get data into Chameleon using Customer.io webhooks
You can now send data from Customer.io to Chameleon in real-time using webhooks. There are three types of data you can update within Chameleon using incoming webhooks.
- User properties
- Company properties
- User events
You can then target Chameleon Experiences based on these data types and thereby trigger a Chameleon Experience based on webhook info sent by Customer.io. You can also use this to personalize content within Experiences (e.g. Step copy, or variables within Microsurveys etc.)
Example of how to leverage user properties (sent via webhooks) to personalize Experience content:
To set up this, visit your Customer.io account, then click Settings in the navigation bar, then Integrations, and search for "Webhooks". There will be two types available, and you can use either/both to send data to Chameleon.
In both cases, when setting up the webhook, you'll need the Endpoint URL and you can get this from the integration page in the Chameleon dashboard:
These vary by type of data you are sending, but are the same as the ones you will find in the Webhooks integration page.
- Use POST requests (to send data)
- Authentication is built into the Endpoint URL (which contains your unique Chameleon account token)
- If using a
uidkey (unique ID) for a user, ensure it matches the
uidbeing sent to Chameleon as part of your Chameleon installation
- No specific Headers are required
- All data/content can be added as properties within the webhook request Body
To learn more about incoming webhooks, visit our Developer Documentation.
Example of sending user properties to personalize Experience content
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 user to book a sales meeting).
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
What limitations does the webhook have?
You're allowed to do anything with the Chameleon API that you'd otherwise have access to do.
What is the REST API endpoint for Show a Tour?
There is no need for a REST API endpoint because the JS API for "Show a Tour" works by showing the Tour including redirecting to the right page etc. This can be achieved without the API by using a Tour link (for Tours with Manual Delivery) or by sending an event and using that as a condition to show an Automatic Tour.
If you have any questions or issues please review how to best get help.