---
url: https://docs.seen.io/api/guides/klaviyo.md
description: >-
  Send profile data from a Klaviyo Flow to Seen for video generation, then post
  the player link and thumbnail back to Klaviyo as a profile event.
---

# Klaviyo

::: warning
In the following example, we will be sending user data to Seen for video generation, and receiving a unique video player link and personalised email thumbnail back to [Klaviyo](https://www.klaviyo.com/) for distribution.

This example uses a POST webhook in Klaviyo Flows to send data to Seen, and an event to receive the data back to Klaviyo.

This example assumes that a Project with a published video already exists in your Seen Platform Workspace.
:::

## Send data to Seen

1. Create a new [Flow in Klaviyo](https://help.klaviyo.com/hc/en-us/articles/115002774932).
2. Choose your trigger.
3. Add **Webhook** as the next step, give it a name, and fill it out with the following:
   * Destination URL ⇒ `https://next.seen.io/v1/projects/{Project_ID}/data` (find the endpoint from your project's [Run tab](/platform/projects/run))
   * Headers
     * Key ⇒ `Authorization`
     * Value ⇒ `Bearer {token}` (create a token from your project's [Run tab](/platform/projects/run))
   * JSON Body. You can use the code snippet below as the starting point for the payload (remember to modify it based on the personalisations in your video campaign; see [Create Data](/api/create-data) for the payload structure):
     ```json
     {
       "first_name": "{{ person.first_name }}",
       "last_name": "{{ person.last_name }}",
       "id": "{{ person.id }}"
     }
     ```
4. You can now test the webhook with a test profile.

## Receive data back from Seen

1. In your project's [Run tab](/platform/projects/run), click on **Add webhook**.
2. Configure the webhook with the following details:

   | Field | Value |
   |---|---|
   | Method | `POST` |
   | URL | `https://a.klaviyo.com/api/events` |

### Headers

| Header | Value |
|---|---|
| `Content-Type` | `application/vnd.api+json` |
| `Accept` | `application/vnd.api+json` |
| `Authorization` | `Klaviyo-API-Key {{your API key}}` |
| `revision` | `2026-07-15` |

::: warning
Remember to check the latest revision date from [Klaviyo's documentation](https://developers.klaviyo.com/en/reference/create_event).
:::

### Request Content

```json
{
  "data": {
    "type": "event",
    "attributes": {
      "properties": {
        "seen_player": "{{ Player link }}",
        "seen_thumbnail": "{{ Email thumbnail link }}"
      },
      "backfill": false,
      "metric": {
        "data": {
          "type": "metric",
          "attributes": {
            "name": "SEEN"
          }
        }
      },
      "profile": {
        "data": {
          "type": "profile",
          "id": "{{ id }}"
        }
      }
    }
  }
}
```

::: warning
Remember to change the variables from the example to the actual placeholders, and to review the payload content before saving.
:::

3. You can now test the full flow.
