Skip to main content
Short answers to the questions we get most, grouped by topic. Each answer links to the page with the full detail. Can’t find yours? Email hello@prflow.dev.

Setup & permissions

Why does PRFlow only ask for read-only access?

Everything PRFlow does — posting the Slack card, showing CI status, syncing comments — only requires reading merge request, comment, and pipeline metadata, so that is all the access it requests. On GitLab that is the single read_api scope; on GitHub the App requests four read-only permissions (Pull requests, Checks, Issues, Metadata). PRFlow cannot modify anything on your code platform, and it never reads repository code or diffs.

GitHub is asking me to approve a new “Issues” permission for PRFlow. Why?

The PRFlow GitHub App added the read-only Issues permission in August 2026 to sync comments from a pull request’s Conversation tab: GitHub delivers those as issue comments, and an App can only receive them with Issues access — there is no PR-scoped alternative. It is still read-only, and PRFlow still has no access to repository code. Comments on plain issues are received and immediately discarded. Your notifications keep working while the request is pending; once an organization owner approves it, conversation comments start appearing in the PR’s Slack thread. Details in Permissions & data.

Can I connect both GitLab and GitHub to the same workspace?

No — a PRFlow workspace connects one source provider, GitHub or GitLab, plus one Slack workspace. If your team uses both platforms, create a separate PRFlow organization for each; the organization switcher in the navbar moves you between them, and more than one organization can post into the same Slack workspace. No harm done — no partial or dangling Slack connection is created. PRFlow works source-first: you connect a GitLab or GitHub repository, then add Slack from within PRFlow, so a Slack-first install lands on a guided sign-in page that explains exactly that. Create an account or sign in and continue from the quickstart.

I installed the GitHub App from the GitHub Marketplace first. What now?

That path is fully supported: after installing, GitHub sends you to PRFlow to link the installation to your workspace. Sign in (or sign up) and the Connections page shows a “Finish connecting GitHub” prompt with GitHub pre-selected — press Connect GitHub and you’re linked. The end result is identical to starting from inside PRFlow.

Does PRFlow work with self-managed GitLab or GitHub Enterprise?

Self-managed GitLab works: any instance reachable over HTTPS, connected with a read_api personal access token (gitlab.com additionally supports OAuth). GitHub Enterprise Server is not supported — the GitHub App works with github.com organizations and personal accounts.

When a notification doesn’t arrive

A merge request didn’t show up in Slack. What should I check first?

Check whether events are reaching PRFlow at all: the webhook panel on Settings → Connections shows “Last event received N hours ago” once deliveries flow, or “No events received yet” before the first one — on GitLab, press Test on the webhook and refresh the page to watch the timestamp update. If events are arriving, check your notification rules: rules are evaluated top to bottom and the first match wins, so make sure an enabled rule matches the repository — and check which rule is actually catching it.

Why is there no message for my draft merge request?

By default, drafts stay silent: the card appears when the MR is marked ready for review (on GitHub, the “Ready for review” action). To get drafts in the channel, turn on the Draft PRs switch in the matching notification rule.

Why weren’t MRs that were already open announced when I connected the project?

PRFlow only announces activity it sees after a project is connected — merge requests opened earlier are not posted retroactively. If you want a card for an MR that predates the connection, closing and reopening it posts one: a reopen event creates the message just like an open does.

A comment never appeared in the Slack thread. Why?

Comments need a parent message: if the MR has no Slack card — the project was connected after the MR was opened, or the comment was made while the MR was still a draft — the comment is not posted, and not retroactively either. Also check it’s something PRFlow syncs: GitLab notes on issues, commits, and snippets are ignored, as are GitHub comments on plain issues. The full rules are on the comment sync page.

GitLab shows webhook deliveries failing with a 404. What’s wrong?

A 404 means the delivery URL doesn’t match your workspace’s unique webhook endpoint — usually a typo from editing the URL by hand. PRFlow rejects unrecognized webhook paths with 404 precisely so the mistake shows up in GitLab’s delivery log instead of looking like a success. Copy the URL again from the webhook panel on Settings → Connections and update the webhook in GitLab.

Slack channels & threads

Why doesn’t a private channel show up in the channel picker?

PRFlow can only see private channels it has been invited to. Run /invite @PRFlow in the channel, then refresh the page — the channel appears in the picker like any other. Public channels never need an invite; the chat:write.public scope covers them. More in the Slack integration reference.

If I reply in the Slack thread, does my reply appear on the MR?

No — comment sync is one-way, from GitLab or GitHub into Slack. PRFlow has read-only access to your code platform, so nothing written in Slack is posted back. Reply on the merge request itself and your comment will be synced into the thread for everyone following along in Slack.

Disconnecting & uninstalling

What happens if I uninstall PRFlow from my Slack workspace?

PRFlow is notified immediately and disconnects on its side: the stored access token is deleted and posting stops. If the Slack workspace was connected to more than one PRFlow organization, every one of them is disconnected — no organization is left showing “Connected” with a dead token.

What happens if I disconnect Slack from inside PRFlow?

Disconnect on the Slack card (admin-only, with a confirmation step) removes the connection and also revokes the bot token at Slack immediately, so it doesn’t linger — unless another of your PRFlow organizations shares the same Slack workspace, in which case revocation is safely skipped and only your connection is removed. Your repository and channel-mapping setup is kept, and notifications resume when you reconnect.

What happens if I uninstall the PRFlow GitHub App on GitHub?

The App reports its own lifecycle events, so uninstalling it from GitHub’s settings cleanly disconnects the integration in PRFlow automatically — there is nothing to clean up on the PRFlow side. Changing the App’s repository selection works the same way: PRFlow picks up added and removed repositories on its own.

What happens if I disconnect GitHub from inside PRFlow?

Disconnect on the Connections page removes the integration and every repository tracked under it. It does not uninstall the App on GitHub’s side — if you no longer want it installed, remove it from GitHub’s App settings too.

What happens if I disconnect GitLab from inside PRFlow?

PRFlow deletes its stored copy of your credential (OAuth tokens or personal access token), releases the claim on your top-level group, and removes its record of your projects. Because PRFlow has no write access to GitLab, two things are left for you: the webhook you created stays configured in GitLab until you remove it there, and a personal access token remains valid until you revoke it in GitLab.

What happens when my GitLab token expires or is revoked?

PRFlow validates a personal access token when you save it (scope, expiry, and revocation status) and refreshes OAuth tokens automatically before they expire. If GitLab starts rejecting the credential anyway — a revoked or expired token answers 401/403 — the connection is flagged as unhealthy on your dashboard so you can rotate it. Re-entering a new token works without disconnecting first, even if you also spell out https://gitlab.com as the instance URL.

Still stuck?

Email hello@prflow.dev — include a link to the MR/PR and the channel you expected the notification in, and we’ll get you sorted.