kipn.ai
Shared workflow report

pasted-template.json

Analyzed

Executive Summary
Learn more
n8n
Production RiskHigh

External call with no timeout configured — A single slow external call can block the entire workflow execution. At high trigger frequency, accumulated stuck executions can exhaust the n8n execution queue.

81/ 100
Overall
Risk: HighCost: Low
Reliability
46
Security
100
Cost Risk
100
Observability
100
AI Governance
100
Naming
97
Complexity
100
Nodes
18
Edges
13
External calls
3
LLM nodes
0
AI via HTTP
0
Loops
0
Error handlers
0
Unreachable
0
Max depth
5
Workflow Graph
Graph
18 nodes · 13 edges
100%
click a node to highlight its upstream & downstream paths
Controls Matrix
Learn more
Present Partial Missing
CheckDescriptionStatus
Failure Alerting

Failures silent — only visible in execution log

Missing
Retry on Failure

Transient failures cause permanent stops

Present
Request Timeouts

Slow providers can block execution indefinitely

Missing
Duplicate Prevention

Retry on write events creates duplicate records

Missing
Empty Response Handling

Zero-result lookups break downstream logic

Present
AI Output Limits

Output cost and parsing risk unbounded

N/A
AI Output Format

Free-form output will break downstream parsers

N/A
Activity Logging

Side effects unlogged

Present
Write Deduplication

Webhook replays may create duplicate records

Present

Run this analysis on your own workflows

Break Points
Learn more
1Missing timeoutRisk HighConfidence 90%3 nodes affected
Affected Nodes:
  • date
  • Get query Report
  • Get Page Report
What happens:

A single slow external call can block the entire workflow execution. At high trigger frequency, accumulated stuck executions can exhaust the n8n execution queue.

Recommended Fix:

Set a timeout under the node's Additional Options. A value of 10,000–30,000 ms (10–30 seconds) is a reasonable starting point for most APIs; adjust based on the provider's documented SLA.


2Missing error handlerRisk MediumConfidence 85%7 nodes affected
Affected Nodes:
  • Edit Fields[19370d12]
  • Edit Fields1
  • Edit Fields2
What happens:

Operators cannot tell from external signals that a run failed. Silent failures go undetected until a downstream system shows missing data or a user reports a problem.

Recommended Fix:

Connect a dedicated Error Workflow in workflow settings, or add a per-node onError: "continueErrorOutput" path that sends an alert via Slack, email, or a logging service.


3Fragile expressionRisk LowConfidence 90%1 node affected
Affected Nodes:
  • Edit Fields[19370d12]
What happens:

These expressions work reliably against test data where all fields are present. In production, fields may be absent, null, or differently typed — causing a runtime error or silent null propagation at the point of the expression.

Recommended Fix:
  • In `assignments.assignments[0].value`, change {{ $json.keys[0] }} to {{ $json.keys?.[0] }}.
  • In `assignments.assignments[1].value`, change {{ $json.clicks }} to {{ $json?.clicks }}.
  • In `assignments.assignments[2].value`, change {{ $json.impressions }} to {{ $json?.impressions }}.
  • In `assignments.assignments[3].value`, change {{ $json.ctr }} to {{ $json?.ctr }}.
  • In `assignments.assignments[4].value`, change {{ $json.position }} to {{ $json?.position }}.

4Fragile expressionRisk LowConfidence 90%1 node affected
Affected Nodes:
  • Edit Fields1
What happens:

These expressions work reliably against test data where all fields are present. In production, fields may be absent, null, or differently typed — causing a runtime error or silent null propagation at the point of the expression.

Recommended Fix:
  • In `assignments.assignments[0].value`, change {{ $json.keys[0] }} to {{ $json.keys?.[0] }}.
  • In `assignments.assignments[1].value`, change {{ $json.clicks }} to {{ $json?.clicks }}.
  • In `assignments.assignments[2].value`, change {{ $json.impressions }} to {{ $json?.impressions }}.
  • In `assignments.assignments[3].value`, change {{ $json.ctr }} to {{ $json?.ctr }}.
  • In `assignments.assignments[4].value`, change {{ $json.position }} to {{ $json?.position }}.

5Fragile expressionRisk LowConfidence 90%1 node affected
Affected Nodes:
  • Edit Fields2
What happens:

These expressions work reliably against test data where all fields are present. In production, fields may be absent, null, or differently typed — causing a runtime error or silent null propagation at the point of the expression.

Recommended Fix:
  • In `assignments.assignments[0].value`, change {{ $json.keys[0] }} to {{ $json.keys?.[0] }}.
  • In `assignments.assignments[1].value`, change {{ $json.clicks }} to {{ $json?.clicks }}.
  • In `assignments.assignments[2].value`, change {{ $json.impressions }} to {{ $json?.impressions }}.
  • In `assignments.assignments[3].value`, change {{ $json.ctr }} to {{ $json?.ctr }}.
  • In `assignments.assignments[4].value`, change {{ $json.position }} to {{ $json?.position }}.
Raw Findings (6)
#Issue titleIssue descriptionAffected nodes
1ReliabilityExternal call with no timeout configured

Node "date" makes an external call with no timeout parameter set. The n8n execution will wait indefinitely if the provider is slow or unresponsive.

date, Get query Report, Get Page ReportHigh90%
2ReliabilityNo error handler or failure notification path

Workflow has 7 high-risk nodes (external calls or writes) with no configured error workflow and no inline notification path. If a production execution fails, the failure only appears in execution history.

Edit Fields, Edit Fields1, Edit Fields2, date, Set your domain, Get query Report, Get Page ReportHigh85%
3ReliabilityFragile expression — likely to fail when production data shape differs from test data

Node "Edit Fields" contains expression(s) with risky patterns that assume fields are always present.

Edit FieldsMedium90%
4ReliabilityFragile expression — likely to fail when production data shape differs from test data

Node "Edit Fields1" contains expression(s) with risky patterns that assume fields are always present.

Edit Fields1Medium90%
5ReliabilityFragile expression — likely to fail when production data shape differs from test data

Node "Edit Fields2" contains expression(s) with risky patterns that assume fields are always present.

Edit Fields2Medium90%
6NamingFinding: poor naming generic

2 node(s) use default/generic names.. Node "Edit Fields" (n8n-nodes-base.set) has a generic default name.. Node "Schedule Trigger" (n8n-nodes-base.scheduleTrigger) has a generic default name.

Edit Fields, Schedule TriggerLow90%

Catch workflow risks before they catch you