GitLab Slack notifications: send merge request and pipeline events to Slack

By Melih Toksari, developer of MergeBell · Updated · 4 min read

Short answer

GitLab posts to Slack through the GitLab for Slack app. Install it from a project's or group's Settings › Integrations, tick the events you want and name up to 10 channels for each. Merge request messages cover a merge request being opened, merged, approved or unapproved, closed or reopened. Pipeline messages start limited to failed pipelines on the default branch, and you can widen that, or limit them to status changes or protected branches. On GitLab Self-Managed, an administrator creates the app first. The older Slack notifications integration, built on an incoming webhook, has been deprecated since GitLab 15.9. Messages go to channels, and the event list has no review request.

Most teams want two things from GitLab in Slack: a channel that shows what’s moving, and a nudge when it’s their turn. The GitLab for Slack app does the first well. Here is how to set it up in 2026, what each event sends, and what it won’t do.

Install the GitLab for Slack app

  1. In your project or group, select Settings › Integrations.
  2. Select GitLab for Slack app, then Install GitLab for Slack app.
  3. On Slack’s page, pick the workspace if you’re in more than one, and select Allow. On GitLab Self-Managed and Dedicated, the workspace list appears only after an administrator turns on multiple workspaces.
  • You need permission to add apps to the Slack workspace.
  • Installed on a group, the app also turns on for the group’s subgroups and projects that don’t have the integration configured yet.
  • On GitLab.com you can also start from the Slack App Directory.
  • On GitLab Self-Managed and Dedicated, an administrator has to create the app first: see below.

Choose the events and channels

In the integration’s Trigger section, tick each event you want and enter up to 10 channels for it, separated by commas: #backend-mrs, #releases.

Event Posts when
Merge request A merge request is opened, merged, approved or unapproved, closed or reopened
Pipeline A pipeline passes or fails
Note A comment is added
Push A push is made to the repository
Tag push A tag is pushed or removed
Deployment A deployment starts or finishes
Issue A work item is created, closed or reopened

There are also events for confidential issues and comments, wiki pages, group mentions (on a group’s integration only), incidents, vulnerabilities and alerts.

Notification settings decide how much arrives, and out of the box they’re strict about pipelines: failed ones only, on the default branch only.

  • Notify only broken pipelines: failed pipelines only. It starts ticked, so untick it to hear about passing pipelines too.
  • Notify only when status changes: a pipeline message only when the status for that branch or tag changes.
  • Branches for which notifications are to be sent: All branches, Default branch (where it starts), Protected branches, or Default branch and protected branches. It applies to pushes, pipelines and deployments. Tag pipelines are always sent, and merge request pipelines count by their source branch, so a feature branch’s merge request pipelines need All branches.
  • Labels to be notified: only issues, merge requests and comments with those labels.

Select Test settings, then Save changes. For a private channel, mention @GitLab in it and select Add to Channel, or nothing arrives there.

What it doesn’t send

  • Your review requests. The event list has no review request. GitLab 19.5 added a channel message when a merge request’s reviewers change, behind the chat_notify_reviewer_change feature flag, which is off by default. Even then it names the reviewer in plain text in a channel, so Slack doesn’t notify them personally.
  • Anything addressed to you alone. A comment that mentions you is posted like any other comment; there’s no event for assignments or your To-Do List.
  • Buttons to act. You can’t approve or merge from a message, and there’s no slash command for merge requests either.

Slash commands

After you authorize your Slack user once, /gitlab commands run as your GitLab user:

  • /gitlab help lists them.
  • /gitlab <project> issue show <id>, and issue new, issue search, issue move, issue close and issue comment.
  • /gitlab <project> deploy staging to production runs the manual deployment action that matches.
  • /gitlab <project> run <job name> runs a ChatOps job on the default branch.

<project> is the full path, or a shorter alias you set next to the project’s path in the integration’s settings.

On GitLab Self-Managed

  1. As a GitLab administrator who is also at least a Slack workspace administrator, open Admin › Settings › General, expand GitLab for Slack app and select Create Slack app. In Slack, pick the workspace, review the app, select Create, then Install to Workspace.
  2. Back in GitLab, select Enable GitLab for Slack app, enter the app’s details from the App Credentials section of its page on api.slack.com, and select Save changes.
  3. Optionally, install the app for the whole instance from Admin › Settings › Integrations: groups and projects without their own settings inherit it. Otherwise each group or project installs it as above. Test with /gitlab help in a channel.

GitLab must be able to send requests to https://slack.com, and slash commands need Slack to reach your GitLab.

Still on the webhook integration?

The Slack notifications integration, set up by pasting an incoming webhook URL, has been deprecated since GitLab 15.9. It sends the same events with the same settings, but anyone with the URL can post to the channel. Its settings don’t carry over to the app, so set the app up again; while both are on, each event arrives twice.

For your own queue

Channels are good for “the deploy failed” and poor for “it’s your turn”. MergeBell covers that part: it reads your GitLab To-Do List and sends push alerts to your phone for new review requests, mentions, assignments and failed pipelines, checked every five minutes on the free tier, with Mark done and Open on the notification. More in how to get GitLab push notifications on your phone, and if Slack now carries the team updates, cut GitLab’s email down to what you still need.

Frequently asked questions

How do I get GitLab notifications in Slack?

Install the GitLab for Slack app from your project's or group's Settings › Integrations. Under Trigger, tick each event you want and enter up to 10 Slack channels for it, then select Test settings and Save changes.

Which merge request events does GitLab send to Slack?

A merge request being opened, merged, approved or unapproved, closed or reopened, and comments if you also tick the Note event. Labels to be notified limits those messages to merge requests and comments with chosen labels.

Can GitLab send me a Slack message when someone requests my review?

Not by itself. The GitLab for Slack app posts to channels, and its event list has no review request. GitLab 19.5 added a channel message for reviewer changes, behind a feature flag that is off by default.

Is the Slack notifications integration deprecated?

Yes, since GitLab 15.9. It posts through an incoming webhook URL and can only notify. The GitLab for Slack app sends the same events with the same settings, adds slash commands, and stores an OAuth bot token instead of a webhook URL.

How do I set up the GitLab for Slack app on self-managed GitLab?

An administrator who is also at least a Slack workspace administrator selects Create Slack app under Admin › Settings › General › GitLab for Slack app, creates and installs the app in Slack, then selects Enable GitLab for Slack app, enters the app's credentials and saves. GitLab must be able to reach slack.com, and slash commands need Slack to reach GitLab.

Sources

Checked against these pages on 29 October 2026. GitLab changes quickly — if something here no longer matches, tell us and we will fix it.

Do this from your phone with MergeBell

Free for the whole review loop: the To-Do inbox, diffs and line comments, approve and merge, pipelines with retry, and push alerts for your To-Dos. Works with gitlab.com and self-managed GitLab 16.0+.

Get MergeBell for iPhoneGet MergeBell for Android

On the App Store for iOS 26 or later and on Google Play for Android 12 or later. An independent app, not affiliated with GitLab Inc.