{ "meta": { "instanceId": "workflow-c66f07db", "versionId": "1.0.0", "createdAt": "2025-09-29T07:07:45.992133", "updatedAt": "2025-09-29T07:07:45.992149", "owner": "n8n-user", "license": "MIT", "category": "automation", "status": "active", "priority": "high", "environment": "production" }, "nodes": [ { "id": "trigger-7ec5c77e", "name": "Manual Trigger", "type": "n8n-nodes-base.manualTrigger", "typeVersion": 1, "position": [ 100, 100 ], "parameters": {} }, { "id": "6fb16611-0ee4-4c89-91ef-dc8a1e39406d", "name": "Upload Img to ImgBB for URL", "type": "n8n-nodes-base.httpRequest", "position": [ 120, 6220 ], "parameters": { "url": "{{ $env.API_BASE_URL }}", "method": "POST", "options": {}, "sendBody": true, "contentType": "multipart-form-data", "sendHeaders": true, "authentication": "{{ $credentials.genericCredentialType }}", "bodyParameters": { "parameters": [ { "name": "image", "parameterType": "formBinaryData", "inputDataFieldName": "data" } ] }, "genericAuthType": "httpQueryAuth", "headerParameters": { "parameters": [ { "name": "Content-type", "value": "multipart/form-data" } ] } }, "notesInFlow": true, "typeVersion": 4.2, "notes": "This httpRequest node performs automated tasks as part of the workflow." }, { "id": "e94ebd4f-4459-4705-8fc5-f7ebbc996add", "name": "ReSmush.it Image Optimisation", "type": "n8n-nodes-base.httpRequest", "position": [ 320, 6220 ], "parameters": { "url": "{{ $env.BASE_URL }}", "options": {} }, "notesInFlow": true, "typeVersion": 4.2, "notes": "This httpRequest node performs automated tasks as part of the workflow." }, { "id": "e337dcf1-27d3-4f75-850b-f2c5bff48ed6", "name": "Store Optimised Image ImgBB", "type": "n8n-nodes-base.httpRequest", "position": [ 540, 6220 ], "parameters": { "url": "{{ $env.API_BASE_URL }}", "method": "POST", "options": {}, "sendBody": true, "sendHeaders": true, "authentication": "{{ $credentials.genericCredentialType }}", "bodyParameters": { "parameters": [ { "name": "image", "value": "={{ $json.dest }}" } ] }, "genericAuthType": "httpQueryAuth", "headerParameters": { "parameters": [ { "name": "Content-type", "value": "application/x-www-form-urlencoded" } ] } }, "notesInFlow": true, "typeVersion": 4.2, "notes": "This httpRequest node performs automated tasks as part of the workflow." }, { "id": "e51c199e-e435-4bbd-a977-dc96200729cc", "name": "Sticky Note50", "type": "n8n-nodes-base.stickyNote", "position": [ -343.4815115846739, 6060 ], "parameters": { "color": 7, "width": 415.48118604428106, "height": 320.9196076003899, "content": "**Image Prompt**\n\nPrompt takes input of image description from the `set image description` node and generates using OpenAI" }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "95a551f0-c164-4ac7-94e2-5aac4c5fc548", "name": "Sticky Note51", "type": "n8n-nodes-base.stickyNote", "position": [ 80, 6060 ], "parameters": { "color": 7, "width": 619.0692735087202, "height": 320.9196076003899, "content": "**Upload image to ImgBB, Optimise using ReSmush.it and store as URL**\n" }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "93737b01-cd2f-4f49-b611-f47782a9eed8", "name": "Sticky Note52", "type": "n8n-nodes-base.stickyNote", "position": [ -1160, 6020 ], "parameters": { "color": 4, "width": 773.6179704580734, "height": 875.8289847608302, "content": "## Convert Image Files (JPG, PNG, JPEG) to URLs and Reduce File Size\n\n## Use Case\nTransform and optimize images for web use:\n- You need to host local images online\n- You want to reduce image file sizes automatically\n- You need image URLs for web content\n- You want to generate and optimize AI-created images\n\n## What this Workflow Does\nThe workflow processes images through two services:\n- Uploads images to ImgBB for hosting and URL generation (free but need API key)\n- Optimizes images using ReSmush.it to reduce file size (free)\n- Optional: Creates images using OpenAI's image generation\n- Returns optimized image URLs ready for use\n\n## Setup\n1. Create an [ImgBB account]({{ $env.API_BASE_URL }} and get your API key\n2. Add your ImgBB API key to the HTTP Request node (key parameter)\n3. Optional: Configure OpenAI credentials for image generation\n4. Connect your image input source\n\n## How to Adjust it to Your Needs\n- Skip OpenAI nodes if using your own image files\n- Adjust image optimization parameters\n- Customize image hosting settings\n- Modify output format for your needs\n\n\nMade by Simon @ [automake.io]({{ $env.WEBHOOK_URL }}" }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "8f4bfed3-820c-495d-9d5f-0dbdae7beb1a", "name": "Sticky Note53", "type": "n8n-nodes-base.stickyNote", "position": [ 80, 6400 ], "parameters": { "color": 3, "width": 620.0617659833041, "height": 218.46830740679286, "content": "**REQUIRED**\n\n**ImgBB - image hosting i.e. gives you an img url**\n1. [Create an ImgBB account]({{ $env.API_BASE_URL }} (free) and generate an api key\n2. Input the API key as Query Auth - `name`=key, `value`=your-own-api-key\n\n\n**ReSmush.it - image optimisation i.e. shrinks the file size of the image**\n1. No account or auth needed\n2. Url will pass from previous node" }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "085ef8b4-4762-4675-a1fd-6771f09628fb", "name": "Sticky Note54", "type": "n8n-nodes-base.stickyNote", "position": [ -340, 6400 ], "parameters": { "color": 2, "width": 409.8920345317687, "height": 133.75846341937205, "content": "**OPTIONAL**\n`Set image description` to create an Image using OpenAI and your own prompt (requires: API credentials) or alternatively replace these nodes with your own image file" }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "ee6c01dd-94fd-4ebf-baf6-03360e01ffc0", "name": "Set image description", "type": "n8n-nodes-base.set", "position": [ -300, 6220 ], "parameters": { "options": {}, "assignments": { "assignments": [ { "id": "9026b5d5-97ed-484e-a168-ac1c57a60fa1", "name": "description", "type": "string", "value": "=Balancing Autonomy and Human Interaction in AI Applications, featuring a person" } ] } }, "typeVersion": 3.4, "notes": "This set node performs automated tasks as part of the workflow." }, { "id": "7bb7374c-a11e-4ac8-8ef7-ba506fa8619d", "name": "Generate Image", "type": "n8n-nodes-base.noOp", "position": [ -100, 6220 ], "parameters": { "prompt": "=Create a minimalist professional illustration of {{ $json.description }} with these specifications:\n\n1. Visual Style:\n- Modern tech-focused minimalist design\n- Clean, uncluttered composition\n- Professional business aesthetic\n- Soft shadows and subtle depth\n- 2-3 primary colors maximum plus white space\n\n2. Core Elements:\n- Main icon/symbol representing {{ $json.description }} as focal point\n- Simple supporting elements representing key sections\n- Subtle connecting elements showing relationship\n- Plenty of white space (40% minimum)\n- No text overlay\n\n3. Technical Requirements:\n- High contrast for clarity\n- Crisp edges and smooth lines\n- Professional lighting from upper left\n- Matte finish\n- Square aspect ratio (1:1)", "options": {}, "resource": "image" }, "credentials": { "openAiApi": { "id": "gaOzEcyxSfqBNYsI", "name": "OpenAi account" } }, "typeVersion": 1.4, "notes": "This openAi node performs automated tasks as part of the workflow." }, { "id": "87f80a8d-932a-46bc-b003-877883ba73c8", "name": "No Operation, do nothing", "type": "n8n-nodes-base.noOp", "position": [ 760, 6220 ], "parameters": {}, "typeVersion": 1, "notes": "This noOp node performs automated tasks as part of the workflow." } ], "pinData": {}, "connections": { "6fb16611-0ee4-4c89-91ef-dc8a1e39406d": { "main": [ [ { "node": "error-handler-6fb16611-0ee4-4c89-91ef-dc8a1e39406d", "type": "main", "index": 0 } ], [ { "node": "error-handler-6fb16611-0ee4-4c89-91ef-dc8a1e39406d-d1c8acb3", "type": "main", "index": 0 } ], [ { "node": "error-handler-6fb16611-0ee4-4c89-91ef-dc8a1e39406d-901e12c7", "type": "main", "index": 0 } ], [ { "node": "error-handler-6fb16611-0ee4-4c89-91ef-dc8a1e39406d-833d8f1a", "type": "main", "index": 0 } ], [ { "node": "error-handler-6fb16611-0ee4-4c89-91ef-dc8a1e39406d-3b7949f6", "type": "main", "index": 0 } ], [ { "node": "error-handler-6fb16611-0ee4-4c89-91ef-dc8a1e39406d-82fac9b7", "type": "main", "index": 0 } ], [ { "node": "error-handler-6fb16611-0ee4-4c89-91ef-dc8a1e39406d-ae8e0bca", "type": "main", "index": 0 } ], [ { "node": "error-handler-6fb16611-0ee4-4c89-91ef-dc8a1e39406d-73d8d080", "type": "main", "index": 0 } ], [ { "node": "error-handler-6fb16611-0ee4-4c89-91ef-dc8a1e39406d-40ba795b", "type": "main", "index": 0 } ] ] }, "e94ebd4f-4459-4705-8fc5-f7ebbc996add": { "main": [ [ { "node": "error-handler-e94ebd4f-4459-4705-8fc5-f7ebbc996add", "type": "main", "index": 0 } ], [ { "node": "error-handler-e94ebd4f-4459-4705-8fc5-f7ebbc996add-01d564a8", "type": "main", "index": 0 } ], [ { "node": "error-handler-e94ebd4f-4459-4705-8fc5-f7ebbc996add-4de18ac8", "type": "main", "index": 0 } ], [ { "node": "error-handler-e94ebd4f-4459-4705-8fc5-f7ebbc996add-5646749a", "type": "main", "index": 0 } ], [ { "node": "error-handler-e94ebd4f-4459-4705-8fc5-f7ebbc996add-a678ea27", "type": "main", "index": 0 } ], [ { "node": "error-handler-e94ebd4f-4459-4705-8fc5-f7ebbc996add-0290b945", "type": "main", "index": 0 } ], [ { "node": "error-handler-e94ebd4f-4459-4705-8fc5-f7ebbc996add-2f072800", "type": "main", "index": 0 } ], [ { "node": "error-handler-e94ebd4f-4459-4705-8fc5-f7ebbc996add-886add03", "type": "main", "index": 0 } ], [ { "node": "error-handler-e94ebd4f-4459-4705-8fc5-f7ebbc996add-c50f4491", "type": "main", "index": 0 } ] ] }, "e337dcf1-27d3-4f75-850b-f2c5bff48ed6": { "main": [ [ { "node": "error-handler-e337dcf1-27d3-4f75-850b-f2c5bff48ed6", "type": "main", "index": 0 } ], [ { "node": "error-handler-e337dcf1-27d3-4f75-850b-f2c5bff48ed6-6a4b7e5d", "type": "main", "index": 0 } ], [ { "node": "error-handler-e337dcf1-27d3-4f75-850b-f2c5bff48ed6-dafa38b7", "type": "main", "index": 0 } ], [ { "node": "error-handler-e337dcf1-27d3-4f75-850b-f2c5bff48ed6-e3138f34", "type": "main", "index": 0 } ], [ { "node": "error-handler-e337dcf1-27d3-4f75-850b-f2c5bff48ed6-37449944", "type": "main", "index": 0 } ], [ { "node": "error-handler-e337dcf1-27d3-4f75-850b-f2c5bff48ed6-11b51bfa", "type": "main", "index": 0 } ], [ { "node": "error-handler-e337dcf1-27d3-4f75-850b-f2c5bff48ed6-a6aac62a", "type": "main", "index": 0 } ], [ { "node": "error-handler-e337dcf1-27d3-4f75-850b-f2c5bff48ed6-8d65f442", "type": "main", "index": 0 } ], [ { "node": "error-handler-e337dcf1-27d3-4f75-850b-f2c5bff48ed6-565a7a90", "type": "main", "index": 0 } ] ] }, "7bb7374c-a11e-4ac8-8ef7-ba506fa8619d": { "main": [ [ { "node": "error-handler-7bb7374c-a11e-4ac8-8ef7-ba506fa8619d-91a9c85d", "type": "main", "index": 0 } ] ] } }, "name": "Httprequest Workflow", "settings": { "executionOrder": "v1", "saveManualExecutions": true, "callerPolicy": "workflowsFromSameOwner", "errorWorkflow": null, "timezone": "UTC", "executionTimeout": 3600, "maxExecutions": 1000, "retryOnFail": true, "retryCount": 3, "retryDelay": 1000 }, "description": "Automated workflow: Httprequest Workflow. This workflow integrates 6 different services: stickyNote, httpRequest, set, stopAndError, noOp. It contains 18 nodes and follows best practices for error handling and security.", "tags": [ "automation", "n8n", "production-ready", "excellent", "optimized" ], "notes": "Excellent quality workflow: Httprequest Workflow. This workflow has been optimized for production use with comprehensive error handling, security, and documentation." }