PRFlow

Every GitLab merge request.
One live card in Slack.

PRFlow posts a single Slack message per MR and updates it in place — pipeline status, approvals, and exactly what's left to merge. Works with gitlab.com, self-hosted GitLab, and GitHub.

Get Started Free

Free for up to 3 users. No credit card required.

Only needs read_api access — PRFlow never sees your code.

Questions? hello@prflow.dev

# dev-team
PRFlow 9:02 AM
:purple_heart: Merged into main
:file_folder: core-platform/integrations-api · :bust_in_silhouette: Sam Rivera (@samr) · fix/flaky-retrymain
PRFlow 9:14 AM
:large_green_circle: CI passed
:red_circle: Approvals 1/2 — 1 more needed
:red_circle: 1 unresolved thread
:file_folder: core-platform/integrations-api · :bust_in_silhouette: Dana Gregory (@dgregory) · feat/webhook-rate-limitmain
SR 2 replies View thread

Actual PRFlow messages — each card updates in place as its MR moves.

Red needs attention. Green is ready. Purple is merged.

GitLab's official app posts ~10 messages over one MR's life. PRFlow posts one card and recolors it in place — the rail tells you the state before you read a word.

One merge request card in Slack moving through three states: red — needs attention (CI failed, 1 unresolved thread), green — ready for review (CI passed, all threads resolved), purple — merged. The same message, edited in place by PRFlow.

Why teams switch to PRFlow

See what you're missing with GitLab's official app

PRFlow vs Axolo · PRFlow vs PullNotifier · PRFlow vs Native GitLab Slack

Feature
GitLab for Slack
PRFlow
Pipeline status
See CI/CD pass/fail in Slack
Threaded comments
Comments in Slack thread
One message per MR
Updates in place, no spam
Self-hosted GitLab
Works with your own GitLab instance
High channel noise
Flood your team with messages

01. One live card per MR

Opened, reviewed, approved, merged — the same Slack message updates in place through the whole lifecycle. No notification spam, ever.

02. Exactly what's left to merge

The card lists every real merge requirement — approvals with counts, CI, unresolved threads, conflicts — and flips each one from 🔴 to 🟢 as it's satisfied.

03. CI/CD status included

Pipeline status lives on the card itself — running, passed, or failed. Know if builds are green without leaving Slack.

04. Comments in the thread

GitLab review comments flow into the card's Slack thread automatically, and edited comments update in place. The channel stays clean.

05. Scheduled digests

A per-channel summary of open MRs on your schedule — grouped into needs attention, waiting on review, and ready to merge, with stale MRs flagged.

06. GitHub works too

Install the PRFlow GitHub App and pull requests get the same live card, with checks from GitHub Actions. No webhook setup needed.

Simple pricing

Every feature included on every plan — even the free one.

Free
$0/month
  • Up to 3 users
  • All features included
  • Unlimited repositories and channels
Pro
$4/user/month
  • Unlimited users
  • All features included
  • 14-day free trial

See full pricing details →

Frequently Asked Questions

Everything you need to know about PRFlow

How do I stop GitLab from spamming my Slack channel?

Replace GitLab's official Slack app with PRFlow for merge request notifications. GitLab for Slack sends a separate message for every MR event (opened, pipeline, comment, approved, merged). PRFlow sends one message per MR that updates in place, so your channel stays readable.

How do I get one Slack message per merge request instead of many?

PRFlow posts a single Slack message when a merge request is opened, then updates that same message as the MR progresses — pipeline status, approvals, and merge all appear on the original message. Comments go to a Slack thread. No duplicate messages.

How do I see GitLab code review comments in a Slack thread?

PRFlow automatically syncs GitLab merge request comments into a Slack thread attached to the MR notification. When someone comments on your MR in GitLab, the comment appears in the thread. Edited comments are updated in place.

Does PRFlow work with self-hosted GitLab?

Yes. PRFlow supports both gitlab.com and self-hosted GitLab. Connect with a read-only access token and PRFlow automatically discovers MR changes. Optionally add a webhook for real-time notifications.

How does PRFlow handle self-hosted GitLab behind a firewall?

PRFlow needs to reach your GitLab API over HTTPS to poll for MR updates. If you also want real-time notifications, add a webhook — your GitLab needs outbound HTTPS to app.prflow.dev for that, but webhooks are optional. Contact us if your instance has strict network restrictions.

What permissions does PRFlow need in GitLab and Slack?

In GitLab, PRFlow needs a personal access token with read_api scope to read merge request data and comments. For gitlab.com, you can also use OAuth. In Slack, PRFlow uses a bot token obtained via OAuth to post and update messages in your chosen channels.

Does PRFlow work with GitHub?

Yes. Install the PRFlow GitHub App, pick the repositories to watch, and map them to Slack channels exactly like GitLab projects. Each pull request gets the same live card that updates in place, with CI status from GitHub Actions and other check providers. Comment syncing into Slack threads is currently GitLab-only.

How is PRFlow different from GitLab's official Slack app?

GitLab for Slack sends a new message for every event — 10+ messages per merge request. PRFlow sends one message per MR that updates in place, shows CI/CD pipeline status inline, and syncs review comments to a Slack thread. GitLab for Slack also supports slash commands and issue notifications, which PRFlow does not.

Ready to try it?

Connect GitLab — or GitHub — and Slack in minutes. Works with gitlab.com and self-hosted GitLab.

Get Started Free