Soundcheck integrates with the Notifications plugin by providing a number of built in notifications.Documentation Index
Fetch the complete documentation index at: https://backstage.spotify.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
Setup
Install the notifications plugin for Backstage per the instructions here. In soundcheck enable notifications globally with the following setting:Migrating from Legacy Soundcheck Notifications
What is deprecated
Direct Slack notifications — Thesoundcheck.slack configuration block and the supportChannel field on campaigns are deprecated. These power direct Slack message delivery via the SlackNotificationService.
soundcheck.email configuration block is deprecated. This powers direct SMTP email delivery via the EmailNotificationService.
Migration steps
- Enable the Backstage Notifications plugin: set
soundcheck.notifications.enabled: true - Remove the
soundcheck.slackandsoundcheck.emailconfiguration blocks - The
supportChannelfield on campaigns will be ignored once the legacy systems are removed
Replacement
The Backstage Notifications plugin provides a unified notification system that supports multiple delivery channels (in-app, Slack, email, etc.) through Backstage notification modules. All campaign notifications are supported in the Backstage Notifications plugin integration.Differences between legacy and new system
- The new system integrates directly with the open source notifications plugin and benefits from the features there.
- The new system has additional notification types, and enhanced campaign notifications.
- Any new features around notifications will only work with the new notification system.
- Email and Slack are no longer configured within Soundcheck and as part of the campaign fields, but within the notification processors.
Notification Allowlist
By default, whensoundcheck.notifications.enabled is true, all checks, tracks, and campaigns trigger notifications. You can configure an optional allowlist to limit notifications to specific items.
Configuration
Add anallowlist under soundcheck.notifications in your app-config.yaml:
Behavior
- When
allowlistis not configured, all items trigger notifications (backwards-compatible). - The
checks,tracks, andcampaignslists are independent. If onlychecksis specified, only check notifications are filtered; track and campaign notifications continue for all items. - When an allowlist is specified for a type (e.g.,
checks), only items whose IDs appear in that list generate notifications. For example, with the configuration above, a failing check with IDhas-readmetriggers a notification, but a failing check with IDhas-testsdoes not. - An empty array (e.g.,
checks: []) blocks all notifications of that type. - For campaigns and milestones, the allowlist gates all notification channels (Backstage notifications, Slack, and email). For checks and tracks, it only gates Backstage notifications since these don’t send Slack/email notifications.
Notification Types
This documents notifications that Soundcheck will send. To build more robust or complex notifications involving Soundcheck, we suggest looking at events.Campaigns
- Campaign Create - owner of Campaign
- Campaign Updated - owner of Campaign
- Campaign Archived - owner of Campaign
- Campaign Deleted - owner of Campaign
- Campaign Milestone Reached - owner of Campaign
Checks
- Previously Passing Check is now Failing - owner of entities that are failing this check. If multiple entities a user owns are failing a check, only 1 notification is sent. This only triggers if the previous check state was passed.
Tracks
- Previously Certified Track is now Failing - owner of entities that are failing certification. If multiple entities a user owns are failing certification, only 1 notification is sent. This only triggers if the previous certification state was passed.
- Previously Passing Campaign is now Failing - owner of entities that are failing this campaign. If multiple entities a user owns are failing this campaign, only 1 notification is sent. This only triggers if the previous campaign state was passed.