Skip to content

Slack integration

Pullminder can send alerts to a Slack channel whenever a pull request exceeds your organization’s risk threshold or triggers a policy block. This guide covers setting up the integration from start to finish.

Before you begin, make sure you have:

  • A Slack workspace where you can create apps (you need workspace admin or app-install permissions)
  • A Pullminder account with access to the organization dashboard at app.pullminder.com

Pullminder delivers alerts through Slack’s incoming webhook mechanism. You need to create a webhook URL in your Slack workspace.

  1. Go to api.slack.com/apps and click Create New App. Choose From scratch, give it a name (e.g., “Pullminder Alerts”), and select your workspace.
  2. In the app settings sidebar, click Incoming Webhooks and toggle the feature on.
  3. Click Add New Webhook to Workspace, select the channel where you want alerts to appear, and click Allow.
  4. Copy the webhook URL. It looks like https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX.
  1. Sign in to app.pullminder.com and navigate to Settings > Slack integration.
  2. Paste the webhook URL into the Webhook URL field.
  3. Click Test to send a sample message to your Slack channel. Verify that the message appears.
  4. Click Save to store the configuration.

Your webhook URL is encrypted at rest using AES-256-GCM. Pullminder never displays the full URL after you save it.

Pullminder sends a Slack alert when either of the following conditions is met:

TriggerDescription
High-risk PRThe PR’s risk score exceeds your organization’s configured threshold
Policy blockA rule with a block action fires, preventing the PR from merging

If a PR is low-risk and does not trigger any blocking rules, no Slack message is sent.

Each alert is formatted using Slack Block Kit and includes:

FieldDescription
PR titleThe pull request title, linked to the GitHub PR
AuthorThe GitHub username of the PR author
RepositoryThe full org/repo name
Risk scoreThe numeric score with a risk level label
Risk indicatorAn emoji reflecting severity (see table below)
Top findingsUp to 3 findings, each showing severity, description, and file path
LinksDirect links to the Pullminder dashboard and the GitHub PR
LevelEmoji
Critical:rotating_light:
High:warning:
Medium:large_yellow_circle:
Low / None:white_check_mark:

Alerts are sent through an asynchronous task queue. If delivery fails (for example, because Slack is temporarily unavailable), Pullminder retries with exponential backoff. You do not need to configure retry behavior — it is handled automatically.

No messages appear in Slack after saving the webhook. Open Settings > Slack integration and click Test. If the test message does not arrive, verify that the webhook URL is correct and that the Slack app is still installed in your workspace.

Test message works, but real alerts do not arrive. Check that your PRs are actually exceeding the risk threshold. View the PR in the Pullminder dashboard to confirm its risk score. If the score is below your threshold and no blocking rules fired, Pullminder will not send an alert.

Webhook URL was rotated in Slack. If you regenerate the webhook URL in Slack, the old URL stops working immediately. Paste the new URL in Settings > Slack integration and save.

Messages appear but the channel is wrong. The destination channel is determined by the webhook URL. To change the channel, create a new webhook for the desired channel in your Slack app settings and update the URL in Pullminder.