Skip to main content
Connect Klaviyo app

Get started using the charles x Klaviyo integration by first configuring the integrations.

Updated over a week ago

Configuring the integration

Here we’ll show you how to get started using the charles x Klaviyo integration.

In Klaviyo:

  1. Log into your Klaviyo account and go to Settings. Under the Account tab, select API keys:

  2. 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

  1. Once you’ve connected the Klaviyo app in charles, select Settings. A pop-up will appear

  2. 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

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 the charles_opt_in_status to true with a timestamp

  • If charles has any opt-in status for a contact, and the contact’s latest opt-in status is rejected or withdrawn, charles will set the charles_opt_in_status to false with a timestamp

  • If 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 accordingly

  • If a contact is deleted on charles, charles will set the charles_opt_in_status to false with a timestamp automatically

You can use these new custom properties in the following places in Klaviyo:

  1. 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.

  1. 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.

Did this answer your question?