---
updatedAt: 2026-08-07T01:15:20.000Z
agentTools:
  projectIndex: https://docs.uplynk.com/llms.txt
---

# Syndication Notifications

Receive automated Amazon SNS notifications for syndication job health and status events.

Syndication triggers automated notifications for key events in your publishing jobs. Use these notifications to monitor job health and alert downstream systems.

<br />

## Supported Events

Syndication sends notifications for the following job events via Amazon SNS:

| **Severity** | **Event**                                                      |
| ------------ | -------------------------------------------------------------- |
| Info         | A user starts a syndication job                                |
| Info         | A user stops a syndication job                                 |
| Warning      | Syndication retries starting a job after initial failure       |
| Warning      | Syndication was unable to communicate with the target platform |
| Critical     | Job could not be started or restarted after multiple attempts  |
| Critical     | Job was forcibly stopped                                       |

<br />

## How It Works

1. **Syndication** pushes job event data to **Amazon SNS**.
2. **Amazon SNS** broadcasts notifications to subscribed destinations such as:

   * Slack
   * Web servers
   * Mobile devices

SNS messages use JSON format and can be filtered or routed via custom AWS Lambda functions.

Consult the Amazon SNS documentation for more information including how to send notifications to Slack.

<br />

## Setup Instructions

### 1. Create an SNS Topic

1. Sign in to the [AWS Management Console](https://aws.amazon.com/).
2. Go to the **SNS Console**.
3. Create a **Standard** topic. *(FIFO topics are not supported.)*
4. Name it (e.g., `syndication-publishing`).
5. Set **Access Policy** to allow only account `545191325524` to publish.
6. Copy the **Topic ARN**.

<br />

### 2. Connect Syndication to SNS

1. In the **Syndication page** (left-side nav), go to the **SNS tab**.
2. Paste your **Topic ARN** into the SNS Topic ARN field.
3. Select **Save**.

<br />

### 3. (Optional) Forward to Slack via Lambda

To forward notifications to a Slack channel:

1. Set up a Slack [Incoming Webhook](https://api.slack.com/messaging/webhooks).

2. Go to the **AWS Lambda Console** and select **Create function**.

3. Choose **Author from scratch**.

   * **Function name**: `forward_to_slack`
   * **Runtime**: Python 2.7 or 3.x
   * **Permissions**: Choose "Create a new role with basic Lambda permissions"

4. Under **Function code**, paste the following sample:

```python
import json
import urllib2  # Use urllib.request if using Python 3

def forward_to_slack (event, context):
    url = "https://hooks.slack.com/services/XXXX/XXXX/XXXX"  # Replace with your Slack webhook
    try:
        slack_data = {"text": str(event['Records'][0]['Sns']['Message'])}
    except:
        slack_data = {"text": str(event)}

    data = json.dumps(slack_data)
    req = urllib2.Request(url, data)
    urllib2.urlopen(req)
```

5. Set the **Handler** name to `lambda_function.forward_to_slack`.
6. Select **Create function**.
7. In the newly created function, select **Add trigger**.

   * Select **SNS** as the trigger type.
   * Choose the SNS topic you created earlier.
   * Enable the trigger.

Notifications sent from Syndication via SNS will now automatically forward to your Slack channel.

<br />

## Notification Format

Each SNS message is a JSON object containing the following fields:

| **Field**      | **Description**                                                                 |
| -------------- | ------------------------------------------------------------------------------- |
| `Subject`      | Summary of the event. Format: `Syndication Notification - {Severity} - {Event}` |
| `Message`      | JSON payload with detailed info                                                 |
| `Date_Time`    | Timestamp of the event                                                          |
| `Severity`     | One of `Info`, `Warning`, or `Critical`                                         |
| `Message`      | Event type (e.g., "Job started by user")                                        |
| `Description`  | Additional context about the event                                              |
| `Schedule_Id`  | Internal job ID                                                                 |
| `Target_Name`  | Name of the target                                                              |
| `Protocol`     | Delivery protocol (e.g., RTMP, HLS)                                             |
| `Platform`     | Target platform (e.g., YouTube, Facebook)                                       |
| `Content_Name` | Name of the channel or event                                                    |
| `Content_Id`   | System ID of the channel or event                                               |
| `Content_Type` | `c` for channel or `e` for event                                                |

<br />

### Example Payload

```json
{
  "Service": "syndication",
  "Sender": "syndication",
  "Date_Time": "2021-12-10_21:15:55",
  "Severity": "Info",
  "Message": "Job started by user",
  "Description": "",
  "Schedule_Id": "23f1ed53db5e4538b6a0b31183fad807",
  "Target_Name": "YouTubePT",
  "Protocol": "rtmp",
  "Platform": "YouTube",
  "Content_Name": "Entertainment",
  "Content_Id": "c8929b67f1354607877b319edb0c01af",
  "Content_Type": "c"
}
```