{"workflow":{"id":13174,"name":"Extract invoices from Gmail with Laiye ADP and save them to Google Drive","views":39,"recentViews":0,"totalViews":39,"createdAt":"2026-02-03T03:55:37.662Z","description":"## Workflow Introduction\n### Core Competence \n  Our invoice extraction workflow is completed end-to-end automatically: Gmail invoice email screening → extraction of key fields from multi-format invoices → automatic archiving of results to Google Drive, replacing the repetitive manual labor of finance staff in opening and entering invoices.\n### Differentiated Advantage \n  1. **High Accuracy:** The extraction accuracy of core fields is 91%+, far exceeding that of similar products in the industry;\n  2. **Advantages of table extraction:** For invoices containing tables, the line-extract technology has a significant extraction effect;\n  3. **Multi-format Compatibility:** Natively supports invoice formats such as PDF, images, Word, Excel, etc., without the need for conversion;\n  4. **Lightweight Integration:** Seamlessly integrates with Gmail and Google Drive, Out Of The Box.\n## Company Introduction\n  Laiye ADP (Agentic Document Processing), based on large language models and vision-language models, combined with agent technology, is a new generation platform that enables end-to-end automated document processing. \n\nFor more information, please visit the official website of Laiye Technology: ++[https://laiye.com/](https://laiye.com/en/?utm_source=n8n)++\n  \n## Use Cases\n1. **Multi-supplier integration**: Efficiently process invoices from multiple suppliers, automatically extract key invoice information for archiving;\n2. **Accounting firms batch process large amounts of invoice data**: they can handle the increased invoice processing. requirements brought about by the growth in the number of clients without adding staff;\n3. **Cross-border trade enterprises**: For multi-language/complex layout overseas invoice scenarios, without the need for manual setup and human processing, achieve understanding of documents and then complete extraction of important data;\n4. **Small and Medium-sized Technology Enterprises**: Quickly identify important information such as invoice date, invoice amount, and invoice number from employee reimbursement invoices, and say goodbye to manual data entry.\n\n## How it works\n**Step 1: Complete Gmail authorization**\n\n  You need to authorize your Google email. We will automatically obtain your email attachments from Google email. To accurately obtain and identify the invoice attachments, you can set up your email filter configuration by yourself, for example:\n- Emails with attachments and subjects containing keywords like \"invoice\";\n- Emails from supplier;\n- Emails under the designated label.\n\n\n**Step 2: Automate document filtering**\n\nWe have configured the document automatic filterer for you, which will filter out the documents that meet the automated processing flow. There is no need for manual operation. \n\nFor those that do not meet the conditions, our workflow will store these documents in the designated folder for quick retrieval during manual processing. There is no need to sift through emails one by one. \n\nThe documents that we preset for automatic processing include the following conditions (union):\n- The attachment title contains text: invoice, receipt, expenses, fee (any one of them is sufficient. If you want to match other commonly used words in actual business, you can directly modify the```\n {{ $json.attachment_extension }} ```\nfield in the filter to assign the value.\n- File size: &lt; 50MB\n- File format: .jpeg, .jpg, .png, .bmp, .tiff, .pdf, .doc, .docx, .xls, .xlsx.\n\n**Step 3: Complete ADP permission configuration**\n- You need to go to [adp.laiye.com](https://adp-global.laiye.com/?utm_source=n8n) to register for free, after which you can obtain 100 free calls per month \n\n![img_n8n.jpg](fileId:4670)\n\n- Select the Out Of The Box Agent Application-Invoice/Receipt Card, and click the more menu [...] on the card to directly obtain your exclusive API Key, App Secret, and Access Key\n- Simply fill the obtained Key into the configuration item of the 【Laiye ADP HTTP Request Node】 \n- After ADP completes invoice extraction, it will return structured Json data, which includes more than 10 text fields, such as \"Invoice Name\", \"Invoice Number\", \"Invoice Date\", etc., as well as complete invoice table fields, such as \"Item Name\", \"Description\", \"Quantity\", \"Unit Price\", etc.\n\n**Step 4: Complete Google Drive authorization**\n\n  - Files processed by ADP will be automatically converted into binary data to ensure smooth import into Google Drive (Sheet)\n  - Files that have not undergone ADP processing will be saved as the original files to the [Untreated Document] folder. If all files have been automatically processed, this folder will not be created\n  - Extracted documents can be automatically saved to any folder you specify. By default, they are stored in MY Drive. If you wish to save them to a custom folder, simply modify the Parent Folder setting\n\n## Professional Community and Latest News\nFollow us on LinkedIn for more updates! ++[https://www.linkedin.com/company/laiye](https://www.linkedin.com/company/laiye)++\n  - We will share the latest updates on Laiye ADP products;\n  - You can share your successful invoice processing cases.\n\n## Problems & Support\n  If you encounter any issues during use, you can try contacting us for technical support (++global_product@laiye.com++), and your message requesting technical support can include the following content: \n  - Describe the problem you encountered in as much detail as possible\n  - Your current invoice processing volume and type\n  - The specific supplier format or invoice layout you handle \n  - Target Accounting Software or System Integration\n  - Any technical errors or issues with extraction accuracy\n  - Current manual processing workflow and pain points\n  Response time: within 24 hours on working days\n  Professional Areas: Invoice Processing Automation, Order Processing Automation, Receipt Processing Automation","workflow":{"id":"AOioHpxTTmZ5y5gC","meta":{"instanceId":"d244db8c676d65c46fd92a22bd44b8c37cb22c76c648726820ac71b445849758"},"name":"From Gmail to Google Drive, Laiye ADP fully automated invoice extraction","tags":[],"nodes":[{"id":"0d9d5f81-fdd0-4ce3-a76b-63d5ff0115b7","name":"Gmail Trigger","type":"n8n-nodes-base.gmailTrigger","position":[896,480],"parameters":{"simple":false,"filters":{"labelIds":["INBOX"],"readStatus":"both"},"options":{"downloadAttachments":true,"dataPropertyAttachmentsPrefixName":"attachment_"},"pollTimes":{"item":[{"hour":23,"minute":59}]}},"typeVersion":1.3},{"id":"aaec31d1-c60a-4fde-bbf7-6a9bac5e09da","name":"Merge","type":"n8n-nodes-base.merge","position":[2192,544],"parameters":{"mode":"combine","options":{},"combineBy":"combineAll"},"typeVersion":3.2},{"id":"9960d10f-3231-4bbb-8265-9a051cced530","name":"Upload Unprocessed file","type":"n8n-nodes-base.googleDrive","position":[2384,544],"parameters":{"driveId":{"__rl":true,"mode":"list","value":"My Drive"},"options":{},"folderId":{"__rl":true,"mode":"id","value":"={{ $json.id }}"},"inputDataFieldName":"=file"},"retryOnFail":false,"typeVersion":3},{"id":"6035c47b-6f5d-4d47-88bf-ad908cb55adf","name":"Extract attachment information","type":"n8n-nodes-base.code","position":[1232,480],"parameters":{"jsCode":"const outputItems = [];\n\n$input.all().forEach((inputItem) => {\n  const { json, binary } = inputItem;\n\n  // Iterate all binary attachments (attachment_0, attachment_1...)\n  const binaryKeys = Object.keys(binary || {});\n\n  if (binaryKeys.length === 0) {\n    // Return empty metadata when no attachments to avoid process interruption\n    outputItems.push({\n      json: {\n        \"attachment_name\": \"\",\n        \"attachment_extension\": \"\",\n        \"mime_type\": \"\",\n        \"attachment_size_bytes\": 0,\n        \"attachment_size_mb\": 0,\n        \"has_attachment\": false,\n        \"email_id\": json.id || \"\"\n      },\n      binary: {}\n    });\n    return;\n  }\n\n  // Process each attachment when available\n  binaryKeys.forEach((binaryKey) => {\n    const att = binary[binaryKey];\n    if (!att) return;\n\n    // Extract metadata from binary\n    const fileName = att.fileName || \"\";\n    const fileExt = att.fileExtension || \"\";\n    const mimeType = att.mimeType || \"\";\n    const fileSizeStr = att.fileSize || \"0 kB\";\n\n    // Parse file size to bytes\n    let fileSizeBytes = 0;\n    const sizeMatch = fileSizeStr.match(/(\\d+(?:\\.\\d+)?)\\s*(kB|MB|GB|B)/i);\n    if (sizeMatch) {\n      const value = parseFloat(sizeMatch[1]);\n      const unit = sizeMatch[2].toUpperCase();\n      switch (unit) {\n        case \"B\":\n          fileSizeBytes = value;\n          break;\n        case \"KB\":\n          fileSizeBytes = value * 1024;\n          break;\n        case \"MB\":\n          fileSizeBytes = value * 1024 * 1024;\n          break;\n        case \"GB\":\n          fileSizeBytes = value * 1024 * 1024 * 1024;\n          break;\n      }\n    }\n\n    const fileSizeMB = (fileSizeBytes / 1024 / 1024).toFixed(2);\n\n    outputItems.push({\n      json: {\n        \"attachment_name\": fileName,\n        \"attachment_extension\": fileExt,\n        \"mime_type\": mimeType,\n        \"attachment_size_bytes\": Math.round(fileSizeBytes),\n        \"attachment_size_mb\": parseFloat(fileSizeMB),\n        \"has_attachment\": true,\n        \"email_id\": json.id || \"\",\n        \"binary_key\": binaryKey // Used to associate binary files later\n      },\n      // Core modification: Rename all attachments to \"file\" instead of attachment_X\n      binary: {\n        file: att\n      }\n    });\n  });\n});\n\nreturn outputItems;"},"typeVersion":2},{"id":"c898a939-f009-414a-a57a-0cf935901aa7","name":"Filter documents","type":"n8n-nodes-base.if","position":[1552,480],"parameters":{"options":{"ignoreCase":true},"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":false,"typeValidation":"loose"},"combinator":"and","conditions":[{"id":"1d3c412e-2393-4c9f-9505-031b0a9b9f4c","operator":{"type":"string","operation":"regex"},"leftValue":"={{ $json.attachment_name }}","rightValue":"={{ \"invoice|receipt|expenses|fee\" }}"},{"id":"b51b0700-dc6c-4342-b67d-f0c060e3e526","operator":{"type":"string","operation":"regex"},"leftValue":"={{ $json.attachment_extension }}","rightValue":"={{ \"^(jpeg|jpg|png|bmp|tiff|pdf|doc|docx|xls|xlsx)$\" }}"},{"id":"16f33e86-b523-4fa8-b1be-3cc4ad5a78df","operator":{"type":"number","operation":"lt"},"leftValue":"={{ $json.attachment_size_mb }}","rightValue":"={{ 50 }}"}]},"looseTypeValidation":true},"typeVersion":2.3},{"id":"7ed141be-6fd4-4729-b700-0d28039273bc","name":"Base64 Encode Document","type":"n8n-nodes-base.extractFromFile","position":[1920,288],"parameters":{"options":{"encoding":"base64"},"operation":"binaryToPropery","binaryPropertyName":"=file"},"typeVersion":1.1},{"id":"fff5863f-fe64-4458-91df-25dfc423bf30","name":"Laiye ADP HTTP Request","type":"n8n-nodes-base.httpRequest","position":[2160,288],"parameters":{"url":"https://adp.laiye.com/open/agentic_doc_processor/laiye/v1/app/doc/extract","method":"POST","options":{},"jsonBody":"={\n  \"app_key\": \"enter_your_app_key\",\n  \"app_secret\":\"enter_your_app_secret\",\n  \"file_base64\": \"{{ $json.data }}\"\n}","sendBody":true,"jsonHeaders":"={\n  \"X-Access-Key\": \"enter_your_access_key\",\n  \"X-Timestamp\": \"{{ $now.valueOf() }}\",\n  \"X-Signature\": \"enter_your_access_key\"\n}","sendHeaders":true,"specifyBody":"json","specifyHeaders":"json"},"typeVersion":4.3},{"id":"b45702da-c2c7-411b-a9b6-adeb511b37f4","name":"Result Processor","type":"n8n-nodes-base.code","position":[2368,288],"parameters":{"jsCode":"  var data = $node['Laiye ADP HTTP Request'].json.data.extraction_result;                                                                                            var mainFields = {};\n  var detailHeaders = [];                                                                                                                                \n  var detailRows = [];\n\n  for (var i = 0; i < data.length; i++) {\n    if (data[i].table_values == null) {\n      var name = data[i].field_name;\n      var val = 'No Result';\n      if (data[i].field_values && data[i].field_values[0]) {\n        val = data[i].field_values[0].field_value || 'No Result';\n      }\n      mainFields[name] = val;\n    } else {\n      for (var j = 0; j < data[i].table_values[0].length; j++) {\n        detailHeaders.push(data[i].table_values[0][j].field_name);\n      }\n      for (var k = 0; k < data[i].table_values.length; k++) {\n        var row = [];\n        for (var m = 0; m < data[i].table_values[k].length; m++) {\n          var cell = 'No Result';\n          if (data[i].table_values[k][m].field_values && data[i].table_values[k][m].field_values[0]) {\n            cell = data[i].table_values[k][m].field_values[0].field_value || 'No Result';\n          }\n          row.push(cell);\n        }\n        detailRows.push(row);\n      }\n    }\n  }\n\n  var keys = Object.keys(mainFields);\n  var vals = Object.values(mainFields);\n\n  var xml = '';\n  xml = xml + '<?xml version=\"1.0\"?>';\n  xml = xml + '<Workbook xmlns=\"urn:schemas-microsoft-com:office:spreadsheet\">';\n  xml = xml + '<Worksheet ss:Name=\"Fields\"><Table>';\n  xml = xml + '<Row>';\n  for (var n = 0; n < keys.length; n++) {\n    xml = xml + '<Cell><Data ss:Type=\"String\">' + keys[n] + '</Data></Cell>';\n  }\n  xml = xml + '</Row>';\n  xml = xml + '<Row>';\n  for (var p = 0; p < vals.length; p++) {\n    xml = xml + '<Cell><Data ss:Type=\"String\">' + vals[p] + '</Data></Cell>';\n  }\n  xml = xml + '</Row>';\n  xml = xml + '</Table></Worksheet>';\n\n  if (detailHeaders.length > 0) {\n    xml = xml + '<Worksheet ss:Name=\"Product Details Table\"><Table>';\n    xml = xml + '<Row>';\n    for (var q = 0; q < detailHeaders.length; q++) {\n      xml = xml + '<Cell><Data ss:Type=\"String\">' + detailHeaders[q] + '</Data></Cell>';\n    }\n    xml = xml + '</Row>';\n    for (var r = 0; r < detailRows.length; r++) {\n      xml = xml + '<Row>';\n      for (var s = 0; s < detailRows[r].length; s++) {\n        xml = xml + '<Cell><Data ss:Type=\"String\">' + detailRows[r][s] + '</Data></Cell>';\n      }\n      xml = xml + '</Row>';\n    }\n    xml = xml + '</Table></Worksheet>';\n  }\n\n  xml = xml + '</Workbook>';\n\n  return [{\n    binary: {\n      data: {\n        data: Buffer.from(xml, 'utf-8').toString('base64'),\n        mimeType: 'application/vnd.ms-excel',\n        fileName: 'data.xls'\n      }\n    }\n  }];"},"typeVersion":2},{"id":"d2224313-0c64-4b3e-9d0d-327e184eff88","name":"Upload the extracted result document","type":"n8n-nodes-base.googleDrive","position":[2592,288],"parameters":{"name":"=n8n_laiye_adp_{{ $('Gmail Trigger').item.json.from.value[0].name }}_{{ $('Filter documents').item.json.attachment_name }}","driveId":{"__rl":true,"mode":"list","value":"My Drive"},"options":{},"folderId":{"__rl":true,"mode":"id","value":"={{ $json.id }}"},"inputDataFieldName":"=data"},"typeVersion":3},{"id":"3b44154e-b2cb-45c7-8b89-84584a0681e8","name":"Create a pending folder","type":"n8n-nodes-base.googleDrive","position":[1952,640],"parameters":{"name":"Untreated document","driveId":{"__rl":true,"mode":"list","value":"My Drive"},"options":{},"folderId":{"__rl":true,"mode":"list","value":"root","cachedResultName":"/ (Root folder)"},"resource":"folder"},"typeVersion":3},{"id":"34d8cd58-5538-40cd-8525-b4f67029b927","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[208,320],"parameters":{"width":528,"height":560,"content":"## How it works\nThis workflow automates the full invoice processing pipeline: it monitors Gmail for invoice emails, extracts key data from multiple file formats, and automatically organizes files into Google Drive. It replaces manual invoice sorting, checking, and data entry.\n\n## Setup steps\n\n**Step 1:** \nConnect your Gmail account. The workflow automatically processes emails that match these rules:\n- Filename includes: invoice, receipt, expenses, or fee\n- File size < 50MB\n- Supported formats: jpeg, jpg, png, bmp, tiff, pdf, doc, docx, xls, xlsx\n- Default schedule: once per day (adjustable in the Gmail Trigger)\n\n\n**Step 2:**\nConnect your Google Drive.\n- Valid invoices are extracted and saved as Excel.\n- Unqualified files are stored in a folder named “Untreated document” for later manual review."},"typeVersion":1},{"id":"a050a268-fc08-4eea-b6cf-4a1178e539ac","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[816,656],"parameters":{"color":7,"width":272,"height":112,"content":"**Step 1: Connect your Gmail account.**\n\nYou can set the execution frequency here. The default is once per day."},"typeVersion":1},{"id":"1e948b3e-5089-4b3a-b9b1-0f39f19a3c3c","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[1472,240],"parameters":{"color":7,"width":256,"height":224,"content":"**File Filter Tips:**\n\n1. You can edit``` {{ $json.attachment_name }}``` to use your own filter keywords.\n2. We recommend not modifying file size and format settings to ensure smooth execution with the Laiye ADP nodes."},"typeVersion":1},{"id":"be830e84-3cf6-4480-bbf5-ade1c44f69ea","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[1840,256],"parameters":{"color":7,"width":976,"height":560,"content":""},"typeVersion":1},{"id":"08414006-ae87-4ff1-bc81-6c004d8edc8b","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[1840,848],"parameters":{"color":7,"width":368,"height":80,"content":"**Step 2: Connect your Google Drive.**\n\nEnsure all files are safely stored in Google Drive."},"typeVersion":1}],"active":false,"pinData":{},"settings":{"binaryMode":"separate","availableInMCP":false,"executionOrder":"v1"},"versionId":"18039fcc-f568-4c58-bbfb-ed5187be221b","connections":{"Merge":{"main":[[{"node":"Upload Unprocessed file","type":"main","index":0}]]},"Gmail Trigger":{"main":[[{"node":"Extract attachment information","type":"main","index":0}]]},"Filter documents":{"main":[[{"node":"Base64 Encode Document","type":"main","index":0}],[{"node":"Create a pending folder","type":"main","index":0},{"node":"Merge","type":"main","index":0}]]},"Result Processor":{"main":[[{"node":"Upload the extracted result document","type":"main","index":0}]]},"Base64 Encode Document":{"main":[[{"node":"Laiye ADP HTTP Request","type":"main","index":0}]]},"Laiye ADP HTTP Request":{"main":[[{"node":"Result Processor","type":"main","index":0}]]},"Create a pending folder":{"main":[[{"node":"Merge","type":"main","index":1}]]},"Extract attachment information":{"main":[[{"node":"Filter documents","type":"main","index":0}]]}}},"lastUpdatedBy":29,"workflowInfo":{"nodeCount":15,"nodeTypes":{"n8n-nodes-base.if":{"count":1},"n8n-nodes-base.code":{"count":2},"n8n-nodes-base.merge":{"count":1},"n8n-nodes-base.stickyNote":{"count":5},"n8n-nodes-base.googleDrive":{"count":3},"n8n-nodes-base.httpRequest":{"count":1},"n8n-nodes-base.gmailTrigger":{"count":1},"n8n-nodes-base.extractFromFile":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Laiye-ADP","username":"laiye-adp","bio":"","verified":false,"links":[],"avatar":"https://gravatar.com/avatar/32ba345d228cc7bb50ddf9a330a3dfdf77a42875560b51db16b83f89c8bd9f77?r=pg&d=retro&size=200"},"nodes":[{"id":19,"icon":"file:httprequest.svg","name":"n8n-nodes-base.httpRequest","codex":{"data":{"alias":["API","Request","URL","Build","cURL"],"resources":{"generic":[{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/world-poetry-day-workflow/","icon":"📜","label":"Celebrating World Poetry Day with a daily poem in Telegram"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automate-designs-with-bannerbear-and-n8n/","icon":"🎨","label":"Automate Designs with Bannerbear and n8n"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/how-to-use-the-http-request-node-the-swiss-army-knife-for-workflow-automation/","icon":"🧰","label":"How to use the HTTP Request Node - The Swiss Army Knife for Workflow Automation"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"},{"url":"https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/","icon":"🤟","label":"Creating scheduled text affirmations with n8n"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"output\"]","defaults":{"name":"HTTP Request","color":"#0004F5"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MCAyMEM0MCA4Ljk1MzE0IDMxLjA0NjkgMCAyMCAwQzguOTUzMTQgMCAwIDguOTUzMTQgMCAyMEMwIDMxLjA0NjkgOC45NTMxNCA0MCAyMCA0MEMzMS4wNDY5IDQwIDQwIDMxLjA0NjkgNDAgMjBaTTIwIDM2Ljk0NThDMTguODg1MiAzNi45NDU4IDE3LjEzNzggMzUuOTY3IDE1LjQ5OTggMzIuNjk4NUMxNC43OTY0IDMxLjI5MTggMTQuMTk2MSAyOS41NDMxIDEzLjc1MjYgMjcuNjg0N0gyNi4xODk4QzI1LjgwNDUgMjkuNTQwMyAyNS4yMDQ0IDMxLjI5MDEgMjQuNTAwMiAzMi42OTg1QzIyLjg2MjIgMzUuOTY3IDIxLjExNDggMzYuOTQ1OCAyMCAzNi45NDU4Wk0xMi45MDY0IDIwQzEyLjkwNjQgMjEuNjA5NyAxMy4wMDg3IDIzLjE2NCAxMy4yMDAzIDI0LjYzMDVIMjYuNzk5N0MyNi45OTEzIDIzLjE2NCAyNy4wOTM2IDIxLjYwOTcgMjcuMDkzNiAyMEMyNy4wOTM2IDE4LjM5MDMgMjYuOTkxMyAxNi44MzYgMjYuNzk5NyAxNS4zNjk1SDEzLjIwMDNDMTMuMDA4NyAxNi44MzYgMTIuOTA2NCAxOC4zOTAzIDEyLjkwNjQgMjBaTTIwIDMuMDU0MTlDMjEuMTE0OSAzLjA1NDE5IDIyLjg2MjIgNC4wMzA3OCAyNC41MDAxIDcuMzAwMzlDMjUuMjA2NiA4LjcxNDA4IDI1LjgwNzIgMTAuNDA2NyAyNi4xOTIgMTIuMzE1M0gxMy43NTAxQzE0LjE5MzMgMTAuNDA0NyAxNC43OTQyIDguNzEyNTQgMTUuNDk5OCA3LjMwMDY0QzE3LjEzNzcgNC4wMzA4MyAxOC44ODUxIDMuMDU0MTkgMjAgMy4wNTQxOVpNMzAuMTQ3OCAyMEMzMC4xNDc4IDE4LjQwOTkgMzAuMDU0MyAxNi44NjE3IDI5LjgyMjcgMTUuMzY5NUgzNi4zMDQyQzM2LjcyNTIgMTYuODQyIDM2Ljk0NTggMTguMzk2NCAzNi45NDU4IDIwQzM2Ljk0NTggMjEuNjAzNiAzNi43MjUyIDIzLjE1OCAzNi4zMDQyIDI0LjYzMDVIMjkuODIyN0MzMC4wNTQzIDIzLjEzODMgMzAuMTQ3OCAyMS41OTAxIDMwLjE0NzggMjBaTTI2LjI3NjcgNC4yNTUxMkMyNy42MzY1IDYuMzYwMTkgMjguNzExIDkuMTMyIDI5LjM3NzQgMTIuMzE1M0gzNS4xMDQ2QzMzLjI1MTEgOC42NjggMzAuMTA3IDUuNzgzNDYgMjYuMjc2NyA0LjI1NTEyWk0xMC42MjI2IDEyLjMxNTNINC44OTI5M0M2Ljc1MTQ3IDguNjY3ODQgOS44OTM1MSA1Ljc4MzQxIDEzLjcyMzIgNC4yNTUxM0MxMi4zNjM1IDYuMzYwMjEgMTEuMjg5IDkuMTMyMDEgMTAuNjIyNiAxMi4zMTUzWk0zLjA1NDE5IDIwQzMuMDU0MTkgMjEuNjAzIDMuMjc3NDMgMjMuMTU3NSAzLjY5NDg0IDI0LjYzMDVIMTAuMTIxN0M5Ljk0NjE5IDIzLjE0MiA5Ljg1MjIyIDIxLjU5NDMgOS44NTIyMiAyMEM5Ljg1MjIyIDE4LjQwNTcgOS45NDYxOSAxNi44NTggMTAuMTIxNyAxNS4zNjk1SDMuNjk0ODRDMy4yNzc0MyAxNi44NDI1IDMuMDU0MTkgMTguMzk3IDMuMDU0MTkgMjBaTTI2LjI3NjYgMzUuNzQyN0MyNy42MzY1IDMzLjYzOTMgMjguNzExIDMwLjg2OCAyOS4zNzc0IDI3LjY4NDdIMzUuMTA0NkMzMy4yNTEgMzEuMzMyMiAzMC4xMDY4IDM0LjIxNzkgMjYuMjc2NiAzNS43NDI3Wk0xMy43MjM0IDM1Ljc0MjdDOS44OTM2OSAzNC4yMTc5IDYuNzUxNTUgMzEuMzMyNCA0Ljg5MjkzIDI3LjY4NDdIMTAuNjIyNkMxMS4yODkgMzAuODY4IDEyLjM2MzUgMzMuNjM5MyAxMy43MjM0IDM1Ljc0MjdaIiBmaWxsPSIjM0E0MkU5Ii8+Cjwvc3ZnPgo="},"displayName":"HTTP Request","typeVersion":4,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":20,"icon":"fa:map-signs","name":"n8n-nodes-base.if","codex":{"data":{"alias":["Router","Filter","Condition","Logic","Boolean","Branch"],"details":"The IF node can be used to implement binary conditional logic in your workflow. You can set up one-to-many conditions to evaluate each item of data being inputted into the node. That data will either evaluate to TRUE or FALSE and route out of the node accordingly.\n\nThis node has multiple types of conditions: Bool, String, Number, and Date & Time.","resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/","icon":"🤬","label":"Create a toxic language detector for Telegram in 4 step"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.if/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"If","color":"#408000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"If","typeVersion":2,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":24,"icon":"file:merge.svg","name":"n8n-nodes-base.merge","codex":{"data":{"alias":["Join","Concatenate","Wait"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-to-sync-data-between-two-systems/","icon":"🏬","label":"How to synchronize data between two systems (one-way vs. two-way sync"},{"url":"https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"url":"https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/","icon":"👦","label":"Build your own virtual assistant with n8n: A step by step guide"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.merge/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Merge"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTc3XzUxOCkiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTAgNDhDMCAyMS40OTAzIDIxLjQ5MDMgMCA0OCAwSDExMkMxMzguNTEgMCAxNjAgMjEuNDkwMyAxNjAgNDhWNTZIMTk2LjI1MkMyNDAuNDM1IDU2IDI3Ni4yNTIgOTEuODE3MiAyNzYuMjUyIDEzNlYxOTJDMjc2LjI1MiAyMTQuMDkxIDI5NC4xNjEgMjMyIDMxNi4yNTIgMjMySDM1MlYyMjRDMzUyIDE5Ny40OSAzNzMuNDkgMTc2IDQwMCAxNzZINDY0QzQ5MC41MSAxNzYgNTEyIDE5Ny40OSA1MTIgMjI0VjI4OEM1MTIgMzE0LjUxIDQ5MC41MSAzMzYgNDY0IDMzNkg0MDBDMzczLjQ5IDMzNiAzNTIgMzE0LjUxIDM1MiAyODhWMjgwSDMxNi4yNTJDMjk0LjE2MSAyODAgMjc2LjI1MiAyOTcuOTA5IDI3Ni4yNTIgMzIwVjM3NkMyNzYuMjUyIDQyMC4xODMgMjQwLjQzNSA0NTYgMTk2LjI1MiA0NTZIMTYwVjQ2NEMxNjAgNDkwLjUxIDEzOC41MSA1MTIgMTEyIDUxMkg0OEMyMS40OTAzIDUxMiAwIDQ5MC41MSAwIDQ2NFY0MDBDMCAzNzMuNDkgMjEuNDkwMyAzNTIgNDggMzUySDExMkMxMzguNTEgMzUyIDE2MCAzNzMuNDkgMTYwIDQwMFY0MDhIMTk2LjI1MkMyMTMuOTI1IDQwOCAyMjguMjUyIDM5My42NzMgMjI4LjI1MiAzNzZWMzIwQzIyOC4yNTIgMjk0Ljc4NCAyMzguODU5IDI3Mi4wNDQgMjU1Ljg1MyAyNTZDMjM4Ljg1OSAyMzkuOTU2IDIyOC4yNTIgMjE3LjIxNiAyMjguMjUyIDE5MlYxMzZDMjI4LjI1MiAxMTguMzI3IDIxMy45MjUgMTA0IDE5Ni4yNTIgMTA0SDE2MFYxMTJDMTYwIDEzOC41MSAxMzguNTEgMTYwIDExMiAxNjBINDhDMjEuNDkwMyAxNjAgMCAxMzguNTEgMCAxMTJWNDhaTTEwNCA0OEMxMDguNDE4IDQ4IDExMiA1MS41ODE3IDExMiA1NlYxMDRDMTEyIDEwOC40MTggMTA4LjQxOCAxMTIgMTA0IDExMkg1NkM1MS41ODE3IDExMiA0OCAxMDguNDE4IDQ4IDEwNFY1NkM0OCA1MS41ODE3IDUxLjU4MTcgNDggNTYgNDhIMTA0Wk00NTYgMjI0QzQ2MC40MTggMjI0IDQ2NCAyMjcuNTgyIDQ2NCAyMzJWMjgwQzQ2NCAyODQuNDE4IDQ2MC40MTggMjg4IDQ1NiAyODhINDA4QzQwMy41ODIgMjg4IDQwMCAyODQuNDE4IDQwMCAyODBWMjMyQzQwMCAyMjcuNTgyIDQwMy41ODIgMjI0IDQwOCAyMjRINDU2Wk0xMTIgNDA4QzExMiA0MDMuNTgyIDEwOC40MTggNDAwIDEwNCA0MDBINTZDNTEuNTgxNyA0MDAgNDggNDAzLjU4MiA0OCA0MDhWNDU2QzQ4IDQ2MC40MTggNTEuNTgxNyA0NjQgNTYgNDY0SDEwNEMxMDguNDE4IDQ2NCAxMTIgNDYwLjQxOCAxMTIgNDU2VjQwOFoiIGZpbGw9IiM1NEI4QzkiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTc3XzUxOCI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Merge","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":58,"icon":"file:googleDrive.svg","name":"n8n-nodes-base.googleDrive","codex":{"data":{"resources":{"generic":[{"url":"https://n8n.io/blog/your-business-doesnt-need-you-to-operate/","icon":" 🖥️","label":"Hey founders! Your business doesn't need you to operate"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Data & Storage"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\"]","defaults":{"name":"Google Drive"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgODEgNzMiPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9ImEiIG92ZXJmbG93PSJ2aXNpYmxlIj48ZyBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZT0ibm9uZSI+PHBhdGggZmlsbD0iIzAwNjZkYSIgZD0ibTYuMDQ4IDYxLjI2IDMuNTI4IDYuMDk0Yy43MzMgMS4yODMgMS43ODcgMi4yOTEgMy4wMjQgMy4wMjRsMTIuNi0yMS44MUgwYTguMyA4LjMgMCAwIDAgMS4xIDQuMTI0eiIvPjxwYXRoIGZpbGw9IiMwMGFjNDciIGQ9Ik00MCAyMi45MSAyNy40IDEuMWMtMS4yMzcuNzMzLTIuMjkxIDEuNzQxLTMuMDI0IDMuMDI0TDEuMSA0NC40NDVBOC4zIDguMyAwIDAgMCAwIDQ4LjU2OGgyNS4yeiIvPjxwYXRoIGZpbGw9IiNlYTQzMzUiIGQ9Ik02Ny40IDcwLjM3OGMxLjIzNy0uNzMzIDIuMjkxLTEuNzQxIDMuMDI0LTMuMDI0bDEuNDY2LTIuNTIgNy4wMS0xMi4xNDJhOC4zIDguMyAwIDAgMCAxLjEtNC4xMjRINTQuNzk4bDUuMzYzIDEwLjUzOHoiLz48cGF0aCBmaWxsPSIjMDA4MzJkIiBkPSJNNDAgMjIuOTEgNTIuNiAxLjFDNTEuMzYzLjM2NyA0OS45NDMgMCA0OC40NzcgMEgzMS41MjRjLTEuNDY2IDAtMi44ODcuNDEyLTQuMTI0IDEuMXoiLz48cGF0aCBmaWxsPSIjMjY4NGZjIiBkPSJNNTQuNzk5IDQ4LjU2OEgyNS4ybC0xMi42IDIxLjgxYzEuMjM3LjczMyAyLjY1NyAxLjEgNC4xMjQgMS4xaDQ2LjU1MmMxLjQ2NiAwIDIuODg3LS40MTIgNC4xMjQtMS4xeiIvPjxwYXRoIGZpbGw9IiNmZmJhMDAiIGQ9Ik02Ny4yNjIgMjQuMjg0IDU1LjYyNCA0LjEyNEM1NC44OTEgMi44NDEgNTMuODM3IDEuODMzIDUyLjYgMS4xTDQwIDIyLjkxbDE0LjggMjUuNjU5aDI1LjE1NWE4LjMgOC4zIDAgMCAwLTEuMS00LjEyNHoiLz48L2c+PC9zeW1ib2w+PC9zdmc+"},"displayName":"Google Drive","typeVersion":3,"nodeCategories":[{"id":3,"name":"Data & Storage"}]},{"id":565,"icon":"fa:sticky-note","name":"n8n-nodes-base.stickyNote","codex":{"data":{"alias":["Comments","Notes","Sticky"],"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Sticky Note","color":"#FFD233"},"iconData":{"icon":"sticky-note","type":"icon"},"displayName":"Sticky Note","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":824,"icon":"file:gmail.svg","name":"n8n-nodes-base.gmailTrigger","codex":{"data":{"resources":{"generic":[{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/your-business-doesnt-need-you-to-operate/","icon":" 🖥️","label":"Hey founders! Your business doesn't need you to operate"},{"url":"https://n8n.io/blog/using-automation-to-boost-productivity-in-the-workplace/","icon":"💪","label":"Using Automation to Boost Productivity in the Workplace"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/trigger-nodes/n8n-nodes-base.gmailtrigger/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Communication"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\"]","defaults":{"name":"Gmail Trigger"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTYiIGhlaWdodD0iMTkzIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+PHBhdGggZmlsbD0iIzQyODVGNCIgZD0iTTU4LjE4MiAxOTIuMDVWOTMuMTRMMjcuNTA3IDY1LjA3NyAwIDQ5LjUwNHYxMjUuMDkxYzAgOS42NTggNy44MjUgMTcuNDU1IDE3LjQ1NSAxNy40NTV6Ii8+PHBhdGggZmlsbD0iIzM0QTg1MyIgZD0iTTE5Ny44MTggMTkyLjA1aDQwLjcyN2M5LjY1OSAwIDE3LjQ1NS03LjgyNiAxNy40NTUtMTcuNDU1VjQ5LjUwNWwtMzEuMTU2IDE3LjgzNy0yNy4wMjYgMjUuNzk4eiIvPjxwYXRoIGZpbGw9IiNFQTQzMzUiIGQ9Im01OC4xODIgOTMuMTQtNC4xNzQtMzguNjQ3IDQuMTc0LTM2Ljk4OUwxMjggNjkuODY4bDY5LjgxOC01Mi4zNjQgNC42NyAzNC45OTItNC42NyA0MC42NDRMMTI4IDE0NS41MDR6Ii8+PHBhdGggZmlsbD0iI0ZCQkMwNCIgZD0iTTE5Ny44MTggMTcuNTA0VjkzLjE0TDI1NiA0OS41MDRWMjYuMjMxYzAtMjEuNTg1LTI0LjY0LTMzLjg5LTQxLjg5LTIwLjk0NXoiLz48cGF0aCBmaWxsPSIjQzUyMjFGIiBkPSJtMCA0OS41MDQgMjYuNzU5IDIwLjA3TDU4LjE4MiA5My4xNFYxNy41MDRMNDEuODkgNS4yODZDMjQuNjEtNy42NiAwIDQuNjQ2IDAgMjYuMjN6Ii8+PC9zdmc+"},"displayName":"Gmail Trigger","typeVersion":1,"nodeCategories":[{"id":6,"name":"Communication"}]},{"id":834,"icon":"file:code.svg","name":"n8n-nodes-base.code","codex":{"data":{"alias":["cpde","Javascript","JS","Python","Script","Custom Code","Function"],"details":"The Code node allows you to execute JavaScript in your workflow.","resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Code"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Code","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":1235,"icon":"file:extractFromFile.svg","name":"n8n-nodes-base.extractFromFile","codex":{"data":{"alias":["CSV","Spreadsheet","Excel","xls","xlsx","ods","tabular","decode","decoding","Move Binary Data","Binary","File","PDF","JSON","HTML","ICS","iCal","txt","Text","RTF","XML","64","Base64","Convert"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.extractfromfile/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Files","Data Transformation"]}}},"group":"[\"input\"]","defaults":{"name":"Extract from File"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTAuOTM3NSAyQzAuNDE5NzMzIDIgMCAyLjQxOTczIDAgMi45Mzc1VjM3LjMyMjFDMCAzNy44Mzk5IDAuNDE5NzMzIDM4LjI1OTYgMC45Mzc1IDM4LjI1OTZIMjYuMjE1NEMyNi43MzMyIDM4LjI1OTYgMjcuMTUyOSAzNy44Mzk5IDI3LjE1MjkgMzcuMzIyMUwyNy4xNTI5IDMwLjY3MTlMMTYuNzk2OSAzMC42NzE5QzE0Ljg5ODQgMzAuNjcxOSAxMy4zNTk0IDI5LjEzMjkgMTMuMzU5NCAyNy4yMzQ0VjI1LjM1OTRDMTMuMzU5NCAyMy40NjA5IDE0Ljg5ODQgMjEuOTIxOSAxNi43OTY5IDIxLjkyMTlIMjcuMTUyOUwyNy4xNTI5IDE1Ljc4MjFIMTQuMzA4M0MxMy43OTA2IDE1Ljc4MjEgMTMuMzcwOCAxNS4zNjI0IDEzLjM3MDggMTQuODQ0NlYySDAuOTM3NVoiIGZpbGw9IiMzNTNGNkUiLz4KPHBhdGggZD0iTTE2LjAyNzEgMkMxNS45NDA4IDIgMTUuODcwOCAyLjA2OTk2IDE1Ljg3MDggMi4xNTYyNVYxMi44MTM0QzE1Ljg3MDggMTMuMDcyMyAxNi4wODA3IDEzLjI4MjEgMTYuMzM5NiAxMy4yODIxSDI2Ljk5NjdDMjcuMDgzIDEzLjI4MjEgMjcuMTUyOSAxMy4yMTIyIDI3LjE1MjkgMTMuMTI1OUwyNy4xNTI5IDEyLjYxNzFDMjcuMTUyOSAxMi4zNjg4IDI3LjA1NDUgMTIuMTMwNyAyNi44NzkxIDExLjk1NUwxNy4yMjI1IDIuMjc1MzhDMTcuMDQ2NiAyLjA5OTA4IDE2LjgwNzkgMiAxNi41NTg4IDJIMTYuMDI3MVoiIGZpbGw9IiMzNTNGNkUiLz4KPHBhdGggZD0iTTI5Ljc2NDIgMzQuNjUwM0MyOS4wMzQgMzMuOTE2IDI5LjAzNzQgMzIuNzI4OCAyOS43NzE2IDMxLjk5ODZMMzMuNjE5NyAyOC4xNzE5TDE2Ljc5NjkgMjguMTcxOUMxNi4yNzkxIDI4LjE3MTkgMTUuODU5NCAyNy43NTIxIDE1Ljg1OTQgMjcuMjM0NFYyNS4zNTk0QzE1Ljg1OTQgMjQuODQxNiAxNi4yNzkxIDI0LjQyMTkgMTYuNzk2OSAyNC40MjE5TDMzLjU0MTIgMjQuNDIxOUwyOS43NzE2IDIwLjY3MzNDMjkuMDM3NCAxOS45NDMxIDI5LjAzNCAxOC43NTU5IDI5Ljc2NDIgMTguMDIxNkMzMC40OTQ0IDE3LjI4NzQgMzEuNjgxNiAxNy4yODQgMzIuNDE1OSAxOC4wMTQyTDM5LjQ0NzEgMjUuMDA2NEMzOS44MDEgMjUuMzU4MyA0MCAyNS44MzY4IDQwIDI2LjMzNTlDNDAgMjYuODM1IDM5LjgwMSAyNy4zMTM1IDM5LjQ0NzEgMjcuNjY1NUwzMi40MTU5IDM0LjY1NzZDMzEuNjgxNiAzNS4zODc4IDMwLjQ5NDQgMzUuMzg0NSAyOS43NjQyIDM0LjY1MDNaIiBmaWxsPSIjMzUzRjZFIi8+Cjwvc3ZnPgo="},"displayName":"Extract from File","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]}],"categories":[{"id":34,"name":"Invoice Processing"},{"id":49,"name":"AI Summarization"}],"image":[{"id":4670,"url":"https://n8niostorageaccount.blob.core.windows.net/n8nio-strapi-blobs-prod/assets/img_n8n_ebda9b1a24.jpg"}]}}