
You have heard Jeff talk about n8n for a year. Here is the case for it next to agents, in the terms that matter on a mini.

## What it is for here

Two things. Schedules, so "every morning at six, pull the thing, summarise it, post it" runs whether or not any agent is up. And webhooks, so an agent can hand off the tedious glue, "post this to that channel, file this in that folder, ping that API," to a workflow that does it deterministically. The division of labour is that n8n does the parts that should never vary and the agent does the parts that need judgement.

## The two patterns

**n8n triggers Claude.** A Schedule node, then an Execute Command node that runs `claude -p "..." --output-format json` with an `--allowedTools` list that scopes what it may do, then whatever you do with the result. This is a cron job with a brain, and it needs no live session.

**Claude calls n8n.** A workflow with a Webhook trigger and a secret header. The agent has a line in CLAUDE.md that says "to post a summary to the family board, POST it to this webhook with this header." The agent never learns how the posting works, which is the point.

## Running it

One container.

```bash
docker run -d --name n8n --restart unless-stopped -p 127.0.0.1:5678:5678 \
  -v ~/n8n:/home/node/.n8n docker.n8n.io/n8nio/n8n
```

Bind to `127.0.0.1`, not `0.0.0.0`, and reach it through Tailscale or Caddy. Never expose n8n itself to the internet without a login in front of it; a webhook URL can be public, the editor cannot.

## Two traps

A workflow that swallows errors looks healthy forever. If a node is set to continue on error, or a list of allowed senders silently drops everything not on it, you find out weeks later. Every workflow that matters ends by telling a human it ran, and the absence of that message is itself the alert.

And a Code node in n8n takes only the first item by default in some patterns. A workflow that works for one email and silently drops the second and third is a real bug Jeff's crew shipped and found a month later. Test with two.

## How you know it worked

The scheduled workflow posts to your Telegram bot at the scheduled time, and the execution log in n8n shows it green with the expected number of items.

## Read more

- [n8n self-hosting](https://docs.n8n.io/hosting/) and [Docker install](https://docs.n8n.io/hosting/installation/docker/)
- [Webhook node](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook/)
- [Headless Claude Code](https://code.claude.com/docs/en/headless)
