{
  "name": "Convert emailed timesheets into QuickBooks invoices with OCR, AI, Gmail and Sheets",
  "nodes": [
    {
      "id": "63cf5c9c-4716-4df7-ae3b-78b842fb9790",
      "name": "QuickBooks Find Customer",
      "type": "n8n-nodes-base.quickbooks",
      "position": [
        800,
        560
      ]
    },
    {
      "id": "824b8f79-2364-4ac9-9d5c-bc224643f887",
      "name": "If Customer Exists?",
      "type": "n8n-nodes-base.if",
      "position": [
        1040,
        560
      ]
    },
    {
      "id": "5631c100-ef88-403a-8377-05490a67bf20",
      "name": "QuickBooks Create Customer",
      "type": "n8n-nodes-base.quickbooks",
      "position": [
        1200,
        640
      ]
    },
    {
      "id": "9baef671-798f-4609-b449-6571e6475ab2",
      "name": "QuickBooks Create Invoice",
      "type": "n8n-nodes-base.quickbooks",
      "position": [
        1440,
        544
      ]
    },
    {
      "id": "af5746bc-4efe-41b6-a97b-88cd82bb4179",
      "name": "When clicking ‘Execute workflow’",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        336,
        576
      ]
    },
    {
      "id": "d26d1afe-2855-45d7-8a7f-b64a3bbdec59",
      "name": "Get row(s) in sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        544,
        576
      ]
    },
    {
      "id": "6f45dbb4-1214-406f-83b4-4b35deddd048",
      "name": "Google Sheets2",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -336,
        1008
      ]
    },
    {
      "id": "ddc3111d-d7d6-4584-aa5a-ca7dbbd8be43",
      "name": "Set: Spreadsheet  (ID & Name)",
      "type": "n8n-nodes-base.set",
      "position": [
        -176,
        1008
      ]
    },
    {
      "id": "6bed8bcb-6e1a-4beb-8cd1-789f2e9307d3",
      "name": "Split Binary Attachments",
      "type": "n8n-nodes-base.code",
      "position": [
        -6016,
        976
      ]
    },
    {
      "id": "9eeae953-2664-4563-852f-79ef504e74be",
      "name": "Loop: Process Each Attachment",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -5824,
        976
      ]
    },
    {
      "id": "00bf8cd1-98b1-45df-be2a-d072b30e58ed",
      "name": "Wait1",
      "type": "n8n-nodes-base.wait",
      "position": [
        -3776,
        1104
      ]
    },
    {
      "id": "d550e8ef-80b3-45d1-a33a-da14d69bf7c6",
      "name": "Split Each Month",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -4528,
        1008
      ]
    },
    {
      "id": "f7fbe95e-06e7-4987-859e-7c50bdbc3044",
      "name": "Map Timesheet Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        -3552,
        976
      ]
    },
    {
      "id": "79340f4e-1b4c-4ef2-9ed8-43078f44cee9",
      "name": "Check for Duplicate Entry",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -848,
        656
      ]
    },
    {
      "id": "ca4d60a4-0ac4-4c96-a90f-3cbf5416d9f5",
      "name": "Skip If Duplicate Found",
      "type": "n8n-nodes-base.if",
      "position": [
        -416,
        304
      ]
    },
    {
      "id": "c58f4511-32e8-4927-931c-d04dd3b13e0d",
      "name": "Create Sheet Name + Invoice Date",
      "type": "n8n-nodes-base.set",
      "position": [
        -3376,
        976
      ]
    },
    {
      "id": "cf4dbbbc-da9e-4fb6-bf6c-fde9551cdd1a",
      "name": "Google Sheets: Create Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -912,
        1008
      ]
    },
    {
      "id": "299e9fe2-4e19-4a2a-b5d5-27379df97ee3",
      "name": "Move Sheet to Invoice Folder",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -752,
        1008
      ]
    },
    {
      "id": "6ae2aa39-41bd-4cca-9ea6-2647e9457828",
      "name": "Prepare Default Invoice Row",
      "type": "n8n-nodes-base.set",
      "position": [
        -576,
        1008
      ]
    },
    {
      "id": "545e30b1-4364-4b40-80fe-62b4c3ca1154",
      "name": "If- File is Exist",
      "type": "n8n-nodes-base.if",
      "position": [
        -1152,
        896
      ]
    },
    {
      "id": "c45ee3be-8041-4bf0-b5d2-96a8d1c9c11b",
      "name": "If1",
      "type": "n8n-nodes-base.if",
      "position": [
        -4288,
        1008
      ]
    },
    {
      "id": "01043fa6-1302-4d27-81f3-47da4ce1b354",
      "name": "Search: Client Invoices Folder",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -2816,
        976
      ]
    },
    {
      "id": "b49931f5-da60-4a6d-a30d-b745c90c58f3",
      "name": "Search: Employee Name Folder",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -2624,
        976
      ]
    },
    {
      "id": "7c165cf2-e64e-4791-97be-d00f61b90865",
      "name": "Check Employee Name Folder",
      "type": "n8n-nodes-base.if",
      "position": [
        -2384,
        960
      ]
    },
    {
      "id": "578cd5d9-9076-4d24-9484-29a85ffc86ae",
      "name": "Search: Inside folders in Employee Name Folder",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -2192,
        752
      ]
    },
    {
      "id": "881e94d5-7603-4760-bc81-267ceece9a0d",
      "name": "Search: Year Folder ",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -1856,
        752
      ]
    },
    {
      "id": "c846f0de-015b-4326-88dc-b96a9da139d6",
      "name": "Search: folder name",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -2016,
        752
      ]
    },
    {
      "id": "64a8e2e8-20ec-406c-8ec9-d656239be9a0",
      "name": "Check if Year Folder Exists",
      "type": "n8n-nodes-base.if",
      "position": [
        -1648,
        912
      ]
    },
    {
      "id": "d61eefea-4d26-4e1f-b728-f497088fa9bb",
      "name": "Create Current Year Folder",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -1488,
        1104
      ]
    },
    {
      "id": "5ab2c35e-ee0c-41b7-9ed3-419e97eb9373",
      "name": "Create Employee Name Folder",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -2192,
        1088
      ]
    },
    {
      "id": "a061431a-a11f-4f4a-a4a1-30efbca9a210",
      "name": "Google Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -1328,
        896
      ]
    },
    {
      "id": "a41d897b-d740-4ab7-93c5-7b70670fe053",
      "name": "Get Customer Info From PO Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -3104,
        976
      ]
    },
    {
      "id": "98b4e74d-201a-4ef0-a3fd-04cfb33dc04f",
      "name": "Create  Folder Name",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -2000,
        1088
      ]
    },
    {
      "id": "ccaf9ebe-7669-4e85-b6f7-aa71f80e2f04",
      "name": "Create: Year Folder",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -1808,
        1088
      ]
    },
    {
      "id": "5247b9d6-2020-43cc-8aab-2841b46959ac",
      "name": "Prepare Month array",
      "type": "n8n-nodes-base.set",
      "position": [
        -4720,
        1008
      ]
    },
    {
      "id": "96f8a4a0-74f0-4560-8715-ca8e65d24cee",
      "name": "Gmail Trigger",
      "type": "n8n-nodes-base.gmailTrigger",
      "position": [
        -6208,
        976
      ]
    },
    {
      "id": "d37d5a91-7b2d-4413-93f2-40d38ebb1ea7",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        -5600,
        992
      ]
    },
    {
      "id": "086786c5-2c56-4825-b13d-ec21e1bfe27f",
      "name": "Extract Text ",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -5408,
        992
      ]
    },
    {
      "id": "fbc92283-dbe1-41bb-8b2f-3425269c21c9",
      "name": "Skip January First Time",
      "type": "n8n-nodes-base.if",
      "position": [
        -640,
        656
      ]
    },
    {
      "id": "f937eb18-5d75-4eab-82b3-234a9e3e4191",
      "name": "Delete Exiting Row",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -448,
        640
      ]
    },
    {
      "id": "2ae397aa-f08d-47f7-8a85-f4f3a5302f43",
      "name": "OpenAI Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -5408,
        1280
      ]
    },
    {
      "id": "ef7c089b-bfc0-408d-b02a-9561c70c01c4",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -5120,
        1008
      ]
    },
    {
      "id": "7c696a0c-e31d-4531-b9c4-3d02d2127d3c",
      "name": "Google Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        -5136,
        1264
      ]
    },
    {
      "id": "0e4a28e4-5647-4aaf-b361-45378123a7a5",
      "name": " Sheets: Append Row1",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        96,
        96
      ]
    },
    {
      "id": "667a45ae-b9c7-40f5-8521-524267e29ccd",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -5488,
        848
      ],
      "parameters": {
        "width": 272,
        "height": 304,
        "content": "## OCR extraction\nSends each attachment to the OCR API and returns plain text. This turns PDFs and images into machine readable text before AI parsing.\n"
      }
    },
    {
      "id": "2b5a9a12-f3c4-4215-8eb2-040b60735ad6",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -960,
        880
      ],
      "parameters": {
        "width": 512,
        "height": 320,
        "content": "## Build invoice dates\nCalculates the invoice date and due date using the timesheet's week end date and PO due date rules. Outputs clean fields used to name and populate the invoice sheet.\n"
      }
    },
    {
      "id": "4c4eb027-fc39-4092-88f9-127a70dc1a35",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1584,
        1040
      ],
      "parameters": {
        "width": 304,
        "height": 224,
        "content": "## create new year folder"
      }
    },
    {
      "id": "96c97c10-93c6-40ad-95a2-8577fad99708",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -4752,
        864
      ],
      "parameters": {
        "width": 400,
        "height": 336,
        "content": "## normalize and extract timesheet month\nPrepare Month array and extract month number and split based on month\n\n"
      }
    },
    {
      "id": "8b01a523-8db2-423c-9552-2db9864b0f75",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -6256,
        864
      ],
      "parameters": {
        "width": 624,
        "height": 320,
        "content": "## Email intake and loop\nListens to Gmail for unread timesheet emails, splits all attachments, and processes each one in a loop so multiple timesheets in the same email are handled independently.\n"
      }
    },
    {
      "id": "659bc6b3-b974-422b-9da3-db6b9bb1cfda",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -7408,
        304
      ],
      "parameters": {
        "width": 976,
        "height": 992,
        "content": "## How it works\n\nThe workflow automates extracting timesheet data, organizing files, and syncing invoices to QuickBooks.\n\n1. Text extraction\nSplits attachments and sends them to an OCR API to convert "
      }
    },
    {
      "id": "5e8281df-c3d9-4b6e-8ae2-ce62a29494a7",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3200,
        784
      ],
      "parameters": {
        "width": 304,
        "height": 352,
        "content": "## Customer and PO lookup\nLooks up the sender in the Customer POs sheet and pulls account number, PO number, item name, folder name, invoice range, and due date offset that drive the invoice logic.\n"
      }
    },
    {
      "id": "1dba7598-ddb3-4042-9ac1-8aceacb63082",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -5184,
        848
      ],
      "parameters": {
        "width": 352,
        "height": 304,
        "content": "## AI timesheet parsing\nOpenAI reads the timesheet text and extracts employee name, client name, week start and end dates, total hours, and current year into clean JSON fields for later use.\n"
      }
    },
    {
      "id": "42f7105c-2a3c-45d8-8c5c-5ba5f65715b9",
      "name": "Sticky Note10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2864,
        800
      ],
      "parameters": {
        "width": 384,
        "height": 336,
        "content": "## Client folder discovery\nSearch Client Invoices folder, finds or creates the client level folder based on the timesheet client name and PO configuration.\n"
      }
    },
    {
      "id": "df6ef1e4-208d-405c-a24e-a23ef85bddfd",
      "name": "Sticky Note11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2256,
        656
      ],
      "parameters": {
        "width": 592,
        "height": 272,
        "content": "## ## File naming and search\n searches Drive for existing sheets with the employee and if it exist get that year's folder"
      }
    },
    {
      "id": "8fb091c3-7411-46a9-a8c8-d224868e0626",
      "name": "Sticky Note12",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2224,
        1008
      ],
      "parameters": {
        "width": 528,
        "height": 224,
        "content": "## Create new \ncreate new client name, employee and year named folder\n"
      }
    },
    {
      "id": "fc930765-6cc7-4f8b-b765-4bd6bff0c615",
      "name": "Sticky Note14",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -912,
        512
      ],
      "parameters": {
        "width": 432,
        "height": 304,
        "content": "## check for duplicate and  Skip January First Time  (first week of the year)\n\n"
      }
    },
    {
      "id": "30152731-a8f7-4e47-a20a-f137292d4b1e",
      "name": "Sticky Note15",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -496,
        176
      ],
      "parameters": {
        "width": 272,
        "height": 288,
        "content": "## skip if duplicate is found \n"
      }
    },
    {
      "id": "b49aa34b-7bfb-485b-9a27-804fcf2df6ba",
      "name": "Sticky Note16",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "parameters": {
        "width": 272,
        "height": 288,
        "content": "## add extracted data to sheets\n"
      }
    },
    {
      "id": "de96bd29-001c-4246-9de0-582591cbdc05",
      "name": "Sticky Note17",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -368,
        880
      ],
      "parameters": {
        "width": 304,
        "height": 288,
        "content": "## add extracted data to sheets\n"
      }
    },
    {
      "id": "4be99b7f-8240-4bfd-b8dc-123a02acf23e",
      "name": "Sticky Note19",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        480,
        400
      ],
      "parameters": {
        "width": null,
        "height": 336,
        "content": "## get data from sheets\nextracted data  from sheets\n"
      }
    },
    {
      "id": "b0438dc1-aff9-41ba-b5bb-2109eddbade9",
      "name": "Sticky Note20",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        736,
        400
      ],
      "parameters": {
        "width": null,
        "height": 368,
        "content": "## quickbooks customer info \nfrom quickbooks find customer info that match customer name in sheets\n"
      }
    },
    {
      "id": "e372d633-d563-49b2-b3d5-1e3124d47ff1",
      "name": "Sticky Note21",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1024,
        400
      ],
      "parameters": {
        "width": 304,
        "height": 384,
        "content": "## check if customer exists\n\nif exists continue else add new customer  info\n"
      }
    },
    {
      "id": "3999e083-c5aa-4137-9de9-548600dccd8b",
      "name": "Sticky Note22",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1360,
        400
      ],
      "parameters": {
        "width": 304,
        "height": 384,
        "content": "## add data into Quickbooks\nadd data from sheets into Quickbooks invoice "
      }
    },
    {
      "id": "886452e2-7474-43ff-9ae4-dedaffd60096",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -4032,
        832
      ],
      "parameters": {
        "width": 784,
        "height": 384,
        "content": "## check occurrence than map the data\ncheck  If: First Time This Month? and than map the extracted data   and create sheet +invoice date\n"
      }
    },
    {
      "id": "4f92a871-716d-4247-be9f-d30f1f80c56f",
      "name": "If: First Time This Month?",
      "type": "n8n-nodes-base.if",
      "position": [
        -4000,
        992
      ]
    }
  ],
  "connections": {
    "If1": {
      "main": [
        [
          {
            "node": "If: First Time This Month?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait": {
      "main": [
        [
          {
            "node": "Extract Text ",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait1": {
      "main": [
        [
          {
            "node": "Map Timesheet Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent": {
      "main": [
        [
          {
            "node": "Prepare Month array",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Drive": {
      "main": [
        [
          {
            "node": "If- File is Exist",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Text ": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Gmail Trigger": {
      "main": [
        [
          {
            "node": "Split Binary Attachments",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets2": {
      "main": [
        [
          {
            "node": "Set: Spreadsheet  (ID & Name)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Each Month": {
      "main": [
        [
          {
            "node": "If1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If- File is Exist": {
      "main": [
        [
          {
            "node": "Check for Duplicate Entry",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Google Sheets: Create Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Delete Exiting Row": {
      "main": [
        [
          {
            "node": " Sheets: Append Row1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create  Folder Name": {
      "main": [
        [
          {
            "node": "Create: Year Folder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create: Year Folder": {
      "main": [
        [
          {
            "node": "Check if Year Folder Exists",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get row(s) in sheet": {
      "main": [
        [
          {
            "node": "QuickBooks Find Customer",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If Customer Exists?": {
      "main": [
        [
          {
            "node": "QuickBooks Create Invoice",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "QuickBooks Create Customer",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Month array": {
      "main": [
        [
          {
            "node": "Split Each Month",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Search: folder name": {
      "main": [
        [
          {
            "node": "Search: Year Folder ",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    " Sheets: Append Row1": {
      "main": [
        [
          {
            "node": "Loop: Process Each Attachment",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Map Timesheet Fields": {
      "main": [
        [
          {
            "node": "Create Sheet Name + Invoice Date",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Search: Year Folder ": {
      "main": [
        [
          {
            "node": "Check if Year Folder Exists",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Skip If Duplicate Found": {
      "main": [
        [
          {
            "node": "Loop: Process Each Attachment",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": " Sheets: Append Row1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Skip January First Time": {
      "main": [
        [
          {
            "node": "Delete Exiting Row",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Skip If Duplicate Found",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "QuickBooks Find Customer": {
      "main": [
        [
          {
            "node": "If Customer Exists?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Binary Attachments": {
      "main": [
        [
          {
            "node": "Loop: Process Each Attachment",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check for Duplicate Entry": {
      "main": [
        [
          {
            "node": "Skip January First Time",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Employee Name Folder": {
      "main": [
        [
          {
            "node": "Search: Inside folders in Employee Name Folder",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create Employee Name Folder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Current Year Folder": {
      "main": [
        [
          {
            "node": "Google Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If: First Time This Month?": {
      "main": [
        [
          {
            "node": "Map Timesheet Fields",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "QuickBooks Create Customer": {
      "main": [
        [
          {
            "node": "QuickBooks Create Invoice",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check if Year Folder Exists": {
      "main": [
        [
          {
            "node": "Google Drive",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create Current Year Folder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Employee Name Folder": {
      "main": [
        [
          {
            "node": "Create  Folder Name",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets: Create Sheet": {
      "main": [
        [
          {
            "node": "Move Sheet to Invoice Folder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Default Invoice Row": {
      "main": [
        [
          {
            "node": "Google Sheets2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Move Sheet to Invoice Folder": {
      "main": [
        [
          {
            "node": "Prepare Default Invoice Row",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Search: Employee Name Folder": {
      "main": [
        [
          {
            "node": "Check Employee Name Folder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop: Process Each Attachment": {
      "main": [
        [],
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set: Spreadsheet  (ID & Name)": {
      "main": [
        [
          {
            "node": " Sheets: Append Row1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Search: Client Invoices Folder": {
      "main": [
        [
          {
            "node": "Search: Employee Name Folder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Customer Info From PO Sheet": {
      "main": [
        [
          {
            "node": "Search: Client Invoices Folder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Sheet Name + Invoice Date": {
      "main": [
        [
          {
            "node": "Get Customer Info From PO Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking ‘Execute workflow’": {
      "main": [
        [
          {
            "node": "Get row(s) in sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Search: Inside folders in Employee Name Folder": {
      "main": [
        [
          {
            "node": "Search: folder name",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}