{"workflow":{"id":13896,"name":"Merge Google Drive PDFs with dynamic cover pages and watermark using Autype","views":17,"recentViews":0,"totalViews":17,"createdAt":"2026-03-05T14:33:30.739Z","description":"![Screenshot 20260305 at 15.01.50.png](fileId:4767)\n\n**Important**: This workflow uses the [Autype](https://www.npmjs.com/package/n8n-nodes-autype) community node and requires a self-hosted n8n instance.\n\nThis workflow reads every PDF from a Google Drive folder, generates a metadata title page for each document (showing filename, creation date, last modified date, and owner), merges everything into a single PDF with interleaved title pages, adds a blue company-name watermark to every page, and uploads the final result back to Google Drive.\n\n## Who is this for?\n\nOperations teams, project managers, legal departments, and anyone who needs to compile multiple PDFs into a single branded document package. Useful for monthly report bundles, compliance archives, client deliverables, audit documentation, or any scenario where multiple files need to be combined with clear separation between documents.\n\n## What this workflow does\n\nOn manual trigger, the workflow lists all PDFs in a specified Google Drive folder. It generates all metadata title pages at once using the Autype Render JSON endpoint (one API call for all cover sheets). Then it loops through each document, downloads it from Drive, uploads it to Autype, extracts the corresponding title page using the `outputFileId` directly (no re-upload needed), and collects merge pairs. After the loop, all file IDs are interleaved (title page 1, document 1, title page 2, document 2, ...) and merged. The watermark step also uses the `outputFileId` from Merge directly. The final PDF is saved back to Google Drive.\n\n## Output structure\n\nThe final merged PDF has the following page structure:\n\n![output example diagram](fileId:4766)\n\nEvery page in the merged result carries a blue company-name watermark.\n\n## How it works\n\n1. **Run Workflow** — Manual trigger starts the pipeline.\n2. **List PDFs in Folder** — A Google Drive node lists all files in the configured folder.\n3. **Build Title Pages JSON** — A Code node creates an Autype Render JSON config with one page section per document. Each title page shows the document name, creation date, last modified date, owner, and document number.\n4. **Render Title Pages PDF** — Autype renders all title pages as a single multi-page PDF in one API call (one page per document).\n5. **Upload Title Pages PDF** — The rendered PDF is uploaded to Autype Document Tools for page extraction in the loop.\n6. **Prepare Loop Items** — A Code node creates one item per document with the Drive file ID, title page number, and the title pages file ID.\n7. **Loop Over Documents** — For each document:\n   - **Download PDF from Drive** — Downloads the file binary from Google Drive.\n   - **Upload Document to Autype** — Uploads the document to get a file ID.\n   - **Extract Title Page** — Uses the Keep/Remove Pages operation to extract the matching page from the title pages PDF (page 1 for doc 1, page 2 for doc 2, etc.). Returns `outputFileId` directly.\n   - **Collect Merge Pair** — Stores `outputFileId` from Extract Title Page and the document file ID as a pair for the final merge.\n8. **Build Final Merge List** — A Code node interleaves all pairs into one comma-separated file ID string.\n9. **Merge All PDFs** — Combines all files into a single PDF in order. Returns `outputFileId`.\n10. **Add Company Watermark** — Uses `outputFileId` from Merge directly (no re-upload). Stamps the company name in blue (#2563EB) on every page at 60% opacity.\n11. **Save Final PDF to Drive** — Uploads the watermarked result as `merged-documents-YYYY-MM-DD.pdf` to the configured Google Drive folder.\n\n## Setup\n\n1. Install the **Autype community node** (`n8n-nodes-autype`) via **Settings → Community Nodes**.\n2. Create an **Autype API credential** with your API key from [app.autype.com](https://app.autype.com). See [API Keys in Settings](https://docs.autype.com/getting-started/editor/settings#api-keys).\n3. Create a **Google Drive OAuth2 credential** and connect your Google account.\n4. Import this workflow and select your Autype credential in all Autype nodes and your Google Drive credential in all Google Drive nodes.\n5. Set `YOUR_FOLDER_ID` in the \"List PDFs in Folder\" node to the ID from your folder URL (`https://drive.google.com/drive/folders/YOUR_FOLDER_ID`).\n6. Set `YOUR_FOLDER_ID` in the \"Save Final PDF to Drive\" node to the same folder ID (or a different output folder).\n7. Change the watermark text in the \"Add Company Watermark\" node to your company name.\n8. Click **Test Workflow** to run the pipeline.\n\n**Note:** This is a community node. You need a self-hosted n8n instance to use community nodes.\n\n## Requirements\n\n- Self-hosted n8n instance (community nodes are not available on n8n Cloud)\n- Autype account with API key (free tier available)\n- `n8n-nodes-autype` community node installed\n- Google Drive account with OAuth2 credentials\n\n## How to customize\n\n- **Change title page content:** Edit the \"Build Title Pages JSON\" Code node to add or remove metadata fields, change font sizes, or adjust colors.\n- **Change watermark text:** Replace \"Your Company Name\" in the \"Add Company Watermark\" node with your actual company name, \"CONFIDENTIAL\", \"DRAFT\", or any other label.\n- **Adjust watermark style:** Change `color`, `fontSize`, `opacity`, or `rotation` in the watermark options. Set `pages` to a range (e.g. \"2-\") to skip title pages.\n- **Use a different output folder:** Change the folder ID in the \"Save Final PDF to Drive\" node to upload to a separate location.\n- **Add compression:** Insert a Compress operation between the watermark and the Drive upload to reduce file size.\n- **Add password protection:** Insert a Protect operation after watermarking to encrypt the final PDF (see the A06 workflow for an example).\n- **Control document order:** Add sorting logic in the \"Build Title Pages JSON\" Code node to define the order in the merged PDF.\n","workflow":{"id":"","meta":{"instanceId":"","templateCredsSetupCompleted":true},"name":"Merge all PDFs from a Google Drive folder with generated title pages and watermark using Autype","tags":[],"nodes":[{"id":"4e134e76-8b7d-485e-b68e-26742beae619","name":"Run Workflow","type":"n8n-nodes-base.manualTrigger","position":[-560,128],"parameters":{},"typeVersion":1},{"id":"8150627a-44f8-40fe-b367-c91cfee2fc6d","name":"List PDFs in Folder","type":"n8n-nodes-base.googleDrive","position":[-320,128],"parameters":{"filter":{"folderId":{"__rl":true,"mode":"id","value":"YOUR_FOLDER_ID"}},"options":{"fields":["*"]},"resource":"fileFolder","returnAll":true},"credentials":{"googleDriveOAuth2Api":{"id":"YOUR_GOOGLE_CREDENTIAL_ID","name":"Google Drive account"}},"typeVersion":3},{"id":"4e1a39a2-b607-43e2-a6db-c401a6021ba7","name":"Build Title Pages JSON","type":"n8n-nodes-base.code","position":[-80,128],"parameters":{"jsCode":"const files = $input.all().map(i => i.json);\n\nconst sections = files.map((file, index) => ({\n  type: 'page',\n  align: 'center',\n  content: [\n    {\n      type: 'h1',\n      text: file.name.replace(/\\.pdf$/i, ''),\n      fontSize: 28,\n      color: '#1a1a1a'\n    },\n    {\n      type: 'text',\n      text: ' '\n    },\n    {\n      type: 'text',\n      text: `Created: ${file.createdTime ? new Date(file.createdTime).toLocaleDateString('en-US', { year: 'numeric', month: 'long', day: 'numeric' }) : 'Unknown'}`,\n      fontSize: 14,\n      color: '#555555'\n    },\n    {\n      type: 'text',\n      text: `Last Modified: ${file.modifiedTime ? new Date(file.modifiedTime).toLocaleDateString('en-US', { year: 'numeric', month: 'long', day: 'numeric' }) : 'Unknown'}`,\n      fontSize: 14,\n      color: '#555555'\n    },\n    {\n      type: 'text',\n      text: `Owner: ${file.owners && file.owners[0] ? file.owners[0].displayName : 'Unknown'}`,\n      fontSize: 14,\n      color: '#555555'\n    },\n    {\n      type: 'text',\n      text: `Document ${index + 1} of ${files.length}`,\n      fontSize: 12,\n      color: '#999999'\n    }\n  ]\n}));\n\nconst config = {\n  document: { type: 'pdf', size: 'A4' },\n  sections\n};\n\nreturn [{\n  json: {\n    config: JSON.stringify(config),\n    files: files.map((f, i) => ({ id: f.id, name: f.name, index: i }))\n  }\n}];"},"typeVersion":2},{"id":"8b1072a9-f029-469e-976d-626a004b9cdf","name":"Render Title Pages PDF","type":"n8n-nodes-autype.autype","position":[160,128],"parameters":{"config":"={{ $json.config }}","downloadOutput":true,"additionalFields":{}},"credentials":{"autypeApi":{"id":"YOUR_CREDENTIAL_ID","name":"Autype account"}},"typeVersion":1},{"id":"4a104ef5-2c17-43be-8714-1cf82c721247","name":"Prepare Loop Items","type":"n8n-nodes-base.code","position":[576,128],"parameters":{"jsCode":"const titlePagesFileId = $input.first().json.id;\nconst files = $('Build Title Pages JSON').first().json.files;\n\nreturn files.map((file, index) => ({\n  json: {\n    driveFileId: file.id,\n    fileName: file.name,\n    titlePageNumber: index + 1,\n    titlePagesFileId\n  }\n}));"},"typeVersion":2},{"id":"63b3a4fd-934e-42be-891d-a739754d75fb","name":"Loop Over Documents","type":"n8n-nodes-base.splitInBatches","position":[768,128],"parameters":{"options":{}},"typeVersion":3},{"id":"c681fbb2-c13f-42aa-bad4-49f9fffaf3ab","name":"Download PDF from Drive","type":"n8n-nodes-base.googleDrive","position":[1008,224],"parameters":{"fileId":{"__rl":true,"mode":"id","value":"={{ $json.driveFileId }}"},"options":{},"operation":"download"},"credentials":{"googleDriveOAuth2Api":{"id":"YOUR_GOOGLE_CREDENTIAL_ID","name":"Google Drive account"}},"typeVersion":3},{"id":"076f31fa-88ea-415e-90fd-398e7143f5f2","name":"Upload Document to Autype","type":"n8n-nodes-autype.autype","position":[1248,224],"parameters":{"resource":"file"},"credentials":{"autypeApi":{"id":"YOUR_CREDENTIAL_ID","name":"Autype account"}},"typeVersion":1},{"id":"d9274e8c-63a2-458e-b345-36bff5e86805","name":"Extract Title Page","type":"n8n-nodes-autype.autype","position":[1488,224],"parameters":{"pages":"={{ $('Loop Over Documents').item.json.titlePageNumber.toString() }}","fileId":"={{ $('Loop Over Documents').item.json.titlePagesFileId }}","resource":"documentTools","operation":"pages"},"credentials":{"autypeApi":{"id":"YOUR_CREDENTIAL_ID","name":"Autype account"}},"typeVersion":1},{"id":"200b57c5-9e1b-458d-bc8a-4ba429bcd4eb","name":"Collect Merge Pair","type":"n8n-nodes-base.code","position":[1728,224],"parameters":{"jsCode":"const titlePageFileId = $json.outputFileId\nconst docFileId = $('Upload Document to Autype').item.json.id;\nconst fileName = $('Loop Over Documents').item.json.fileName;\n\nreturn [{\n  json: {\n    titlePageFileId,\n    docFileId,\n    fileName\n  }\n}];"},"typeVersion":2},{"id":"dfc3c022-b648-42d7-8893-cbd6fbfbb76f","name":"Build Final Merge List","type":"n8n-nodes-base.code","position":[1008,-144],"parameters":{"jsCode":"const items = $input.all();\nconst fileIds = [];\n\nfor (const item of items) {\n  fileIds.push(item.json.titlePageFileId);\n  fileIds.push(item.json.docFileId);\n}\n\nreturn [{ json: { fileIds: fileIds.join(',') } }];"},"typeVersion":2},{"id":"6b33fa02-ec93-425a-a0b5-48eeda174bc6","name":"Merge All PDFs","type":"n8n-nodes-autype.autype","position":[1248,-144],"parameters":{"fileIds":"={{ $json.fileIds }}","resource":"documentTools"},"credentials":{"autypeApi":{"id":"YOUR_CREDENTIAL_ID","name":"Autype account"}},"typeVersion":1},{"id":"6f37f228-0540-4677-85bd-18ce47e15fc7","name":"Add Company Watermark","type":"n8n-nodes-autype.autype","position":[1456,-144],"parameters":{"text":"Your Company Name","fileId":"={{ $('Merge All PDFs').item.json.outputFileId }}","resource":"documentTools","operation":"watermark","downloadOutput":true,"watermarkOptions":{"color":"#2563EB","opacity":0.6,"fontSize":14,"rotation":45}},"credentials":{"autypeApi":{"id":"YOUR_CREDENTIAL_ID","name":"Autype account"}},"typeVersion":1},{"id":"2f181d44-a882-4297-8514-d7d52fdc51e1","name":"Save Final PDF to Drive","type":"n8n-nodes-base.googleDrive","position":[1680,-144],"parameters":{"name":"=merged-documents-{{ $now.format('yyyy-MM-dd') }}.pdf","driveId":{"__rl":true,"mode":"list","value":"My Drive"},"options":{},"folderId":{"__rl":true,"mode":"id","value":"YOUR_FOLDER_ID"}},"credentials":{"googleDriveOAuth2Api":{"id":"YOUR_GOOGLE_CREDENTIAL_ID","name":"Google Drive account"}},"typeVersion":3},{"id":"4054763c-74c8-4369-a40d-82c6e437a04c","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-976,-832],"parameters":{"width":560,"height":1128,"content":"## Merge All PDFs from Google Drive with Generated Title Pages and Watermark\n### This workflow reads every PDF from a Google Drive folder, generates a title page for each document (showing name, dates, and owner), merges everything into a single PDF with interleaved title pages, adds a company watermark, and uploads the result back to Drive.\n\nClick \"Test Workflow\" to run it once. Each document gets a professional cover sheet before its content.\n\n### How it works\n1. **List PDFs in Folder** — Searches a Google Drive folder for all PDF files.\n2. **Build Title Pages JSON** — A Code node creates an Autype Render JSON config with one page section per document (name, created date, modified date, owner, document number).\n3. **Render Title Pages PDF** — Autype renders all title pages as a single multi-page PDF in one API call.\n4. **Upload Title Pages PDF** — Uploads the rendered PDF to Autype Tools for page extraction.\n5. **Loop Over Documents** — For each PDF:\n   - Downloads from Google Drive\n   - Uploads to Autype Tools\n   - Extracts the corresponding title page from the title pages PDF\n   - Collects the title page file ID and document file ID as a merge pair\n6. **Build Final Merge List** — Interleaves file IDs: title page 1, doc 1, title page 2, doc 2, etc.\n7. **Merge All PDFs** — Combines everything into one document in order.\n8. **Add Company Watermark** — Stamps the company name in blue on every page (top-right area, 60% opacity).\n9. **Save Final PDF to Drive** — Uploads the result as `merged-documents-YYYY-MM-DD.pdf` to the same Google Drive folder.\n\n### Requirements\n* **Autype account** — Sign up at [app.autype.com](https://app.autype.com) and go to **Settings → API Keys** to generate your API key.\n* **Google Drive** — Connect your Google account via OAuth2 in n8n credentials.\n* **n8n-nodes-autype** — Install the Autype community node via **Settings → Community Nodes** in your self-hosted n8n instance.\n\n> ⚠️ Community node: requires self-hosted n8n. Not available on n8n Cloud."},"typeVersion":1},{"id":"ab4dc91b-9646-4a51-bacf-621e9e69ff9a","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-368,-48],"parameters":{"color":7,"width":700,"height":348,"content":"### 1. List & Generate Title Pages\nSearches the Google Drive folder for all PDFs. A Code node builds the Autype Render JSON with one title page section per document. Autype renders all title pages in a single API call as one multi-page PDF."},"typeVersion":1},{"id":"1dadec4d-7472-4c42-b387-2caa94b4dfba","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[976,80],"parameters":{"color":7,"width":908,"height":316,"content":"### 2. Loop: Download, Upload, Extract Title Page\nFor each document: download from Drive, upload to Autype, extract the matching title page (by page number) from the title pages PDF, and collect both file IDs as a merge pair."},"typeVersion":1},{"id":"37e287d7-76c4-4f92-90be-88ce05a7da5e","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[976,-240],"parameters":{"color":7,"width":908,"height":268,"content":"### 3. Merge, Watermark & Save\nAfter the loop, file IDs are interleaved (title1, doc1, title2, doc2...) and merged into one PDF. A blue company-name watermark is added to every page. The final PDF is uploaded to Google Drive."},"typeVersion":1},{"id":"cac87ec3-79ab-4067-ad80-10be4b4ab95b","name":"Upload Title Pages PDF","type":"n8n-nodes-autype.autype","position":[368,128],"parameters":{"resource":"file"},"credentials":{"autypeApi":{"id":"YOUR_CREDENTIAL_ID","name":"Autype account"}},"typeVersion":1}],"active":false,"pinData":{},"settings":{"binaryMode":"separate","availableInMCP":false,"executionOrder":"v1"},"versionId":"autype-drive-example-id","connections":{"Run Workflow":{"main":[[{"node":"List PDFs in Folder","type":"main","index":0}]]},"Merge All PDFs":{"main":[[{"node":"Add Company Watermark","type":"main","index":0}]]},"Collect Merge Pair":{"main":[[{"node":"Loop Over Documents","type":"main","index":0}]]},"Extract Title Page":{"main":[[{"node":"Collect Merge Pair","type":"main","index":0}]]},"Prepare Loop Items":{"main":[[{"node":"Loop Over Documents","type":"main","index":0}]]},"List PDFs in Folder":{"main":[[{"node":"Build Title Pages JSON","type":"main","index":0}]]},"Loop Over Documents":{"main":[[{"node":"Build Final Merge List","type":"main","index":0}],[{"node":"Download PDF from Drive","type":"main","index":0}]]},"Add Company Watermark":{"main":[[{"node":"Save Final PDF to Drive","type":"main","index":0}]]},"Build Final Merge List":{"main":[[{"node":"Merge All PDFs","type":"main","index":0}]]},"Build Title Pages JSON":{"main":[[{"node":"Render Title Pages PDF","type":"main","index":0}]]},"Render Title Pages PDF":{"main":[[{"node":"Upload Title Pages PDF","type":"main","index":0}]]},"Upload Title Pages PDF":{"main":[[{"node":"Prepare Loop Items","type":"main","index":0}]]},"Download PDF from Drive":{"main":[[{"node":"Upload Document to Autype","type":"main","index":0}]]},"Upload Document to Autype":{"main":[[{"node":"Extract Title Page","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":19,"nodeTypes":{"n8n-nodes-base.code":{"count":4},"n8n-nodes-autype.autype":{"count":6},"n8n-nodes-base.stickyNote":{"count":4},"n8n-nodes-base.googleDrive":{"count":3},"n8n-nodes-base.manualTrigger":{"count":1},"n8n-nodes-base.splitInBatches":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"8Automator","username":"kesim0","bio":"Software Developer with 6+ years of experience based in Bavaria, Germany. I specialize in building business automation solutions, integrations, and tools with n8n to streamline workflows and improve efficiency.","verified":true,"links":[""],"avatar":"https://gravatar.com/avatar/752654f7c39695b04e1c549d8ec67c3cd526e8a97843ec25601baab4a707541e?r=pg&d=retro&size=200"},"nodes":[{"id":39,"icon":"fa:sync","name":"n8n-nodes-base.splitInBatches","codex":{"data":{"alias":["Loop","Concatenate","Batch","Split","Split In Batches"],"resources":{"generic":[{"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/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"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.splitinbatches/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"organization\"]","defaults":{"name":"Loop Over Items","color":"#007755"},"iconData":{"icon":"sync","type":"icon"},"displayName":"Loop Over Items (Split in Batches)","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":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":838,"icon":"fa:mouse-pointer","name":"n8n-nodes-base.manualTrigger","codex":{"data":{"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.manualworkflowtrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\"]","defaults":{"name":"When clicking ‘Execute workflow’","color":"#909298"},"iconData":{"icon":"mouse-pointer","type":"icon"},"displayName":"Manual Trigger","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]}],"categories":[{"id":35,"name":"Document Extraction"},{"id":51,"name":"Multimodal AI"}],"image":[{"id":4766,"url":"https://n8niostorageaccount.blob.core.windows.net/n8nio-strapi-blobs-prod/assets/mermaid_diagram_2026_03_05_152056_c6d7dd7ce4.png"},{"id":4767,"url":"https://n8niostorageaccount.blob.core.windows.net/n8nio-strapi-blobs-prod/assets/Screenshot_2026_03_05_at_15_01_50_bb9c25bf77.png"}]}}