{"workflow":{"id":14364,"name":"Generate client contracts automatically using Google Docs, Drive, and GoHighLevel","views":41,"recentViews":2,"totalViews":41,"createdAt":"2026-03-26T11:40:59.789Z","description":"📘 Description\n This workflow is a fully automated contract generation and delivery system that converts structured client input into a finalized, professional PDF contract and uploads it directly to your CRM. It eliminates manual document handling by dynamically populating a Google Docs template, exporting it as a PDF, and delivering it to GoHighLevel in a single flow, while ensuring no temporary files remain in storage. \n\n⚙️ Step-by-Step Flow\n1. Receive Contract Request (Webhook)\n2. Accepts a POST request containing all contract data: \n-  Client name \n-  Date \n-  Scope of works (array) \n-  PC items (array) \n-  Financials (subtotal, GST, total) \n- Copy Master Template (Google Drive)\n3.  Creates a duplicate of the master contract template.\n 4. Ensures the original template remains unchanged. \n5. Populate Contract with Client Data (Google Docs)\n 6. Performs large-scale find-and-replace operations: \n-  Replaces placeholders with dynamic client inputs \n-  Injects scope of work sections \n-  Maps PC items and pricing \n-  Updates totals and metadata \n7. Download Contract as PDF (Google Drive)\n8.  Exports the fully populated document as a PDF file. \n9. Upload PDF to GoHighLevel (HTTP Request)\n10. Uploads the generated PDF to GoHighLevel via API: \n-  Makes it instantly available in CRM \n-  Ready for attachment or client delivery \n11. Delete Temp Copy from Drive (Cleanup)\n12. Removes the temporary document copy from Google Drive.\n13.  Prevents storage clutter and duplication. \n\n## 🧩 Prerequisites\n • Google Drive OAuth2\n • Google Docs OAuth2\n • GoHighLevel API key (Bearer token)\n • Webhook trigger source (form, CRM, or system)\n\n\n## 💡 Key Benefits\n ✔ Zero manual contract creation\n ✔ Consistent formatting across all contracts\n ✔ Dynamic handling of complex data (arrays, pricing)\n ✔ Instant CRM upload (GoHighLevel)\n ✔ Automatic cleanup (no file clutter)\n ✔ Scalable for high-volume contract generation\n\n## 👥 Perfect For\n-  Construction and renovation businesses\n-  Agencies generating client agreements\n-  Sales teams automating proposal-to-contract flow\n-  CRM-driven businesses using GoHighLevel\n","workflow":{"id":"RD7R4vPftgj9uhAP","meta":{"instanceId":"8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177"},"name":"Generate Client Contracts Automatically using Google Docs, Drive, and GoHighLevel","tags":[],"nodes":[{"id":"d53465c0-2029-4272-ad5f-1f6be7026286","name":"Sticky Note: Overview","type":"n8n-nodes-base.stickyNote","position":[-336,-624],"parameters":{"width":708,"height":544,"content":"## 📄 Automated Contract Generator\n\n### How it works\nWhen a webhook receives client data (name, date, scope of works, PC items, and financials), the workflow copies a master Google Docs contract template, populates it with the submitted details using find-and-replace, exports it as a PDF, uploads it to GoHighLevel, and then deletes the temporary copy from Drive — leaving no clutter behind.\n\nThis removes the manual work of copying, editing, and emailing contracts one by one. Every contract is generated in seconds, consistently formatted, and automatically delivered to your CRM.\n\n### Setup steps\n1. **Google Drive** — Connect your Google Drive OAuth2 credential. Update the `Copy Master Template` node with your own master template file ID.\n2. **Google Docs** — Connect your Google Docs OAuth2 credential to the `Populate Contract with Client Data` node.\n3. **GoHighLevel** — Replace the placeholder Bearer token in `Upload PDF to GoHighLevel` with your own GHL API key.\n4. **Webhook** — Copy the webhook URL and add it to whatever form or CRM triggers contract generation.\n5. **Test** — Submit a test payload matching the expected body structure (full_name, date, scope_of_works[], pc_items[], subtotal, gst, total) and verify the PDF arrives in GHL."},"typeVersion":1},{"id":"6c18cc5a-609b-4785-8ae7-4260415960bb","name":"Sticky Note: Webhook","type":"n8n-nodes-base.stickyNote","position":[560,-48],"parameters":{"color":7,"width":280,"height":380,"content":"## 🔗 Webhook Trigger\nReceives a POST request with all client contract details — name, date, scope of works, PC items, and pricing. This is the entry point; nothing runs until this fires."},"typeVersion":1},{"id":"89545069-7529-46a8-8936-ee637f5a1a86","name":"Sticky Note: Template Population","type":"n8n-nodes-base.stickyNote","position":[848,-48],"parameters":{"color":7,"width":564,"height":384,"content":"## 📋 Template Copy & Population\nClones the master Google Docs contract template and replaces all placeholder text with the client's actual data — name, date, scope of works headings and descriptions, PC item names and values, and totals. The original template is never modified."},"typeVersion":1},{"id":"ae0db946-929d-49f3-ab74-b613dc38b65b","name":"Sticky Note: Export & Upload","type":"n8n-nodes-base.stickyNote","position":[1440,-32],"parameters":{"color":7,"width":492,"height":374,"content":"## 📤 Export & Upload to CRM\nDownloads the completed contract as a PDF from Google Drive, then uploads it directly to GoHighLevel via the media API. The PDF is ready to attach to a contact record or send to the client."},"typeVersion":1},{"id":"ca2e06f1-6a0a-4502-bed5-189204883cd1","name":"Sticky Note: Cleanup","type":"n8n-nodes-base.stickyNote","position":[1952,-32],"parameters":{"color":7,"width":388,"height":376,"content":"## 🗑️ Cleanup\nDeletes the temporary Google Drive copy after the PDF has been successfully uploaded. Keeps your Drive tidy with no leftover contract drafts."},"typeVersion":1},{"id":"b04ffc44-b344-4881-b686-956ebffe482d","name":"Sticky Note: Security","type":"n8n-nodes-base.stickyNote","position":[2368,112],"parameters":{"color":3,"width":292,"height":210,"content":"## 🔐 Credentials & Security\nUse OAuth2 for Google Drive and Google Docs. Replace the GoHighLevel Bearer token with a credential stored in n8n — never paste live API keys into node fields for shared templates."},"typeVersion":1},{"id":"0d648496-37ae-4658-8200-543dd560d598","name":"Receive Contract Request","type":"n8n-nodes-base.webhook","position":[672,112],"webhookId":"dc09097f-d5ac-4352-b249-7f03e71876d6","parameters":{"path":"dc09097f-d5ac-4352-b249-7f03e71876d6","options":{},"httpMethod":"POST"},"typeVersion":2.1},{"id":"73927614-2bdd-4128-9cc5-90fb5c473e82","name":"Copy Master Template","type":"n8n-nodes-base.googleDrive","position":[960,112],"parameters":{"name":"={{ 'Contract_' + $('Receive Contract Request').item.json.body.full_name + '_' + $('Receive Contract Request').item.json.body.date }}","fileId":{"__rl":true,"mode":"id","value":"YOUR_MASTER_TEMPLATE_FILE_ID"},"options":{},"operation":"copy"},"credentials":{"googleDriveOAuth2Api":{"id":"credential-id","name":"Google Drive account 5"}},"typeVersion":3},{"id":"cae4af45-d5a1-4979-8b9d-f0e601137af7","name":"Populate Contract with Client Data","type":"n8n-nodes-base.googleDocs","position":[1264,112],"parameters":{"actionsUi":{"actionFields":[{"text":"Michelle Humphries","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.full_name }}"},{"text":"22ⁿᵈ of December 2025","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.date }}"},{"text":"DEMOLITION","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.scope_of_works[0].heading }}"},{"text":"Complete Heading 1 to bathroom & laundry. Remove fixtures & fittings (bath, vanity, toilet, shower screen, Heading 7 *, benchtop, etc). Remove floor & wall tiles. Remove wall sheeting where required. Remove bathroom door frame. Remove screed. Remove concrete slab where required for plumbing access/relocation (bath, vanity, laundry sink waste). Supply skip bin. Dust extractors & floor protection to be used at all times..","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.scope_of_works[0].sub_heading }}"},{"text":"FIRST FIX PLUMBING & ELECTRICAL","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.scope_of_works[1].heading }}"},{"text":"Disconnect existing plumbing. Relocate bath waste & convert to suit shower strip drain. Relocate vanity waste to suit wall hung. Relocate laundry sink waste to suit new. Relocate vanity water outlets to suit wall hung. Relocate shower water outlet to suit Item 5 * Relocate toilet water inlet to suit BTW. Relocate laundry sink water outlets to suit new. Relocate laundry washing machine water outlets to suit new. Convert all tapware to mixer taps. Disconnect existing electrical. Delete laundry ceiling light. Relocate existing vanity GPO to suit new. Add new ceiling electrical (exhaust fan above shower, 2 downlights in laundry). Add new wall electrical (HTR, GPO above vanity, GPO above laundry benchtop, GPO inside laundry sink cupboard). Supply all materials.","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.scope_of_works[1].sub_heading }}"},{"text":"CONCRETING & CARPENTRY","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.scope_of_works[2].heading }}"},{"text":"Repair concrete slab where removed for plumbing access/relocation (bath, vanity, laundry sink waste). Termite protection to be installed beforehand. First & second fix bathroom sliding cavity door. Build dividing half nib wall between toilet & shower. Build shower niche (size & location to be determined on site). Add timber supports to wall framing where required Supply all materials","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.scope_of_works[2].sub_heading }}"},{"text":"CEILING/WALL LININGS & FLUSHING","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.scope_of_works[3].heading }}"},{"text":"Sheet walls where removed. Repair laundry ceiling. Tape, flush & sand all new ceiling/wall linings. Supply all materials.","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.scope_of_works[3].sub_heading }}"},{"text":"SCREEDING","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.scope_of_works[4].heading }}"},{"text":"Screed bathroom & laundry floor. Supply all materials.","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.scope_of_works[4].sub_heading }}"},{"text":"WATERPROOFING & TILING","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.scope_of_works[5].heading }}"},{"text":"Install puddle flange to floor wastes. Prep floor & walls for correct Heading 6 * installation. Waterproof bathroom & laundry in accordance to AS370 using the full laticrete system. Tile    bathroom & laundry floor. * Tile bathroom walls - 2100mm high in shower area, 1200mm high  outside shower area. * Tile bathroom nib wall. * Tile laundry walls - skirting tile. * Tile laundry  splashback - 600mm high. * Mitre tiles around shower niche & nib wall. * Grout & silicone all new tiling works. Install tile insert strip drain to shower waste. Install tile insert floor grate to floor wastes. Supply all materials. *PC Item","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.scope_of_works[5].sub_heading }}"},{"text":"CABINETRY","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.scope_of_works[6].heading }}"},{"text":"Supply & install laundry cupboards. Supply & install laundry stone benchtop. Refer to attached plan/drawing.","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.scope_of_works[6].sub_heading }}"},{"text":"SECOND FIX PLUMBING & ELECTRICAL","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.scope_of_works[7].heading }}"},{"text":"Install vanity. * Install toilet. * Install Item 5 * * Install laundry trough. * Install all tapware. * Connect washing machine & dryer. ** Supply & install exhaust fan above shower. Supply & replace existing bathroom 4 in 1. Supply & install 2 downlights in laundry. Install HTR. * Supply & install LED motion sensor strip light under vanity. Supply & install bathroom GPO (above vanity). Supply & install laundry GPO's (above benchtop, inside sink cupboard). Supply & replace all existing electrical switches. *PC Item **Items To Be Supplied By Owner","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.scope_of_works[7].sub_heading }}"},{"text":" FIT OUT","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.scope_of_works[8].heading }}"},{"text":"Install fittings (mirror, towel rails, toilet roll holder, robe hooks, etc). * Supply & install custom made frameless single panel shower screen (2100x1000mm). Final site clean up. *PC Item","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.scope_of_works[8].sub_heading }}"},{"text":"1200mm wall hung vanity unit.","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.pc_items[0].item }}"},{"text":"2,250.00","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.pc_items[0].value }}"},{"text":"Wall tiles ($40m2).","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.pc_items[1].item }}"},{"text":"1,190.40","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.pc_items[1].value }}"},{"text":"Floor tiles ($60m2).","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.pc_items[2].item }}"},{"text":"1,043.40","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.pc_items[2].value }}"},{"text":"BTW toilet suite.","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.pc_items[3].item }}"},{"text":"713.00","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.pc_items[3].value }}"},{"text":"Shower rail.","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.pc_items[4].item }}"},{"text":"660.00","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.pc_items[4].value }}"},{"text":"700mm HTR.","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.pc_items[5].item }}"},{"text":"499.00","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.pc_items[5].value }}"},{"text":"Above counter basin.","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.pc_items[6].item }}"},{"text":"349.00","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.pc_items[6].value }}"},{"text":"Wall basin mixer tap.","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.pc_items[7].item }}"},{"text":"281.00","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.pc_items[7].value }}"},{"text":"1200mm rectangle mirror.","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.pc_items[8].item }}"},{"text":"266.00","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.pc_items[8].value }}"},{"text":"Laundry inset trough.","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.pc_items[9].item }}"},{"text":"249.00","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.pc_items[9].value }}"},{"text":"Laundry sink mixer tap.","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.pc_items[10].item }}"},{"text":"169.00","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.pc_items[10].value }}"},{"text":"Shower mixer tap.","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.pc_items[11].item }}"},{"text":"146.00","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.pc_items[11].value }}"},{"text":"Hand towel rail.","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.pc_items[12].item }}"},{"text":"65.00","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.pc_items[12].value }}"},{"text":"Robe hook X2. ","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.pc_items[13].item }}"},{"text":"60.00","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.pc_items[13].value }}"},{"text":"Toilet roll holder.","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.pc_items[14].item }}"},{"text":"44.00","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.pc_items[14].value }}"},{"text":"Michelle Humphries","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.fee_full_name }}"},{"text":"22nd of December 2025","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.fee_date }}"},{"text":"58,808.61","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.subtotal }}"},{"text":"5,880.86","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.gst }}"},{"text":"64,689.47","action":"replaceAll","replaceText":"={{ $('Receive Contract Request').item.json.body.total }}"}]},"operation":"update","documentURL":"={{ $json.id }}"},"credentials":{"googleDocsOAuth2Api":{"id":"credential-id","name":"Google Docs account 5"}},"typeVersion":2},{"id":"3f017f3b-31c3-4d70-abea-3c6ee8157b37","name":"Download Contract as PDF","type":"n8n-nodes-base.googleDrive","position":[1536,112],"parameters":{"fileId":{"__rl":true,"mode":"id","value":"={{ $('Copy Master Template').item.json.id }}"},"options":{},"operation":"download"},"credentials":{"googleDriveOAuth2Api":{"id":"credential-id","name":"Google Drive account 5"}},"typeVersion":3},{"id":"71876bed-020a-4259-8628-0fa726357cb9","name":"Upload PDF to GoHighLevel","type":"n8n-nodes-base.httpRequest","position":[1808,112],"parameters":{"url":"https://services.leadconnectorhq.com/medias/upload-file","method":"POST","options":{"redirect":{"redirect":{}}},"sendBody":true,"contentType":"multipart-form-data","sendHeaders":true,"bodyParameters":{"parameters":[{"name":"file","parameterType":"formBinaryData","inputDataFieldName":"data"}]},"headerParameters":{"parameters":[{"name":"Accept","value":"application/json"},{"name":"Version","value":"2021-07-28"},{"name":"Authorization","value":"Bearer YOUR_TOKEN_HERE"},{"name":"Channel","value":"API"},{"name":"source","value":"WEB_USER"},{"name":"origin","value":"https://app.gohighlevel.com"},{"name":"referer","value":"https://app.gohighlevel.com/"}]}},"typeVersion":4.3},{"id":"a994f86b-e5f5-4043-8d19-f654682b18c1","name":"Delete Temp Copy from Drive","type":"n8n-nodes-base.googleDrive","position":[2064,112],"parameters":{"fileId":{"__rl":true,"mode":"id","value":"={{ $('Copy Master Template').item.json.id }}"},"options":{},"operation":"deleteFile"},"credentials":{"googleDriveOAuth2Api":{"id":"credential-id","name":"Google Drive account 5"}},"typeVersion":3}],"active":false,"pinData":{},"settings":{"executionOrder":"v1"},"versionId":"585f4265-305e-4d86-b44f-99b4508eb6d4","connections":{"Copy Master Template":{"main":[[{"node":"Populate Contract with Client Data","type":"main","index":0}]]},"Download Contract as PDF":{"main":[[{"node":"Upload PDF to GoHighLevel","type":"main","index":0}]]},"Receive Contract Request":{"main":[[{"node":"Copy Master Template","type":"main","index":0}]]},"Upload PDF to GoHighLevel":{"main":[[{"node":"Delete Temp Copy from Drive","type":"main","index":0}]]},"Populate Contract with Client Data":{"main":[[{"node":"Download Contract as PDF","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":12,"nodeTypes":{"n8n-nodes-base.webhook":{"count":1},"n8n-nodes-base.googleDocs":{"count":1},"n8n-nodes-base.stickyNote":{"count":6},"n8n-nodes-base.googleDrive":{"count":3},"n8n-nodes-base.httpRequest":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Rahul Joshi","username":"rahul08","bio":"Rahul Joshi is a seasoned technology leader specializing in the n8n automation tool and AI-driven workflow automation. With deep expertise in building open-source workflow automation and self-hosted automation platforms, he helps organizations eliminate manual processes through intelligent n8n ai agent automation solutions.\n\n","verified":true,"links":["https://www.linkedin.com/in/callrahul/"],"avatar":"https://gravatar.com/avatar/b6cf57822463143589b36ada06fbf6cb1509223a740fae3160b28f1ce41ccc12?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":47,"icon":"file:webhook.svg","name":"n8n-nodes-base.webhook","codex":{"data":{"alias":["HTTP","API","Build","WH"],"resources":{"generic":[{"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/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"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/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/how-a-digital-strategist-uses-n8n-for-online-marketing/","icon":"💻","label":"How a digital strategist uses n8n for online marketing"},{"url":"https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/","icon":"📹","label":"The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"},{"url":"https://n8n.io/blog/how-to-automatically-give-kudos-to-contributors-with-github-slack-and-n8n/","icon":"👏","label":"How to automatically give kudos to contributors with GitHub, Slack, and n8n"},{"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/creating-custom-incident-response-workflows-with-n8n/","label":"How to automate every step of an incident response workflow"},{"url":"https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"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-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"trigger\"]","defaults":{"name":"Webhook"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTM1IDM3Yy0yLjIgMC00LTEuOC00LTRzMS44LTQgNC00IDQgMS44IDQgNC0xLjggNC00IDQiLz48cGF0aCBmaWxsPSIjMzc0NzRmIiBkPSJNMzUgNDNjLTMgMC01LjktMS40LTcuOC0zLjdsMy4xLTIuNWMxLjEgMS40IDIuOSAyLjMgNC43IDIuMyAzLjMgMCA2LTIuNyA2LTZzLTIuNy02LTYtNmMtMSAwLTIgLjMtMi45LjdsLTEuNyAxTDIzLjMgMTZsMy41LTEuOSA1LjMgOS40YzEtLjMgMi0uNSAzLS41IDUuNSAwIDEwIDQuNSAxMCAxMFM0MC41IDQzIDM1IDQzIi8+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTE0IDQzQzguNSA0MyA0IDM4LjUgNCAzM2MwLTQuNiAzLjEtOC41IDcuNS05LjdsMSAzLjlDOS45IDI3LjkgOCAzMC4zIDggMzNjMCAzLjMgMi43IDYgNiA2czYtMi43IDYtNnYtMmgxNXY0SDIzLjhjLS45IDQuNi01IDgtOS44IDgiLz48cGF0aCBmaWxsPSIjZTkxZTYzIiBkPSJNMTQgMzdjLTIuMiAwLTQtMS44LTQtNHMxLjgtNCA0LTQgNCAxLjggNCA0LTEuOCA0LTQgNCIvPjxwYXRoIGZpbGw9IiMzNzQ3NGYiIGQ9Ik0yNSAxOWMtMi4yIDAtNC0xLjgtNC00czEuOC00IDQtNCA0IDEuOCA0IDQtMS44IDQtNCA0Ii8+PHBhdGggZmlsbD0iI2U5MWU2MyIgZD0ibTE1LjcgMzQtMy40LTIgNS45LTkuN2MtMi0xLjktMy4yLTQuNS0zLjItNy4zIDAtNS41IDQuNS0xMCAxMC0xMHMxMCA0LjUgMTAgMTBjMCAuOS0uMSAxLjctLjMgMi41bC0zLjktMWMuMS0uNS4yLTEgLjItMS41IDAtMy4zLTIuNy02LTYtNnMtNiAyLjctNiA2YzAgMi4xIDEuMSA0IDIuOSA1LjFsMS43IDF6Ii8+PC9zdmc+"},"displayName":"Webhook","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"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":495,"icon":"file:googleDocs.svg","name":"n8n-nodes-base.googleDocs","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googledocs/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Miscellaneous"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\"]","defaults":{"name":"Google Docs"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSItMTggMCA5MCA4MCI+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iLjUiIHk9Ii41Ii8+PHN5bWJvbCBpZD0iYSIgb3ZlcmZsb3c9InZpc2libGUiPjxnIHN0cm9rZT0ibm9uZSI+PHBhdGggZmlsbD0iIzU0OGRmNiIgZD0ibTM2IDAgMjIgMjJ2NTNhNC45OSA0Ljk5IDAgMCAxLTUgNUg1YTQuOTkgNC45OSAwIDAgMS01LTVWNWE0Ljk5IDQuOTkgMCAwIDEgNS01eiIvPjxwYXRoIGQ9Ik0xNCA0MGgzMHYzSDE0em0wIDdoMzB2M0gxNHptMCA4aDMwdjNIMTR6bTAgN2gyMXYzSDE0eiIvPjxwYXRoIGZpbGw9IiNhYmQwZmIiIGQ9Im0zNiAwIDIyIDIySDQxYy0yLjc3IDAtNS0yLjQ4LTUtNS4yNXoiLz48cGF0aCBmaWxsPSIjM2U1YmI5IiBkPSJNNDAuNzUgMjIgNTggMjkuMTI1VjIyeiIvPjwvZz48L3N5bWJvbD48L3N2Zz4="},"displayName":"Google Docs","typeVersion":2,"nodeCategories":[{"id":11,"name":"Miscellaneous"}]},{"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"}]}],"categories":[{"id":35,"name":"Document Extraction"}],"image":[]}}