Integration
Connect GitLab and Gmail
When New Code Snippet Comment fires in GitLab, your agent runs Add Label To Email in Gmail, or New Gmail Message in Gmail to Add Note to Issue in GitLab. Describe the whole flow and it is built, tested on every scenario and kept running.
What the catalog holds today. Ask for anything missing and your agent reads the API documentation and adds it.
Build solutions, not workarounds.
What do you want GitLab and Gmail to do together?
Ask the assistant
Connect your AI client
Give your AI client this address.
https://mcp.apiant.aiOne connection does both: ask your client to act in an app once, or have it build an automation that keeps running. Any client that takes a remote MCP server. Nothing to install. Create your free account, then sign in once in your browser.
Set it up in your client
Claude Code
Run this in the directory you want to work in.
claude mcp add --transport http -s project apiant-ai https://mcp.apiant.aiStart Claude Code there, approve the server, and sign in in the browser page it opens.
Claude Code guide (opens in a new tab)Claude, web and desktop
Open Customize, then Connectors, then Add custom connector, and paste the address. On Team and Enterprise an owner adds it first.
Setup guide (opens in a new tab)Cursor
Add the address to your MCP configuration as a server URL. Cursor signs you in in your browser.
Setup guide (opens in a new tab)Zed
Open Settings, then AI, then MCP Servers, then Add Server, then Add Remote Server.
Setup guide (opens in a new tab)Codex and the ChatGPT desktop app
Open Settings, then MCP servers, then Add server, and choose Streamable HTTP. From the terminal, Codex takes the address with its own add command and then signs you in.
Setup guide (opens in a new tab)Any other MCP client
Paste the address where the client asks for a remote MCP server URL, and name the server apiant-ai where it lets you. APIANT's skills reach the client over the same connection.
Setup guide (opens in a new tab)Example flows
What GitLab and Gmail can do together
From GitLab to Gmail
When New Code Snippet Comment in GitLab
then Add Label To Email in Gmail
When New Commit in GitLab
then Create Email Draft in Gmail
From Gmail to GitLab
When New Gmail Message in Gmail
then Add Note to Issue in GitLab
When Email Sent in Gmail
then Create Issue in GitLab
Starting points drawn from the triggers and actions in the catalog today. Describe the flow you need, at any depth, and your agent builds it and tests every scenario before it ships.
Everything your agent can do with GitLab and Gmail
Triggers and actions 23 triggers · 103 actions
Trigger
Deployment Event (instant)Fires on a deployment status change (deployment_events).
Trigger
New Code Snippet CommentTriggers when a new comment is made on a code snippet in the selected project
Trigger
New CommitTriggers when a new commit is pushed to a GitLab project's repository.
Trigger
New Commit CommentTriggers when a new comment is made on a commit in the selected project
Trigger
New Group Issue EventTriggers on group issue events, e.g. when an issue is opened, updated, or closed.
Trigger
New Group Merge Request EventTriggers on an open, merge, close, or update merge request event.
Trigger
New IssueTriggers when a new issue is created in a GitLab project.
Trigger
New Issue CommentTriggers when a new comment is made on an issue in the selected project
Trigger
New Job EventTriggers for a specified job event in a project.
Trigger
New Merge RequestTriggers when a new merge request is opened in a GitLab project.
Trigger
New Merge Request CommentTriggers when a new comment is made on a merge request in the selected project
Trigger
New PipelineTriggers when a new CI/CD pipeline is created in a GitLab project.
Trigger
New ProjectTriggers when a new GitLab project is created that the connected user can see.
Trigger
New Project Issue EventTriggers on project issue events, e.g. when an issue is opened, updated, or closed.
Trigger
New Project Merge Request EventTriggers on an open, merge, close, or update merge request event.
Trigger
New ReleaseTriggers when a new release is created in a GitLab project.
Trigger
New Release (instant)Fires when a release is created or updated (releases_events).
Trigger
New TagTriggers when a new tag is added to a GitLab project's repository.
Trigger
New Tag (instant)Fires when a tag is pushed (tag_push_events).
Trigger
Pipeline Event (instant)Fires on a pipeline status change (pipeline_events).
Trigger
Wiki Page Event (instant)Fires when a wiki page is created or updated (wiki_page_events).
Action
Accept Merge RequestMerges an open merge request into its target branch, optionally squashing commits, deleting the source branch, or setting it to merge automatically once checks pass.
Action
Add Comment to CommitAdds a comment to a commit in a GitLab project, optionally on a specific line of a file.
Action
Add Note to IssueAdds a comment to an issue in a GitLab project.
Action
Add Note to Merge RequestAdds a comment to a merge request in a GitLab project.
Action
Add Note to SnippetAdds a comment to a project snippet in GitLab and returns the created comment.
Action
Approve Merge RequestApproves a merge request as the connected GitLab user and returns the merge request's updated approval state.
Action
Cancel PipelineCancels all running and pending jobs in a GitLab pipeline and returns the pipeline with its updated status.
Action
Create BranchCreates a new branch in a GitLab project's repository from an existing branch or commit.
Action
Create CommitCreates a commit on a branch of a GitLab project, applying a batch of file changes (create, update, delete, move, chmod).
Action
Create FileCreates a new file in a GitLab project's repository by committing it to a branch.
Action
Create IssueCreates a new issue in a GitLab project, with optional description, labels, assignees, milestone and due date.
Action
Create LabelCreates a label in a GitLab project with the name and color you choose.
Action
Create Merge RequestCreates a new merge request in a GitLab project from a source branch to a target branch.
Action
Create MilestoneCreates a milestone in a GitLab project, with an optional description, start date and due date.
Action
Create PipelineStarts a new CI/CD pipeline on a branch or tag of a GitLab project, optionally with pipeline variables and inputs.
Action
Create ProjectCreates a new GitLab project in your personal namespace or in a group you choose.
Action
Create ReleaseCreates a release in a GitLab project from an existing tag, or from a branch or commit that is tagged as part of the release.
Action
Create SnippetCreates a personal snippet with a title and one file of content in your GitLab account.
Action
Create TagCreates a new Git tag in a GitLab project pointing at a branch, commit or existing tag. Add a message to make it an annotated tag.
Action
Create Wiki PageCreates a new wiki page in a GitLab project with the given title and content.
Action
Delete BranchDeletes a branch from a GitLab project's repository. The default branch and protected branches cannot be deleted.
Action
Delete FileDeletes a file from a GitLab project's repository by committing its removal to a branch.
Action
Delete IssueDeletes an issue from a GitLab project. Only administrators and project owners can delete issues.
Action
Delete TagDeletes a tag from a GitLab project's repository.
Action
Find Group Merge RequestsReturns merge requests across a GitLab group and its subgroups, filtered by state, author, assignee, reviewer, labels, milestone, branch, dates or search text.
Action
Find Project Merge RequestsFinds merge requests in a GitLab project, filtered by text search, state, author, assignee, reviewer, labels, branches, dates and more.
Action
Find ProjectsFinds GitLab projects whose name, path or description matches your search text, optionally narrowed by membership, ownership, visibility, topic and activity dates.
Action
Find UserFinds GitLab users by username, public email, or a name/username/email search, with optional filters on account state and type.
Action
Get BranchReturns a repository branch in a GitLab project, including its protection status, merge status and latest commit.
Action
Get CommitReturns a single commit from a project's repository, identified by its SHA or by a branch or tag name, including stats and the latest pipeline.
Action
Get FileReturns a file from a GitLab repository, including its name, size, commit details and Base64-encoded content.
Action
Get GroupReturns the details of a GitLab group, such as its name, path, visibility and parent group.
Action
Get IssueReturns a single issue in a GitLab project, including its title, description, state, labels, assignees and milestone.
Action
Get JobReturns a single CI/CD job in a GitLab project, including its status, stage, pipeline, commit and runner details.
Action
Get Merge RequestReturns a single merge request in a GitLab project, including its state, branches, author, reviewers and pipeline.
Action
Get Merge Request ApprovalsReturns the approval state of a merge request: whether it is approved, who approved it, and how many approvals are still required.
Action
Get PipelineReturns a single CI/CD pipeline in a project, including its status, ref, commit, timing and who triggered it.
Action
Get ProjectReturns a single GitLab project by its ID or full path, including its settings, visibility and links.
Action
Get ReleaseReturns a project's release for the given Git tag, including its description, commit, milestones and assets.
Action
Get SnippetReturns a personal snippet by its ID, including its title, file name, visibility, author and links.
Action
Get Snippet NoteReturns a single comment (note) posted on a project snippet.
Action
Get Wiki PageReturns a wiki page from a GitLab project, including its title, content and format.
Action
List BranchesReturns the branches in a GitLab project's repository, sorted by name, optionally filtered by a search term or regular expression.
Action
List Commit CommentsReturns the comments left on a commit in a GitLab project.
Action
List CommitsReturns the commits in a GitLab project's repository, optionally filtered by branch, author, file path or date range.
Action
List GroupsReturns the GitLab groups visible to the connected user, optionally filtered by name, visibility, ownership or access level.
Action
List LabelsReturns the labels defined for a GitLab project, optionally filtered by keyword and including issue and merge request counts.
Action
List MilestonesReturns the milestones of a GitLab project, optionally filtered by state, title, search text or dates.
Action
List PipelinesReturns the pipelines in a GitLab project, optionally filtered by branch, status, commit, date range or user.
Action
List Project JobsReturns the CI/CD jobs in a project, newest first, optionally filtered to one job status such as success or failed.
Action
List Project MembersReturns the direct members of a GitLab project, optionally filtered by name, email or username.
Action
List ReleasesReturns the releases of a GitLab project, newest first by release date.
Action
List TagsReturns the Git tags in a GitLab project's repository, optionally filtered by name and sorted.
Action
Retry JobRetries a single CI/CD job in a GitLab project and returns the new job that was queued.
Action
Retry PipelineRetries the failed or canceled jobs in a GitLab pipeline and returns the updated pipeline.
Action
Update FileUpdates the content of an existing file in a GitLab repository by committing the change to a branch.
Action
Update IssueUpdates an existing issue in a GitLab project, including closing or reopening it, changing its title, description, labels, assignees, milestone or dates.
Action
Update Merge RequestUpdates an existing merge request in a GitLab project — title, description, assignees, reviewers, labels, milestone, target branch or state.
Action
Update MilestoneUpdates a project milestone's title, description, dates, or open/closed state.
Action
Update ProjectUpdates an existing GitLab project's name, description, visibility, default branch, topics, merge settings and feature visibility. Returns the updated project.
Action
Update ReleaseUpdates an existing release's name, description, milestones or release date in a GitLab project.
Action
Update Wiki PageUpdates the title, content or format of an existing wiki page in a GitLab project.
Trigger
Email SentFires when an email is sent from the mailbox (optionally filtered by query).
Trigger
New Gmail MessageFires when a new email arrives (optionally filtered by query/labels).
Action
Add Label To EmailAdds and/or removes specified gmail labels for a message; ensure `message id` and all `label ids` are valid (use 'listlabels' for custom label ids).
Action
Batch Delete MessagesTool to permanently delete multiple Gmail messages in bulk, bypassing Trash with no recovery possible. Use when you need to efficiently remove large numbers of emails (e.g., retention enforcement, mailbox hygiene). Use GMAIL_MOVE_TO_TRASH instead when reversibility may be needed. Always obtain explicit user confirmation and verify a sample of message IDs before executing. High-volume calls may trigger 429 rateLimitExceeded or 403 userRateLimitExceeded errors; apply exponential backoff.
Action
Batch Modify MessagesModify labels on multiple Gmail messages in one efficient API call. Supports up to 1,000 messages per request for bulk operations like archiving, marking as read/unread, or applying custom labels. High-volume calls may return 429 rateLimitExceeded or 403 userRateLimitExceeded; apply exponential backoff.
Action
Create Email DraftCreates a gmail email draft, supporting to/cc/bcc, subject, plain/html body (ensure `is html=true` for html), attachments, and threading.
Action
Create LabelCreates a new label with a unique name in the specified user's gmail account.
Action
Delete DraftPermanently deletes a specific gmail draft using its id; ensure the draft exists and the user has necessary permissions for the given `user id`.
Action
Delete LabelPermanently DELETES a user-created Gmail label from the account (not from a message). WARNING: This action DELETES the label definition itself, removing it from all messages. System labels (INBOX, SENT, UNREAD, etc.) cannot be deleted. To add/remove labels from specific messages, use GMAIL_ADD_LABEL_TO_EMAIL action instead.
Action
Delete MessagePermanently deletes a specific email message by its id from a gmail mailbox; for `user id`, use 'me' for the authenticated user or an email address to which the authenticated user has delegated access.
Action
Delete ThreadTool to immediately and permanently delete a specified thread and all its messages. This operation cannot be undone. Use threads.trash instead for reversible deletion.
Action
Fetch EmailsFetches a list of email messages from a gmail account, supporting filtering, pagination, and optional full content retrieval.
Action
Fetch Message By Message IdFetches a specific email message by its id, provided the `message id` exists and is accessible to the authenticated `user id`.
Action
Fetch Message By Thread IdRetrieves messages from a gmail thread using its `thread id`, where the thread must be accessible by the specified `user id`.
Action
Forward MessageForward an existing Gmail message to specified recipients, preserving original body and attachments. Verify recipients and content before forwarding to avoid unintended exposure. Bulk forwarding may trigger 429/5xx rate limits; keep concurrency to 5–10 and apply backoff. Messages near Gmail's size limits may fail; reconstruct a smaller draft if needed.
Action
Get AttachmentRetrieves a specific attachment by id from a message in a user's gmail mailbox, requiring valid message and attachment ids.
Action
Get ContactsFetches contacts (connections) for the authenticated google account, allowing selection of specific data fields and pagination.
Action
Get DraftRetrieves a single Gmail draft by its ID. Use this to fetch and inspect draft content before sending via GMAIL_SEND_DRAFT. The format parameter controls the level of detail returned.
Action
Get FilterTool to retrieve a specific Gmail filter by its ID. Use when you need to inspect the criteria and actions of an existing filter.
Action
Get LabelGets details for a specified Gmail label. Use this to retrieve label information including name, type, visibility settings, message/thread counts, and color.
Action
Get PeopleRetrieves either a specific person's details (using `resource name`) or lists 'other contacts' (if `other contacts` is true), with `person fields` specifying the data to return.
Action
Get ProfileRetrieves key gmail profile information (email address, message/thread totals, history id) for a user.
Action
Import MessageTool to import a message into the user's mailbox with standard email delivery scanning and classification. Use when you need to add an existing email to a Gmail account without sending it through SMTP. This method doesn't perform SPF checks, so it might not work for some spam messages.
Action
Insert MessageTool to insert a message into the user's mailbox similar to IMAP APPEND. Use when you need to add an email directly to a mailbox bypassing most scanning and classification. This does not send a message.
Action
List DraftsRetrieves a paginated list of email drafts from a user's gmail account. use verbose=true to get full draft details including subject, body, sender, and timestamp.
Action
List HistoryTool to list Gmail mailbox change history since a known startHistoryId. Use for incremental mailbox syncs. Persist the latest historyId as a checkpoint across sessions; without it, incremental sync is unreliable. An empty history list in the response is valid and means no new changes occurred.
Action
List LabelsRetrieves a list of all system and user-created labels for the specified gmail account.
Action
List Smime InfoLists S/MIME configs for the specified send-as alias. Use when you need to retrieve all S/MIME certificate configurations associated with a specific send-as email address.
Action
List ThreadsRetrieves a list of email threads from a gmail account, identified by `user id` (email address or 'me'), supporting filtering and pagination.
Action
Modify Thread LabelsAdds or removes specified existing label ids from a gmail thread, affecting all its messages; ensure the thread id is valid.
Action
Move Thread To TrashMoves the specified thread to the trash. Any messages that belong to the thread are also moved to the trash.
Action
Move To TrashMoves an existing, non-deleted email message to the trash for the specified user.
Action
Patch LabelPatches the specified label.
Action
Remove LabelPermanently deletes a specific, existing user-created gmail label by its id for a user; cannot delete system labels.
Action
Reply To ThreadSends a reply within a specific gmail thread using the original thread's subject, requiring a valid `thread id` and correctly formatted email addresses. supports attachments via the `attachment` parameter with valid `s3key`, `mimetype`, and `name`.
Action
Search PeopleSearches contacts by matching the query against names, nicknames, emails, phone numbers, and organizations, optionally including 'other contacts'.
Action
Send DraftSends the specified, existing draft to the recipients in the to, cc, and bcc headers.
Action
Send EmailSends an email via gmail api using the authenticated user's google profile display name, requiring `is html=true` if the body contains html and valid `s3key`, `mimetype`, `name` for any attachment.
Action
Settings Send As GetTool to retrieve a specific send-as alias configuration for a Gmail user. Use when you need to get details about a send-as email address including display name, signature, SMTP settings, and verification status. Fails with HTTP 404 if the specified address is not a member of the send-as collection.
Action
Untrash MessageTool to remove a message from trash in Gmail. Use when you need to restore a previously trashed email message.
Action
Untrash ThreadTool to remove a thread from trash in Gmail. Use when you need to restore a deleted thread and its messages.
Action
Update DraftUpdates (replaces) an existing Gmail draft's content in-place by draft ID. This action replaces the entire draft content with the new message - it does not patch individual fields. All fields are optional; if not provided, you should provide complete draft content to avoid data loss.
Action
Update LabelTool to update the properties of an existing Gmail label. Use when you need to modify label name, visibility settings, or color.
No trigger or action matches that. Ask your agent to add it: it reads the API documentation and builds what you describe.
Each app on its own
Reviews
What our customers say
More from GitLab
GitLab to HubSpotHubSpot is your all-in-one stop for all of your marketing software needs.
GitLab to SalesforceSalesforce is a leading enterprise customer relationship management (CRM) platform.
GitLab to SlackSlack is a messaging platform for teams. Post messages, manage channels, users, reminders, and react to...
GitLab to Google SheetsGoogle Sheets
GitLab to Google CalendarGoogle Calendar is a time management tool providing scheduling features, event reminders, and integration...
GitLab to Google DriveGoogle Drive is a cloud storage solution for uploading, sharing, and collaborating on files across devices...
More into Gmail
Slack to GmailSlack is a messaging platform for teams. Post messages, manage channels, users, reminders, and react to...
Google Drive to GmailGoogle Drive is a cloud storage solution for uploading, sharing, and collaborating on files across devices...
Mailchimp to GmailMailchimp marketing automation and email platform.
Stripe to GmailStripe is a payment processing platform for online businesses.
Shopify to GmailShopify is a commerce platform for online stores and retail point-of-sale.
ActiveCampaign to GmailActiveCampaign is a marketing automation, email marketing, and CRM platform.
Questions
GitLab and Gmail, answered
What can start an automation from GitLab?
Any of GitLab's 21 triggers in the catalog, including New Code Snippet Comment, New Commit, New Commit Comment and New Group Issue Event. Describe the moment in plain language and your agent picks the right one.
What can your agent do in Gmail when something happens in GitLab?
Any of Gmail's 41 actions, including Create Email Draft, Create Label, Send Draft and Send Email. Your agent maps the data both ways and tests every scenario before it ships.
Can it also run from Gmail to GitLab?
Yes. When something happens in Gmail, your agent can act in GitLab too. This page covers both directions: Gmail's triggers and GitLab's actions are listed here as well.
Do I have to build a connector for GitLab or Gmail?
No. Both are in the catalog with their triggers and actions. You describe the automation; your agent builds it, tests every scenario and keeps it running.
Can my AI client use GitLab and Gmail without building an automation?
Yes. With your AI client connected to APIANT, ask it to do something in either app once and it runs that action on the spot. Ask for an automation and your agent builds it, tests every scenario and keeps it running. One connection covers both.
What happens when something fails?
Your agent works that out for you. It plans the failure paths along with the happy path, then tests every scenario before it ships.
Is there a free plan?
Yes. Every plan includes the agent, including free, and building from your own AI client spends no assistant credits.