{
  "name": "Send vendor follow-up emails for overdue POs with Google Sheets and Gmail",
  "nodes": [
    {
      "id": "a3553b21-5120-430e-b93e-54a53a49c7c2",
      "name": "Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -544,
        -32
      ]
    },
    {
      "id": "0f9a7f55-d2f1-4b15-85ad-127abe34c0f3",
      "name": "Read PO",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -304,
        -112
      ]
    },
    {
      "id": "b08b50af-e1a4-4f6e-bb95-1c8e3e195697",
      "name": "Filter + Normalize",
      "type": "n8n-nodes-base.code",
      "position": [
        -80,
        -112
      ]
    },
    {
      "id": "45123449-2ed4-4bc5-a7cc-f1e2eb35d552",
      "name": "Read Vendors",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -304,
        96
      ]
    },
    {
      "id": "f1b20f6b-ee5b-4905-a3d9-74c6da01ea8b",
      "name": "Group by Vendor",
      "type": "n8n-nodes-base.code",
      "position": [
        416,
        -112
      ]
    },
    {
      "id": "b66e3ba5-ff49-4f15-8c59-dda7c85c0a0f",
      "name": "Send Email",
      "type": "n8n-nodes-base.gmail",
      "position": [
        640,
        -112
      ]
    },
    {
      "id": "f09bb165-7559-4d7b-b204-40cedf9fbff9",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        176,
        -32
      ]
    },
    {
      "id": "2cf5e7e2-7ae5-48b5-a0e2-f25e393d1578",
      "name": "Update PO Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        416,
        80
      ]
    },
    {
      "id": "f54200cf-3ccf-486c-aee0-907667cdb3d6",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1072,
        -304
      ],
      "parameters": {
        "width": 400,
        "height": 688,
        "content": "How it works\nChasing vendors manually is a time-sink. This workflow automates the \"nagging\" so you don't have to. Every morning at 9:00 AM, the system scans your Purchase Order Log to find orders that"
      }
    },
    {
      "id": "108c5f02-19ae-485d-a2eb-27cda499d26e",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -384,
        -288
      ],
      "parameters": {
        "width": 208,
        "height": 576,
        "content": "1. Data Retrieval\nThis section triggers the daily run and pulls the raw data from both your Purchase Order logs and your Vendor contact database."
      }
    },
    {
      "id": "284549f3-4694-4bd8-a1cc-76b13a11b1f2",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -96,
        -256
      ],
      "parameters": {
        "width": 384,
        "height": 544,
        "content": "2. Validation & Merging\nHere, the workflow filters out completed orders and checks the \"7-day rule.\" It then joins the PO data with vendor emails using the Vendor ID."
      }
    },
    {
      "id": "42307d7e-d7bd-4f0c-a609-94605900ac00",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        368,
        -288
      ],
      "parameters": {
        "width": 448,
        "height": 528,
        "content": "3. Communication & Tracking\nThis final stage batches multiple POs into a single professional email and \"checks the box\" in your spreadsheet by logging the follow-up date."
      }
    }
  ],
  "connections": {
    "Merge": {
      "main": [
        [
          {
            "node": "Group by Vendor",
            "type": "main",
            "index": 0
          },
          {
            "node": "Update PO Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read PO": {
      "main": [
        [
          {
            "node": "Filter + Normalize",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Trigger": {
      "main": [
        [
          {
            "node": "Read PO",
            "type": "main",
            "index": 0
          },
          {
            "node": "Read Vendors",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read Vendors": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Group by Vendor": {
      "main": [
        [
          {
            "node": "Send Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter + Normalize": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}