Gmail to Slack, inbox triage your team can trust
Important emails don’t get “missed.” They get buried. A customer replies inside a long thread, a lead asks for pricing, someone flags an incident, and it all lands in the same inbox where it competes with newsletters and FYIs.
If you run customer support, you feel this daily. Sales teams feel it when hot leads cool off. And ops folks end up as the human router. This Gmail Slack triage automation pushes the right email to the right place, fast, with a summary your team can act on.
You’ll set up a workflow that watches Gmail, uses AI to classify and prioritize messages, then posts a clean Slack alert to the best channel. You’ll also learn what to customize so it matches how your team actually works.
How This Automation Works
Here’s the complete workflow you’ll be setting up:
n8n Workflow Template: Gmail to Slack, inbox triage your team can trust
flowchart LR
subgraph sg0["Trigger on Unread Email Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Trigger on Unread Email", pos: "b", h: 48 }
n1@{ icon: "mdi:message-outline", form: "rounded", label: "Get Email", pos: "b", h: 48 }
n2@{ icon: "mdi:robot", form: "rounded", label: "AI Agent", pos: "b", h: 48 }
n3@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n4@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser", pos: "b", h: 48 }
n5@{ icon: "mdi:swap-vertical", form: "rounded", label: "Routing Map", pos: "b", h: 48 }
n6["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/slack.svg' width='40' height='40' /></div><br/>Send Notification to Slack"]
n2 --> n5
n2 -.-> n4
n2 -.-> n3
n1 --> n2
n5 --> n6
n0 --> n1
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0 trigger
class n2,n4 ai
class n3 aiModel
classDef customIcon fill:none,stroke:none
class n6 customIcon
Why This Matters: Email Triage Breaks at Scale
Manual triage is one of those jobs that looks small until you live inside it. You open an email, skim for intent, decide who needs it, then copy details into Slack (or worse, forward it and hope). Do that for 30 to 50 emails a day and you’re not just losing time. You’re losing momentum. The real cost shows up later: a “quick question” turns into a churn risk, a sales thread goes cold, and urgent issues hide in plain sight because they looked like every other message in the inbox.
It adds up fast. Here’s where it breaks down in real teams.
- You read the same email twice because you didn’t route it the first time.
- Forwarding or pasting into Slack strips context, so handoffs become a back-and-forth scavenger hunt.
- Priority is inconsistent because “urgent” depends on who checked the inbox that hour.
- When the inbox gets busy, the easiest emails get handled first, not the most important ones.
What You’ll Build: Gmail-to-Slack Triage With AI Summaries
This workflow acts like an always-on inbox coordinator. It watches your Gmail inbox for unread messages, pulls the full email details, and sends the content to an AI model for classification. Instead of spitting out vague advice, the AI returns structured fields you can rely on: category, priority, a short summary, and the sender. Then the workflow uses your routing rules to choose the right Slack channel for that category, and posts a message that’s easy to scan. Your team sees what matters, where it belongs, and what to do next, without someone babysitting the inbox.
The workflow starts with Gmail polling for new unread emails. After AI classifies the message, a simple routing map chooses the Slack destination and formatting. Finally, Slack receives a clean alert that keeps threads visible and handoffs crisp.
What You’re Building
| What Gets Automated | What You’ll Achieve |
|---|---|
|
|
Expected Results
Say your shared inbox gets about 40 new emails on a weekday. Manually triaging each one (skim, decide, paste into Slack, add a quick note) is maybe 2 minutes per email, so roughly 80 minutes a day. With this workflow, you spend close to 5 minutes setting the routing once, then the daily “triage time” becomes a quick Slack scan plus responding where needed. The AI and routing run in the background while your team stays focused.
Before You Start
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Gmail for monitoring unread inbox messages.
- Slack to post alerts into specific channels.
- OpenAI API key (get it from your OpenAI dashboard).
Skill level: Beginner. You’ll connect accounts, paste an API key, and edit a simple routing map.
Want someone to build this for you? Talk to an automation expert (free 15-minute consultation).
Step by Step
Gmail checks for unread messages. The workflow runs on a schedule (you choose how often) and looks for new unread emails in the inbox you connect.
The full email content is retrieved. Instead of routing based on a subject line guess, it fetches the details needed for a solid classification, like sender and the message body.
AI classifies and returns structured fields. OpenAI reviews the email and outputs JSON that includes category, priority, and a short summary that’s meant to be read in Slack. The structured parser keeps the format reliable, which matters when you’re routing on it.
Slack gets the right alert in the right channel. A routing map converts the AI category into a Slack channel, then posts a message your team can skim quickly and act on without opening Gmail first.
You can easily modify the category list and routing rules to match your internal queues and escalation paths. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Gmail Trigger
Set up the trigger so the workflow starts when new unread emails arrive.
- Add the Unread Email Watcher node as your trigger.
- Set Read Status to
unread. - Set Poll Times to
everyMinute. - Credential Required: Connect your Gmail credentials.
Step 2: Connect Gmail and Retrieve Message Details
Fetch the full email details needed for routing and summarization.
- Add the Retrieve Email Details node and connect it to Unread Email Watcher.
- Set Operation to
get. - Set Message ID to
={{ $json.id }}. - Credential Required: Connect your Gmail credentials.
Step 3: Set Up the AI Email Routing
Use AI to classify emails and produce a structured routing result.
- Add the Email Routing Assistant node and connect it to Retrieve Email Details.
- Set Prompt Type to
defineand Text to the full prompt provided in the workflow, including the expressions for{{$json.from?.value?.[0]?.address || $json.from?.email || ''}},{{$json.subject || $json.headers?.subject || $json.subject}}, and{{$json.textPlain || $json.text || ''}}. - Attach OpenAI Chat Engine as the language model and set Model to
gpt-4o-mini. - Attach Structured Result Parser as the output parser and keep Schema Type as
manualwith the provided JSON schema. - Credential Required: Connect your OpenAI credentials in OpenAI Chat Engine.
Step 4: Configure Slack Routing and Alerts
Map the AI category to a Slack user/channel and send an alert.
- Add Category Routing Map and connect it to Email Routing Assistant.
- Create a label assignment with the value
={{ $json.output.category === 'sales_pre_purchase' ? 'Sales' : $json.output.category === 'support_technical' ? 'Support' : $json.output.category === 'billing_refund' ? 'Billing' : 'Complaint' }}. - Create a slackChannel assignment with the value
={{ $json.output.category === 'sales_pre_purchase' ? '[YOUR_ID]' : $json.output.category === 'support_technical' ? '[YOUR_ID]' : $json.output.category === 'billing_refund' ? '[YOUR_ID]' : '[YOUR_ID]' }}and replace the placeholders with real Slack IDs. - Add Dispatch Slack Alert and connect it to Category Routing Map.
- Set Select to
userand User to={{ $json.slackChannel }}. - Set Text to
=Priority: {{$json.output.priority}} From: {{ $json.output.from }} Summary: {{ $json.output.summary }} Reason: {{ $json.output.reason }}. - Credential Required: Connect your Slack OAuth2 credentials.
[YOUR_ID] placeholders will cause Slack messages to fail—replace each with a valid Slack user or channel ID.Step 5: Test and Activate Your Workflow
Validate the end-to-end flow before enabling production runs.
- Click Execute Workflow and send a test unread email to the connected Gmail inbox.
- Verify Retrieve Email Details outputs the full message content and headers.
- Confirm Email Routing Assistant returns a structured JSON output in Structured Result Parser.
- Check that Dispatch Slack Alert posts a message with the correct priority, summary, and reason.
- Once successful, toggle the workflow to Active for continuous monitoring.
Troubleshooting Tips
- Gmail credentials can expire or need specific permissions. If things break, check the Gmail node’s OAuth connection status in n8n first.
- If you increase Gmail polling frequency, you may hit rate limits or process duplicates if your “unread” rules are messy. Confirm your Gmail trigger query and test with a small batch.
- Default prompts in AI nodes are generic. Add your brand voice and your real categories early or you’ll be editing outputs forever.
Quick Answers
About 30 minutes if your Gmail and Slack accounts are ready.
No. You’ll connect Gmail and Slack, then edit a routing map. The “logic” is mostly just categories and channel choices.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in OpenAI API costs, which are usually a few cents per day for typical inbox volume.
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, and you should. Most teams start by editing the AI Agent prompt and the Structured Result Parser schema so categories match their queues (billing, bugs, cancellations, partnerships). Then update the “Category Routing Map” values to point to different Slack channel IDs. You can also tweak the Slack message formatting to include mentions (like @support-lead) when priority is high.
Usually it’s expired Slack OAuth credentials or a missing permission to post into that channel. Reconnect Slack in n8n, then confirm the channel ID is correct and that your app is allowed to post there.
For most small teams, hundreds of emails per day is fine as long as your polling interval and OpenAI usage are reasonable. If you self-host n8n, you’re mostly limited by your server and API rate limits. On n8n Cloud, plan limits depend on executions per month, so check your expected inbox volume before you pick a tier.
Often, yes, because this kind of workflow benefits from structured AI output, branching logic, and tighter control over how routing maps work. n8n also gives you a self-host option, which is useful when you want unlimited runs without per-task pricing surprises. Zapier or Make can still be fine for a simple “email to Slack” forward, but the moment you want consistent categories and priority tagging, you’ll feel the limits. If you’re torn, pick the tool your team will actually maintain. Talk to an automation expert and we’ll help you choose quickly.
Once this is running, inbox triage stops being a daily fire drill. The workflow handles the sorting and summarizing so your team can respond, not hunt.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.