Stop drowning in files: auto-organize your Google Drive with n8n (free workflow JSON) Free n8n workflow JSON that automatically organizes files in Google Drive by monitoring a designated "Inbox" folder. When a new file is added, the workflow classifies it by type (e.g., PDF, Image, Spreadsheet) based on its MIME type or extension, renames it with a date prefix, and moves it into the appropriate subfolder. It also logs every action in a Google Sheet for a complete audit trail. Your Google Drive is a mess. Don't lie. Downloads folder. Desktop. Shared drives. Inbox attachments saved without thinking. After a year of casual saving, you've got PDFs next to vacation photos next to invoices next to half-finished presentations â and nothing is findable. The fix isn't a "digital declutter weekend." That takes hours and you'll slide back in two weeks. The fix is an automation that runs forever and silently keeps everything sorted for you. Here's a 4-node n8n workflow that watches a Google Drive folder and automatically moves every new file into the right sub-folder â PDFs, Images, Spreadsheets, Documents, Presentations, Videos â with a date prefix so files sort chronologically without renaming anything manually. What the workflow does Node 1 â Google Drive Trigger: watch a folder Polls a specific Google Drive folder every minute for new files. The moment a file lands in your "Inbox" folder your drop zone , the workflow fires. Node 2 â Code node: classify by type + generate new name Looks at the file's MIME type and filename extension: - application/pdf or .pdf â PDFs - image/ or .jpg/.jpeg/.png/.gif/.svg/.webp â Images - spreadsheet MIME or .xlsx/.xls/.csv â Spreadsheets - document MIME or .doc/.docx/.txt/.md â Documents - presentation MIME or .ppt/.pptx â Presentations - video/ or .mp4/.mov/.avi â Videos - Everything else â Other Also prepends today's date: 2026-05-22 invoice-client.pdf . Every folder sorts automatically from oldest to newest â no manual date-tagging ever. Node 3 â Google Drive: move to folder Moves the file from the Inbox folder into the classified sub-folder. Two-second operation. The original file is gone from your drop zone, organized where it belongs. Node 4 â Google Sheets: log the action Appends a row to a FileLog sheet: fileId , fileName , targetFolder , newName . Full audit trail: every file ever sorted, when it was sorted, where it went. Setup 5 minutes - Create the folder structure in Google Drive: - Inbox/ your drop zone Files/PDFs/ Files/Images/ Files/Spreadsheets/ Files/Documents/ Files/Presentations/ Files/Videos/ Files/Other/ - Import the JSON into n8n New Workflow â Import from clipboard Connect your Google account in the Drive Trigger, Drive, and Sheets nodes one OAuth connection covers all three Set your folder IDs in Node 1 Inbox folder ID and Node 3 target folder IDs â one per category . Get folder IDs from the URL when you open a folder in Drive: drive.google.com/drive/folders/FOLDER ID HERE Create a Google Sheet called FileLog and set its ID in Node 4 Activate the workflow â it now runs forever From now on: drop anything into Inbox, it's organized in under 60 seconds. Full workflow JSON { "name": "File Organizer", "nodes": { "parameters": { "pollTimes": {"item": {"mode": "everyMinute"} }, "triggerOn": "specificFolder", "folderToWatch": {" rl": true, "value": "YOUR INBOX FOLDER ID", "mode": "id"} }, "id": "fo1", "name": "Watch Google Drive", "type": "n8n-nodes-base.googleDriveTrigger", "typeVersion": 1, "position": 240, 300 }, { "parameters": { "jsCode": "const file = $input.first .json;\nconst name = file.name || '';\nconst mime = file.mimeType || '';\nlet folder = 'Other';\nif mime.includes 'pdf' || name.endsWith '.pdf' folder = 'PDFs';\nelse if mime.includes 'image' || /\\. jpg|jpeg|png|gif|svg|webp $/i.test name folder = 'Images';\nelse if mime.includes 'spreadsheet' || /\\. xlsx|xls|csv $/i.test name folder = 'Spreadsheets';\nelse if mime.includes 'document' || /\\. doc|docx|txt|md $/i.test name folder = 'Documents';\nelse if mime.includes 'presentation' || /\\. ppt|pptx $/i.test name folder = 'Presentations';\nelse if mime.includes 'video' || /\\. mp4|mov|avi $/i.test name folder = 'Videos';\nconst datePrefix = new Date .toISOString .split 'T' 0 ;\nreturn { json: { fileId: file.id, fileName: name, targetFolder: folder, newName: datePrefix + ' ' + name } } ;" }, "id": "fo2", "name": "Classify File Type", "type": "n8n-nodes-base.code", "typeVersion": 2, "position": 480, 300 }, { "parameters": { "operation": "move", "fileId": "={{ $json.fileId }}", "folderId": "={{ $json.targetFolder }}" }, "id": "fo3", "name": "Move to Folder", "type": "n8n-nodes-base.googleDrive", "typeVersion": 3, "position": 720, 200 }, { "parameters": { "operation": "append", "documentId": {" rl": true, "value": "YOUR SHEET ID", "mode": "id"}, "sheetName": {" rl": true, "value": "FileLog", "mode": "name"}, "columns": {"mappingMode": "autoMapInputData"} }, "id": "fo4", "name": "Log Action", "type": "n8n-nodes-base.googleSheets", "typeVersion": 4.5, "position": 720, 400 } , "connections": { "Watch Google Drive": {"main": {"node": "Classify File Type", "type": "main", "index": 0} }, "Classify File Type": {"main": {"node": "Move to Folder", "type": "main", "index": 0}, {"node": "Log Action", "type": "main", "index": 0} } }, "settings": {"executionOrder": "v1"}, "tags": {"name": "file-management"} } Customizations Add more file types The Code node's classification logic is just a series of if/else statements. Add a line like: else if /\. zip|tar|gz $/i.test name folder = 'Archives'; for ZIP files, audio files, code files â whatever categories you need. Use it as a shared team inbox Share the Inbox folder with your team. Now anyone on the team can drop files and they'll auto-sort into the right place. Works great for shared client deliverables, design assets, or contract PDFs. Add Slack notification Append a Slack node after Node 3: "✠{{$json.fileName}} → {{$json.targetFolder}}" Great for team awareness when important files arrive. Email attachment auto-saver Pair this workflow with an n8n Gmail trigger that saves all attachments to the Inbox folder. Now every email attachment is automatically sorted by type and logged â your inbox clutter permanently solved. Add AI-based naming Replace the date prefix logic in the Code node with a call to the OpenAI or Claude API to generate a clean descriptive filename based on file content for text-readable files . More complex but powerful for documents with generic names like scan001.pdf . Why this compounds Unlike a "clean up your files" session that you'll undo in a month, this workflow runs silently forever. The longer it runs, the better your files are organized. Set it up once in 5 minutes, and your Drive is permanently sorted. The audit log in Sheets also means you can easily answer: where did that file go? Search by filename, filter by date, done. Get the full automation bundle This workflow is part of our 15-template n8n automation bundle â each one covering a different business use case: lead capture, invoice generation, AI customer support, social media automation, price monitoring, and more. Grab the full bundle at stripeai.gumroad.com â pre-tested, documented, ready to activate. Built with n8n. Self-hostable, open source, no vendor lock-in.