Human-in-the-Loop Automation with n8n — Liam McGarrigle
TL;DR
n8n’s real pitch is control, not just easy agents — Liam McGarrigle argues the winners in agent building will be the teams that can see what an agent is doing, inspect failures, and tweak behavior, which is why he frames n8n as an “agent builder and orchestrator” rather than just another chatbot wrapper.
Human-in-the-loop in n8n is an actual interception layer — instead of trusting an LLM with Gmail and Google Calendar directly, Liam inserts review gates before actions like sending emails or creating events, so the tool literally cannot execute until a person approves or denies it.
Tool descriptions and node names are part of the prompt surface — Liam emphasizes that in n8n, the node name becomes the tool name and the node description becomes the tool description passed to the model, so sloppy naming is one of the most common reasons agents call the wrong thing or hesitate to act.
n8n gives you low-code by default, but JavaScript exactly where you need it — he shows how expressions like {{$now}} and inline JS methods can clean up ugly timestamps, concatenate fields, and steer parameters without forcing you into full code nodes or separate files.
The workshop’s demo agent is a Gmail + Calendar assistant, but the bigger pattern is modular orchestration — Liam closes by recommending sub-agents for distinct jobs like email, calendars, GitHub issues, and even Jira, with different models per agent so one giant prompt doesn’t drown in tool context.
n8n is quietly expanding into MCP and API-first workflows — beyond the visual builder, Liam highlights a native MCP server, REST API workflows via webhook triggers, and an internal coupon system he says n8n built in about 6 hours to unify giveaways, merch, and enterprise discounts.
The Breakdown
Liam’s framing: agents are easy now, control is the differentiator
Liam opens with a quick vibe check, jokes that the room has been “busier than me,” and sets the workshop up from first principles: build a simple Gmail and Calendar agent, then add human review. His main thesis lands early: anyone can spin up an agent now, but the hard part is knowing what it’s doing, seeing what broke, and being able to fix it.
n8n’s roots before the AI hype
He gives the short origin story: n8n started in 2019, before ChatGPT, as a low-code workflow tool for triggers, actions, and control flow. That matters because, in his telling, n8n didn’t bolt orchestration on later — it already had the “if this, then that, then something else” DNA that makes agent systems debuggable.
Building the first chat agent inside n8n
The hands-on part starts with the built-in chat trigger rather than Slack, mostly because it’s fast to test and easy to debug right on the canvas. Liam shows the native chat UI and execution logs side by side, so even a basic “hello” becomes a teaching moment: you can inspect exactly what message entered the workflow and what the agent did with it.
Memory, expressions, and the tiny bits of code that matter
When the agent forgets the user’s previous message, Liam uses that failure to explain memory types: simple memory for easy chat history, Postgres or Redis when you need persistence in a bigger app. He also pauses to demystify n8n expressions — green text, curly braces, JavaScript anywhere — framing them as the secret sauce that lets non-coders stay visual while still doing things like date handling, concatenation, or grabbing a session ID.
Turning Gmail and Calendar nodes into agent tools
From there he wires up Gmail and Google Calendar, stressing that tools in n8n are constrained field by field. His comparison to systems like Claude Code is memorable: in n8n, the AI only gets the parameters you explicitly expose, which is safer, but also means you have to do the setup work yourself.
The prompting lesson most people miss
One of the sharpest sections is about naming. Liam says people mess this up “all the time”: the node name is the tool name, and the node description is the tool description shown to the LLM, so you should treat both like prompt engineering surface area. He also likes putting tool-specific guidance — like email style rules or “don’t use placeholders” — into tool descriptions instead of one giant system prompt, because it makes workflows more modular and reusable.
Human review as the safety valve
The core demo is adding human-in-the-loop steps to sensitive actions like sending email and creating calendar events. Liam’s point is practical, not philosophical: he doesn’t want a live demo blasting accidental emails from his real account, and neither should anyone else. Once the review node is in place, the tool simply can’t fire without approval, and he shows how to customize the approval message so reviewers see readable fields instead of raw JSON or ugly UTC timestamps.
Debugging live, then zooming out to Slack, MCP, and real deployment
The back half becomes a live debugging clinic: he hits an error, reads it out loud, fixes response mode from streaming to “using response nodes,” and even cleans up date formatting with Luxon while joking that this one wasn’t demo luck — it was his own mistake. In Q&A he expands outward: Slack can replace the built-in chat, schedules can trigger background automation every hour, native MCP can connect Claude to workflows, webhook triggers can turn n8n flows into REST APIs, and enterprise users get Git-backed environments while everyone else can still copy workflows and iterate fast.