Skip to main content
Setup takes a few minutes in the PRFlow web app at app.prflow.dev: you connect a source provider — GitLab or GitHub — connect Slack, and map repositories to Slack channels.

Pick your provider

A workspace connects one source provider. The Slack side is identical either way; only the provider connection differs:
  • GitLab connects via OAuth (gitlab.com) or a read_api personal access token, plus a webhook you point at PRFlow. Works with gitlab.com and self-managed instances.
  • GitHub is a one-click install of the read-only PRFlow GitHub App — no webhook URLs, no tokens or secrets to paste. Works with github.com organizations and personal accounts.

Set up with GitLab

1

Sign in and pick a workspace

Sign in at app.prflow.dev and create or select a workspace. Each PRFlow workspace connects to one GitLab organization (top-level group) and one Slack workspace.
2

Connect GitLab

From Home or Settings → Connections, choose your instance type:
  • gitlab.com — connect via OAuth (PRFlow requests only the read_api scope; tokens auto-refresh), or save a personal access token instead.
  • Self-managed GitLab — enter your instance root URL (HTTPS required; PRFlow appends /api/v4 automatically) and save a personal access token. OAuth is not available for self-managed instances.
Personal access tokens must have the read_api scope and access to the GitLab group you want PRFlow to use. PRFlow validates the token on save — scope, expiry, and revocation — and recommends a dedicated service-account token over a personal one to reduce operational risk. Token health (expiring, expired, revoked) is surfaced on the dashboard afterwards.During connection, PRFlow resolves the top-level GitLab group your credential can access and binds the workspace to it. One GitLab organization maps to one PRFlow workspace — connecting the same GitLab group to a second workspace is rejected.
3

Add the webhook in GitLab

PRFlow shows your workspace’s unique webhook URL under Settings → Connections → GitLab Webhook. In GitLab, add it as either:
  • Group webhook (recommended) — add the URL once on your top-level group (Group → Settings → Webhooks). Covers all projects in the group. Requires the Owner role and GitLab Premium or Ultimate.
  • Per-project webhooks — add the same URL to each project (Project → Settings → Webhooks). Works on every GitLab tier, including Free. Requires Maintainer or Owner on each project.
Enable the Merge request events, Comment events, and Pipeline events triggers, and keep SSL verification on. Optionally set a Secret token in GitLab and save the same value in PRFlow — PRFlow then verifies the X-Gitlab-Token header on every delivery.
4

Connect Slack

Authorize PRFlow’s Slack app via OAuth. PRFlow requests four bot scopes: chat:write, chat:write.public, channels:read, and groups:read — enough to list channels and post/update messages, nothing more.
5

Create a notification rule

Click + New rule on the dashboard, pick the destination Slack channel (PRFlow fills in the rule name for you), and choose what routes there: a specific project, a wildcard pattern on the full GitLab path such as acme/frontend/*, or every repository as a catch-all. Rules are checked top to bottom and the first match wins — see Notification rules for the details. From then on, every merge request in the matched projects posts itself to the rule’s channel (drafts wait until they’re marked ready unless the rule’s Draft PRs switch is on).
GitLab compatibility: gitlab.com on any tier (group webhooks need Premium or Ultimate; per-project webhooks work on Free), and self-managed GitLab instances reachable over HTTPS. Self-managed instances behind a firewall need outbound HTTPS to app.prflow.dev for webhooks; PRFlow’s API polling additionally requires the instance to be reachable from the internet.
For the technical details behind these steps — webhook events consumed, API endpoints called, and how data is handled — see the GitLab integration reference.

Set up with GitHub

  1. Sign in at app.prflow.dev, open Settings → Connections, and select GitHub as the source provider.
  2. Click Install GitHub App. GitHub asks which account or organization to install to and which repositories the App may see, and shows the read-only permissions it requests — the full list with reasons is on the GitHub integration page.
  3. Back in PRFlow, connect Slack and map repositories to Slack channels from the dashboard.
That’s the whole setup — no webhook URLs and no secrets to paste. The GitHub integration reference covers the details, including starting from the GitHub Marketplace listing instead. Questions or trouble getting set up? Check the FAQ or email hello@prflow.dev.