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

# MoEngage

::: info
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 MoEngage for distribution. This example uses a Connector step in a MoEngage Flow to send data to Seen, and a Seen webhook to post the result back to MoEngage as a custom event, ready to use across email, SMS, push, and more.

If you have multiple video campaigns with Seen, repeat the process to connect MoEngage 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. Navigate to **Engage → Flows** and create a new blank Flow in MoEngage.
2. Give your Flow a name and add a **Connector** step to the canvas, then configure it as follows:
   * Webhook URL: `https://next.seen.io/v1/projects/{project_id}/data` (find your Project endpoint in the **Run** tab of your Seen Project)
   * HTTP Method = `POST`
   * Body type = JSON. Use the payload below as a starting point, adjusted to match the personalisations in your Seen Project:
     ```json
     {
       "user_id": "{{UserAttribute['ID']|default('MOE_NOT_SEND')}}",
       "first_name": "{{UserAttribute['First Name']|default('MOE_NOT_SEND')}}"
     }
     ```
   * Request headers:

     * `Authorization` → `Bearer {token}`
     * `Content-Type` → `application/json`

     You can create an API token in your Seen Platform Workspace under **Settings → API**.
3. You can now test the Connector with a specific user using the **Test** section at the bottom of the Connector step.
4. If everything works as intended, proceed to activate the Flow.

## Set up your webhook in Seen Platform

1. Navigate to your Project in the Seen Platform.
2. Open the **Run** tab and click **Add Webhook**.
3. Configure your webhook (see [Webhook](/api/webhook) for the full configuration).

## Receive data back from Seen

1. In MoEngage, navigate to **Settings → Advanced Settings → Authorization Configuration** and create a new auth config for the Seen API using OAuth2 / JWT. You will need your Seen Client ID and Client Secret, available under **Settings → API → OAuth2** in your Seen Platform Workspace.
   * Navigate to **Settings → Advanced Settings → Authorization Configuration**.

   * Click **+ Add Auth Config** and fill in the following fields:

     | Field | Value |
     |---|---|
     | Name | Seen API |
     | Token type | JWT |
     | API URL | `https://next.seen.io/oauth2/token` |
     | Method | POST |
     | Body type | FORM |
     | grant\_type | `client_credentials` |
     | client\_id | `<YOUR_Seen_CLIENT_ID>` |
     | client\_secret | `<YOUR_Seen_CLIENT_SECRET>` |

   * Click **Send test & continue**.

   * In the **Access token** field, select `access_token`.

   * Click **Decode Access Token**. In the expiry field that appears, enter **Expiry:** `access_token.exp` (Unix Epoch).

   * Set **Preferred prefix** to `Bearer`.

   * Click **Save**.

2. In the Seen Platform webhook editor, configure the webhook to POST back to MoEngage:
   * URL: `https://api-01.moengage.com/v1/event/{YOUR_MOENGAGE_WORKSPACE_ID}`
   * Authentication: **Basic Auth** (Username = MoEngage Workspace ID, Password = MoEngage Data API Key)
   * `Content-Type: application/json`

3. Use the payload below as a starting point for the Seen webhook body. Replace **Player link** and **Email thumbnail link** with the dynamic output references available in the Seen webhook editor:
   ```json
   {
     "type": "event",
     "customer_id": "user_id",
     "actions": [
       {
         "action": "seen_video_generated",
         "attributes": {
           "seen_campaign": "onboarding",
           "seen_player_link": "Player link",
           "seen_email_thumbnail_link": "Email thumbnail link"
         }
       }
     ]
   }
   ```

4. Click **Create** to save the webhook.

5. To verify, search for your test user in MoEngage under **Segment → Search Users** and open their **Event Activity**. You should see a `seen_video_generated` event with the following attributes populated:

   | Attribute | Description |
   |---|---|
   | `seen_player_link` | A link to the user's personalised Seen video |
   | `seen_email_thumbnail_link` | A personalised video thumbnail for use in email |

6. Once confirmed, you can reference these attributes in any MoEngage campaign using:
   ```
   {{EventAttribute['seen_player_link']|default('MOE_NOT_SEND')}}
   {{EventAttribute['seen_email_thumbnail_link']|default('MOE_NOT_SEND')}}
   ```
