AutomationFlows › Slack & Telegram › Whatsapp Fact-checking Bot with Perplexity AI and Twilio

Whatsapp Fact-checking Bot with Perplexity AI and Twilio

ByHarsh Maniya @harshmaniya1✓ on n8n.io

Tired of misinformation spreading on WhatsApp? 🤨 This workflow transforms your n8n instance into a powerful, automated fact-checking bot\! Send any news, claim, or question to a designated WhatsApp number, and this bot will use AI to research it, provide a verdict, and send back…

Webhook trigger★★☆☆☆ complexity6 nodesPerplexityTwilio
Slack & Telegram Trigger: Webhook Nodes: 6 Complexity: ★★☆☆☆ Added:

This workflow corresponds to n8n.io template #6842 — we link there as the canonical source.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "3UYpKpNGvAhavb0g",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "WhatsApp Fact-Checking Bot",
  "tags": [],
  "nodes": [
    {
      "id": "5a66e287-a2c6-48bc-ad4b-9812fdf0c19a",
      "name": "Receive Whatsapp Messages",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -384,
        -48
      ],
      "parameters": {
        "path": "whatsapp-inbound",
        "options": {},
        "httpMethod": "POST"
      },
      "typeVersion": 2
    },
    {
      "id": "a81de7f9-1bdc-40c8-8f51-2f13f70fe08e",
      "name": "Confirm news with Citations",
      "type": "n8n-nodes-base.perplexity",
      "position": [
        -48,
        -48
      ],
      "parameters": {
        "model": "sonar",
        "options": {},
        "messages": {
          "message": [
            {
              "role": "system",
              "content": "You are a cautious and objective AI fact-checker for a WhatsApp service. Your task is to verify the news or claim provided by the user.\n\n1. Analyze the user's query to understand the core claim being made.\n2. Perform a web search to find information from multiple reliable, neutral sources (like major news outlets, scientific journals, and fact-checking organizations).\n3. Based on the search results, provide a clear, one-phrase verdict at the very beginning of your response. Use one of the following: \"\u2705 Likely True\", \"\u274c Likely False\", \"\u26a0\ufe0f Misleading\", or \"\u2753 Unverified\".\n4. After the verdict, write a brief, neutral summary (2-3 sentences) explaining your findings in simple language suitable for a WhatsApp message.\n5. You MUST include citations for your key sources as provided by your search results. This is critical for user trust."
            },
            {
              "content": "={{ $json.body.Body }}"
            }
          ]
        },
        "simplify": true,
        "requestOptions": {}
      },
      "credentials": {
        "perplexityApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "0f57741e-9a02-47b1-8908-147d7651e7bc",
      "name": "Send Summary to whatsapp",
      "type": "n8n-nodes-base.twilio",
      "position": [
        288,
        -48
      ],
      "parameters": {
        "to": "={{ $('Receive Whatsapp Messages').item.json.body.From.replace('whatsapp:', '')  }}",
        "from": "={{ $('Receive Whatsapp Messages').item.json.body.To.replace('whatsapp:', '') }}",
        "message": "={{$json.message}}\n\n---\n\n*Sources:*\n{{ $json.citations.map((url, index) => `[${index + 1}] ${url}`).join('\\n') }}",
        "options": {},
        "toWhatsapp": true
      },
      "credentials": {
        "twilioApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "eb925e9f-f154-4b84-8405-b5a0a9881930",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -496,
        -368
      ],
      "parameters": {
        "width": 320,
        "height": 512,
        "content": "\n### \ud83d\udcec **WhatsApp Gateway**\n\nThis node is our digital front door! It patiently listens for incoming WhatsApp messages from a user.\n\n* **Triggers on:** A new message.\n* **Outputs:** The user's message (`Body`) and their phone number (`From`)."
      },
      "typeVersion": 1
    },
    {
      "id": "cb07fac9-16cb-4be9-94c2-537623eb43a8",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -160,
        -368
      ],
      "parameters": {
        "color": 7,
        "width": 320,
        "height": 512,
        "content": "### \ud83e\udd16 **The Digital Detective**\n\nThis is where the magic happens! We hand the user's question over to our AI detective. It follows strict instructions to scour the web for facts.\n\n* **Input:** The user's raw text from the webhook.\n* **Action:** Fact-checks the claim against reliable sources.\n* **Output:** A structured response with a verdict, a simple summary, and source citations."
      },
      "typeVersion": 1
    },
    {
      "id": "fa055749-49e5-452d-ab25-5aa6475a3f70",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        176,
        -368
      ],
      "parameters": {
        "color": 3,
        "width": 320,
        "height": 512,
        "content": "### \ud83d\udcf2 **WhatsApp Reply Service**\n\nMission complete! This node takes the carefully crafted answer from our AI detective and sends it directly back to the user.\n\n* **Input:** The AI's formatted verdict, summary, and citations.\n* **Action:** Delivers the final message to the original user via Twilio."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "6e1e2210-99c2-422e-ade8-41bfc6645333",
  "connections": {
    "Receive Whatsapp Messages": {
      "main": [
        [
          {
            "node": "Confirm news with Citations",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Confirm news with Citations": {
      "main": [
        [
          {
            "node": "Send Summary to whatsapp",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Tired of misinformation spreading on WhatsApp? 🤨 This workflow transforms your n8n instance into a powerful, automated fact-checking bot\! Send any news, claim, or question to a designated WhatsApp number, and this bot will use AI to research it, provide a verdict, and send back…

Source: https://n8n.io/workflows/6842/ — original creator credit. Request a take-down →

More Slack & Telegram workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Slack & Telegram

This workflow integrates iOS Shortcuts with n8n to create a simple, automatic location-based reminder system. When the user arrives at a specified location, an automation in the Shortcuts app sends a

Telegram
Slack & Telegram

Automates website downtime detection and notifications using UptimeRobot. Triggers alerts via Slack, WhatsApp, or Email when a website goes down. Creates a task in Notion and tags the responsible engi

Slack, Email Send, Notion +1
Slack & Telegram

Advanced Slackbot With N8N. Uses slack, httpRequest, stickyNote, executeWorkflow. Webhook trigger; 34 nodes.

Slack, HTTP Request, Execute Workflow Trigger +1
Slack & Telegram

Slackbots are super powerful. At n8n, we have been using them to get a lot done.. But it can become hard to manage and maintain many different operations that a workflow can do.

Slack, HTTP Request, Execute Workflow Trigger +1
Slack & Telegram

Standup Bot 4 4 Worker. Uses mattermost, httpRequest, noOp, executeWorkflow. Webhook trigger; 29 nodes.

Mattermost, HTTP Request