---
url: https://docs.seen.io/api/guides/attio.md
description: >-
  Send record data from an Attio workflow to Seen for video generation, then
  write the player link and thumbnail back to the record via a webhook trigger.
---

# Attio

::: info
In the following example, we will be sending customer data to Seen for video generation, and receiving a unique video player link and personalised email thumbnail back to Attio for distribution. This example uses a Send HTTP Request action node in Attio Workflows to send data to Seen, and a Webhook Received trigger in Attio Workflows to receive the result back and write it to the customer record, ready to use across email, SMS, and in-app campaigns. No third-party middleware is required.

If you have multiple video campaigns with Seen, repeat the process to connect Attio with each one. You can reach out to your Customer Success Manager at Seen for assistance.

A Project needs to be created and published in the Seen Platform prior to setting up the integration.
:::

## Send data to Seen

1. Create a new [workflow](https://attio.com/help/reference/integrations-automations/workflows) in Attio to send data to Seen.
2. Set up your Trigger (this example uses **Record created** and **Object → People**).
3. Set up a **Send HTTP Request** step with the following details:
   * **Method**: `POST`
   * **URL**: `https://next.seen.io/v1/projects/{PROJECT_ID}/data` (find your Project endpoint in the **Run** tab of your Seen Platform Project)
   * **Add Headers**:
     * Header: `Authorization`
     * Value: `Bearer {your Seen API token}` (create an API token in your Seen Platform Workspace under **Settings → API**)
   * **Content-Type**: `application/json`
   * **Body**: use the JSON below as a starting point:
     ```json
     {
       "first_name": "{{ First Name }}",
       "last_name": "{{ Last Name }}",
       "id": "{{ Record ID }}"
     }
     ```
     Replace the `{{ }}` placeholders with the dynamic references available in Attio. Remember to modify the payload to match the variables used in your Seen Project. All fields must match property names defined in your Seen Project.
4. You can now publish your workflow and create a record to test the connection.

## Prepare to receive data from Seen

1. Create new [Attribute](https://attio.com/help/reference/managing-your-data/attributes/create-manage-attributes#create-a-new-attribute) fields for the People object. In this example we will name them **Seen player** and **Seen thumbnail**. Remember to use **Text** as the type.
2. Create a new workflow, and choose **Webhook received** as the trigger.

   Copy and save the Webhook URL. You will need it when setting up the Seen Project Webhook in the next section.
3. Add **Parse JSON** as the next step, and configure it with the following information:
   * **Input**: `{ Webhook received > Request body }` variable
   * **Schema**:

     | Field |
     | --- |
     | `seen_player` |
     | `seen_thumbnail` |
     | `id` |
4. Add **Find Records** as the next step, and configure it with the following information:
   * **Object**: People
   * **Filter**: Record ID → is → `{ Parse JSON > Parsed > id }` variable
5. Add **Update Record** as the next step, and configure it with the following information:
   * **Object**: People
   * **Record**: `{ Find records > Matched People }` variable
   * **Attributes to set**:
     * Seen player: `{ Parse JSON > Parsed > seen_player }` variable
     * Seen thumbnail: `{ Parse JSON > Parsed > seen_thumbnail }` variable
6. Publish your workflow.

## Receive data back from Seen

1. In Seen Platform, navigate to your Project.
2. Go to the **Run** tab, and click on **Add webhook**.
   * URL: `https://hooks.attio.com/w/xxx/xxx` (use the Attio webhook URL created in the previous section)
   * Method: `POST`
   * Use the payload below as a starting point for the Seen webhook body. Replace the `{{ }}` placeholders with the dynamic output references available in the Seen webhook editor:
     ```json
     {
       "seen_thumbnail": "{{ Email thumbnail link }}",
       "seen_player": "{{ Player link }}",
       "id": "{{ id }}"
     }
     ```
3. Click **Create** to save the webhook.
