Liam McGarrigle, developer advocate at n8n, leads a hands-on workshop at AI Engineer Europe 2026 demonstrating how to build secure, observable, human-in-the-loop AI automations using n8n's visual workflow platform. The session targets a mixed-skill audience and builds incrementally from a basic chat-triggered agent to a fully functional Gmail and Google Calendar management bot with human approval gates.
McGarrigle opens by framing the core problem in the current AI landscape: while it is trivially easy to build agents, the real differentiator is observability — knowing what your agent did, what went wrong, and being able to intervene. He positions n8n as uniquely suited for this because its visual canvas exposes every node, execution log, and data flow, unlike black-box agent frameworks.
The workshop builds a Gmail and Google Calendar management agent step by step. Attendees start with a chat trigger node, wire in an AI agent node, and connect it to a language model via OpenRouter — which allows switching between any model including Claude Sonnet 4.6, GPT-5, or others using a single API key McGarrigle provided for the session. Memory is added using n8n's built-in Simple Memory node, which stores conversation context within n8n itself; more advanced options like PostgreSQL or Redis are available for integrations with external dashboards or ORMs. McGarrigle explains n8n expressions — the curly-brace JavaScript interpolation system — and how dragging fields from upstream nodes populates dynamic values in downstream actions.
The heart of the workshop is the human-in-the-loop (HITL) mechanism. For sensitive or destructive actions — sending emails, replying to threads, creating calendar events — McGarrigle inserts n8n's built-in Human Review node between the agent and the tool. This node intercepts the tool call transparently: the agent believes it is calling the tool directly, but n8n halts execution and sends an approval prompt to the chat interface (or Slack). The agent cannot bypass this layer. Attendees learn to customize the approval message using tool parameter expressions (e.g., `$tool.parameters.to`, `$tool.parameters.subject`) and to configure auto-deny timeouts to prevent indefinitely waiting executions on self-hosted instances with concurrent execution limits.
Key prompting practices covered include naming nodes descriptively (the node name becomes the tool name sent to the LLM), writing detailed tool descriptions that serve as per-tool prompts, and annotating individual field descriptions to prevent the model from mapping values incorrectly (e.g., relabeling Google Calendar's 'summary' field as 'title' for the LLM). The system prompt injects the current date using n8n's `$now` convenience function to prevent the agent from referencing stale timestamps.
McGarrigle demonstrates n8n's native MCP server (available in cloud and enterprise), which exposes published workflows to external agents like Claude Code. Unlike the community-built GitHub MCP, the native integration supports workflow execution — sending chat messages to an agent via Claude Code and receiving responses — in addition to create/read operations.
The session closes with architectural guidance for scaling: replace the chat trigger with a Slack trigger for personal agents, add a Schedule trigger running hourly for autonomous background processing (e.g., inbox triage, GitHub PR scanning), and decompose large agents into specialized subagents using n8n's Execute Sub-Workflow node — one subagent per domain (email, calendar, GitHub, Jira) — each with its own model and system prompt, orchestrated by a router agent. Enterprise teams get git integration with dev/staging/prod environments and approval workflows for workflow changes; non-enterprise teams are advised to copy workflows manually or use n8n's workflow JSON copy-paste to manage branching.
How's everybody doing? >> Good. >> Is this everyone's first workshop of the day? You guys did one before? >> You guys have been busier than me. All right, great. Well, I'm Liam. I'm a uh developer advocate at NAN, which means I get to fly around the world and do really cool stuff like this and speak in to people what probably way smarter than I am uh about some some really cool stuff. Today we have a pretty short workshop. Uh is this is this everyone's first time with NAD? Has everyone used NAN ...
Mario Zechner, creator of the LibGDX game framework, delivers a provocative three-act talk about building a minimal codi...