n8n automation ideas: 13 workflows to build, with the nodes each one uses
Good n8n automations are small, run on a trigger and end in a message or a row someone reads. Start with a central error handler, a daily feed digest and a form that writes to a spreadsheet. Then add AI steps such as an inbox classifier or a receipt extractor, and business flows such as an invoice chaser or a payment-failure alert. Below are 13, each with the trigger, the nodes in order, a first version and the part that usually breaks.
What are the building blocks of an n8n workflow?
An n8n workflow is a chain of nodes. One trigger node starts it, and the nodes after it receive a list of items, change them and pass them on. Knowing which node family does which job makes every idea below easier to plan. The names in the table are the ones in the n8n documentation.
| Job | Nodes | Use them when |
|---|---|---|
| Start the workflow | Schedule Trigger, Webhook, n8n Form, Gmail Trigger, Telegram Trigger, Stripe Trigger, Error Trigger | Something happens, or a clock says it is time |
| Decide | If, Switch, Filter | Items should take different paths or be dropped |
| Shape data | Edit Fields (Set), Aggregate, Date & Time, Merge, Code | Fields need renaming, grouping, date math or a custom step |
| Remember | Data Table, Remove Duplicates, Google Sheets | A workflow must know what happened last time |
| Wait for a person | Wait, Respond to Webhook | A human must approve, or a reply must come back |
| Use AI | AI Agent, Basic LLM Chain, Text Classifier, Information Extractor, Chat Trigger, Simple Memory | You need to classify, extract or draft text |
| Do something | HTTP Request, Gmail, Slack, Telegram, Google Calendar, GitHub | The result has to reach another service |
Before you build, write the workflow down in one place. A flow that you can state in five lines is one you can finish.
Name: Trigger (what starts it, how often): Input I expect (fields and an example): Steps (one node per line, in order): Output (where the result goes and who reads it): What counts as a failure, and who is told: How I avoid doing it twice for the same item: Test data I will use (three good items, one broken one):
Which n8n workflows should I build first?
These five teach the pieces every other workflow uses: errors, schedules, forms, state and waiting. They need few credentials, and a mistake in one of them costs you an afternoon, not a customer.
01 Central error handler
One workflow that catches failures from all your other workflows and sends you a message with the workflow name and a link to the failed run.
- Trigger
- Error Trigger.
- Nodes
- Error Trigger, Edit Fields (Set), Telegram or Slack, Data Table.
- First version
- Build it, then in each other workflow open Options, then Settings, and pick it as the Error workflow.
- Stretch goal
- Log every failure to a Data Table and send a daily count instead of one message per failure.
- Time
- 1 hour.
The Error Trigger documentation describes this setup, and its guide on handling errors gracefully goes further. Two details trip people: error workflows only run on automatic failures, so you cannot test one by clicking Execute, and a workflow that contains an Error Trigger uses itself as its error workflow by default. To fail on purpose in a test flow, use the Stop And Error node, which sets a custom message.
02 Daily feed digest in Telegram
Every morning, read a handful of RSS feeds, drop what you already saw and send one short message with the new items.
- Trigger
- Schedule Trigger, daily.
- Nodes
- Schedule Trigger, RSS Read (one per feed), Merge, Remove Duplicates, Aggregate, Basic LLM Chain, Telegram.
- First version
- Two feeds, no AI: list titles and links in one message.
- Stretch goal
- Add the Basic LLM Chain to write one line per item, and keep a Data Table of items you tapped to read.
- Time
- 1 to 2 hours.
- Add a Schedule Trigger set to every day at 07:30, and publish the workflow, because a scheduled workflow does nothing until it is published.
- Add an RSS Read node for each feed and join them with Merge.
- Add Remove Duplicates and choose the option that removes items processed in previous executions, comparing on the link field.
- Aggregate the items into one list and format a single message in Edit Fields.
- Send it with the Telegram node.
The first run will send everything, because nothing has been seen yet. Run it once with the Telegram node disabled so the duplicate memory fills up, then turn the node on. Check the timezone as well: the Schedule Trigger uses the workflow timezone if one is set, and otherwise the instance timezone, which the docs say defaults to America/New York on self-hosted n8n.
03 Form that writes to a spreadsheet and confirms by email
A public form whose answers become a spreadsheet row, with an automatic confirmation to the person who filled it in.
- Trigger
- n8n Form (the form trigger).
- Nodes
- n8n Form, If, Google Sheets, Gmail.
- First version
- Fields for name, email and message; every submission appends a row and sends a short thank-you.
- Stretch goal
- Reject a second submission with the same email, and send yourself a message when the form is used more than ten times in an hour.
- Time
- 1 to 2 hours.
Validate on the If node before you write anything. An email field with no at sign should go to a branch that does nothing, not into the sheet. Use the Google Sheets node’s append-or-update operation keyed on email if you want one row per person. Test with the form’s test URL first, and only switch to the production URL when the workflow is published.
04 Uptime watcher that alerts only when status changes
Check your site or API every five minutes and message you when it goes down and when it comes back, but not on every check.
- Trigger
- Schedule Trigger, every 5 minutes.
- Nodes
- Schedule Trigger, HTTP Request, Edit Fields (Set), Data Table, If, Telegram.
- First version
- Request the URL, store up or down in a Data Table, message only when the stored value changes.
- Stretch goal
- Require two failed checks in a row before alerting, and report how long the outage lasted.
- Time
- 1 to 2 hours.
The HTTP Request node stops the run when a request fails, which is the opposite of what a watcher needs. Configure it to continue on error, so a failed request becomes data you can store. Without the stored state you would get a message every five minutes during an outage, and you would soon mute the channel, which defeats the point. Data tables are n8n’s built-in storage for exactly this kind of small state, described in the data tables guide.
05 Spreadsheet-driven onboarding drip
When a new row appears in a sheet, send a welcome email, wait two days and send a nudge only if the person has not activated.
- Trigger
- Google Sheets Trigger, on a new row.
- Nodes
- Google Sheets Trigger, Gmail, Wait, Google Sheets, If, Gmail.
- First version
- Welcome email, a Wait of two days, a second email to everyone.
- Stretch goal
- After the wait, look the person up again and send the nudge only when the activated column is still empty.
- Time
- 2 hours.
The Wait node can resume after a time interval, at a specific time, on a webhook call or on a form submission. While it waits, n8n saves the execution data to its database and reloads it when the wait ends, so a restart does not lose the run. The cost is storage: a thousand people in a two-day wait are a thousand saved executions. Check that your retention settings and disk can hold them.
Which n8n workflows use AI nodes?
n8n has AI nodes that do narrow jobs: the Text Classifier puts text into categories you define, the Information Extractor pulls structured fields out of text, and the Basic LLM Chain runs a single prompt. The AI Agent node is for open-ended tasks, and the docs state that you must connect a chat model and at least one tool to it. Prefer the narrow nodes when a fixed list of outcomes will do. They are easier to test and cheaper to run.
01 Inbox triage with a classifier
New email is sorted into invoice, question, newsletter or other, and each kind goes to a different place.
- Trigger
- Gmail Trigger.
- Nodes
- Gmail Trigger, Text Classifier, Switch, Gmail, Slack, Data Table.
- First version
- Classify the subject and first 500 characters; invoices get a label, questions go to a Slack channel, the rest is left alone.
- Stretch goal
- Draft a reply for questions and save it as a draft, never send it.
- Time
- 2 to 3 hours.
The board has a related idea about draft replies for the emails you keep avoiding, which is the stretch goal here. Save every decision (sender, category, date) in a Data Table for a week, then read it. A classifier is only as good as its categories. Add an “unsure” category and route it to yourself, so that a wrong guess does not hide an important message.
Read “Inbox triage with a classifier” on the board and copy its build prompt →
02 Receipt inbox to expenses sheet
Forward receipts to a dedicated address and get a sheet with vendor, date, total and currency, plus a monthly total.
- Trigger
- Email Trigger (IMAP).
- Nodes
- Email Trigger (IMAP), Information Extractor, If, Google Sheets, Schedule Trigger, Aggregate, Gmail.
- First version
- Extract four fields from the email body and append them to a sheet.
- Stretch goal
- A second schedule that sums the month, and a flag on any vendor that appears every month.
- Time
- 3 to 4 hours.
Define the extractor’s attributes and describe each one in plain words, then add an If node that rejects a row where the total is empty, so a missing number lands in a review list instead of a wrong total. The recurring-vendor flag is the same need as the subscription graveyard idea posted on the board.
Read “Receipt inbox to expenses sheet” on the board and copy its build prompt →
03 Meeting transcript to action items
POST a transcript to a URL and get a list of tasks with an owner and a due date, written to your task tool.
- Trigger
- Webhook.
- Nodes
- Webhook, Information Extractor, Split Out, Data Table or your task app, Respond to Webhook.
- First version
- Extract a list of {owner, task, due} and store one row per task.
- Stretch goal
- Send each owner a message with only their tasks.
- Time
- 2 to 3 hours.
The Webhook node has a test URL and a production URL. The test URL works only while you listen for a test event in the editor, and the production URL works once the workflow is published. You can protect the webhook with Basic auth, Header auth or JWT auth. Set it to respond with the Respond to Webhook node, or immediately, so a long transcript does not time out the caller. A board idea about notes from an appointment you will have forgotten by Thursday describes the same need for one person.
Read “Meeting transcript to action items” on the board and copy its build prompt →
04 Support chat agent with a lookup tool
A chat window on a page where an agent answers from a sheet of FAQs, looks up an order and hands off to a human when it is unsure.
- Trigger
- Chat Trigger.
- Nodes
- Chat Trigger, AI Agent, a chat model, Simple Memory, Google Sheets tool, HTTP Request tool, Slack tool.
- First version
- Agent answers only from the FAQ sheet and says it does not know otherwise.
- Stretch goal
- An order lookup tool, and a hand-off tool that posts the conversation to Slack.
- Time
- 3 to 5 hours.
The AI Agent node needs a chat model and at least one tool. The Simple Memory node keeps chat history, but its documentation warns against using it when n8n runs in queue mode. A board idea asks for an agent that answers from your docs and shuts up otherwise, which is the right rule for this build. Put it in the system prompt and test it with five questions the sheet cannot answer.
Read “Support chat agent with a lookup tool” on the board and copy its build prompt →
Which n8n workflows can run parts of a small business?
These four touch money, customers or published content. Each one has a rule that protects the reader: a limit on reminders, a log of every event, a human approval before anything goes out. Build the protection first and the clever part second.
01 Invoice chaser
Each weekday morning, find invoices that are unpaid and overdue and send a polite reminder, no more than three per invoice.
- Trigger
- Schedule Trigger, weekdays at 09:00.
- Nodes
- Schedule Trigger, Google Sheets, Filter, Date & Time, Gmail, Google Sheets.
- First version
- Filter rows where status is unpaid and due date is more than 3 days ago; email the contact; write the date back to a last_reminded column.
- Stretch goal
- Space reminders 7 days apart, stop at three, and send you a summary of who has been chased.
- Time
- 2 to 3 hours.
You do not need the Loop Over Items node here. The docs point out that most nodes process every item in a list on their own, so the Gmail node sends one email per row without a loop. Add a reminder counter column and a Filter on it so no customer ever gets a fourth message. Run it for a week sending to your own address before you point it at real contacts.
02 Payment failure alerts from Stripe
When a payment fails, post the customer, amount and reason in a channel, and keep a log of every failure.
- Trigger
- Stripe Trigger.
- Nodes
- Stripe Trigger, Switch, Remove Duplicates, Slack, Data Table.
- First version
- Listen for invoice.payment_failed, post a one-line Slack message, add a Data Table row.
- Stretch goal
- Send the customer a link to update their card, and close the loop when invoice.paid arrives.
- Time
- 2 to 3 hours.
Use Stripe’s test mode while you build, and check the exact event names in the event types list. Providers can deliver an event more than once, so de-duplicate on the event ID with Remove Duplicates before posting. The message should name the customer and amount but never include a card detail, and the channel should be private.
03 Content drafts that wait for your approval
A new blog post triggers three draft social posts, emailed to you with an approve link; nothing is published until you click.
- Trigger
- Schedule Trigger or RSS Read.
- Nodes
- RSS Read, Remove Duplicates, Basic LLM Chain, Gmail, Wait, Respond to Webhook.
- First version
- Draft three versions and email them with a link; after the click, save the chosen one to a sheet.
- Stretch goal
- After approval, publish through an API, and record the final text next to the draft.
- Time
- 3 to 4 hours.
Set the Wait node to resume on a webhook call. The Wait node exposes the URL it will listen on as $execution.resumeUrl, which you place in the email as the approve link, so each run gets its own unique link. This is the pattern for any flow where a person must say yes before an action: the AI drafts, you decide.
04 Weekly review that writes itself
Every Friday, collect what you did from your calendar and code host and have a draft summary waiting in your inbox.
- Trigger
- Schedule Trigger, Fridays at 16:00.
- Nodes
- Schedule Trigger, Google Calendar, GitHub, Merge, Aggregate, Basic LLM Chain, Gmail.
- First version
- Fetch this week’s events, aggregate their titles, summarize in five bullets, email to yourself.
- Stretch goal
- Add merged pull requests, and a final line that asks what to carry into next week.
- Time
- 2 to 3 hours.
A board idea describes the weekly review that writes itself, and this workflow is a way to prototype it for one person without writing an app. Tell the model to use only the events you give it. Otherwise it fills gaps with plausible work you did not do. Send the result only to yourself.
Read “Weekly review that writes itself” on the board and copy its build prompt →
How do I keep n8n workflows from breaking?
Most failed automations fail the same few ways. This table maps the symptom to the cause and the fix, using behavior described in the n8n documentation.
| Symptom | Likely cause | Fix |
|---|---|---|
| Scheduled workflow never runs | It was saved but not published | Publish the workflow; check the workflow timezone |
| Webhook works in the editor, not from the app | You called the test URL | Publish, then use the production URL |
| Same item processed every run | No memory of earlier runs | Remove Duplicates, comparing against previous executions, or a Data Table |
| One failed request stops the whole run | The node stops on error by default | Set it to continue on error and branch on the result |
| API returns 429 too many requests | Too many calls at once | Use the HTTP Request node’s batching option to space them out |
| You find out about failures days later | No error workflow | Build the central error handler and select it in each workflow’s settings |
| Chat memory behaves oddly | Simple Memory with queue mode | Pick a memory option that does not depend on a single worker; the Simple Memory page explains why |
Keep keys in n8n’s credentials, not in node fields or Code nodes. Build in small steps, running each node on test data before adding the next. For ideas that go beyond what a workflow can do, browse the AI agents ideas on the board, or post one you do not plan to build.
Frequently asked questions
What can you automate with n8n?
You can automate anything with a trigger and a service that has a node or an API: email sorting, form handling, reminders, alerts, data copying between tools, report drafts and chat agents. The docs list hundreds of built-in nodes, and the HTTP Request node reaches any service with a REST API. Start with one small, repeated task.
What are good n8n workflow ideas for beginners?
Start with a central error handler, a daily RSS digest sent to Telegram and a form that writes to Google Sheets. They use the three skills everything else depends on: errors, schedules and moving data between services. Add an AI classifier for your inbox once those work, and an approval step before anything is sent.
How do I trigger an n8n workflow from my own app?
Use the Webhook node. It gives you a test URL, used while you listen in the editor, and a production URL that works once the workflow is published. Add Basic auth, Header auth or JWT auth, then have your app send an HTTP request to the URL. Use Respond to Webhook if the caller needs the result.
Why is my scheduled n8n workflow not running?
The most common cause is that the workflow was saved but not published; the Schedule Trigger needs a published workflow. The next is timezone: n8n uses the workflow timezone if set, otherwise the instance timezone. Check both, then look at the executions list to see whether runs are happening and failing.
How do I add AI to an n8n workflow?
Use the AI nodes. A Text Classifier sorts text into your categories, an Information Extractor pulls out fields, a Basic LLM Chain runs one prompt, and an AI Agent decides which tools to call. Each needs a connected chat model, and the agent needs at least one tool. Use the narrow nodes when a fixed outcome is enough.
Can I have Claude or ChatGPT build an n8n workflow for me?
An AI model can plan a workflow well: ask for the trigger, the nodes in order, the fields passed between them and the failure cases. Generated workflow files from memory can reference node versions or settings that do not match your install, so build from the plan node by node and check each against the docs.
Created with AI assistance and edited for this site. Examples are illustrative and do not represent customer research. About the publisher.