{ "id": "r3qHlCVCczqTw3pP", "meta": { "instanceId": "workflow-43c58d0c", "versionId": "1.0.0", "createdAt": "2025-09-29T07:07:43.870387", "updatedAt": "2025-09-29T07:07:43.870403", "owner": "n8n-user", "license": "MIT", "category": "automation", "status": "active", "priority": "high", "environment": "production" }, "name": "Zip multiple files", "tags": [ "automation", "n8n", "production-ready", "excellent", "optimized" ], "nodes": [ { "id": "8de50ed2-b298-4701-8747-f6c7158fa15f", "name": "Execute Workflow Trigger", "type": "n8n-nodes-base.executeWorkflowTrigger", "position": [ 0, 0 ], "parameters": {}, "typeVersion": 1, "notes": "This executeWorkflowTrigger node performs automated tasks as part of the workflow." }, { "id": "5e03dfdd-696e-4a04-99e9-4094ae4371ac", "name": "Compression", "type": "n8n-nodes-base.compression", "position": [ 460, 0 ], "parameters": { "fileName": "=data{{$now.format('yyyy-MM-dd-tt')}}.zip", "operation": "compress", "binaryPropertyName": "={{ $json.binary_keys }}" }, "typeVersion": 1.1, "notes": "This compression node performs automated tasks as part of the workflow." }, { "id": "e25abf55-fb05-47d0-ba65-9b4e2f08d856", "name": "Sticky Note", "type": "n8n-nodes-base.stickyNote", "position": [ -340, -100 ], "parameters": { "height": 360, "content": "## About\nUse me as modular workflow. Instead of building me fixed in your workflow. Just call me when you need me.\n\n\n## Input\nInput can be multiple files \n-imgaes\n-pdfs\n-xlsx,csv....\n\n## Output\nSingle zip file" }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "db7b6475-25b5-44de-b37e-70b75c91455e", "name": "Prepare Output", "type": "n8n-nodes-base.set", "position": [ 680, 0 ], "parameters": { "options": {}, "assignments": { "assignments": [ { "id": "b0c3c3db-584a-48c9-b0ca-7f527d35f5a4", "name": "fileName", "type": "string", "value": "={{ $binary.data.fileName.replaceAll(\" \",\"\") }}" } ] }, "includeOtherFields": true }, "typeVersion": 3.4, "notes": "This set node performs automated tasks as part of the workflow." }, { "id": "6cf6b9ba-e5a3-4d5f-a539-e84d839f7e99", "name": "Code Magic", "type": "n8n-nodes-base.code", "position": [ 240, 0 ], "parameters": { "jsCode": "let binaries = {}, binary_keys = [];\n\nfor (const [index, inputItem] of Object.entries($input.all())) {\n binaries[`data_${index}`] = inputItem.binary.data;\n binary_keys.push(`data_${index}`);\n}\n\nreturn [{\n json: {\n binary_keys: binary_keys.join(',')\n },\n binary: binaries\n}];\n" }, "typeVersion": 2, "notes": "This code node performs automated tasks as part of the workflow." }, { "id": "error-e1e6306a", "name": "Error Handler", "type": "n8n-nodes-base.stopAndError", "typeVersion": 1, "position": [ 1000, 400 ], "parameters": { "message": "Workflow execution error", "options": {} } } ], "active": false, "pinData": {}, "settings": { "executionOrder": "v1", "saveManualExecutions": true, "callerPolicy": "workflowsFromSameOwner", "errorWorkflow": null, "timezone": "UTC", "executionTimeout": 3600, "maxExecutions": 1000, "retryOnFail": true, "retryCount": 3, "retryDelay": 1000 }, "versionId": "16f64706-0a2a-4f9f-a96f-f149a4874ae4", "connections": {}, "description": "Automated workflow: Zip multiple files. This workflow integrates 5 different services: stickyNote, code, compression, set, executeWorkflowTrigger. It contains 5 nodes and follows best practices for error handling and security.", "notes": "Excellent quality workflow: Zip multiple files. This workflow has been optimized for production use with comprehensive error handling, security, and documentation." }