{
  "name": "Extract invoice data from PDFs with Gemini AI to Google Sheets 📄",
  "nodes": [
    {
      "id": "714b6c99-8f0a-439b-94d7-29bea1589dba",
      "name": "Intro Sticky",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1888,
        -880
      ],
      "parameters": {
        "width": null,
        "height": null,
        "content": ""
      }
    },
    {
      "id": "36f55639-f8b7-4733-b9e5-a17551fdb633",
      "name": "Setup Sticky",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1520,
        -880
      ],
      "parameters": {
        "width": null,
        "height": null,
        "content": ""
      }
    },
    {
      "id": "f1b4ea4f-7566-41e2-af24-e4a19b5d93c5",
      "name": "AI Extraction Sticky",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        432,
        -992
      ],
      "parameters": {
        "width": null,
        "height": null,
        "content": ""
      }
    },
    {
      "id": "37dbc171-8e58-4eb6-a326-e3629dfc41b0",
      "name": "Data Split Sticky",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        992,
        -1008
      ],
      "parameters": {
        "width": null,
        "height": null,
        "content": ""
      }
    },
    {
      "id": "11ffaff7-b3cc-408a-9abe-43b794a5463f",
      "name": "Google Sheets Sticky",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1584,
        -944
      ],
      "parameters": {
        "width": null,
        "height": null,
        "content": ""
      }
    },
    {
      "id": "9c4e40cd-8129-428d-a88d-b5562350b75b",
      "name": "Gmail Sticky",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1376,
        -1312
      ],
      "parameters": {
        "width": null,
        "height": null,
        "content": ""
      }
    },
    {
      "id": "ffcac485-5c9c-485c-bc6e-fb01a00aecb9",
      "name": "Extend Sticky",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1664,
        -1312
      ],
      "parameters": {
        "width": null,
        "height": null,
        "content": ""
      }
    },
    {
      "id": "44ec1ad5-daa0-49fc-b502-4f176a112413",
      "name": "Compare Datasets1",
      "type": "n8n-nodes-base.compareDatasets",
      "position": [
        -432,
        -720
      ]
    },
    {
      "id": "2c3bbfee-8ca9-4e88-bf9c-e4cdbb99d9db",
      "name": "Extract from File1",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        256,
        -704
      ]
    },
    {
      "id": "559ca06b-7caf-4852-b27c-44fa8f24f416",
      "name": "Google Gemini Chat Model2",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        512,
        -560
      ]
    },
    {
      "id": "3dbb9100-2549-4421-814c-a3260e31cf4d",
      "name": "Log the processing of the doc1",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1680,
        -720
      ]
    },
    {
      "id": "1b3f9c22-09a3-401f-9f1a-3226dd535a4d",
      "name": "Cleans output1",
      "type": "n8n-nodes-base.code",
      "position": [
        -656,
        -800
      ]
    },
    {
      "id": "96c85220-8cf0-4e6a-bbb5-870a7129c3ea",
      "name": "Get list of pdf files1",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -848,
        -800
      ]
    },
    {
      "id": "8c29b1cf-983f-4a4c-a031-b42f351f7b46",
      "name": "Read processed docs1",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -736,
        -608
      ]
    },
    {
      "id": "74c6773d-4794-4b9a-8600-0c3d76dd8ca4",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -928,
        -880
      ],
      "parameters": {
        "width": null,
        "height": null,
        "content": ""
      }
    },
    {
      "id": "70d08a7f-2e3f-4c87-b211-42f9431fdd79",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -144,
        -880
      ],
      "parameters": {
        "width": null,
        "height": null,
        "content": ""
      }
    },
    {
      "id": "df813074-a781-45ea-98a0-5941f22fa7f8",
      "name": "AI Agent - get targeted elements from text1",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        544,
        -784
      ]
    },
    {
      "id": "479aa135-bed9-464d-9d0f-fd1e21f0958f",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1184,
        -880
      ],
      "parameters": {
        "width": null,
        "height": null,
        "content": ""
      }
    },
    {
      "id": "fcdb2e08-cb36-479b-85fc-3e30219e5d24",
      "name": "Google Drive Trigger1",
      "type": "n8n-nodes-base.googleDriveTrigger",
      "position": [
        -1120,
        -704
      ]
    },
    {
      "id": "548694d2-ced7-4047-8ce2-99077202c840",
      "name": "Download file1",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        64,
        -704
      ]
    },
    {
      "id": "0fcd4caf-6f6b-41ad-b882-c7c58fd3e0e4",
      "name": "Structured Output Parser1",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        688,
        -608
      ]
    },
    {
      "id": "1f2a7b86-5134-4541-8c84-f5544f62f4c8",
      "name": "Google Gemini Chat Model3",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        768,
        -480
      ]
    },
    {
      "id": "7f825e30-be8e-4ada-a74e-0831ea3580bd",
      "name": "Limit1",
      "type": "n8n-nodes-base.limit",
      "position": [
        -128,
        -704
      ]
    },
    {
      "id": "11e663ae-b30d-4b22-9c85-92a09bf94818",
      "name": "Send a message1",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1456,
        -1120
      ]
    },
    {
      "id": "2c9e2591-51ca-4cf3-b1b8-f30a854a0a0f",
      "name": "Update invoice Fields1",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1456,
        -784
      ]
    },
    {
      "id": "02719e23-6981-4dab-81ba-b49ff1462cb2",
      "name": "Loop Over Items1",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1008,
        -784
      ]
    },
    {
      "id": "767efe5c-6da5-4048-a56a-dec53da68438",
      "name": "Code in JavaScript1",
      "type": "n8n-nodes-base.code",
      "position": [
        1232,
        -784
      ]
    },
    {
      "id": "571d934d-c285-402a-aab3-7020dc9e2614",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        208,
        -880
      ],
      "parameters": {
        "width": null,
        "height": null,
        "content": ""
      }
    }
  ],
  "connections": {
    "Limit1": {
      "main": [
        [
          {
            "node": "Download file1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Cleans output1": {
      "main": [
        [
          {
            "node": "Compare Datasets1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download file1": {
      "main": [
        [
          {
            "node": "Extract from File1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items1": {
      "main": [
        [
          {
            "node": "Send a message1",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Code in JavaScript1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Compare Datasets1": {
      "main": [
        [
          {
            "node": "Limit1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract from File1": {
      "main": [
        [
          {
            "node": "AI Agent - get targeted elements from text1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code in JavaScript1": {
      "main": [
        [
          {
            "node": "Update invoice Fields1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read processed docs1": {
      "main": [
        [
          {
            "node": "Compare Datasets1",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Google Drive Trigger1": {
      "main": [
        [
          {
            "node": "Get list of pdf files1",
            "type": "main",
            "index": 0
          },
          {
            "node": "Read processed docs1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get list of pdf files1": {
      "main": [
        [
          {
            "node": "Cleans output1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update invoice Fields1": {
      "main": [
        [
          {
            "node": "Log the processing of the doc1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model2": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent - get targeted elements from text1",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model3": {
      "ai_languageModel": [
        [
          {
            "node": "Structured Output Parser1",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser1": {
      "ai_outputParser": [
        [
          {
            "node": "AI Agent - get targeted elements from text1",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Log the processing of the doc1": {
      "main": [
        [
          {
            "node": "Loop Over Items1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent - get targeted elements from text1": {
      "main": [
        [
          {
            "node": "Loop Over Items1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}