Automation · 09
Automation Engineering Playground
The n8n side of AEP, a web-based learning app I built for automation engineering. Ten guided labs each practise one reliability pattern, and a four-workflow capstone joins them into an AI service agent, so learners see how real automations handle bad input, duplicates, failures and risky AI decisions.
- Stack
- n8n
- Gemini
- Supabase
- Webhooks
01 / 13

Image 1 of 13: n8n canvas of the AEP capstone AI service request agent
Overview
The problem. Most automation tutorials stop at the happy path. Real workflows also have to handle bad input, duplicate events, failing APIs, unreliable AI output and decisions that should wait for a person.
What I built. I built the labs in n8n, from data mapping, routing, webhooks and pagination to retries with backoff, idempotency, dead letter queues, structured AI output and AI guardrails. The capstone joins them: a service request agent with duplicate protection and a validated Gemini decision, a reliable action executor, a dead-letter recovery handler and a human approval handler.
Why it helps. Learners practise each failure pattern on its own, then see all of them working together in one system.
System flow
14 workflows
How the workflows connect.
- Nodes: Webhook (Receive Service Request). Next: AI Service Request Agent.Nodes: Webhook (Receive Human Decision). Next: Human Approval Handler.Nodes: Webhook (Receive Recovery Request). Next: DLQ Recovery Handler.
- Validates, dedupes, asks Gemini and applies guardrails (30 nodes). Nodes: Supabase ×9; Code ×5; IF ×5; Respond to Webhook ×4; Edit Fields (Set) ×2; Other nodes ×5. Next: Reliable Action Executor.Applies an approve/reject decision (14 nodes). Nodes: Supabase ×5; Respond to Webhook ×3; Edit Fields (Set) ×2; IF ×2; Webhook; Other nodes ×1. Next: Reliable Action Executor.Replays a failed action (15 nodes). Nodes: Supabase ×5; Respond to Webhook ×3; IF ×2; Code ×2; Webhook; Other nodes ×2. Next: Reliable Action Executor.
- Every action runs here: once, with retries and a DLQ (21 nodes). Nodes: Supabase ×7; Code ×5; IF ×4; Edit Fields (Set) ×3; Execute Workflow Trigger; Other nodes ×1. Next: Supabase.
- processed_events, service_actions, approval_requests, dlq_events, execution_logs. End of flow.