Reference · Tools
GitLab Trigger
Starts workflow when GitLab events occur
The GitLab Trigger node starts a workflow the moment something happens in your GitLab repository — a push, a new merge request, a pipeline status change, a release, and more. It registers a webhook directly in your GitLab project and normalizes the incoming payload so downstream nodes can act on it immediately. A typical use case: automatically notify a Slack channel or create a task whenever a merge request is opened.
- Node type
- Webhook trigger
- Parameters
- 3
- Outputs
- Output
- Credentials
- GitLab API
GitLab Trigger
Trigger workflows from GitLab repository events
Overview
Triggers a workflow when events happen in a GitLab repository, such as pushes, merge requests, issues, pipeline status changes, comments, deployments, releases, tags, wiki page changes, and more. Receives webhook POST requests from GitLab and normalizes the payload for downstream processing.
Category: Development
Tool Name: gitlab_trigger
Version: 1
Appearance: Icon: si-gitlab | Color: #fc6d26
Node Type
Trigger — webhook (receives incoming HTTP callbacks)
Input / Output
| Direction | Port(s) |
|---|---|
| Input | None (trigger node) |
| Output | Output |
Credentials
This tool requires GitLab API credentials. See the Credentials Guide for setup instructions.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Repository Owner | string | Yes | — | User, group, or namespace that owns the repository. For subgroups, use the full path (e.g., group/subgroup). |
| Repository Name | string | Yes | — | The name of the GitLab project/repository. |
| Events | multiOptions | Yes | [] | The events to listen to. Select * to subscribe to all event types. |
Options: note (a comment on a commit, merge request, issue or snippet), confidential_note, confidential_issues, deployment, issues, job (a job status change), merge_requests, pipeline (a pipeline status change), push (excludes tag pushes), releases, tag_push (a tag was created or deleted), wiki_page, * (All Events — any time any event is triggered) |
Output Data
Each accepted delivery produces one output item describing the GitLab event:
{
"body": {},
"headers": {},
"query": {},
"_trigger": "gitlab_webhook",
"_timestamp": "2026-01-01T00:00:00.000Z",
"_webhookEvent": "Push Hook"
}
body— the GitLab event payload exactly as GitLab sent it (for exampleobject_kind,event_name,ref,project,commits,repository).headers— the request headers of the delivery.query— the query-string parameters of the delivery._trigger— alwaysgitlab_webhook._timestamp— ISO 8601 timestamp of when the delivery arrived._webhookEvent— the GitLab hook name taken from theX-Gitlab-Eventheader, such asPush Hook,Merge Request Hook,Issue Hook,Pipeline Hook,Note Hook,Tag Push Hook,Job Hook,Deployment Hook,Release HookorWiki Page Hook.
Reference the payload downstream by expression, for example {{ $json.body.project.path_with_namespace }} or {{ $json.body.object_attributes.state }}.
Deliveries for hook types you did not select are acknowledged with 200 but do not start the workflow, so GitLab does not retry them. Deliveries whose secret token does not match are rejected with 401.
Usage Examples
- Start a CI/CD workflow when code is pushed to a GitLab repository
- Notify a Slack channel when a merge request is opened or merged
- Track issue creation and updates in GitLab projects
- Monitor pipeline status changes for deployment automation
- Trigger a build when a new tag is pushed to GitLab
Example Configuration
Start a build on every push to a project:
{
"type": "gitlab_trigger",
"parameters": {
"owner": "my-group",
"repository": "my-project",
"events": ["push"]
}
}
Watch merge requests and issues in a subgroup project:
{
"type": "gitlab_trigger",
"parameters": {
"owner": "my-group/platform",
"repository": "api-service",
"events": ["merge_requests", "issues", "note"]
}
}
React to pipeline and job status changes:
{
"type": "gitlab_trigger",
"parameters": {
"owner": "my-group",
"repository": "my-project",
"events": ["pipeline", "job", "deployment"]
}
}
Subscribe to every GitLab event type:
{
"type": "gitlab_trigger",
"parameters": {
"owner": "my-group",
"repository": "my-project",
"events": ["*"]
}
}
Trigger Behavior
- Activation: When the workflow is activated, a webhook endpoint is registered with the service.
- Deactivation: The webhook is automatically unregistered when the workflow is deactivated.
- Payload: The incoming webhook payload is parsed and output as workflow items.
- Verification: Supports signature verification where applicable.
Tips
Configure the GitLab Trigger by providing your repository owner and name, then select which events to listen for. When activated, a webhook is registered in your GitLab project. Incoming events are forwarded to your workflow for processing.
Frequently asked questions
What GitLab events can this node listen for?
The node supports a broad range of GitLab events including pushes, merge requests, issues, pipeline status changes, comments, deployments, releases, tags, and wiki page changes. You select which events to listen for when configuring the node — only the events you choose will fire your workflow.
Does the node register the webhook in GitLab automatically, or do I have to do that manually?
It registers automatically. When the workflow is activated, the GitLab Trigger uses your GitLab API credentials to create a webhook in the specified project. You do not need to visit GitLab's webhook settings yourself — though you should ensure the API token has sufficient permissions to manage webhooks on that project.
What credentials does this node require?
It requires GitLab API credentials (credential type: gitlabApi). You'll need an access token scoped with at minimum webhook management and repository read permissions for the project you want to monitor.
How do I tell the node which repository to watch?
During configuration you provide the repository owner (user or group namespace) and the repository name. Together these identify the exact GitLab project where the webhook will be registered.
What does the output of this node look like?
The node has a single Output that carries the normalized GitLab webhook payload. GitLab sends a POST request when an event fires, and the node formats that payload for use in subsequent workflow nodes — so you can reference event data like commit authors, merge request titles, or pipeline statuses directly without extra parsing steps.
Build with the GitLab Trigger node
Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need GitLab API credentials first.
Open BusyBotLast updated . Spotted something wrong? Tell us.