AutomationFlows › Slack & Telegram › Edit & Deliver Images with Dall-e 2, Google Drive & Telegram Messaging

Edit & Deliver Images with Dall-e 2, Google Drive & Telegram Messaging

ByDavid Olusola @dae221✓ on n8n.io

Who’s it for? 👥

Event trigger★★★★☆ complexity15 nodesForm TriggerGoogle DriveHTTP RequestTelegram
Slack & Telegram Trigger: Event Nodes: 15 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #5420 — we link there as the canonical source.

This workflow follows the Form Trigger → Google Drive recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "e2a9WLWDqS85I1AX",
  "name": "Edit Images with OPEN AI",
  "tags": [],
  "nodes": [
    {
      "id": "0b9585d8-e520-4ed2-9c63-de16fdcfdf50",
      "name": "\ud83d\ude80 Form Submission Trigger",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        380,
        280
      ],
      "parameters": {
        "options": {},
        "formTitle": "AI Image Editor",
        "formFields": {
          "values": [
            {
              "fieldType": "file",
              "fieldLabel": "image",
              "multipleFiles": false,
              "requiredField": true
            },
            {
              "fieldLabel": "prompt",
              "placeholder": "Describe the edits you want (e.g., 'remove background', 'add sunglasses', 'change to winter scene')",
              "requiredField": true
            }
          ]
        },
        "formDescription": "Upload your image and describe the edits you want to make. Our AI will process your image and deliver the results instantly via Telegram."
      },
      "typeVersion": 2.2
    },
    {
      "id": "8fcc87f1-f2c0-4bbd-b1be-3baf1f154f67",
      "name": "\u2699\ufe0f Configuration Variables",
      "type": "n8n-nodes-base.set",
      "position": [
        640,
        280
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "google_drive_folder_id",
              "name": "google_drive_folder_id",
              "type": "string",
              "value": "YOUR_GOOGLE_DRIVE_FOLDER_ID"
            },
            {
              "id": "telegram_chat_id",
              "name": "telegram_chat_id",
              "type": "string",
              "value": "YOUR_TELEGRAM_CHAT_ID"
            },
            {
              "id": "image_size",
              "name": "image_size",
              "type": "string",
              "value": "1024x1024"
            },
            {
              "id": "openai_model",
              "name": "openai_model",
              "type": "string",
              "value": "dall-e-2"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "877c3e0f-8566-438c-bf69-8e7ccdb9dfe3",
      "name": "\ud83d\udcc1 Upload Original to Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        880,
        280
      ],
      "parameters": {
        "name": "=original-{{ $now.format('yyyy-MM-dd-HHmmss') }}.png",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('\u2699\ufe0f Configuration Variables').item.json.google_drive_folder_id }}"
        },
        "inputDataFieldName": "image"
      },
      "typeVersion": 3
    },
    {
      "id": "4742b2b8-5c56-468f-98b2-b1f2ea908702",
      "name": "\ud83d\udce5 Download for Processing",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1140,
        280
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.id }}"
        },
        "options": {},
        "operation": "download"
      },
      "typeVersion": 3
    },
    {
      "id": "c8008016-1d32-415b-a59b-0858d8f5887e",
      "name": "\ud83c\udfa8 AI Image Editor",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1380,
        280
      ],
      "parameters": {
        "url": "https://api.openai.com/v1/images/edits",
        "method": "POST",
        "options": {
          "timeout": 60000
        },
        "sendBody": true,
        "contentType": "multipart-form-data",
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "image",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "data"
            },
            {
              "name": "prompt",
              "value": "={{ $('\ud83d\ude80 Form Submission Trigger').item.json.prompt }}"
            },
            {
              "name": "model",
              "value": "={{ $('\u2699\ufe0f Configuration Variables').item.json.openai_model }}"
            },
            {
              "name": "size",
              "value": "={{ $('\u2699\ufe0f Configuration Variables').item.json.image_size }}"
            },
            {
              "name": "n",
              "value": "1"
            }
          ]
        },
        "genericAuthType": "httpHeaderAuth"
      },
      "typeVersion": 4.2
    },
    {
      "id": "5c8753f1-43cf-45d5-a984-69232a14adac",
      "name": "\ud83d\udd04 Convert to File",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        1640,
        280
      ],
      "parameters": {
        "options": {
          "fileName": "=edited-{{ $now.format('yyyy-MM-dd-HHmmss') }}.png",
          "mimeType": "image/png"
        },
        "operation": "toBinary",
        "sourceProperty": "data[0].url"
      },
      "typeVersion": 1.1
    },
    {
      "id": "dd69866a-1439-4ad7-8e20-5e6eeccb3e2e",
      "name": "\ud83d\udcf1 Send to Telegram",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1880,
        280
      ],
      "parameters": {
        "chatId": "={{ $('\u2699\ufe0f Configuration Variables').item.json.telegram_chat_id }}",
        "operation": "sendPhoto",
        "binaryData": true,
        "additionalFields": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "14fd976d-849b-4b6c-b4f7-bb12d21da68d",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -200,
        40
      ],
      "parameters": {
        "width": 569,
        "height": 1304,
        "content": "# \ud83c\udfa8 AI Image Editor Workflow\n\n**Created by:** David Olusola\n\n## \ud83d\udccb What This Workflow Does\n\nThis automation creates a complete AI image editing pipeline that:\n- \u2705 Provides a user-friendly web form for image uploads\n- \u2705 Stores original images in Google Drive\n- \u2705 Processes images through OpenAI's image editing API  \n- \u2705 Delivers edited results instantly via Telegram\n\n## \ud83d\udee0\ufe0f Setup Requirements\n\n1. **OpenAI API Key** - Add to HTTP Request credentials\n2. **Google Drive OAuth** - For file storage\n3. **Telegram Bot** - For result delivery\n4. **Configuration Variables** - Update the yellow node with your IDs\n\n## \u2699\ufe0f Configuration Steps\n\n1. **Update Configuration Variables node:**\n   - `google_drive_folder_id`: Your Google Drive folder ID\n   - `telegram_chat_id`: Your Telegram chat ID\n   - `image_size`: Desired output size (default: 1024x1024)\n   - `openai_model`: AI model to use (default: dall-e-2)\n\n2. **Set up credentials:**\n   - OpenAI API in \"AI Image Editor\" node\n   - Google Drive OAuth in both Drive nodes\n   - Telegram Bot in \"Send to Telegram\" node\n\n3. **Test the workflow:**\n   - Deploy and get the form URL\n   - Upload a test image with editing prompt\n   - Check Telegram for the result\n\n## \ud83c\udfaf Example Prompts\n- \"Remove the background\"\n- \"Add sunglasses to the person\"\n- \"Change the sky to sunset\"\n- \"Make it look like a cartoon\"\n\n## \ud83d\udd27 Customization Options\n- Change image dimensions in config\n- Modify file naming conventions\n- Add error handling nodes\n- Implement batch processing\n- Add multiple delivery channels"
      },
      "typeVersion": 1
    },
    {
      "id": "e8b0837c-bd0e-4184-a42a-13ce73837e29",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        280,
        160
      ],
      "parameters": {
        "color": 7,
        "width": 200,
        "height": 308,
        "content": "\ud83d\udca1 **STEP 1: Form Submission**\n\nUser uploads image and provides editing instructions through web form. The form validates file type and requires both image and prompt."
      },
      "typeVersion": 1
    },
    {
      "id": "04947555-cd06-4c6c-9f01-43aab9dcd821",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        540,
        160
      ],
      "parameters": {
        "color": 3,
        "width": 200,
        "height": 248,
        "content": "\u2699\ufe0f **STEP 2: Configuration**\n\nSets up all workflow variables that users need to customize. Update these values before first use!"
      },
      "typeVersion": 1
    },
    {
      "id": "4f504b1e-73c9-4d62-b7bf-41a83087d68a",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        780,
        160
      ],
      "parameters": {
        "color": 6,
        "width": 200,
        "height": 248,
        "content": "\ud83d\udcc1 **STEP 3: Backup Storage**\n\nUploads original image to Google Drive with timestamp for organization and backup purposes."
      },
      "typeVersion": 1
    },
    {
      "id": "e065914a-070c-48bd-ac65-e9c666478e78",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1040,
        160
      ],
      "parameters": {
        "color": 3,
        "width": 200,
        "height": 248,
        "content": "\ud83d\udce5 **STEP 4: Prepare for AI**\n\nDownloads the image from Drive to prepare it for OpenAI processing in the correct format."
      },
      "typeVersion": 1
    },
    {
      "id": "0a9ffa00-4432-497d-98cb-d74e9320fcc7",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1280,
        160
      ],
      "parameters": {
        "color": 6,
        "width": 200,
        "height": 248,
        "content": "\ud83c\udfa8 **STEP 5: AI Magic**\n\nSends image and prompt to OpenAI's image editing API. Uses DALL-E model for high-quality results."
      },
      "typeVersion": 1
    },
    {
      "id": "30d577e2-9c74-46b9-b62e-7b7a24aca423",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1540,
        160
      ],
      "parameters": {
        "color": 2,
        "width": 200,
        "height": 268,
        "content": "\ud83d\udd04 **STEP 6: File Conversion**\n\nConverts the AI response to a downloadable PNG file with proper naming and metadata."
      },
      "typeVersion": 1
    },
    {
      "id": "97a064c2-60cb-4e8c-bfda-d81356c7918c",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1780,
        160
      ],
      "parameters": {
        "color": 6,
        "width": 200,
        "height": 228,
        "content": "\ud83d\udcf1 **STEP 7: Instant Delivery**\n\nSends the edited image to Telegram with prompt details and timestamp for easy identification."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "9dce616c-0e79-4fea-b905-50aa27e1f0a8",
  "connections": {
    "\ud83c\udfa8 AI Image Editor": {
      "main": [
        [
          {
            "node": "\ud83d\udd04 Convert to File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\udd04 Convert to File": {
      "main": [
        [
          {
            "node": "\ud83d\udcf1 Send to Telegram",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\udce5 Download for Processing": {
      "main": [
        [
          {
            "node": "\ud83c\udfa8 AI Image Editor",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\ude80 Form Submission Trigger": {
      "main": [
        [
          {
            "node": "\u2699\ufe0f Configuration Variables",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\udcc1 Upload Original to Drive": {
      "main": [
        [
          {
            "node": "\ud83d\udce5 Download for Processing",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\u2699\ufe0f Configuration Variables": {
      "main": [
        [
          {
            "node": "\ud83d\udcc1 Upload Original to Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Who’s it for? 👥

Source: https://n8n.io/workflows/5420/ — original creator credit. Request a take-down →

More Slack & Telegram workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Slack & Telegram

Automatically transform any website URL into a complete portfolio entry with professional screenshots and AI-generated Upwork project descriptions. Freelancers building their Upwork/portfolio from pas

HTTP Request, Google Drive, Google Sheets +2
Slack & Telegram

This template monitors Google Drive folder for new files, extracts text from PDFs, images, text files, CSVs, and Google Docs., reads images with meta/llama-3.2-11b-vision-instruct, structures the resu

Google Drive Trigger, Google Drive, Google Docs +3
Slack & Telegram

This n8n workflow receives files sent in a Telegram chat, uploads them to Google Drive, extracts text using OCR (for images and PDFs), and stores the extracted content in Airtable for quick search and

Telegram Trigger, Telegram, Google Drive +2
Slack & Telegram

Secure your n8n automations with this comprehensive template that automates periodic backups to Telegram for instant access while enabling flexible restores from Google Drive links or direct file uplo

n8n, Telegram, Google Drive +1
Slack & Telegram

Upload a document (PDF, PNG, JPEG) via a web form and let easybits Extractor classify it into one of your defined categories. Based on the classification result and a confidence score, the document is

Form Trigger, HTTP Request, Google Drive +1