PullNotifier Logo

PullNotifier

How to Integrate GitLab with Slack

Integrating GitLab with Slack keeps your team informed about merge requests, pipeline runs, deployments, and issues β€” all without leaving your chat workspace. This guide covers every method to connect GitLab to Slack: the official GitLab for Slack app, legacy webhook integration, and third-party tools. Whether you're on GitLab.com or a self-managed instance, you'll find step-by-step instructions, slash command references, and troubleshooting tips to get GitLab notifications flowing into Slack in minutes.


Table of Contents

1. Quick Comparison Table2. Method 1: GitLab for Slack App (Recommended)3. Method 2: Webhook Integration (Legacy)4. Method 3: Third-Party Tools5. Event Types Reference6. Slash Commands Reference7. Branch & Label Filtering8. GitLab.com vs Self-Managed9. Troubleshooting10. Best Practices11. Using GitHub Instead? Try PullNotifier12. FAQ

Other Tools

Stacked PRs GuideCode Coverage GuideGit Commit Message GuideMerge Request vs Pull RequestSlack GitHub Actions
See all tools β†’
PullNotifier β€” Pull request alerts directly on Slack

Quick Comparison: GitLab–Slack Integration Methods

There are three main ways to integrate GitLab with Slack. Here's how they compare at a glance:

FeatureGitLab for Slack AppSlack WebhookThird-Party Tools
SetupOne-click install from GitLab settingsManual webhook URL configurationVaries by tool
NotificationsRich, interactive messages with actionsBasic text notificationsVaries β€” some offer rich formatting
Slash CommandsFull slash command support (/gitlab)NoneLimited or none
FilteringPer-event, branch, and label filtersAll-or-nothing per event typeVaries β€” Zapier offers custom filters
CostFree on all GitLab tiersFreeFree tiers available; paid for volume
Best ForMost teams β€” recommended defaultSimple, one-way notificationsComplex workflows or multi-tool setups

Method 1: GitLab for Slack App (Recommended)

The official GitLab for Slack app is the recommended way to integrate GitLab with Slack. It provides interactive notifications, slash commands, and granular control over which events are sent to which channels.

1

Check Prerequisites

  • You need Maintainer or Owner role on the GitLab project (or group).
  • You need permission to install apps in your Slack workspace (or an admin who can approve the request).
  • For self-managed GitLab, your instance must be accessible from the public internet for Slack to reach it.
2

Install from GitLab Settings

Navigate to your GitLab project and go to Settings > Integrations. Find GitLab for Slack app in the list and click Install. For group-level setup, go to the group's Settings > Integrations instead.

3

Authorize in Slack

After clicking Install, you'll be redirected to Slack to approve the app's permissions. Click Allow to authorize GitLab to post messages and register slash commands in your workspace.

4

Subscribe a Channel

In the Slack channel where you want notifications, type:

/gitlab <namespace/project> subscribe

Replace <namespace/project> with your project path, for example /gitlab my-org/my-app subscribe.

5

Configure Events

By default, the app subscribes to a standard set of events. To customize, use:

/gitlab <namespace/project> subscribe merges issues pipelines

You can subscribe to specific events like merges, issues, pipelines, pushes, deployments, tags, and more.

6

Test the Integration

Push a commit, open a merge request, or trigger a pipeline in your GitLab project. Within a few seconds, you should see a notification appear in the subscribed Slack channel. If nothing arrives, check the troubleshooting section below.


Method 2: Slack Webhook Integration (Legacy)

If you need a simple, one-way notification setup or your organization restricts app installations, Slack incoming webhooks still work:

1

Create an Incoming Webhook in Slack

Go to your Slack workspace settings, navigate to Apps > Incoming Webhooks, and create a new webhook. Select the channel where notifications should be posted and copy the webhook URL.

2

Add the Webhook URL in GitLab

In your GitLab project, go to Settings > Integrations > Slack notifications. Paste the webhook URL from the previous step.

3

Select Events

Check the boxes for the events you want to trigger Slack notifications: push, merge request, issue, pipeline, etc. You can also specify a custom channel name.

4

Save and Test

Click Save changes, then use the Test settings button to send a test notification to verify the connection works.


Method 3: Third-Party Integration Tools

Third-party tools can bridge GitLab and Slack with additional customization, conditional logic, or multi-platform workflows:

  • Zapier β€” Create custom "Zaps" that trigger Slack messages from specific GitLab events. Useful when you need conditional logic (e.g., only notify on failed pipelines for the main branch).
  • Axolo β€” Focuses on merge request collaboration by creating temporary Slack channels per MR. Good for teams that want threaded discussions tied to code reviews.
  • n8n / Make β€” Open-source or low-code automation platforms that support GitLab-to-Slack workflows alongside hundreds of other integrations.

GitLab Slack Event Types Reference

The GitLab for Slack app supports notifications for the following event types. Events marked as "Default" are included when you first subscribe a channel.

EventDescriptionDefault
PushCommits pushed to a branchYes
IssueIssues opened, closed, or updatedYes
Merge RequestMRs opened, merged, closed, or updatedYes
PipelineCI/CD pipeline started, succeeded, or failedNo
DeploymentDeployments to any environmentNo
Tag PushNew tags pushed to the repositoryNo
Note / CommentComments on issues, MRs, commits, or snippetsYes
Confidential IssueConfidential issues opened or updatedNo
Wiki PageWiki pages created or updatedNo
BuildIndividual CI job status changesNo

GitLab Slack Slash Commands Reference

The GitLab for Slack app registers the /gitlab slash command in your workspace. Here are the most useful commands:

CommandDescription
/gitlab <project> subscribeSubscribe the current channel to project notifications
/gitlab <project> unsubscribeUnsubscribe the current channel from a project
/gitlab <project> subscribe listShow current subscriptions and active events
/gitlab issue new <title>Create a new issue in the linked project
/gitlab issue show <id>Display details of a specific issue
/gitlab deploy <environment>Trigger a deployment to the specified environment
/gitlab helpShow all available GitLab slash commands

Branch & Label Filtering

You can filter GitLab Slack notifications by branch or label to reduce noise in busy channels:

Branch filtering: Only receive push and merge request notifications for specific branches:

/gitlab <project> subscribe pushes --branch main

Label filtering: Only receive issue and merge request notifications with specific labels:

/gitlab <project> subscribe issues --label bug

Combining filters: You can apply multiple filters at once:

/gitlab <project> subscribe merges --branch main --label critical

GitLab.com vs Self-Managed

The Slack integration experience differs slightly depending on whether you use GitLab.com (SaaS) or a self-managed GitLab instance:

FeatureGitLab.com (SaaS)Self-Managed
GitLab for Slack AppAvailable out of the boxRequires instance-level configuration by admin
Slack WebhooksAvailableAvailable
Network RequirementsNone β€” GitLab.com is already publicInstance must be reachable from the internet
Slash CommandsFull supportFull support (once app is configured)
Setup ComplexityLow β€” project maintainer can set upMedium β€” admin must configure app first

Troubleshooting

Common issues when integrating GitLab with Slack and how to fix them:


Best Practices for GitLab Slack Notifications

  1. Use dedicated channels per project or team.

    Avoid dumping all notifications into a single channel. Create channels like #proj-frontend-ci or #team-platform-mrs so people can subscribe to what's relevant to them.
  2. Subscribe only to events that require action.

    Start with merge requests, pipeline failures, and deployments. Add push notifications and issue updates only if the team finds them useful β€” too many notifications lead to alert fatigue.
  3. Use branch filters on high-activity repositories.

    For repos with dozens of daily pushes, filter notifications to main, develop, or release branches. This keeps the signal-to-noise ratio manageable.
  4. Use label filters for issue triage.

    Subscribe to issues labeled urgent or bug in your on-call channel so critical issues get immediate visibility without flooding the channel with feature requests.
  5. Migrate from webhooks to the native app.

    If you're still using Slack webhooks, plan a migration to the GitLab for Slack app. It's more reliable, supports slash commands, and receives updates and improvements from GitLab.
  6. Document your channel-to-project mapping.

    Keep a simple table in your team's wiki or README that maps which Slack channels receive notifications from which GitLab projects. This prevents confusion when onboarding new team members.
  7. Review subscriptions quarterly.

    Projects get archived, teams restructure, and notification needs change. Set a recurring reminder to audit your GitLab–Slack subscriptions and remove stale ones.

Using GitHub Instead? Try PullNotifier

This guide covers GitLab, but if your team uses GitHub, you don't need to cobble together webhooks or generic automation tools. PullNotifier is purpose-built to send GitHub pull request notifications directly to Slack β€” real-time alerts for new PRs, review requests, approvals, CI status changes, and merges.

It takes 30 seconds to set up, works with private and public repositories, and gives every developer on your team personalized PR notifications without the noise.


FAQ

How do I integrate GitLab with Slack?

The recommended way is to install the official GitLab for Slack app. Go to your GitLab project Settings > Integrations > GitLab for Slack app, click Install, authorize in Slack, then use /gitlab <project> subscribe in your desired channel. See the step-by-step guide above for full instructions.

Is the GitLab Slack integration free?

Yes. The official GitLab for Slack app is free on all GitLab tiers including Free, Premium, and Ultimate. Slack webhooks are also free to use. Some third-party integration tools like Zapier may have their own pricing for higher-volume usage.

Can I get GitLab merge request notifications in Slack?

Yes. Once you subscribe a Slack channel to a GitLab project, you will receive notifications for merge request events including new MRs, approvals, comments, and merges. You can customize which events trigger notifications using /gitlab <project> subscribe merges. See the event types reference for all available events.

What is the difference between the GitLab Slack app and webhook?

The GitLab for Slack app is the modern, recommended integration that supports slash commands, interactive notifications, and granular filtering by event, branch, and label. Slack webhooks are the legacy method that only sends one-way text notifications with limited customization. GitLab recommends migrating from webhooks to the native app. See the comparison table for a detailed breakdown.

Does the GitLab Slack integration work with self-managed GitLab?

Yes. The GitLab for Slack app works with both GitLab.com (SaaS) and self-managed instances. For self-managed, your instance must be accessible from the internet and an admin needs to configure the Slack app at the instance level first. See the GitLab.com vs Self-Managed section for details.

How do I filter GitLab notifications in Slack by branch or label?

Use the --branch and --label flags with the subscribe command. For example: /gitlab <project> subscribe merges --branch main --label critical. This is only available with the native GitLab for Slack app, not webhooks. See the filtering section for more examples.

Can I use GitLab slash commands in Slack?

Yes. The GitLab for Slack app provides slash commands including /gitlab issue new, /gitlab issue show, /gitlab deploy, and /gitlab subscribe. These let you interact with GitLab projects directly from Slack without switching context. See the slash commands reference for the full list.

Can I use this integration with GitHub too?

The GitLab for Slack app only works with GitLab. If your team uses GitHub, PullNotifier is a purpose-built tool that sends real-time GitHub pull request notifications to Slack β€” including new PRs, review requests, approvals, CI status, and merges. It takes 30 seconds to set up and works with both public and private repositories.



Other Tools

See all tools β†’
PullNotifier β€” Pull request alerts directly on Slack
PullNotifier Logo

PullNotifier

Β© 2026 PullNotifier. All rights reserved