> For the complete documentation index, see [llms.txt](https://docs.powerfulform.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.powerfulform.com/integrations/klaviyo.md).

# Klaviyo integration

Add form respondents to a Klaviyo list and map their answers to profile properties.

## What you can do

With this integration, you can:

* Add customers to a Klaviyo list
* Collect new subscribers directly from your forms
* Store additional profile data (first name, last name, phone, custom fields, etc.)
* Maintain accurate, real-time audience data

## How to set it up

{% stepper %}
{% step %}

### Get Your Klaviyo Private API Key

To connect Klaviyo, you need your **Private API Key**.

1. Log in to your Klaviyo account.
2. Navigate to **Account** > **Settings** > **API Keys**.
3. Click **Create Private API Key**.
4. Copy the generated key for use in the next step.

{% hint style="info" %}
Permissions granted to the API key:

**Read: Accounts and Forms**\
**Full Access: List and Profiles, Subscriptions**
{% endhint %}

Reference: <https://help.klaviyo.com/hc/en-us/articles/115005062267-Manage-Your-Account-s-API-Keys>

{% hint style="info" %}
Ensure you use a private API key, as public keys are not supported for this integration.
{% endhint %}
{% endstep %}

{% step %}

### Add API Key to Powerful Contact Form Builder

1. Open the app > click **Settings** > **Third party integrations** > hover **Klaviyo** > click **Config**

<figure><img src="https://2907469752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FehM2rz7MmKkWcJmgvJOe%2Fuploads%2Fgit-blob-48b8a3ec37c2038215f23c9982869dfd6ff1bf2c%2Fscreenshot-integration-klaviyo-integration-1.png?alt=media" alt=""><figcaption></figcaption></figure>

2. In **Klaviyo API key** field, paste the API key created in the step 1

<figure><img src="https://2907469752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FehM2rz7MmKkWcJmgvJOe%2Fuploads%2Fgit-blob-f2044751a3e535f616d67ae7d808ff297e808f04%2Fscreenshot-integration-klaviyo-integration-2.png?alt=media" alt=""><figcaption></figcaption></figure>

3. Click **Save** to apply the changes
   {% endstep %}

{% step %}

### Choose Your Klaviyo List

1\. Open the app > click **Forms** > open the form you want to deal with

2\. Click **Integration** icon on the left side > turn on Klaviyo option > click on the **Klaviyo** option

<figure><img src="https://2907469752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FehM2rz7MmKkWcJmgvJOe%2Fuploads%2Fgit-blob-dae90c9a4e66c784015eb78a84ebe69f143b5746%2Fscreenshot-integration-klaviyo-integration-3.png?alt=media" alt=""><figcaption></figcaption></figure>

3\. Select a contact list (from Klaviyo) in **List** dropdown

<figure><img src="https://2907469752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FehM2rz7MmKkWcJmgvJOe%2Fuploads%2Fgit-blob-eabe58dc3647797283f04fe255ae7e2a1c8b5f82%2Fscreenshot-integration-klaviyo-integration-4.png?alt=media" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Map Your Form Fields to Klaviyo Properties

* The **Email** field is mandatory to create a new profile in Klaviyo
* Optional fields like **First Name**, **Last Name**, etc., can be mapped as needed. Example: Map the "First Name" field in your form to the "First Name" property in Klaviyo

<figure><img src="https://2907469752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FehM2rz7MmKkWcJmgvJOe%2Fuploads%2Fgit-blob-eabe58dc3647797283f04fe255ae7e2a1c8b5f82%2Fscreenshot-integration-klaviyo-integration-4.png?alt=media" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Publish & Test Your Form

If the form is published, you just need to save the form after you make changes.
{% endstep %}
{% endstepper %}

## How it works

1. A customer submit the form.
2. Customer email address is added to the Klaviyo list.

<figure><img src="https://2907469752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FehM2rz7MmKkWcJmgvJOe%2Fuploads%2Fgit-blob-9859ede28022e55de9b20a600812e2ca6f942d55%2Fscreenshot-integration-klaviyo-integration-5.png?alt=media" alt=""><figcaption></figcaption></figure>

How to check the Klaviyo list:

1. Log in to your Klaviyo account > go to **Audience** > **Lists & Segments**.
2. Open the list you integrated with your form > Check for the new subscriber profile to confirm data has been added successfully.
3. You can create the flow with the selected it in your Klaviyo account.

## Troubleshooting

<details>

<summary>Profile not showing in Klaviyo</summary>

Check the following:

1. API key is correct
2. List is selected
3. Email field is mapped to **email**
4. This could be due to the opt-in settings in Klaviyo:

* **Single Opt-In**: Subscribers are added immediately without confirmation. This is recommended for seamless integration.
* **Double Opt-In**: Subscribers must confirm their subscription via email. If they don't, their data won't appear in Klaviyo.

{% hint style="info" %}
The app cannot bypass Klaviyo's double opt-in process. **Single Opt-In** is recommended.
{% endhint %}

In account **Settings:**

<figure><img src="https://2907469752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FehM2rz7MmKkWcJmgvJOe%2Fuploads%2Fgit-blob-d85cbf3fea47d8e7d712f49ec6e99f41d421c4f6%2Fscreenshot-integration-klaviyo-integration-6.png?alt=media" alt=""><figcaption></figcaption></figure>

In **List Settings:**

<figure><img src="https://2907469752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FehM2rz7MmKkWcJmgvJOe%2Fuploads%2Fgit-blob-019bac81fc670a0e280f5e8c965d3cf2437af1df%2Fscreenshot-integration-klaviyo-integration-7.png?alt=media" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary>“List not found” or empty list dropdown</summary>

Try:

* Regenerating a new Private API Key
* Ensuring you have at least one active list in Klaviyo
* Checking permissions (API key needs profile/list access).

</details>

## ❓ FAQs

<details>

<summary>Can I add customers to multiple lists?</summary>

Not automatically.\
A form can sync to **one list at a time**, but your Klaviyo flows can route profiles to other lists afterward.

</details>

<details>

<summary>Can I sync phone numbers?</summary>

Yes.\
Map your form’s **Phone** field to `phone_number`.

</details>

<details>

<summary>Can I update existing Klaviyo profiles?</summary>

Yes.\
If an email already exists, the app will **update** the profile with new data.

</details>

<details>

<summary>Can I trigger a Klaviyo flow after form submission?</summary>

Yes.\
Set your flow trigger to:\
✔ Added to list\
or\
✔ Profile property updated

</details>

<details>

<summary>Is a Klaviyo account required?</summary>

Yes, you must have a Klaviyo account with at least one list.

</details>

<details>

<summary>What happens if the customer does not enter an email?</summary>

Klaviyo requires an email address.\
Without it, the submission cannot be added to Klaviyo.

</details>

<br>

## Next steps

* [Mailchimp](/integrations/mailchimp.md) — the same flow for a Mailchimp audience.
* [How integrations work](/integrations/how-integrations-work.md) — what a connection does and where it is configured.
* [Contact support](/help/contact-support.md) — if the connection still does not work.
