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

# Klaviyo

Connect Anedot to Klaviyo to sync donation and lead contacts for email or messaging campaigns and lists from Settings → Integrations → Directory.

Connect Anedot to Klaviyo to automatically sync donation and lead data and view supporter activity through Klaviyo Profiles—supporting both financial and non-financial event relays.

Klaviyo is a marketing automation platform built for personalized, behavior-based outreach. It enables organizations to engage supporters through highly targeted email, SMS, and mobile push campaigns.

## Connecting Anedot to Klaviyo

To connect your Anedot account to Klaviyo:

1. **Choose Action Pages to Sync**
   * By default, all Action Pages are included.
   * To exclude specific pages, enter a comma-separated list of Action Page IDs.
2. *(Optional)* Scope the integration to a specific **Team** to limit data sync access.
3. **Enter Your Klaviyo API Key**
   * Be sure to use a **Private API Key**.
   * *Public API Keys will not work for relays.*
4. **Save Your Settings**
   * Once saved, your connection is live.

*Action Pages, Team access, and credentials can be updated at any time.*

## Data Relays

* Anedot sends relays from both **Donation Pages** and **Lead Pages** to Klaviyo.
* **Custom fields are not relayed** at this time.
* **Push Unsent** functionality allows you to resend failed or historical donations by specifying a date range.
  * After **5 consecutive relay failures**, the integration is marked **inactive** and stops attempting to send data.

### **Viewing Data in Klaviyo**

Once a relay is successful:

* Go to the **Profiles** tab in Klaviyo.
* Search for a supporter by name, email, or other identifiers.
* Each **Profile** contains a full history of the supporter’s donations and lead submissions synced from Anedot.

## Field Mapping

The Anedot Fields match the Submission’s Raw Data and the Klaviyo Fields match the Request Body relay.

| Anedot Field                                                                                                                                  | Klaviyo Field                                                                                                      |
| --------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| “event”                                                                                                                                       | type                                                                                                               |
| - createdAt amount (x100) "Anedot: Submission Created"                                                                                        | attributes {time} {value} {metric name }                                                                           |
| - address {postalCode} address {city} email address {region} address {country} lastName firstName phone                                       | profile {zip} {city} {email} {region} {country} {last\_name} {first\_name} {phone\_number}                         |
| (Submission) id                                                                                                                               | unique\_id                                                                                                         |
| - utmCodes {term} \*\* utmCodes {medium} \*\* utmCodes {source} \*\* {sourceCode} utmCodes {content} \*\* utmCodes {campaign}\*\* accountName | properties {utm\_term} {utm\_medium} {utm\_source} {source\_code} {utm\_content} {utm\_campaign} {anedot\_account} |

*\*\*UTM Codes can be added to the Page URL.*

## Payload Data

### Request Headers

```
{ }
```

### Request Body

```json
{  "type": "event",    "attributes": {      "time": "2023-05-15T16:37:30.844Z",      "value": 200.0,      "metric": {      "name": "Anedot: Submission Created"      },      "profile": {        "zip": "70112",        "city": "New Orleans",        "email": "annie@anedot.com",        "region": "LA",        "country": "US",        "last_name": "Dot",        "first_name": "Annie",        "phone_number": "1231231234"      },      "unique_id": "e1c0b789-81c5-489c-959f-e30ca6fa4c9a",      "properties": {        "utm_term": null,        "utm_medium": null,        "utm_source": null,        "Source Code": null,        "utm_content": null,        "utm_campaign": null,        "Anedot Account": "The Charitable Foundation"      }  }  }
```

### Response Body *(Success)*

```
{ }
```

### Response Body *(Failure)*

```json
{   "errors": [{     "id": "df5497da-4e89-4f5a-a019-3f5d1d772015",      "code": "not_authenticated",      "title": "Authentication credentials were not provided.",      "detail": "Missing or invalid private key.",      "source": {       "pointer": "/data/"      },      "status": 401    }]  }
```

### Response Status *(Success)*

```
202
```

### Response Status *(Failure)*

```
401
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.anedot.com/integrations/email-marketing-communication/klaviyo.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
