{
  "name": "Extract legal contract data & send alerts with VLM run, Google Workspace & Slack",
  "nodes": [
    {
      "id": "bdfebade-893c-411c-80c6-0dace07f7dc9",
      "name": "📁 Input Processing Documentation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "parameters": {
        "width": 400,
        "height": 680,
        "content": "## 📁 Input Processing\n\n**Monitors & downloads contract files from Google Drive.**\n\n**Process:**\n1. Watches designated Drive folder\n2. Auto-triggers on new uploads\n3. Downloads files for AI processing\n"
      }
    },
    {
      "id": "2fca40fa-ac4a-4515-a1e0-295cdcbfc595",
      "name": "Monitor Contract Uploads",
      "type": "n8n-nodes-base.googleDriveTrigger",
      "position": [
        48,
        480
      ]
    },
    {
      "id": "95acb226-9205-4a21-9a2d-c9792bc81de4",
      "name": "Download  Contract File",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        256,
        480
      ]
    },
    {
      "id": "61fa2c83-72cd-44b0-a5cd-5fbaeef5dfb1",
      "name": "🤖 AI Extraction Documentation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        512,
        0
      ],
      "parameters": {
        "width": 416,
        "height": 680,
        "content": "## 🤖 VLM Run Contract Extraction\n\n**Uses VLM Run node to extract structured data from contract images/PDFs.**\n\n**Extracts:**\n- Contract ID\n- Title\n- Parties\n- Effective Date\n- Termination Date\n\n**Feat"
      }
    },
    {
      "id": "84d28c8a-b33c-4bc3-9489-846c3b412d4a",
      "name": "VLM Run ContractParser",
      "type": "@vlm-run/n8n-nodes-vlmrun.vlmRun",
      "position": [
        560,
        480
      ]
    },
    {
      "id": "17996d92-afea-484c-88d3-9b2b673b1f4c",
      "name": "📊 Storage Documentation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1056,
        0
      ],
      "parameters": {
        "width": 420,
        "height": 680,
        "content": "## 📊 Data Storage\n\n**Structures and stores extracted data in Google Sheets.**\n\n**Features:**\n- Clean, organized format\n- Centralized expense database\n- Auto-appends new entries\n- Analysis-ready data\n\n"
      }
    },
    {
      "id": "70c2c9c5-d950-495f-9e91-5a0b402ef739",
      "name": "Save to Expense Database",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1344,
        480
      ]
    },
    {
      "id": "f752ffb1-d4eb-4d69-919d-2f4d72fb753e",
      "name": "Format Contract Data",
      "type": "n8n-nodes-base.set",
      "position": [
        1136,
        480
      ]
    },
    {
      "id": "d04b627c-1b80-4692-91a3-2df61bec0b4d",
      "name": "Send a message",
      "type": "n8n-nodes-base.slack",
      "position": [
        1712,
        512
      ]
    },
    {
      "id": "955768a3-5fac-4296-a5a3-d307a98b471c",
      "name": "Prepare Calendar Events",
      "type": "n8n-nodes-base.code",
      "position": [
        1616,
        336
      ]
    },
    {
      "id": "f3301d1a-5773-4598-ba4e-71019a4966bd",
      "name": "Create an event",
      "type": "n8n-nodes-base.googleCalendar",
      "position": [
        1808,
        336
      ]
    },
    {
      "id": "dd656271-d2a3-4f8a-9df8-1da0596b2734",
      "name": "📊 Storage Documentation1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1552,
        0
      ],
      "parameters": {
        "width": 420,
        "height": 680,
        "content": "## 🔔 Notifications Added:\n\n1. **Slack** → Posts contract details & AI-generated summary to #all-n8n-test for team visibility.\n\n2. **Google Calendar** → Auto-creates all-day events:\n   • Effective Date"
      }
    },
    {
      "id": "99fdd61d-c6a9-4e74-989a-e56b47caf2e9",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        368,
        704
      ],
      "parameters": {
        "width": 704,
        "height": 144,
        "content": "## 📝 Set the Callback URL\n\nMake sure to paste the **Production URL** of your n8n Webhook node into the **Callback URL** field in VLM Run. This ensures that the extracted image links are securely and r"
      }
    },
    {
      "id": "6d26e945-a724-4e3b-a8ff-c91dd8500f5f",
      "name": "Receive Contract",
      "type": "n8n-nodes-base.webhook",
      "position": [
        784,
        480
      ]
    }
  ],
  "connections": {
    "Receive Contract": {
      "main": [
        [
          {
            "node": "Format Contract Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Contract Data": {
      "main": [
        [
          {
            "node": "Save to Expense Database",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download  Contract File": {
      "main": [
        [
          {
            "node": "VLM Run ContractParser",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Calendar Events": {
      "main": [
        [
          {
            "node": "Create an event",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Monitor Contract Uploads": {
      "main": [
        [
          {
            "node": "Download  Contract File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Save to Expense Database": {
      "main": [
        [
          {
            "node": "Send a message",
            "type": "main",
            "index": 0
          },
          {
            "node": "Prepare Calendar Events",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}