<aside>

In the following example, we will be sending users data to Seen for video generation, and receiving a unique video player link and a unique, personalised thumbnail back to Klaviyo 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 project already exists in your Seen Workspace.

</aside>

Send data to Seen

  1. Create a new Flow in Klaviyo
  2. Choose your trigger
  3. Add “Webhook” as the next step, give it a name, and fill it out with the following:

You can use the code snippet below as the starting point for the payload: ***

{
        "first_name": "{{ person.first_name }}",
        "last_name": "{{ person.last_name }}",
        "id": "{{ person.id }}"
}
    

<aside>

** You can create a token in from your projects Run tab.

*** Remember to modify your payload based on the personalisations in your video campaign. More information about the payload structure in our documentation.

</aside>

  1. You can now test the webhook with a test profile.

Receive data back from Seen

  1. In your projects Run tab, click on “Add webhook”
  2. Configure the webhook with the following details:
Method POST
URL https://a.klaviyo.com/api/events

Headers

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

<aside>

Remember to check the latest revision date from Klaviyo’s documentation.

</aside>

Request Content

{
  "data": {
    "type": "event",
    "attributes": {
      "properties": {
        "seen_player": "{{{playerLink}}}",
        "seen_thumbnail": "{{{emailThumbnailLink}}}"
      },
      "backfill": false,
      "metric": {
        "data": {
          "type": "metric",
          "attributes": {
            "name": "SEEN"
          }
        }
      },
      "profile": {
        "data": {
          "type": "profile",
          "id": "{{{values.id}}}"
        }
      }
    }
  }
}

<aside>

Remember to change the variables from the example to the actual placeholders.

Remember to review the payload content before saving.

</aside>

  1. You can now test the full flow.