n8n workflow automation with retries, logging, and review queues
PURPOSE
Designs and outputs n8n workflow JSON with robust triggers, idempotency, error handling, logging, retries, and human-in-the-loop review queues.
WHEN TO USE
- TRIGGERS:
- Build an n8n workflow that runs every Monday and emails the compliance summary.
- Add error handling and retries to this workflow, plus a review queue for failures.
- Create a webhook workflow that logs every run and writes a status row to a tracker.
- Make this n8n flow idempotent so it does not duplicate records when it reruns.
- Instrument this workflow with audit logs and a human approval step.
- DO NOT USE WHEN…
- You need code-only automation without n8n (use a scripting/CI skill).
- You need to bypass security controls or hide audit trails.
- You need to purchase or recommend prohibited items/services.
INPUTS
- REQUIRED:
- Workflow intent: trigger type + schedule/timezone + success criteria.
- Targets: where to write results (email/Drive/Sheet/DB) and required fields.
- OPTIONAL:
- Existing n8n workflow JSON to modify.
- Sample payloads / example records.
- Definition of dedup keys (what makes a record unique).
- EXAMPLES:
- Cron: Monday 08:00 Europe/London; send summary email + Drive upload
- Webhook: receive JSON; route to folders
OUTPUTS
- Default (read-only): a workflow design spec (nodes, data contracts, failure modes).
- If explicitly requested:
workflow.json (n8n importable JSON) + runbook.md (from template).
Success = workflow is idempotent, logs every run, retries safely, and routes failures to a review queue.
WORKFLOW
- Clarify trigger:
- Cron/webhook/manual; schedule/timezone; concurrency expectations.
- Define data contract:
- input schema, required fields, and validation rules.
- Design idempotency:
- choose dedup key(s) and storage (DB/Sheet) to prevent duplicates on retries.
- Add observability:
- generate
run_id, log start/end, store status row and error details.
- Implement error handling:
- per-node error branches, retry with backoff, and final failure notification.
- Add human-in-the-loop (HITL) review queue:
- write failed items to a queue (Sheet/DB) and require approval to reprocess.
- “No silent failure” gates:
- if counts/thresholds fail, stop workflow and alert.
- Output:
- If asked for JSON: produce importable n8n workflow JSON + runbook.
- STOP AND ASK THE USER if:
- destination systems are unknown,
- no dedup key exists,
- credential strategy (env vars) is not specified,
- the workflow needs privileged access not yet approved.
OUTPUT FORMAT
If outputting n8n workflow JSON, conform to:
{
"name": "<workflow name>",
"nodes": [ { "name": "Trigger", "type": "n8n-nodes-base.cron", "parameters": {}, "position": [0,0] } ],
"connections": {},
"settings": {},
"active": false
}
Also output runbook.md using assets/runbook-template.md.
SAFETY & EDGE CASES
- Read-only by default; only emit workflow JSON when explicitly requested.
- Do not include secrets in JSON; reference env vars/credential names only.
- Include audit logging + failure notifications; avoid workflows that can silently drop data.
- Prefer least privilege: call only required APIs and minimize scopes.
EXAMPLES
Input: “Cron every Monday, email compliance summary, retry failures.”
Output: Node map + workflow.json with Cron → Fetch → Aggregate → Email, plus error branches to review queue.
Input: “Webhook that logs runs and writes status row.”
Output: Webhook → Validate → Process → Append status row; on error → log + notify + queue.
1---2name: n8n-workflow-automation3description: Designs and outputs n8n workflow JSON with robust triggers, idempotency, error handling, logging, retries, and human-in-the-loop review queues. Use when you need an auditable automation that won’t silently fail.4---5
6# n8n workflow automation with retries, logging, and review queues
7
8## PURPOSE
9Designs and outputs n8n workflow JSON with robust triggers, idempotency, error handling, logging, retries, and human-in-the-loop review queues.
10
11## WHEN TO USE
12- TRIGGERS:
13 - Build an n8n workflow that runs every Monday and emails the compliance summary.
14 - Add error handling and retries to this workflow, plus a review queue for failures.
15 - Create a webhook workflow that logs every run and writes a status row to a tracker.
16 - Make this n8n flow idempotent so it does not duplicate records when it reruns.
17 - Instrument this workflow with audit logs and a human approval step.
18- DO NOT USE WHEN…
19 - You need code-only automation without n8n (use a scripting/CI skill).
20 - You need to bypass security controls or hide audit trails.
21 - You need to purchase or recommend prohibited items/services.
22
23## INPUTS
24- REQUIRED:
25 - Workflow intent: trigger type + schedule/timezone + success criteria.
26 - Targets: where to write results (email/Drive/Sheet/DB) and required fields.
27- OPTIONAL:
28 - Existing n8n workflow JSON to modify.
29 - Sample payloads / example records.
30 - Definition of dedup keys (what makes a record unique).
31- EXAMPLES:
32 - Cron: Monday 08:00 Europe/London; send summary email + Drive upload
33 - Webhook: receive JSON; route to folders
34
35## OUTPUTS
36- Default (read-only): a workflow design spec (nodes, data contracts, failure modes).
37- If explicitly requested: `workflow.json` (n8n importable JSON) + `runbook.md` (from template).
38Success = workflow is idempotent, logs every run, retries safely, and routes failures to a review queue.
39
40
41## WORKFLOW
421. Clarify trigger:
43 - Cron/webhook/manual; schedule/timezone; concurrency expectations.
442. Define data contract:
45 - input schema, required fields, and validation rules.
463. Design idempotency:
47 - choose dedup key(s) and storage (DB/Sheet) to prevent duplicates on retries.
484. Add observability:
49 - generate `run_id`, log start/end, store status row and error details.
505. Implement error handling:
51 - per-node error branches, retry with backoff, and final failure notification.
526. Add human-in-the-loop (HITL) review queue:
53 - write failed items to a queue (Sheet/DB) and require approval to reprocess.
547. “No silent failure” gates:
55 - if counts/thresholds fail, stop workflow and alert.
568. Output:
57 - If asked for JSON: produce importable n8n workflow JSON + runbook.
589. STOP AND ASK THE USER if:
59 - destination systems are unknown,
60 - no dedup key exists,
61 - credential strategy (env vars) is not specified,
62 - the workflow needs privileged access not yet approved.
63
64
65## OUTPUT FORMAT
66If outputting **n8n workflow JSON**, conform to:
67
68```json
69{
70 "name": "<workflow name>",
71 "nodes": [ { "name": "Trigger", "type": "n8n-nodes-base.cron", "parameters": {}, "position": [0,0] } ],
72 "connections": {},
73 "settings": {},
74 "active": false
75}
76```
77
78Also output `runbook.md` using `assets/runbook-template.md`.
79
80
81## SAFETY & EDGE CASES
82- Read-only by default; only emit workflow JSON when explicitly requested.
83- Do not include secrets in JSON; reference env vars/credential names only.
84- Include audit logging + failure notifications; avoid workflows that can silently drop data.
85- Prefer least privilege: call only required APIs and minimize scopes.
86
87
88## EXAMPLES
89- Input: “Cron every Monday, email compliance summary, retry failures.”
90 Output: Node map + `workflow.json` with Cron → Fetch → Aggregate → Email, plus error branches to review queue.
91
92- Input: “Webhook that logs runs and writes status row.”
93 Output: Webhook → Validate → Process → Append status row; on error → log + notify + queue.
94