Content & Social Media · n8n

Fact-Check Draft Articles with Perplexity Before You Publish

An n8n workflow that takes a draft article, extracts its factual claims, asks Perplexity to verify each one against live sources, and logs a pass/fail report with citations to Google Sheets — so writers catch wrong stats and outdated facts before they go live, not after a reader does.

difficulty Intermediatesetup 50 minresult A claim-by-claim fact-check report with sources for every draft, before it publishes
  1. 1

    Receive the draft

    Add a Webhook node (POST) that accepts a JSON body with the draft title and text. Send drafts to it from a Google Docs add-on, a form, or your CMS's 'ready for review' hook.

  2. 2

    Extract the claims

    An HTTP Request to Claude asks for strict JSON: an array of discrete factual claims (stats, dates, attributions, superlatives), ignoring opinion. This turns prose into a checkable list.

  3. 3

    Verify each claim with Perplexity

    An Item Lists node splits the claims, then an HTTP Request to sonar-pro checks each: 'Is this claim accurate as of today? Verdict: supported / contradicted / unverifiable. Cite sources.' The live search is what catches outdated numbers.

  4. 4

    Shape the report rows

    A Code node builds one row per claim: the claim text, the verdict, a short note, and the citation URLs. Colour-coding by verdict in the sheet later makes the failures jump out instantly.

  5. 5

    Log to Google Sheets

    A Google Sheets node appends the rows under a section for that article. The writer opens the sheet, filters to contradicted and unverifiable, fixes those lines in the draft, and publishes with confidence.

Frequently asked questions

How does it decide what a 'claim' is?

A first Claude (or Perplexity) call extracts discrete, checkable factual statements — numbers, dates, attributions, superlatives — and ignores opinion or fluff. Each extracted claim is then verified individually so the report is granular. You review only the flagged ones, not the whole article.

How is a claim marked pass or fail?

For each claim, Perplexity returns a verdict (supported / contradicted / unverifiable) plus the sources it found. The workflow writes all three states to the sheet. 'Contradicted' and 'unverifiable' are the rows a writer must look at; 'supported' with a good source can be trusted.

How do I feed a draft into it?

Any way you like — the trigger is flexible. The example uses a Webhook you can POST a draft to (from a Google Docs add-on, a form, or your CMS), but you could also watch a Google Drive folder or a 'Ready for check' status in a Notion/Sheets content calendar. The draft text is all the workflow needs.

About this recipe. Recipes on FlowRecipesHub are written for business owners, not developers, and are tested before publishing — how recipes get made. Some ingredient links are affiliate links that cost you nothing — full disclosure.