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_apipersonal 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_apiscope; tokens auto-refresh), or save a personal access token instead. - Self-managed GitLab — enter your instance root URL (HTTPS required;
PRFlow appends
/api/v4automatically) and save a personal access token. OAuth is not available for self-managed instances.
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.
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.Set up with GitHub
- Sign in at app.prflow.dev, open Settings → Connections, and select GitHub as the source provider.
- 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.
- Back in PRFlow, connect Slack and map repositories to Slack channels from the dashboard.