Ever wish you could catch important Gmail notifications right in Slack without stopping to check your inbox every five minutes? You’re not alone. With the right n8n JSON workflow for Gmail to Slack, you can set this up in minutes.
🔄 New to n8n? Start here with our intro to what n8n is and why it matters.
🤖 Not sure which automation type fits your needs? Check out our Low Code vs No Code automation guide.

How to Import the n8n JSON Workflow for Gmail to Slack
Follow these simple steps to get it working:
🔧 Step-by-Step Setup
- Grab the JSON Workflow
Use a pre-built Gmail-to-Slack n8n JSON template. You can use mine. The raw code is at the end of the post. - Import to n8n
In your n8n dashboard, click Import → paste or upload your JSON. You’ll see the workflow populate immediately. - Review the Nodes
- Gmail Trigger: Monitors new inbox messages.
- Filter Node: (Optional) Filter by sender, label, or subject.
- Slack Node: Sends a Slack message with parsed email info.
- Map Gmail Fields to Slack
Pull in email subject, sender, and snippet. Map them to Slack message content for fast updates. - Test the Setup
Send a test email. If it pings your Slack channel, you’re good to go.
⚡ I helped a friend get this set up in under 10 minutes. New client emails went straight into #sales-updates without ever opening Gmail.
Required Credentials
Here’s what you’ll need before anything works:
- n8n Cloud or self-hosted instance
- Gmail account with OAuth2 set up in n8n
- Slack webhook or app token with proper scopes
- Saved credentials in n8n’s credential vault
⚠️ Double-check your Slack API scopes—
chat:write
is a must.
Customization Tips
Once you’ve got the basics, here’s how to level it up:
- Change Slack Channels – Adjust the webhook URL or channel field.
- Refine Gmail Filters – Target only the emails that matter.
- Style Your Slack Messages – Add emojis, structure, and attachments.
- Add Branching Logic – Route different messages to different teams.
- Expand Integrations – Trigger other workflows like downloading files or updating dashboards.
Frequently Asked Questions
Can I use this with more than one Gmail account?
Yes. Duplicate the Gmail node and set separate credentials.
Slack messages not showing up?
Check the webhook URL and make sure your Slack app has the right scopes.
How do I filter only important emails?
Use Gmail search filters (sender, label, subject) in the trigger node.
Is this connection secure?
Yes. OAuth2 handles auth, and n8n encrypts credentials. Just secure your instance.
What API scopes are needed?
Gmail: readonly
or full access
Slack: At minimum, chat:write
Maximizing Your Gmail to Slack Automation
Once this is humming, your team gets faster visibility into key messages—and fewer inbox refreshes.
You’ll likely customize the logic as you go. Every tweak saves time, removes bottlenecks, and makes notifications more meaningful.
Want to keep building? Explore connections between Slack, Trello, Google Drive, or custom APIs using n8n’s modular workflow system.
Bottom line: n8n’s Gmail to Slack automation gives you real-time updates exactly where your team lives. Try it out, make it yours, and start automating like you mean it.
{
"name": "Gmail to Slack Notification",
"nodes": [
{
"parameters": {
"labelIds": [],
"format": "metadata",
"includeSpamTrash": false
},
"id": 1,
"name": "Gmail Trigger",
"type": "n8n-nodes-base.gmailTrigger",
"typeVersion": 1,
"position": [300, 300],
"credentials": {
"gmailOAuth2Api": {
"id": "your-gmail-credentials-id",
"name": "Gmail account name"
}
}
},
{
"parameters": {
"httpMethod": "POST",
"url": "https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK",
"options": {},
"bodyParametersUi": {
"parameter": [
{
"name": "text",
"value": "=📬 *New Email Received!*\nFrom: {{$json[\"payload\"][\"headers\"][\"From\"] || 'Unknown'}}\nSubject: {{$json[\"payload\"][\"headers\"][\"Subject\"] || 'No Subject'}}"
}
]
}
},
"id": 2,
"name": "Send to Slack",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 1,
"position": [600, 300]
}
],
"connections": {
"Gmail Trigger": {
"main": [
[
{
"node": "Send to Slack",
"type": "main",
"index": 0
}
]
]
}
},
"active": false
}
Leave a Reply