FlowGuardPre-deployment review for n8n
All reports

Workflow review

ai_content_generator

1 critical4 high2 medium
Risk before
100 / 100
Risk after fixes
55 / 100
Findings
7
Fixed automatically
4 / 7

Needs a human decision (3)

FlowGuard could not apply these fixes safely, so the fixed workflow leaves them unchanged.

  1. Publish to WordPress · Remove credentials from the URL and configure an n8n HTTP Basic Auth credential; reference it via the 'Authentication' field of the HTTP Request node.
  2. Get Topics · Add a deduplication node using a unique topic ID, or store the last-processed row index in a persistent store and filter by it.
  3. Publish to WordPress · Add a human approval step (e.g. a Wait + webhook confirmation) between Generate Article and Publish to WordPress, or implement automated content validation before publishing.

Findings

SeverityCategoryNodeIssue and fixStatus
criticalsecurityPublish to WordPress

URL in parameter 'url' contains embedded credentials (user:pass@host); these are visible in plain text.

Fix: Remove credentials from the URL and configure an n8n HTTP Basic Auth credential; reference it via the 'Authentication' field of the HTTP Request node.

Manual
highcostGenerate Article

LLM node uses premium model 'gpt-4' and requests 8000 max tokens, which may incur significant API cost per run.

Fix: Switch to gpt-4o-mini and cap maxTokens at 2000 or below.

Fixed
highreliabilityGenerate Article

Node calls an external service (OpenAI) but has no retry configured; transient failures will break the workflow.

Fix: Set retryOnFail: true, maxTries: 3, waitBetweenTries: 2000.

Fixed
highreliabilityGet Topics

Schedule trigger fetches all topics every day with no deduplication or timestamp filter, causing duplicate blog posts on every re-run.

Fix: Add a deduplication node using a unique topic ID, or store the last-processed row index in a persistent store and filter by it.

Manual
highreliabilityPublish to WordPress

AI-generated blog content flows directly to publish without human approval, making irreversible changes based solely on LLM output.

Fix: Add a human approval step (e.g. a Wait + webhook confirmation) between Generate Article and Publish to WordPress, or implement automated content validation before publishing.

Manual
mediumcostGenerate Cover Image

Image generation node uses quality 'hd', which costs significantly more than 'standard' per image.

Fix: Change quality to 'standard' unless HD output is a hard requirement.

Fixed
mediumdocs(workflow)

The workflow has no sticky notes and no node notes; its purpose and context are undocumented.

Fix: Add at least one sticky note describing the workflow's purpose, trigger, owner, and credentials needed.

Fixed

Fixed workflow

criticalhighmediumlow
flowchart LR
    n0["Daily 7am"]
    n1["Get Topics"]
    n2["Generate Article"]
    n3["Generate Cover Image"]
    n4["Publish to WordPress"]
    n0 --> n1
    n1 --> n2
    n2 --> n3
    n3 --> n4
    classDef red fill:#fdecea,color:#8a1c12,stroke:#d0402b,stroke-width:1.5px
    classDef orange fill:#fdf0e3,color:#7a3a06,stroke:#d9731a,stroke-width:1.5px
    classDef yellow fill:#fbf5dc,color:#5e4b05,stroke:#b8960f,stroke-width:1.5px
    classDef blue fill:#e8f0fb,color:#153e75,stroke:#3d74c4,stroke-width:1.5px
    classDef clean fill:#f6f7f9,color:#2b3139,stroke:#c3c8cf
    class n0 clean
    class n1 orange
    class n2 orange
    class n3 yellow
    class n4 red