What I Automated With n8n on Server (2 Real Examples)
I have a small server humming away at home. For a while it just ran the usual self-hosted stuff, but lately it has been doing something more interesting: my busywork. The tool behind that is n8n, and after a month of tinkering with it I finally have two automations I actually trust to run without me watching. This is a note-to-self about what they do and what I learned building them.
So what is n8n, quickly?
n8n is a workflow automation tool. You drag "nodes" onto a canvas — a Google Sheet, an AI model, a web scraper, a WordPress site — and wire them together so they hand work to each other. A trigger kicks things off (a schedule, a form, a new file) and the whole chain runs by itself. The part I like most: it is self-hostable, so it runs on my own machine and my data never leaves the house. That fits how I already do things — same reason I keep files on an old phone instead of the cloud.
Enough theory. Here are the two flows.
Experiment 1: getting the computer to build a list of local businesses by itself
This one started as pure curiosity. Making a list of local businesses — name, phone, address, what they do — is the kind of task that normally means hours of Googling, opening each website, and copy-pasting into a spreadsheet. I wanted to know: could I get my home server to just... do that?
It turned out to work best as two small flows that feed each other, so nothing needs me in the middle.
Part 1 — find the businesses
I keep a plain spreadsheet with two columns: an industry (say, "renovation contractor") and a location (say, "Petaling Jaya"). That is the only thing I type.
Once a day, in the middle of the night, the first flow:
- reads any new rows from that sheet,
- searches Google Maps for that industry in that area,
- keeps only the businesses that actually have a website, and
- drops each one — name, phone, address, category — into a master sheet.
I deliberately made it chew through only a few keywords per run, so I never blow past the search quota, and it quietly merges duplicates by website address. I can dump in a big batch of ideas and it works through them over the following nights.
Part 2 — find out what each one actually does
Having a name and a URL is only half the job. So a second flow takes over later the same night:
- It grabs the businesses that haven't been processed yet.
- It visits each website with a self-hosted scraper (I run Firecrawl on the same server), reading the homepage and hunting down the contact page — it even recognises Malay "hubungi" links, not just English "contact".
- It hands that page text to an AI model, which pulls out clean details: the real business name, a short description of what they do, phone, email, address, state, category, and their main services.
- It writes everything back to the sheet and marks the row done.
Two small decisions made a big difference here:
- I told the AI never to make things up. If a phone number or email isn't actually on the page, the field stays empty. For a list like this, a wrong number is worse than a blank one — and left to their own devices, language models love to "helpfully" invent a plausible-looking number.
- I made it safe to re-run. Rows that are already done get skipped, and if one fails it gets marked with the reason so I can retry just that one. No duplicates, nothing overwritten. This is the boring part nobody shows in tutorials, and it is the whole difference between a demo and something you actually leave running.
The end result still slightly amazes me: I type in a keyword and a town, go to bed, and by morning there is a clean, structured little directory of real businesses sitting in a spreadsheet. It grows overnight while I sleep.
Experiment 2: never manually posting to WordPress again
The second flow scratches a much more personal itch. Publishing a post to WordPress isn't hard, but the ritual is tedious: format the content, find or make a featured image, write the alt text, shorten the meta description, upload, publish. Every single time.
So I built a flow where the only human job is finishing the article in a Google Doc. After that, it:
- reads the Google Doc and formats the content properly for the page,
- either finds a suitable photo or generates a featured image with AI, then resizes and crops it to the right size,
- trims the meta description to a sensible length for search results,
- uploads the image, writes its alt text, creates the post, and publishes,
- and logs the whole run so that if something breaks, I can see exactly what went wrong.
What used to be twenty minutes of clicking is now a finished, image-ready post from a single document. The featured-image generation was the part I expected to fight with and it ended up being the most fun to watch.
What I actually took away from this
Looking at both flows side by side, the specific tools matter less than three habits that made them trustworthy:
- Let the human do only the human part. Pick a keyword. Write the article. Hand the repetitive middle to the machine.
- Let it run on a schedule, unattended. Nobody has to remember to press start. The work happens at 2am whether I think about it or not.
- Build it to fail safely. Skip what's already done, log the errors, never corrupt the data. "Set and forget and pray" is not automation, it's a time bomb.
None of this needed a coding background — n8n is visual — though a little technical stubbornness helped with the fiddly bits, like forcing the AI to stop inventing phone numbers. Mostly it needed me to look honestly at the boring, repetitive things I do over and over, and ask whether the server could do them instead.
It usually can. That's the part I'm still getting used to.
Next on the bench: getting these flows to send me a little morning summary of what they did overnight. If that works, it'll probably end up here too.
Related automation and server posts
These posts connect to the same n8n, self-hosting, and AI-assisted server workflow:
- From Copy-Pasting YAML to Managing Servers with Claude Code CLI
- The $0 Automation Engine: Hosting n8n on an Old Laptop with Cloudflare Tunnels
- Automate WordPress Blog Posts With n8n | Save 10 Hours
- What Is an AI Agent? A Simple Explanation of Model + Harness + Tools
- How Claude Code Refactored My 30+ Node n8n Blog Workflow Into 5 Subflows
Comments