{
  "name": "Moderate Facebook group posts with OpenAI, Slack, and Airtable",
  "nodes": [
    {
      "id": "f70bf3a1-798d-43fb-8c33-7411038c8ddb",
      "name": "Receive Facebook group",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -2752,
        -1696
      ]
    },
    {
      "id": "3e60fd90-9425-4d28-a2d6-025706631e7b",
      "name": "Extracts Posts",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -2512,
        -1696
      ]
    },
    {
      "id": "37be9984-d487-48fc-83c3-b891626c98e2",
      "name": "Normalize post data",
      "type": "n8n-nodes-base.set",
      "position": [
        -1920,
        -1680
      ]
    },
    {
      "id": "87fd0cb7-6022-402d-a692-af74e45be029",
      "name": "AI Content moderation",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        -1552,
        -1744
      ]
    },
    {
      "id": "4cbaedca-5219-49fb-b30a-6f1dec29b05b",
      "name": "Merge Ai result with post data",
      "type": "n8n-nodes-base.merge",
      "position": [
        -1104,
        -1664
      ]
    },
    {
      "id": "7f454043-5681-4076-95b7-5a3b3a8bce1c",
      "name": "Parse moderation result",
      "type": "n8n-nodes-base.code",
      "position": [
        -848,
        -1664
      ]
    },
    {
      "id": "b5bf00dd-ad12-4f4f-b2dc-0324be154d50",
      "name": "Violations?",
      "type": "n8n-nodes-base.if",
      "position": [
        -640,
        -1664
      ]
    },
    {
      "id": "c24b1afa-1853-48d8-88f8-4410f7b4f921",
      "name": "Severity high?",
      "type": "n8n-nodes-base.if",
      "position": [
        -256,
        -1392
      ]
    },
    {
      "id": "fc59ac45-8fd7-472a-9d50-f22c7211fa55",
      "name": "Violation alert notify",
      "type": "n8n-nodes-base.slack",
      "position": [
        -272,
        -2016
      ]
    },
    {
      "id": "e23eba99-778c-45db-b8c3-f1b66ab64dd1",
      "name": "Log violations",
      "type": "n8n-nodes-base.airtable",
      "position": [
        64,
        -2016
      ]
    },
    {
      "id": "e5712bd4-5842-4bde-b15c-8f11326c4639",
      "name": "Auto Hide Success Alert",
      "type": "n8n-nodes-base.slack",
      "position": [
        592,
        -1216
      ]
    },
    {
      "id": "cfa420f1-6298-4d5c-bbc0-231b2f9710d9",
      "name": "Auto hide failure alert",
      "type": "n8n-nodes-base.slack",
      "position": [
        592,
        -1616
      ]
    },
    {
      "id": "1ab102bd-7195-4af9-83c7-141bcb483417",
      "name": "Hide Facebook Post",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        64,
        -1408
      ]
    },
    {
      "id": "07e007ef-5806-47e2-908e-2b8da8d55333",
      "name": "Process Posts",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -2224,
        -1696
      ]
    },
    {
      "id": "5fc706d9-09ff-4f68-ad7a-70ec47d64052",
      "name": "Hide Post Failed",
      "type": "n8n-nodes-base.if",
      "position": [
        320,
        -1408
      ]
    },
    {
      "id": "ed2076ea-e144-46d6-a918-074203d357d2",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2832,
        -1792
      ],
      "parameters": {
        "width": null,
        "height": 240,
        "content": "It receives new posts made in the Facebook group using a webhook."
      }
    },
    {
      "id": "fc6b78b1-8bb8-43a6-9d50-e4e0fb1d371a",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2576,
        -1792
      ],
      "parameters": {
        "width": 224,
        "height": 240,
        "content": "This step separates each post so they can be processed one by one."
      }
    },
    {
      "id": "d677ee0e-3914-42b8-a4de-d9d5f134f5a2",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2320,
        -2016
      ],
      "parameters": {
        "width": 1856,
        "height": 640,
        "content": "## Post Moderation Process\nThis process automatically checks Facebook group posts one by one.\nEach post is cleaned and sent to AI for review.\nThe AI decides whether the post is safe or breaks group ru"
      }
    },
    {
      "id": "3bf7020e-0674-4f53-839f-015fc735e382",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -384,
        -2208
      ],
      "parameters": {
        "width": 640,
        "height": 432,
        "content": "## Notify team & Log Data\n\n**Violation alert notify:** Sends a Slack alert to moderators\nwith post details and violation reason.\n\n**Log violations:**  Saves the violation details in Airtable\nfor repor"
      }
    },
    {
      "id": "88e69fcb-4d5f-4591-bdb1-22a858ef500a",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -400,
        -1712
      ],
      "parameters": {
        "width": 1232,
        "height": 672,
        "content": "## Automatic Post Hiding Process\n\nThis process handles serious rule-breaking posts.\nIf a post is marked as high severity, the system tries to hide it automatically on Facebook.\nAfter the request, the "
      }
    },
    {
      "id": "c1a7ae1e-bc95-43a2-ba7d-efba143221b4",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3504,
        -2336
      ],
      "parameters": {
        "width": 528,
        "height": 720,
        "content": "## How it works \nThis workflow automatically monitors posts made in a Facebook Group and helps moderators act quickly on harmful or unwanted content.\n\nWhen a new post appears, the workflow receives it"
      }
    }
  ],
  "connections": {
    "Violations?": {
      "main": [
        [
          {
            "node": "Violation alert notify",
            "type": "main",
            "index": 0
          },
          {
            "node": "Severity high?",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Process Posts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Process Posts": {
      "main": [
        [],
        [
          {
            "node": "Normalize post data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extracts Posts": {
      "main": [
        [
          {
            "node": "Process Posts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Log violations": {
      "main": [
        [
          {
            "node": "Process Posts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Severity high?": {
      "main": [
        [
          {
            "node": "Hide Facebook Post",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Hide Post Failed": {
      "main": [
        [
          {
            "node": "Auto hide failure alert",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Auto Hide Success Alert",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Hide Facebook Post": {
      "main": [
        [
          {
            "node": "Hide Post Failed",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Normalize post data": {
      "main": [
        [
          {
            "node": "AI Content moderation",
            "type": "main",
            "index": 0
          },
          {
            "node": "Merge Ai result with post data",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "AI Content moderation": {
      "main": [
        [
          {
            "node": "Merge Ai result with post data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Receive Facebook group": {
      "main": [
        [
          {
            "node": "Extracts Posts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Violation alert notify": {
      "main": [
        [
          {
            "node": "Log violations",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse moderation result": {
      "main": [
        [
          {
            "node": "Violations?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge Ai result with post data": {
      "main": [
        [
          {
            "node": "Parse moderation result",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}