Back to Integrations
integrationGitLab node
integrationSlack node

GitLab and Slack integration

Save yourself the work of writing custom integrations for GitLab and Slack and use n8n instead. Build adaptable and scalable Development, Communication, and HITL workflows that work with your technology stack. All within a building experience you will love.

How to connect GitLab and Slack

  • Step 1: Create a new workflow
  • Step 2: Add and configure nodes
  • Step 3: Connect
  • Step 4: Customize and extend your integration
  • Step 5: Test and activate your workflow

Step 1: Create a new workflow and add the first step

In n8n, click the "Add workflow" button in the Workflows tab to create a new workflow. Add the starting point – a trigger on when your workflow should run: an app event, a schedule, a webhook call, another workflow, an AI chat, or a manual trigger. Sometimes, the HTTP Request node might already serve as your starting point.

GitLab and Slack integration: Create a new workflow and add the first step

Step 2: Add and configure GitLab and Slack nodes

You can find GitLab and Slack in the nodes panel. Drag them onto your workflow canvas, selecting their actions. Click each node, choose a credential, and authenticate to grant n8n access. Configure GitLab and Slack nodes one by one: input data on the left, parameters in the middle, and output data on the right.

GitLab and Slack integration: Add and configure GitLab and Slack nodes

Step 3: Connect GitLab and Slack

A connection establishes a link between GitLab and Slack (or vice versa) to route data through the workflow. Data flows from the output of one node to the input of another. You can have single or multiple connections for each node.

GitLab and Slack integration: Connect GitLab and Slack

Step 4: Customize and extend your GitLab and Slack integration

Use n8n's core nodes such as If, Split Out, Merge, and others to transform and manipulate data. Write custom JavaScript or Python in the Code node and run it as a step in your workflow. Connect GitLab and Slack with any of n8n’s 1000+ integrations, and incorporate advanced AI logic into your workflows.

GitLab and Slack integration: Customize and extend your GitLab and Slack integration

Step 5: Test and activate your GitLab and Slack workflow

Save and run the workflow to see if everything works as expected. Based on your configuration, data should flow from GitLab to Slack or vice versa. Easily debug your workflow: you can check past executions to isolate and fix the mistake. Once you've tested everything, make sure to save your workflow and activate it.

GitLab and Slack integration: Test and activate your GitLab and Slack workflow

Daily workflow backup to GitLab with Slack notifications

How it Works

This workflow creates automated daily backups of your n8n workflows to a GitLab repository:

Scheduled Trigger - Runs automatically at noon each day to initiate the backup process
Fetch Workflows - Retrieves all active workflows from your n8n instance, filtering out archived ones
Compare & Process - Checks existing files in GitLab and compares them with current workflows
Smart Upload - For each workflow, either updates the existing file in GitLab (if it exists) or creates a new one
Notification System - Sends success/failure notifications to a designated Slack channel with execution details

>The workflow intelligently handles each file individually, cleaning up unnecessary metadata before converting workflows to formatted JSON files ready for version control.

Set up Steps

Estimated setup time: 15-20 minutes

You'll need to configure three credential connections and customize the Configuration node:

GitLab API**: Create a project access token with write permissions to your backup repository
n8n Internal API**: Generate an API key from your n8n user settings
Slack Bot**: Set up a Slack app with bot token permissions for posting messages to your notification channel

> Once credentials are configured, update the Configuration node with your GitLab project owner, repository name, and target branch. The workflow includes detailed setup instructions in the sticky notes for each credential type. After setup, activate the workflow to begin daily automated backups.

Nodes used in this workflow

Popular GitLab and Slack workflows

Daily Workflow Backup to GitLab with Slack Notifications

How it Works This workflow creates automated daily backups of your n8n workflows to a GitLab repository: Scheduled Trigger - Runs automatically at noon each day to initiate the backup process Fetch Workflows - Retrieves all active workflows from your n8n instance, filtering out archived ones Compare & Process - Checks existing files in GitLab and compares them with current workflows Smart Upload - For each workflow, either updates the existing file in GitLab (if it exists) or creates a new one Notification System - Sends success/failure notifications to a designated Slack channel with execution details >The workflow intelligently handles each file individually, cleaning up unnecessary metadata before converting workflows to formatted JSON files ready for version control. Set up Steps Estimated setup time: 15-20 minutes You'll need to configure three credential connections and customize the Configuration node: GitLab API**: Create a project access token with write permissions to your backup repository n8n Internal API**: Generate an API key from your n8n user settings Slack Bot**: Set up a Slack app with bot token permissions for posting messages to your notification channel > Once credentials are configured, update the Configuration node with your GitLab project owner, repository name, and target branch. The workflow includes detailed setup instructions in the sticky notes for each credential type. After setup, activate the workflow to begin daily automated backups.

Automatically Track Certification Changes with ScrapeGraphAI, GitLab and Rocket.Chat

Certification Requirement Tracker with Rocket.Chat and GitLab ⚠️ COMMUNITY TEMPLATE DISCLAIMER: This is a community-contributed template that uses ScrapeGraphAI (a community node). Please ensure you have the ScrapeGraphAI community node installed in your n8n instance before using this template. This workflow automatically scrapes certification-issuing bodies once a year, detects any changes in certification or renewal requirements, creates a GitLab issue for the responsible team, and notifies the relevant channel in Rocket.Chat. It helps professionals and compliance teams stay ahead of changing industry requirements and never miss a renewal. Pre-conditions/Requirements Prerequisites An n8n instance (self-hosted or n8n.cloud) ScrapeGraphAI community node installed and activated Rocket.Chat workspace with Incoming Webhook or user credentials GitLab account with at least one repository and a Personal Access Token (PAT) Access URLs for all certification bodies or industry associations you want to monitor Required Credentials ScrapeGraphAI API Key** – Enables web scraping services Rocket.Chat Credentials** – Either: Webhook URL, or Username & Password / Personal Access Token GitLab Personal Access Token** – To create issues and comments via API Specific Setup Requirements | Service | Requirement | Example/Notes | | ------------- | ---------------------------------------------- | ---------------------------------------------------- | | Rocket.Chat | Incoming Webhook URL OR user credentials | https://chat.example.com/hooks/abc123… | | GitLab | Personal Access Token with api scope | Generate at Settings → Access Tokens | | ScrapeGraphAI | Domain whitelist (if running behind firewall) | Allow outbound HTTPS traffic to target sites | | Cron Schedule | Annual (default) or custom interval | 0 0 1 1 * for 1-Jan every year | How it works This workflow automatically scrapes certification-issuing bodies once a year, detects any changes in certification or renewal requirements, creates a GitLab issue for the responsible team, and notifies the relevant channel in Rocket.Chat. It helps professionals and compliance teams stay ahead of changing industry requirements and never miss a renewal. Key Steps: Scheduled Trigger**: Fires annually (or any chosen interval) to start the check. Set Node – URL List**: Stores an array of certification-body URLs to scrape. Split in Batches**: Iterates over each URL for parallel scraping. ScrapeGraphAI**: Extracts requirement text, effective dates, and renewal info. Code Node – Diff Checker**: Compares the newly scraped data with last year’s GitLab issue (if any) to detect changes. IF Node – Requirements Changed?**: Routes the flow based on change detection. GitLab – Create/Update Issue**: Opens a new issue or comments on an existing one with details of the change. Rocket.Chat – Notify Channel**: Sends a message summarizing any changes and linking to the GitLab issue. Merge Node**: Collects all branch results for a final summary report. Set up steps Setup Time: 15-25 minutes Install Community Node: In n8n, navigate to Settings → Community Nodes and install “ScrapeGraphAI”. Add Credentials: a. In Credentials, create “ScrapeGraphAI API”. b. Add your Rocket.Chat Webhook or PAT. c. Add your GitLab PAT with api scope. Import Workflow: Copy the JSON template into n8n (Workflows → Import). Configure URL List: Open the Set – URL List node and replace the sample array with real certification URLs. Adjust Cron Expression: Double-click the Schedule Trigger node and set your desired frequency. Customize Rocket.Chat Channel: In the Rocket.Chat – Notify node, set the channel or use an incoming webhook. Run Once for Testing: Execute the workflow manually to ensure issues and notifications are created as expected. Activate Workflow: Toggle Activate so the schedule starts running automatically. Node Descriptions Core Workflow Nodes: stickyNote – Workflow Notes**: Contains a high-level diagram and documentation inside the editor. Schedule Trigger** – Initiates the yearly check. Set (URL List)** – Holds certification body URLs and meta info. SplitInBatches** – Iterates through each URL in manageable chunks. ScrapeGraphAI** – Scrapes each certification page and returns structured JSON. Code (Diff Checker)** – Compares the current scrape with historical data. If – Requirements Changed?** – Switches path based on diff result. GitLab** – Creates or updates issues, attaches JSON diff, sets labels (certification, renewal). Rocket.Chat** – Posts a summary message with links to the GitLab issue(s). Merge** – Consolidates batch results for final logging. Set (Success)** – Formats a concise success payload. Data Flow: Schedule Trigger → Set (URL List) → SplitInBatches → ScrapeGraphAI → Code (Diff Checker) → If → GitLab / Rocket.Chat → Merge Customization Examples Add Additional Metadata to GitLab Issue // Inside the GitLab "Create Issue" node ↗️ { "title": Certification Update: ${$json.domain}, "description": What's Changed?\n${$json.diff}\n\n_Last checked: {{$now}}_, "labels": "certification,compliance," + $json.industry } Customize Rocket.Chat Message Formatting // Rocket.Chat node → JSON parameters { "text": :bell: Certification Update Detected\n>${$json.domain}\n>See the GitLab issue: ${$json.issueUrl} } Data Output Format The workflow outputs structured JSON data: { "domain": "example-cert-body.org", "scrapeDate": "2024-01-01T00:00:00Z", "oldRequirements": "Original text …", "newRequirements": "Updated text …", "diff": "- Continuous education hours increased from 20 to 24\n- Fee changed to $200", "issueUrl": "https://gitlab.com/org/compliance/-/issues/42", "notification": "sent" } Troubleshooting Common Issues No data returned from ScrapeGraphAI – Confirm the target site is publicly accessible and not blocking bots. Whitelist the domain or add proper headers via ScrapeGraphAI options. GitLab issue not created – Check that the PAT has api scope and the project ID is correct in the GitLab node. Rocket.Chat message fails – Verify webhook URL or credentials and ensure the channel exists. Performance Tips Limit the batch size in SplitInBatches to avoid API rate limits. Schedule the workflow during off-peak hours to minimize load. Pro Tips: Store last-year scrapes in a dedicated GitLab repository to create a complete change log history. Use n8n’s built-in Execution History Pruning to keep the database slim. Add an Error Trigger workflow to notify you if any step fails.

Detect Unused Android Feature Flags with GitLab, LaunchDarkly, Jira & Slack

Android Feature Flag Cleanup Bot (GitLab + LaunchDarkly) This n8n automation detects unused (“dead”) feature flags in an Android Kotlin/Java codebase by comparing your GitLab repository code against LaunchDarkly’s feature flag list. It logs results in Google Sheets, creates Jira tickets for cleanup and sends Slack alerts automatically. Who’s it for Android engineering teams using Kotlin/Java. Teams managing feature flags in LaunchDarkly. DevOps/QA teams wanting to reduce technical debt from stale flags. How it works Weekly Trigger runs the process. GitLab Node fetches repository code. Regex Extraction finds all feature flags in code. LaunchDarkly API retrieves all configured flags. Comparison Logic marks flags as “dead” if unused in code and archived or off in production. Google Sheets stores flagged results. Jira creates a ticket for each dead flag. Slack notifies the team. How to set up Import JSON into n8n. Connect credentials for: GitLab OAuth2 Google Sheets Jira Slack webhook URL Update: GitLab repo details in the GitLab node. LaunchDarkly API key in HTTP Request node. Google Sheet ID in Google Sheets node. Jira project & issue type in Jira node. Slack message formatting in Slack node. Activate workflow. Requirements n8n** (self-hosted or cloud) GitLab repository with Kotlin/Java code LaunchDarkly account + API token Google Sheets API access Jira API access Slack incoming webhook How to customize Change regex pattern in “Detect flags” node if your flag naming convention differs. Adjust dead flag logic in “Find dead flags” node (e.g., treat test env separately). Modify Slack message to include more details (e.g., description from LaunchDarkly). Add email notifications for broader distribution. Add-ons Email Alerts** via Gmail/SMTP. GitHub / GitLab MR** to remove dead flags automatically. Confluence Integration** to document flag cleanup history. Use Case Examples Weekly automated cleanup alerts for large engineering teams. Maintaining clean feature flag lists in high-traffic apps. Compliance-driven projects requiring flag lifecycle tracking. Common troubleshooting | Issue | Possible Cause | Solution | | ------------------------------------ | --------------------------------------------- | -------------------------------------------------------- | | Workflow fails at GitLab node | Invalid repo path or missing OAuth scope | Update repo path & check GitLab OAuth permissions | | LaunchDarkly API request returns 401 | Invalid or expired API key | Generate a new API key in LaunchDarkly & update node | | Google Sheets node fails | Wrong Sheet ID or missing sharing permissions | Confirm Sheet ID and share with connected Google account | | Jira ticket not created | Missing required fields | Set project key, issue type, and summary in Jira node | | Slack alert not sent | Webhook URL invalid or revoked | Regenerate Slack webhook and update in node | Need Help? If you’d like, we can help set up and customize this workflow for your exact repo, flag rules and team notification preferences — including regex adjustments, extra reporting or adding automatic cleanup PRs. Contact our n8n automation team at WeblineIndia.

Build your own GitLab and Slack integration

Create custom GitLab and Slack workflows by choosing triggers and actions. Nodes come with global operations and settings, as well as app-specific parameters that can be configured. You can also use the HTTP Request node to query data from any app or service with a REST API.

GitLab supported actions

Create
Create a new file in repository
Delete
Delete a file in repository
Edit
Edit a file in repository
Get
Get the data of a single file
List
List contents of a folder
Create
Create a new issue
Create Comment
Create a new comment on an issue
Edit
Edit an issue
Get
Get the data of a single issue
Lock
Lock an issue
Create
Create a new release
Delete
Delete a release
Get
Get a release
Get Many
Get many releases
Update
Update a release
Get
Get the data of a single repository
Get Issues
Returns issues of a repository
Get Repositories
Returns the repositories of a user

Slack supported actions

Archive
Archives a conversation
Close
Closes a direct message or multi-person direct message
Create
Initiates a public or private channel-based conversation
Get
Get information about a channel
Get Many
Get many channels in a Slack team
History
Get a conversation's history of messages and events
Invite
Invite a user to a channel
Join
Joins an existing conversation
Kick
Removes a user from a channel
Leave
Leaves a conversation
Member
List members of a conversation
Open
Opens or resumes a direct message or multi-person direct message
Rename
Renames a conversation
Replies
Get a thread of messages posted to a channel
Set Purpose
Sets the purpose for a conversation
Set Topic
Sets the topic for a conversation
Unarchive
Unarchives a conversation
Get
Get Many
Get & filters team files
Upload
Create or upload an existing file
Delete
Get Permalink
Search
Send
Send and Wait for Response
Update
Add
Adds a reaction to a message
Get
Get the reactions of a message
Remove
Remove a reaction of a message
Add
Add a star to an item
Delete
Delete a star from an item
Get Many
Get many stars of autenticated user
Get
Get information about a user
Get Many
Get a list of many users
Get User's Profile
Get a user's profile
Get User's Status
Get online status of a user
Update User's Profile
Update a user's profile
Add Users
Create
Disable
Enable
Get Many
Get Users
Update

FAQs

  • Can GitLab connect with Slack?

  • Can I use GitLab’s API with n8n?

  • Can I use Slack’s API with n8n?

  • Is n8n secure for integrating GitLab and Slack?

  • How to get started with GitLab and Slack integration in n8n.io?

Need help setting up your GitLab and Slack integration?

Discover our latest community's recommendations and join the discussions about GitLab and Slack integration.
Karim El Soufi
Nicolas N
Muhammed Iqbal P B
Nicolas N

Looking to integrate GitLab and Slack in your company?

Over 3000 companies switch to n8n every single week

Why use n8n to integrate GitLab with Slack

Build complex workflows, really fast

Build complex workflows, really fast

Handle branching, merging and iteration easily.
Pause your workflow to wait for external events.

Code when you need it, UI when you don't

Simple debugging

Your data is displayed alongside your settings, making edge cases easy to track down.

Use templates to get started fast

Use 1000+ workflow templates available from our core team and our community.

Reuse your work

Copy and paste, easily import and export workflows.

Implement complex processes faster with n8n

red iconyellow iconred iconyellow icon