kipn.ai
Shared workflow report

Dental clinic speed to lead

Analyzed

Executive Summary
n8n
Production RiskHigh

Finding: pinned data in production — Review the finding details and address accordingly.

Cost ExposureHigh

AI node has no output token cap — Without a cap, models occasionally produce very long outputs — particularly when given an ambiguous or open-ended prompt. This increases cost unpredictably and can cause downstream parsing to fail if the consumer expects a bounded response.

Observability Gap

Side-effect node has no audit trail — If this action is disputed, replayed, or causes a data inconsistency, there is no structured record of what was sent, when, and with what data. Debugging requires cross-referencing n8n execution history with the external system's own logs.

32/ 100
Overall
Risk: HighCost: High
Reliability
0
Security
70
Cost Risk
0
Observability
36
AI Governance
100
Naming
97
Complexity
92
Nodes
45
Edges
42
External calls
26
LLM nodes
9
AI via HTTP
0
Loops
0
Error handlers
0
Unreachable
0
Max depth
4
Workflow Graph
Graph
45 nodes · 42 edges
100%
click a node to highlight its upstream & downstream paths
Controls Matrix
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

4 of 9 AI nodes missing token cap

Partial
AI Output Format

Free-form output will break downstream parsers

Present
Activity Logging

Side effects unlogged

Missing
Write Deduplication

Webhook replays may create duplicate records

Missing

Run this analysis on your own workflows

Break Points
7Fragile expressionRisk HighConfidence 90%1 node affected
Affected Nodes:
  • Send a message
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 `sendTo`, change {{ $('Webhook').item.json.body.data.fields[2].value }} to {{ $('Webhook')?.item?.json?.body?.data?.fields[2]?.value }}.
  • In `message`, change {{ $('Webhook').item.json.body.data.fields[0].value }} to {{ $('Webhook')?.item?.json?.body?.data?.fields[0]?.value }}.
  • In `message`, change {{ $json.output.questions }} to {{ $json?.output.questions }}.

8Fragile expressionRisk HighConfidence 90%1 node affected
Affected Nodes:
  • Send an SMS/MMS/WhatsApp message
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 `to`, change {{ $('Webhook').item.json.body.data.fields[3].value }} to {{ $('Webhook')?.item?.json?.body?.data?.fields[3]?.value }}.
  • In `message`, change {{ $('Webhook').item.json.body.data.fields[0].value }} to {{ $('Webhook')?.item?.json?.body?.data?.fields[0]?.value }}.
Cost Hotspots

Currently covers AI/LLM nodes. Non-AI API costs will be added in a future update.

1Multiple cost risksHigh exposure50 pts1 node affected
Affected Nodes:
  • AI Agent
Cost risks:
  • Full payload in promptunbounded input tokens
  • No output capunbounded output tokens
  • LLM chaineach subsequent call pays input tokens for all prior outputs
  • Agent iteration riskno max iterations set
Recommended Fix:

Set maxTokens to a value appropriate for the task. Classification tasks rarely need more than 100 tokens; structured JSON output typically needs 200–500; long-form summaries may need 1,000–2,000. Start conservative and increase if needed.


2Multiple cost risksHigh exposure40 pts3 nodes affected
Affected Nodes:
  • AI Agent1
  • AI Agent3
  • AI Agent4
Cost risks:
  • Full payload in promptunbounded input tokens
  • No output capunbounded output tokens
  • Agent iteration riskno max iterations set
Recommended Fix:

Set maxTokens to a value appropriate for the task. Classification tasks rarely need more than 100 tokens; structured JSON output typically needs 200–500; long-form summaries may need 1,000–2,000. Start conservative and increase if needed.


3Agent iteration riskLow exposure10 pts1 node affected
Affected Nodes:
  • AI Agent2
What happens:

no max iterations set

Recommended Fix:

Set maxIterations to 10–20 for most agentic tasks. Monitor actual iteration counts in execution history and adjust up if legitimate tasks are being cut short.

Raw Findings (96)
#Issue titleIssue descriptionAffected nodes
1ReliabilityAI node blocks synchronous webhook response path

Node "Webhook" executes in the synchronous response path of the webhook trigger. The webhook trigger's responseMode is "responseNode", meaning the webhook sender waits for a response before marking delivery complete.

Webhook, AI AgentHigh85%
2ReliabilityAI node blocks synchronous webhook response path

Node "Webhook1" executes in the synchronous response path of the webhook trigger. The webhook trigger's responseMode is "responseNode", meaning the webhook sender waits for a response before marking delivery complete.

Webhook1, AI Agent3High85%
3Cost RiskAI node has no output token cap

Node "AI Agent" has no maxTokens or equivalent parameter set. Output length is controlled solely by the model.

AI AgentHigh85%
4Cost RiskAI node has no output token cap

Node "AI Agent1" has no maxTokens or equivalent parameter set. Output length is controlled solely by the model.

AI Agent1High85%
5Cost RiskAI node has no output token cap

Node "AI Agent3" has no maxTokens or equivalent parameter set. Output length is controlled solely by the model.

AI Agent3High85%
6Cost RiskAI node has no output token cap

Node "AI Agent4" has no maxTokens or equivalent parameter set. Output length is controlled solely by the model.

AI Agent4High85%
7ReliabilityExternal call with no timeout configured

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

AI Agent, Services Offered, OpenAI Chat Model, AI Agent1, Get a document in Google Docs, Send a message, Send an SMS/MMS/WhatsApp message, HTTP Request, AI Agent2, OpenAI Chat Model1, Lead Urgency determiner, Reply to a message, AI Agent3, Lead urgency questions, Update row in sheet, HTTP Request2, AI Agent4, OpenAI Chat Model2, Lead urgency, Update row in sheet1, Send an SMS/MMS/WhatsApp message1, OpenAI Chat Model3High90%
8ReliabilityFinding: pinned data in production

pinned node: "Webhook" (role: webhook_trigger). 1 pinned item(s) — node never executes; returns static data every run

WebhookHigh99%
9ReliabilityFinding: pinned data in production

pinned node: "AI Agent1" (role: ai_agent). 1 pinned item(s) — node never executes; returns static data every run. downstream write node(s): "Send a message" (external_write), "HTTP Request" (unknown_write), "Send an SMS/MMS/WhatsApp message" (external_write)

AI Agent1, Send a message, HTTP Request, Send an SMS/MMS/WhatsApp messageHigh99%
10ReliabilityFinding: pinned data in production

pinned node: "Send a message" (role: external_read). 1 pinned item(s) — node never executes; returns static data every run

Send a messageHigh99%
11ReliabilityFinding: pinned data in production

pinned node: "Gmail Trigger" (role: trigger). 1 pinned item(s) — node never executes; returns static data every run

Gmail TriggerHigh99%
12ReliabilityFinding: pinned data in production

pinned node: "AI Agent2" (role: ai_agent). 1 pinned item(s) — node never executes; returns static data every run. downstream write node(s): "Reply to a message" (external_write)

AI Agent2, Reply to a messageHigh99%
13ReliabilityFinding: pinned data in production

pinned node: "Reply to a message" (role: external_read). 1 pinned item(s) — node never executes; returns static data every run

Reply to a messageHigh99%
14ReliabilityFinding: pinned data in production

pinned node: "Webhook1" (role: webhook_trigger). 1 pinned item(s) — node never executes; returns static data every run

Webhook1High99%
15ReliabilityFinding: pinned data in production

pinned node: "AI Agent3" (role: ai_agent). 1 pinned item(s) — node never executes; returns static data every run. downstream write node(s): "Update row in sheet" (external_write), "HTTP Request2" (unknown_write)

AI Agent3, Update row in sheet, HTTP Request2High99%
16ReliabilityFinding: pinned data in production

pinned node: "Twilio Trigger" (role: trigger). 1 pinned item(s) — node never executes; returns static data every run

Twilio TriggerHigh99%
17ReliabilityFinding: pinned data in production

pinned node: "AI Agent4" (role: ai_agent). 1 pinned item(s) — node never executes; returns static data every run. downstream write node(s): "Update row in sheet1" (external_write), "Send an SMS/MMS/WhatsApp message1" (external_write)

AI Agent4, Update row in sheet1, Send an SMS/MMS/WhatsApp message1High99%
18SecurityFinding: webhook no auth

authentication: absent. path: short custom path "__KIPNAI_SAN__WEBHOOK_URL__p7w4FJYj__" (enumerable). downstream write node(s): "Send a message", "HTTP Request", "Send an SMS/MMS/WhatsApp message"

Webhook, Send a message, HTTP Request, Send an SMS/MMS/WhatsApp messageHigh90%
19SecurityFinding: webhook no auth

authentication: absent. path: short custom path "__KIPNAI_SAN__WEBHOOK_URL__ihlaPQ0N__" (enumerable). downstream write node(s): "Update row in sheet", "HTTP Request2"

Webhook1, Update row in sheet, HTTP Request2High90%
20ReliabilityFragile expression — likely to fail when production data shape differs from test data

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

AI AgentHigh90%
21ReliabilityFragile expression — likely to fail when production data shape differs from test data

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

AI Agent1High90%
22ReliabilityFragile expression — likely to fail when production data shape differs from test data

Node "Send a message" contains expression(s) with risky patterns that assume fields are always present.

Send a messageHigh90%
23ReliabilityFragile expression — likely to fail when production data shape differs from test data

Node "Send an SMS/MMS/WhatsApp message" contains expression(s) with risky patterns that assume fields are always present.

Send an SMS/MMS/WhatsApp messageHigh90%
24ReliabilityFragile expression — likely to fail when production data shape differs from test data

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

AI Agent2High85%
25ReliabilityFragile expression — likely to fail when production data shape differs from test data

Node "Reply to a message" contains expression(s) with risky patterns that assume fields are always present.

Reply to a messageHigh85%
26ReliabilityFragile expression — likely to fail when production data shape differs from test data

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

AI Agent3High85%
27ReliabilityFragile expression — likely to fail when production data shape differs from test data

Node "Update row in sheet" contains expression(s) with risky patterns that assume fields are always present.

Update row in sheetHigh85%
28ReliabilityFragile expression — likely to fail when production data shape differs from test data

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

AI Agent4High85%
29ReliabilityFragile expression — likely to fail when production data shape differs from test data

Node "Update row in sheet1" contains expression(s) with risky patterns that assume fields are always present.

Update row in sheet1High85%
30ReliabilityFragile expression — likely to fail when production data shape differs from test data

Node "Send an SMS/MMS/WhatsApp message1" contains expression(s) with risky patterns that assume fields are always present.

Send an SMS/MMS/WhatsApp message1High85%
31ReliabilityNo error handler or failure notification path

Workflow has 26 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.

AI Agent, Services Offered, OpenAI Chat Model, AI Agent1, Get a document in Google Docs, Structured Output Parser, Send a message, Send an SMS/MMS/WhatsApp message, HTTP Request, AI Agent2, Structured Output Parser1, OpenAI Chat Model1, Lead Urgency determiner, Reply to a message, AI Agent3, Structured Output Parser2, Lead urgency questions, Update row in sheet, HTTP Request2, AI Agent4, Structured Output Parser3, OpenAI Chat Model2, Lead urgency, Update row in sheet1, Send an SMS/MMS/WhatsApp message1, OpenAI Chat Model3High85%
32Cost RiskAI agent has no iteration limit

Agent node "AI Agent" has no maxIterations or equivalent parameter. The agent will continue calling tools until it decides to stop or hits a platform-level limit.

AI AgentMedium85%
33Cost RiskAI agent has no iteration limit

Agent node "AI Agent1" has no maxIterations or equivalent parameter. The agent will continue calling tools until it decides to stop or hits a platform-level limit.

AI Agent1Medium85%
34Cost RiskAI agent has no iteration limit

Agent node "AI Agent2" has no maxIterations or equivalent parameter. The agent will continue calling tools until it decides to stop or hits a platform-level limit.

AI Agent2Medium85%
35Cost RiskAI agent has no iteration limit

Agent node "AI Agent3" has no maxIterations or equivalent parameter. The agent will continue calling tools until it decides to stop or hits a platform-level limit.

AI Agent3Medium85%
36Cost RiskAI agent has no iteration limit

Agent node "AI Agent4" has no maxIterations or equivalent parameter. The agent will continue calling tools until it decides to stop or hits a platform-level limit.

AI Agent4Medium85%
37ReliabilityAPI response may be paginated — only first page processed

Node "Services Offered" fetches data without returnAll: true or visible pagination handling (no cursor/offset parameter updating per page).

Services OfferedMedium60%
38ReliabilityAPI response may be paginated — only first page processed

Node "Get a document in Google Docs" fetches data without returnAll: true or visible pagination handling (no cursor/offset parameter updating per page).

Get a document in Google DocsMedium60%
39ReliabilityAPI response may be paginated — only first page processed

Node "Lead Urgency determiner" fetches data without returnAll: true or visible pagination handling (no cursor/offset parameter updating per page).

Lead Urgency determinerMedium60%
40ReliabilityAPI response may be paginated — only first page processed

Node "Lead urgency questions" fetches data without returnAll: true or visible pagination handling (no cursor/offset parameter updating per page).

Lead urgency questionsMedium60%
41ReliabilityAPI response may be paginated — only first page processed

Node "Lead urgency" fetches data without returnAll: true or visible pagination handling (no cursor/offset parameter updating per page).

Lead urgencyMedium60%
42ReliabilityBranch with no fallback path

Switch/IF node "Switch" has no Switch/Router node "Switch" has no "Otherwise" or fallback output — items that match no condition will be silently discarded.

SwitchMedium60%
43ComplexityFinding: complexity nodes

Workflow contains 45 active nodes (threshold: >30 medium, >60 high, >100 critical).

Medium100%
44ReliabilityFinding: pinned data in production

pinned node: "AI Agent" (role: ai_agent). 1 pinned item(s) — node never executes; returns static data every run

AI AgentMedium99%
45ReliabilityFinding: pinned data in production

pinned node: "Get row(s) in sheet" (role: unknown). 1 pinned item(s) — node never executes; returns static data every run

Get row(s) in sheetMedium99%
46ReliabilityFinding: pinned data in production

pinned node: "Append row in sheet1" (role: unknown). 1 pinned item(s) — node never executes; returns static data every run

Append row in sheet1Medium99%
47ReliabilityFinding: pinned data in production

pinned node: "Get row(s) in sheet1" (role: unknown). 1 pinned item(s) — node never executes; returns static data every run

Get row(s) in sheet1Medium99%
48ReliabilityFinding: pinned data in production

pinned node: "Update row in sheet" (role: external_write). 1 pinned item(s) — node never executes; returns static data every run

Update row in sheetMedium99%
49ReliabilityFinding: pinned data in production

pinned node: "Create an event1" (role: unknown). 1 pinned item(s) — node never executes; returns static data every run

Create an event1Medium99%
50ReliabilityFinding: pinned data in production

pinned node: "Get row(s) in sheet2" (role: unknown). 1 pinned item(s) — node never executes; returns static data every run

Get row(s) in sheet2Medium99%
51ReliabilityFinding: pinned data in production

pinned node: "Update row in sheet1" (role: external_write). 1 pinned item(s) — node never executes; returns static data every run

Update row in sheet1Medium99%
52ReliabilityFragile expression — likely to fail when production data shape differs from test data

Node "Append row in sheet" contains expression(s) with risky patterns that assume fields are always present.

Append row in sheetMedium90%
53ReliabilityFragile expression — likely to fail when production data shape differs from test data

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

IfMedium90%
54ReliabilityFragile expression — likely to fail when production data shape differs from test data

Node "Append row in sheet1" contains expression(s) with risky patterns that assume fields are always present.

Append row in sheet1Medium85%
55ReliabilityFragile expression — likely to fail when production data shape differs from test data

Node "Create an event" contains expression(s) with risky patterns that assume fields are always present.

Create an eventMedium90%
56ReliabilityFragile expression — likely to fail when production data shape differs from test data

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

If1Medium85%
57ReliabilityFragile expression — likely to fail when production data shape differs from test data

Node "Create an event1" contains expression(s) with risky patterns that assume fields are always present.

Create an event1Medium90%
58ReliabilityFragile expression — likely to fail when production data shape differs from test data

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

If2Medium85%
59ReliabilityFragile expression — likely to fail when production data shape differs from test data

Node "Create an event2" contains expression(s) with risky patterns that assume fields are always present.

Create an event2Medium85%
60Cost RiskFull or large payload detected in AI prompt

Node "AI Agent" receives text: large-payload keyword 'body' in its prompt parameter. This sends an unbounded amount of data to the model.

AI AgentMedium80%
61Cost RiskFull or large payload detected in AI prompt

Node "AI Agent1" receives text: large-payload keyword 'body' in its prompt parameter. This sends an unbounded amount of data to the model.

AI Agent1Medium80%
62Cost RiskFull or large payload detected in AI prompt

Node "AI Agent3" receives text: large-payload keyword 'transcript' in its prompt parameter. This sends an unbounded amount of data to the model.

AI Agent3Medium80%
63Cost RiskFull or large payload detected in AI prompt

Node "AI Agent4" receives text: large-payload keyword 'body' in its prompt parameter. This sends an unbounded amount of data to the model.

AI Agent4Medium80%
64Cost RiskLLM chain — each subsequent call pays input tokens for all prior outputs

Chain detected: AI Agent, AI Agent1 (2 nodes). Each node's output is passed as input to the next node's prompt.

AI Agent, AI Agent1Medium80%
65ObservabilitySide-effect node has no audit trail

Node "Send a message" performs a write node: "send a message" (sideeffect: external_write) operation with no logging or audit trail detected downstream.

Send a messageMedium70%
66ObservabilitySide-effect node has no audit trail

Node "Send an SMS/MMS/WhatsApp message" performs a write node: "send an sms/mms/whatsapp message" (sideeffect: external_write) operation with no logging or audit trail detected downstream.

Send an SMS/MMS/WhatsApp messageMedium70%
67ObservabilitySide-effect node has no audit trail

Node "HTTP Request" performs a write node: "http request" (sideeffect: unknown_write) operation with no logging or audit trail detected downstream.

HTTP RequestMedium70%
68ObservabilitySide-effect node has no audit trail

Node "Reply to a message" performs a write node: "reply to a message" (sideeffect: external_write) operation with no logging or audit trail detected downstream.

Reply to a messageMedium70%
69ObservabilitySide-effect node has no audit trail

Node "Update row in sheet" performs a write node: "update row in sheet" (sideeffect: external_write) operation with no logging or audit trail detected downstream.

Update row in sheetMedium70%
70ObservabilitySide-effect node has no audit trail

Node "HTTP Request2" performs a write node: "http request2" (sideeffect: unknown_write) operation with no logging or audit trail detected downstream.

HTTP Request2Medium70%
71ObservabilitySide-effect node has no audit trail

Node "Update row in sheet1" performs a write node: "update row in sheet1" (sideeffect: external_write) operation with no logging or audit trail detected downstream.

Update row in sheet1Medium70%
72ObservabilitySide-effect node has no audit trail

Node "Send an SMS/MMS/WhatsApp message1" performs a write node: "send an sms/mms/whatsapp message1" (sideeffect: external_write) operation with no logging or audit trail detected downstream.

Send an SMS/MMS/WhatsApp message1Medium70%
73ReliabilityWebhook trigger feeds write operation without unique-key protection

The webhook trigger feeds node "Webhook" without a visible unique key constraint or deduplication step. No ID field parameter was detected in the write node configuration.

Webhook, Send a messageMedium65%
74ReliabilityWebhook trigger feeds write operation without unique-key protection

The webhook trigger feeds node "Webhook" without a visible unique key constraint or deduplication step. No ID field parameter was detected in the write node configuration.

Webhook, HTTP RequestMedium65%
75ReliabilityWebhook trigger feeds write operation without unique-key protection

The webhook trigger feeds node "Webhook" without a visible unique key constraint or deduplication step. No ID field parameter was detected in the write node configuration.

Webhook, Send an SMS/MMS/WhatsApp messageMedium65%
76ReliabilityWebhook trigger feeds write operation without unique-key protection

The webhook trigger feeds node "Webhook1" without a visible unique key constraint or deduplication step. No ID field parameter was detected in the write node configuration.

Webhook1, Update row in sheetMedium65%
77ReliabilityWebhook trigger feeds write operation without unique-key protection

The webhook trigger feeds node "Webhook1" without a visible unique key constraint or deduplication step. No ID field parameter was detected in the write node configuration.

Webhook1, HTTP Request2Medium65%
78ReliabilityBranch with no fallback path

Switch/IF node "If" has no a default/fallback output — items that match no condition will be silently discarded.

IfLow60%
79ReliabilityBranch with no fallback path

Switch/IF node "If1" has no a default/fallback output — items that match no condition will be silently discarded.

If1Low60%
80ReliabilityBranch with no fallback path

Switch/IF node "If2" has no a default/fallback output — items that match no condition will be silently discarded.

If2Low60%
81NamingFinding: poor naming generic

4 node(s) use default/generic names.. Node "Webhook" (n8n-nodes-base.webhook) has a generic default name.. Node "Switch" (n8n-nodes-base.switch) has a generic default name.. Node "HTTP Request" (n8n-nodes-base.httpRequest) has a generic default name.. Node "If" (n8n-nodes-base.if) has a generic default name.

Webhook, Switch, HTTP Request, IfLow90%
82ReliabilityFragile expression — likely to fail when production data shape differs from test data

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

SwitchLow75%
83ReliabilityFinding: external without retry

Node "AI Agent" (@n8n/n8n-nodes-langchain.agent) is a read-only external call with no retry configured.. sideEffect: read_only, role: ai_agent. Read-only calls are typically safe to retry; enabling retryOnFail improves resilience to transient failures.

AI AgentInfo70%
84ReliabilityFinding: external without retry

Node "Services Offered" (n8n-nodes-base.googleDocsTool) is a read-only external call with no retry configured.. sideEffect: read_only, role: external_read. Read-only calls are typically safe to retry; enabling retryOnFail improves resilience to transient failures.

Services OfferedInfo70%
85ReliabilityFinding: external without retry

Node "OpenAI Chat Model" (@n8n/n8n-nodes-langchain.lmChatOpenAi) is a read-only external call with no retry configured.. sideEffect: read_only, role: ai_model_call. Read-only calls are typically safe to retry; enabling retryOnFail improves resilience to transient failures.

OpenAI Chat ModelInfo70%
86ReliabilityFinding: external without retry

Node "AI Agent1" (@n8n/n8n-nodes-langchain.agent) is a read-only external call with no retry configured.. sideEffect: read_only, role: ai_agent. Read-only calls are typically safe to retry; enabling retryOnFail improves resilience to transient failures.

AI Agent1Info70%
87ReliabilityFinding: external without retry

Node "Get a document in Google Docs" (n8n-nodes-base.googleDocsTool) is a read-only external call with no retry configured.. sideEffect: read_only, role: external_read. Read-only calls are typically safe to retry; enabling retryOnFail improves resilience to transient failures.

Get a document in Google DocsInfo70%
88ReliabilityFinding: external without retry

Node "AI Agent2" (@n8n/n8n-nodes-langchain.agent) is a read-only external call with no retry configured.. sideEffect: read_only, role: ai_agent. Read-only calls are typically safe to retry; enabling retryOnFail improves resilience to transient failures.

AI Agent2Info70%
89ReliabilityFinding: external without retry

Node "OpenAI Chat Model1" (@n8n/n8n-nodes-langchain.lmChatOpenAi) is a read-only external call with no retry configured.. sideEffect: read_only, role: ai_model_call. Read-only calls are typically safe to retry; enabling retryOnFail improves resilience to transient failures.

OpenAI Chat Model1Info70%
90ReliabilityFinding: external without retry

Node "Lead Urgency determiner" (n8n-nodes-base.googleDocsTool) is a read-only external call with no retry configured.. sideEffect: read_only, role: external_read. Read-only calls are typically safe to retry; enabling retryOnFail improves resilience to transient failures.

Lead Urgency determinerInfo70%
91ReliabilityFinding: external without retry

Node "AI Agent3" (@n8n/n8n-nodes-langchain.agent) is a read-only external call with no retry configured.. sideEffect: read_only, role: ai_agent. Read-only calls are typically safe to retry; enabling retryOnFail improves resilience to transient failures.

AI Agent3Info70%
92ReliabilityFinding: external without retry

Node "Lead urgency questions" (n8n-nodes-base.googleDocsTool) is a read-only external call with no retry configured.. sideEffect: read_only, role: external_read. Read-only calls are typically safe to retry; enabling retryOnFail improves resilience to transient failures.

Lead urgency questionsInfo70%
93ReliabilityFinding: external without retry

Node "AI Agent4" (@n8n/n8n-nodes-langchain.agent) is a read-only external call with no retry configured.. sideEffect: read_only, role: ai_agent. Read-only calls are typically safe to retry; enabling retryOnFail improves resilience to transient failures.

AI Agent4Info70%
94ReliabilityFinding: external without retry

Node "OpenAI Chat Model2" (@n8n/n8n-nodes-langchain.lmChatOpenAi) is a read-only external call with no retry configured.. sideEffect: read_only, role: ai_model_call. Read-only calls are typically safe to retry; enabling retryOnFail improves resilience to transient failures.

OpenAI Chat Model2Info70%
95ReliabilityFinding: external without retry

Node "Lead urgency" (n8n-nodes-base.googleDocsTool) is a read-only external call with no retry configured.. sideEffect: read_only, role: external_read. Read-only calls are typically safe to retry; enabling retryOnFail improves resilience to transient failures.

Lead urgencyInfo70%
96ReliabilityFinding: external without retry

Node "OpenAI Chat Model3" (@n8n/n8n-nodes-langchain.lmChatOpenAi) is a read-only external call with no retry configured.. sideEffect: read_only, role: ai_model_call. Read-only calls are typically safe to retry; enabling retryOnFail improves resilience to transient failures.

OpenAI Chat Model3Info70%

Catch workflow risks before they catch you