Configuring the integration
Here we’ll show you how to get started using the charles x Klaviyo integration.
In Klaviyo:
Log into your Klaviyo account and go to Settings. Under the Account tab, select API keys:
Select Create Private API key. You’ll be directed to the next page:
3. Define a name for the Private API Key (minimum 3 characters)
4. ❗️Give the following API Scopes Full Access;
a. List
b. Profiles
c. Segments
5. Select Create:
In charles
6. Go to Settings > Available apps
7. Find Klaviyo and select Connect. A pop-up will appear
8. Copy the Name and Private API Key you’ve just created
9. Select Submit
Once it’s successful, you should find Klaviyo in the Connected apps section.
Import Klaviyo customer profiles to charles
charles will import the following profile data:
First name
Last name
E-mail
Phone number
Once you’ve connected the Klaviyo app in charles, select Settings. A pop-up will appear
Go to the Configuration tab. You will see:
Configuration | Description |
Import only contacts with a valid phone number | This will only import Klaviyo profiles that have a valid phone number. When this is toggled off, charles will import all profiles – including those without a phone number. |
Sync CRM data on daily basis automatically | Automatically import and sync profiles in Lists/Segments on a daily basis |
3. We recommend toggling Import only contacts with a valid phone number on
4. Under Actions, click Sync channel users to start importing profiles from Klaviyo
Due to a rate limit set by Klaviyo, it could take up-to 24 hours to import all valid profiles from Klaviyo.
Syncing charles opt-in status to Klaviyo profiles
As charles imports Klaviyo profiles, we’ll check for matching phone numbers. If we find a matching phone number in charles that also has a WhatsApp opt-in we’ll patch the latest opt-in status and last updated time to the Klaviyo profile under Custom properties.
charles opt-in status
charles opt-in status
Here’s how we determine the charles_opt_in_status for each Klaviyo profile:
If charles doesn’t have any opt-in status for a contact, charles will not create any opt-in relevant keys under Custom properties on Klaviyo
If charles has any opt-in status for a contact, and the contact’s latest opt-in status is
accepted
, charles will set thecharles_opt_in_status
totrue
with a timestampIf charles has any opt-in status for a contact, and the contact’s latest opt-in status is
rejected
orwithdrawn
, charles will set thecharles_opt_in_status
tofalse
with a timestampIf an opt-in record is deleted from a contact, charles will check the status of the second latest opt-in status. If the status is different, charles will also update the
charles_opt_in_status
accordinglyIf a contact is deleted on charles, charles will set the
charles_opt_in_status
tofalse
with a timestamp automatically
You can use these new custom properties in the following places in Klaviyo:
Segments
When creating segments in Klaviyo, you can use charles_opt_in_status
to filter contacts with a positive opt-in status to ensure your WhatsApp campaigns are GDPR-compliant.
Flows
When creating Flows on Klaviyo, you can use charles_opt_in_status
with a “Conditional split” to only funnel contacts with a positive opt-in status to charles.