Before I explain anything: open the live page. It shows what an n8n workflow on my server did on its last run: it fetched the position of the ISS, the strongest earthquakes of the last 24 hours, the top story on Hacker News, the most read German Wikipedia article, the weather in Berlin, my own status monitor and n8n's GitHub stars. An AI wrote two sentences about it, and everything together is on the page. The last run is replayed there in slow motion, node by node. And with the “Start the workflow now” button you trigger a run yourself and see your own result a few seconds later.
None of it has a deeper purpose. But it shows well what automation can do today, and it is fun to watch.
What is n8n?
n8n (say “n-eight-n”) is a workflow tool: you drag nodes onto a canvas and connect them. Each node does one thing, such as “start every 15 minutes”, “call this API”, “reshape this data” or “send an e-mail”. Data flows from left to right along the connections.
- Hundreds of ready-made integrations: from Gmail and Slack to Nextcloud, databases, webhooks and AI models.
- Code when you need it: a Code node runs JavaScript or Python. Whatever does not exist as a node, you write in ten lines.
- Self-hostable: n8n runs as a Docker container on your own server. Data and credentials only leave your infrastructure when a workflow sends them.
- Fair-code: the source is open to read and use in your own operations; reselling it as a service is restricted by the licence. The project has more than 200,000 stars on GitHub.
The workflow, node by node
- Two triggers: a webhook fired by the button on the live page, and a schedule that starts it by itself every 6 hours. The website limits the clicks so nobody can fire the workflow every second.
- Seven HTTP nodes in parallel: ISS position (wheretheiss.at), earthquakes (USGS), Hacker News (Algolia API), most read article on German Wikipedia, weather in Berlin (Open-Meteo), my own status monitor and n8n's GitHub data. All public, no key needed.
- Merge: waits until all seven are done.
- Code “bundle data”: takes only what is needed from each answer and builds the facts for the AI.
- AI bulletin: a language model (gpt-oss-120b, hosted by IONOS in Germany) writes two sentences in German, English and Italian.
- Code “check answer”: reads the answer; if the AI fails, it builds a plain bulletin from the data.
- HTTP “send to the page”: posts the result with a secret token to my website, which stores and displays it.
An excerpt of the Code node, to show how little it takes:
const get = (name) => { try { const j = $(name).first().json; return j && !j.error ? j : null; } catch (e) { return null; } };
let j = get('ISS-Position');
s.iss = j ? { ok: true, lat: j.latitude, lon: j.longitude, vel: j.velocity } : { ok: false };
j = get('Erdbeben (USGS)');
const top = j.features.map(f => ({ mag: f.properties.mag, place: f.properties.place }))
.sort((a, b) => b.mag - a.mag).slice(0, 15);
Three details that make a workflow robust
- Allow failure: every source node is set to “continue on error”. If an API is down, one card is missing, but the rest runs.
- Do not trust the AI blindly: the model only gets facts with numbers and the instruction to invent nothing and not to joke about disasters. Its answer is checked before it is published.
- The website checks too: the receiving endpoint accepts only requests with the token, keeps only known fields, cuts texts and strips HTML. The page inserts data only as text.
What you really automate with it
The pulse is a toy. With the same building blocks I run real jobs: a daily IT news radar with commented items, a scam radar, an error-message explainer. Typical ideas for companies:
- read new tickets, classify them and route them to the right team;
- pick invoices from the mailbox, extract them and file them in Nextcloud;
- collect monitoring alerts and send only what matters to the chat;
- check website forms and add them to the CRM.
Try it yourself
n8n starts locally with one command:
docker run -it --rm -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n
Then open http://localhost:5678. You can download my workflow as JSON and load it with “Import from File”. For the AI bulletin you need your own key for an OpenAI-compatible provider, and you point the last node at your own target, such as a webhook, an e-mail or a file.
And then: back to the live page to see what the robot is telling the world right now.