Result: By the end of this guide you'll have a ready-to-run n8n workflow that triages an email inbox, enriches leads, and creates a Slack notification - all without writing a line of custom code. The same pattern can be duplicated for the other 19 ideas on the list, giving you a toolbox of proven ai automation ideas you can start deploying today.
What you need
| Tool | Plan / Price* | Role |
|---|---|---|
| n8n (self-hosted Docker) | Free (open-source) - see n8n docs for optional paid cloud | Orchestrates triggers, API calls, and data routing |
| OpenAI GPT-4o (or latest model) | Pay-as-you-go - check OpenAI pricing page for current per-token rates | Generates email summaries, reply drafts, and data enrichment prompts |
| Google Gemini API | Pay-as-you-go - check Google AI pricing page for current per-token rates | Alternative LLM for multilingual tasks or lower-cost summarisation |
| Slack workspace (incoming webhook) | Free tier available - check Slack pricing for paid workspaces | Destination for triage notifications |
| Gmail (or Microsoft 365) account | Free or paid plan - use existing corporate mailbox | Source of inbound emails |
| PostgreSQL (Docker) | Free (self-hosted) - optional managed service if preferred | Persistent storage for processed tickets |
| Docker Engine (≥ 20.10) | Free - install from docker.com | Runtime for n8n and PostgreSQL containers |
\*Pricing details change frequently; always verify the latest rates on the provider's official pricing page.
Estimated build time: 2 hours for the inbox-triage prototype; an additional 30 minutes per subsequent automation once the core flow is cloned.
20 ai automation ideas ranked by demand & difficulty
Below is a quick-scan table you can use to pick the next project after you finish the inbox triage example. Demand reflects what we see most businesses requesting on consulting calls in 2026; difficulty is based on the amount of LLM prompting, external API integration, and state handling required.
| # | Automation | Demand | Difficulty | One-sentence summary |
|---|---|---|---|---|
| 1 | Inbox triage | High | Easy | Summarise, categorise, and route incoming emails automatically. |
| 2 | Lead enrichment | High | Medium | Pull LinkedIn/company data, append to a CRM record. |
| 3 | Content repurposing | High | Medium | Turn a blog post into a tweet thread, LinkedIn carousel, and short video script. |
| 4 | Invoice OCR & entry | High | Hard | Extract totals from PDFs, validate, and insert into accounting software. |
| 5 | Review responder | Medium | Easy | Auto-draft replies to product reviews with sentiment-aware tone. |
| 6 | Customer onboarding | Medium | Medium | Guide new users through a multi-step checklist in Slack. |
| 7 | Data entry from web forms | Medium | Easy | Capture form data, enrich with geo-info, write to PostgreSQL. |
| 8 | Support ticket summariser | Medium | Medium | Generate TL;DR of long ticket threads for agents. |
| 9 | Meeting minutes generator | Medium | Hard | Transcribe Zoom recordings, summarise action items, post to Notion. |
| 10 | Social listening alerts | Low | Medium | Scan Twitter for brand mentions, summarise sentiment, send Slack alert. |
| 11 | HR resume scanner | Low | Hard | Parse resumes, score against a job description, rank candidates. |
| 12 | Inventory reorder predictor | Low | Hard | Forecast stock needs based on sales trends, create purchase orders. |
| 13 | Compliance document checker | Low | Hard | Scan policies for GDPR-related phrases, flag violations. |
| 14 | Employee pulse survey analyser | Low | Medium | Summarise free-text responses, surface common themes. |
| 15 | Dynamic pricing engine | Low | Hard | Adjust e-commerce prices in real-time based on competitor feeds. |
| 16 | Knowledge-base article writer | Low | Medium | Convert FAQs into full-length help articles. |
| 17 | Bug report classifier | Low | Easy | Tag incoming bug reports with severity and component. |
| 18 | Expense receipt parser | Low | Medium | OCR receipt images, extract amount, date, merchant. |
| 19 | Personalised email campaign generator | Low | Hard | Draft 10-segment email copy using past purchase data. |
| 20 | Voice-to-text meeting note taker | Low | Medium | Convert live conference call audio to structured notes. |
Key insight: 60 % of the high-demand automations (items 1-5) can be built with an Easy or Medium difficulty level, meaning you can deliver value quickly while you're still iterating on the harder use-cases.
The rest of this article walks you through the first item - Inbox triage - so you can clone the pattern for the remaining 19 ideas.
Building the inbox-triage automation with n8n
Below are the concrete steps to create a workflow that:
- Triggers on new Gmail messages.
- Uses an LLM (OpenAI or Gemini) to generate a concise summary and a suggested category (e.g.,
Support,Sales,Finance). - Writes the result to a PostgreSQL table for audit.
- Posts a formatted Slack message to the appropriate channel.
1. Spin up the n8n & PostgreSQL containers
What this does: Starts a local PostgreSQL instance and an n8n server that uses it for workflow persistence. You'll see the n8n UI at http://localhost:5678.
2. Create the Gmail trigger node
1. Open the n8n UI, click New Workflow. 2. Add a node → Gmail → select Watch Emails. 3. Authenticate with your corporate Gmail account (OAuth flow). If you prefer Microsoft 365, swap the node for Microsoft Outlook → Watch Emails.
Set the Label Filter to INBOX and leave Only Unread ticked so each message is processed once.
3. Call the LLM to summarise and categorise
Add a HTTP Request node right after Gmail. Configure it as follows:
| Field | Value |
|---|---|
| Method | POST |
| URL | https://api.openai.com/v1/chat/completions (or Gemini endpoint) |
| Authentication | Header Authorization: Bearer <YOUR_OPENAI_API_KEY> |
| Content Type | application/json |
| Body (JSON) | See code block below |
What this does: Sends the raw email text to the OpenAI API and asks for a brief JSON payload. The low temperature (0.2) makes responses deterministic, which is crucial for downstream routing.
4. Parse the LLM output
Add a Set node to extract summary and category fields from $json.choices[0].message.content. Use n8n's built-in JSON parse expression:
Map the resulting summary and category to new fields email_summary and email_category.
5. Write to PostgreSQL for audit
Add a PostgreSQL node:
- Operation: Insert
- Table:
email_triage - Columns:
message_id,subject,summary,category,processed_at
Create the table once (run this once in a psql console):
Map the node fields accordingly (message_id → {{$json.id}}, subject → {{$json.subject}}, etc.).
6. Post to the correct Slack channel
Add a Switch node that routes based on email_category. Create branches for each category and attach a Slack node (incoming webhook) with a custom payload:
Replace slackLinkify with a simple expression that builds a Gmail thread URL, e.g.,
Each branch uses a different webhook URL (one per channel). Save and activate the workflow.
7. Test the end-to-end flow
Send a test email to the watched Gmail address. Expect:
- n8n logs "New email detected".
- LLM response appears in the HTTP Request node preview.
- PostgreSQL row is inserted (verify with
SELECT * FROM email_triage LIMIT 5;). - Slack channel receives a nicely formatted message.
If any node errors, the UI will highlight the problematic step; click the node to view the raw error payload.
Where this breaks
| Failure mode | Symptom | Fix |
|---|---|---|
| OpenAI rate-limit (tokens per minute) | HTTP 429 "Rate limit exceeded" on the LLM node. | Implement an n8n Rate Limit node (or use Execute Workflow with a 1 second delay) to throttle calls. Monitor usage via the OpenAI dashboard and request a higher quota if needed. |
| Expired API keys | Authentication error 401 Invalid API key. | Store keys in n8n Environment Variables (OPENAI_API_KEY, SLACK_WEBHOOK_URL). When a key rotates, update the variable - no need to edit the workflow. |
| Gmail scope revocation | Node returns 403 Insufficient Permission. | Re-authenticate the Gmail credential and ensure the scope includes https://www.googleapis.com/auth/gmail.readonly. |
| SQL injection via email subject | Unexpected syntax error at or near in PostgreSQL node. | n8n automatically parameterises inserts, but avoid concatenating raw strings; always map fields to column inputs. |
| High LLM cost | Unexpected jump in monthly OpenAI bill. | Set a Maximum Execution Count per day in the workflow settings, or use a Function node to short-circuit non-critical emails (e.g., ignore newsletters). |
| Slack webhook rate-limit | Slack returns 429 Too Many Requests. | Use the Slack node's built-in retry and back-off, or batch multiple messages into a single payload. |
| Docker container restarts | Workflow stops after host reboot. | Add restart: always to your docker run commands or use a docker-compose.yml with restart policies. |
Pro tip: Keep a small log table (
triage_errors) that records any node failure payloads; this makes debugging production runs far less painful.
For a deeper technical reference, see n8n's documentation.