Notifications

When a release goes out, the team should know. NitroPush can ship release events to Slack, Discord, custom webhooks, or email — multiple destinations at the same time, with per-project routing so each app’s releases land in the right channel.

What events fire?

Three event types per release:

EventWhen
release.createdA new release lands in any environment.
release.promotedAn existing release promotes to a higher env (e.g. stageprod).
release.rollout_changedRollout percentage changes (e.g. 10% → 50%).

Each event includes the project name, environment, version, mandatory flag, description, and a deep link back to the admin so anyone reading the notification can jump straight to the release detail page.

Available providers

Open the Integrations page and click the tile for the destination you want. The setup flow is one of two shapes:

  • OAuth (Slack, Discord) — click “Continue to Slack/Discord”, sign in, pick a channel, done. NitroPush never sees your password; the resulting webhook URL is stored encrypted.
  • Form (Custom Webhook) — paste a URL + optional Authorization header. Stored encrypted at rest with AES-256.

Email is currently a stub (the platform’s SMTP backend ships in v1; the tile shows “Coming soon”).

Route per project

When you connect an integration, you’ll see a “Route releases from” picker:

  • All projects — catch-all. Useful for an #ops-releases channel that wants the whole picture.
  • Specific project — only fires for releases in that project. Useful for #ios-releases, #android-releases, etc.

You can have multiple integrations per provider. A common setup:

IntegrationProviderRoutes to
#ios-releasesSlackNitroPush iOS
#android-releasesSlackNitroPush Android
#opsSlackAll projects (catch-all)
QA team webhookCustom WebhookAll projects

Test before you trust

Every saved integration has a Test button on its row in the connected-destinations table. Click it; a [TEST] event fires within ~2 seconds with realistic data. Use this to verify channel routing before pushing a real release.

If the test fails (e.g. “channel deleted”, “webhook 404”):

  • The integration row’s status badge stays “Enabled” but the failure shows in the Recent deliveries panel of the integration.
  • The notifications worker auto-retries with exponential backoff (5 attempts, 5s → 80s).
  • After the final attempt, the delivery lands in the dead-letter set; re-saving the integration with fresh credentials drains it.

Disable temporarily

Toggle the Enabled badge on an integration row to pause it without deleting. Useful during incidents — a flood of release events shouldn’t cascade into a Slack outage.


Next: Releases →