{
  "name": "Review legal policies with GPT-4o, Gmail, Slack, and Google Sheets",
  "nodes": [
    {
      "id": "f224a44f-c7d9-48b8-81e1-2741f09534df",
      "name": "Policy Submission Form",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        256,
        784
      ]
    },
    {
      "id": "dcd04c30-5764-481e-a62e-ae7fc37501c3",
      "name": "Extract Policy Document",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        480,
        784
      ]
    },
    {
      "id": "f2a7630e-147c-446b-ba17-badfc4b2f749",
      "name": "Policy Analysis Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        784,
        1232
      ]
    },
    {
      "id": "0f674b6e-9ddf-4587-9a60-bfc4399753c1",
      "name": "Policy Analysis Agent",
      "type": "@n8n/n8n-nodes-langchain.agentTool",
      "position": [
        832,
        1008
      ]
    },
    {
      "id": "1d9d207e-6249-4109-8069-50f5023222ec",
      "name": "Compliance Tracking Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1200,
        1216
      ]
    },
    {
      "id": "76b3d25a-2d18-4436-b2f1-64e76e51dd54",
      "name": "Compliance Tracking Agent",
      "type": "@n8n/n8n-nodes-langchain.agentTool",
      "position": [
        1120,
        1008
      ]
    },
    {
      "id": "2268a7fb-6dff-44be-a4e1-e4ea03505143",
      "name": "Legal Summary Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1488,
        1216
      ]
    },
    {
      "id": "02778f6a-9298-48ce-84a4-5ea536494bed",
      "name": "Legal Summary Agent",
      "type": "@n8n/n8n-nodes-langchain.agentTool",
      "position": [
        1408,
        1008
      ]
    },
    {
      "id": "c8d37d63-cb7f-498e-a0e2-7bd45ab8aad3",
      "name": "Legal Governance Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        704,
        1008
      ]
    },
    {
      "id": "d9f5332c-524a-40bc-af1e-3df067632e56",
      "name": "Governance Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        2016,
        1008
      ]
    },
    {
      "id": "291f4128-55d8-4b26-858a-364a752d47a3",
      "name": "Email Notification Tool",
      "type": "n8n-nodes-base.gmailTool",
      "position": [
        1696,
        1008
      ]
    },
    {
      "id": "0815a125-97ea-4d41-914f-99f08183684c",
      "name": "Slack Notification Tool",
      "type": "n8n-nodes-base.slackTool",
      "position": [
        1824,
        1008
      ]
    },
    {
      "id": "0952dedc-c6bc-48a9-ad0b-37607f49b2d5",
      "name": "Legal Governance Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1416,
        784
      ]
    },
    {
      "id": "1ccfc938-8210-457c-8f1d-d4457da7094a",
      "name": "Route by Approval Status",
      "type": "n8n-nodes-base.switch",
      "position": [
        2192,
        752
      ]
    },
    {
      "id": "886cb86a-bd64-4389-980f-0e7ae0d61811",
      "name": "Prepare Policy Record",
      "type": "n8n-nodes-base.set",
      "position": [
        2384,
        784
      ]
    },
    {
      "id": "bc81edf8-81b6-4bb3-9110-ab1cbb216a70",
      "name": "Store Policy Records",
      "type": "n8n-nodes-base.dataTable",
      "position": [
        2688,
        784
      ]
    },
    {
      "id": "801a455e-9a8f-42e1-a546-31c14210c569",
      "name": "Prepare Approval Record",
      "type": "n8n-nodes-base.set",
      "position": [
        2688,
        1072
      ]
    },
    {
      "id": "020be2f2-c1f7-4194-a220-66e3af2d372e",
      "name": "Track Approvals",
      "type": "n8n-nodes-base.dataTable",
      "position": [
        2912,
        1072
      ]
    },
    {
      "id": "c9cb53ee-17a5-4d25-810b-3a3946d11644",
      "name": "Prepare Compliance Record",
      "type": "n8n-nodes-base.set",
      "position": [
        2688,
        1264
      ]
    },
    {
      "id": "b97135db-f5c7-4951-9dd3-3257c5378e1b",
      "name": "Track Compliance",
      "type": "n8n-nodes-base.dataTable",
      "position": [
        2912,
        1264
      ]
    },
    {
      "id": "1d17b560-c158-4097-8d95-c8b58694ef76",
      "name": "Prepare Audit Log",
      "type": "n8n-nodes-base.set",
      "position": [
        2688,
        1456
      ]
    },
    {
      "id": "0cedac92-5635-4d9b-b2bd-9c29d9815ad3",
      "name": "Audit Trail",
      "type": "n8n-nodes-base.dataTable",
      "position": [
        2912,
        1456
      ]
    },
    {
      "id": "e568185b-819e-4b8e-a6f9-8fb7e03ba59c",
      "name": "Split Stakeholders",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        2912,
        688
      ]
    },
    {
      "id": "36fd87b9-3fa0-4ea0-bf95-c4a3d58fa6b9",
      "name": "Send Stakeholder Email",
      "type": "n8n-nodes-base.gmail",
      "position": [
        3136,
        688
      ]
    },
    {
      "id": "a2b98679-001c-4ecf-96d4-c46d40740e89",
      "name": "Post Governance Update",
      "type": "n8n-nodes-base.slack",
      "position": [
        2912,
        880
      ]
    },
    {
      "id": "2a9aaae6-73ca-4146-8890-bf270039beb1",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1440,
        176
      ],
      "parameters": {
        "width": 672,
        "height": 352,
        "content": "## Prerequisites\n- OpenAI API key (or compatible LLM)\n- Gmail account with OAuth credentials\n- Slack workspace with bot credentials\n- Google Sheets with policy, approval, compliance, and audit tabs pr"
      }
    },
    {
      "id": "bccccab7-6e21-415b-b409-278c83c1acde",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        960,
        256
      ],
      "parameters": {
        "width": 416,
        "height": 272,
        "content": "## Setup Steps\n1. Import workflow; configure the Policy Submission Form trigger.\n2. Add AI model credentials to the Legal Governance Agent, Policy Analysis Agent, Compliance Tracking Agent, and Legal "
      }
    },
    {
      "id": "ea8b1680-7a6e-4f4b-9346-ae97083550a9",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        224,
        256
      ],
      "parameters": {
        "width": 672,
        "height": 304,
        "content": "## How It Works\nThis workflow automates legal policy governance for legal teams, policy managers, and compliance officers, eliminating manual document review, approval classification, and multi-channe"
      }
    },
    {
      "id": "0f94f956-4155-40e5-970f-c89329b6e734",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1680,
        624
      ],
      "parameters": {
        "width": 464,
        "height": 832,
        "content": "## Email & Slack Notification Tools\n**Why** — Multi-channel notifications ensure governance decisions reach stakeholders immediately without manual distribution.\n\n"
      }
    },
    {
      "id": "08e3357f-2b6a-4a22-b29c-6af0720d3dfe",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        704,
        640
      ],
      "parameters": {
        "width": 960,
        "height": 832,
        "content": "## Legal Governance Agent & Specialist Agents\n**Why** — Coordinates Policy Analysis, Compliance Tracking, and Legal Summary agents in parallel using shared memory for consistent, context-aware policy "
      }
    },
    {
      "id": "64656730-d1e5-4eaa-84dc-06ad63aaf0e9",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        96,
        640
      ],
      "parameters": {
        "width": 576,
        "height": 304,
        "content": "## Policy Submission & Document Extraction\n**Why** — Form-triggered ingestion and structured text extraction ensure every policy document enters the pipeline in a consistent, processable format."
      }
    },
    {
      "id": "caac662f-3354-4505-bbe1-0a7e42a3f841",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2160,
        592
      ],
      "parameters": {
        "width": 352,
        "height": 848,
        "content": "## Route by Approval Status\n**Why** — Rules-based routing separates approved, compliance-flagged, and audit-required records for proportionate, parallel handling."
      }
    },
    {
      "id": "3131cfcd-b5b6-48bb-935d-8350b0782e2b",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2544,
        592
      ],
      "parameters": {
        "width": 864,
        "height": 1056,
        "content": "## Policy Records, Approvals, Compliance & Audit Trail\n**Why** — Four parallel Google Sheets tracks capture policy storage, approval decisions, compliance status, and audit logs — maintaining a comple"
      }
    }
  ],
  "connections": {
    "Prepare Audit Log": {
      "main": [
        [
          {
            "node": "Audit Trail",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Stakeholders": {
      "main": [
        [
          {
            "node": "Send Stakeholder Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Legal Summary Agent": {
      "ai_tool": [
        [
          {
            "node": "Legal Governance Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Legal Summary Model": {
      "ai_languageModel": [
        [
          {
            "node": "Legal Summary Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Store Policy Records": {
      "main": [
        [
          {
            "node": "Split Stakeholders",
            "type": "main",
            "index": 0
          },
          {
            "node": "Post Governance Update",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Policy Analysis Agent": {
      "ai_tool": [
        [
          {
            "node": "Legal Governance Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Policy Analysis Model": {
      "ai_languageModel": [
        [
          {
            "node": "Policy Analysis Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Policy Record": {
      "main": [
        [
          {
            "node": "Store Policy Records",
            "type": "main",
            "index": 0
          },
          {
            "node": "Prepare Approval Record",
            "type": "main",
            "index": 0
          },
          {
            "node": "Prepare Compliance Record",
            "type": "main",
            "index": 0
          },
          {
            "node": "Prepare Audit Log",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Legal Governance Agent": {
      "main": [
        [
          {
            "node": "Route by Approval Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Legal Governance Model": {
      "ai_languageModel": [
        [
          {
            "node": "Legal Governance Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Policy Submission Form": {
      "main": [
        [
          {
            "node": "Extract Policy Document",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Email Notification Tool": {
      "ai_tool": [
        [
          {
            "node": "Legal Governance Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Extract Policy Document": {
      "main": [
        [
          {
            "node": "Legal Governance Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Approval Record": {
      "main": [
        [
          {
            "node": "Track Approvals",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Slack Notification Tool": {
      "ai_tool": [
        [
          {
            "node": "Legal Governance Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Governance Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Legal Governance Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Route by Approval Status": {
      "main": [
        [
          {
            "node": "Prepare Policy Record",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Prepare Policy Record",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Prepare Policy Record",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Prepare Policy Record",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Compliance Tracking Agent": {
      "ai_tool": [
        [
          {
            "node": "Legal Governance Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Compliance Tracking Model": {
      "ai_languageModel": [
        [
          {
            "node": "Compliance Tracking Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Compliance Record": {
      "main": [
        [
          {
            "node": "Track Compliance",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}