Syndication Notifications

Syndication can trigger automated notifications for key events in your publishing jobs. This is useful for monitoring job health and alerting downstream systems.


Supported Events

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

SeverityEvent
InfoA user starts a syndication job
InfoA user stops a syndication job
WarningSyndication retries starting a job after initial failure
WarningSyndication was unable to communicate with the target platform
CriticalJob could not be started or restarted after multiple attempts
CriticalJob was forcibly stopped

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 are sent in JSON format and can be filtered or routed via custom AWS Lambda functions.

Learn more: Amazon SNS Free Tier
Example: Send notifications to Slack


Setup Instructions

1. Create an SNS Topic

  1. Sign in to the AWS Management Console.
  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.

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. Click Save.

3. (Optional) Forward to Slack via Lambda

To forward notifications to a Slack channel:

  1. Set up a Slack Incoming Webhook.

  2. Go to the AWS Lambda Console and click 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:

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)
  1. Set the Handler name to lambda_function.forward_to_slack.

  2. Click Create function.

  3. In the newly created function, click Add trigger.

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

Now, notifications sent from Syndication via SNS will automatically be forwarded to your Slack channel.


Notification Format

Each SNS message is a JSON object containing:

FieldDescription
SubjectSummary of the event. Format: Syndication Notification - {Severity} - {Event}
MessageJSON payload with detailed info
Date_TimeTimestamp of the event
SeverityOne of Info, Warning, or Critical
MessageEvent type (e.g., "Job started by user")
DescriptionMore context about the event
Schedule_IdInternal job ID
Target_NameName of the target
ProtocolDelivery protocol (e.g., RTMP, HLS)
PlatformTarget platform (e.g., YouTube, Facebook)
Content_NameName of the channel or event
Content_IdSystem ID of the channel or event
Content_Typec for channel or e for event

Example Payload

{
  "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"
}