AutomationFlowsEmail & Gmail › 3954

3954

3954. Uses httpRequest, formTrigger, form, gmail. Event-driven trigger; 21 nodes.

Event trigger★★★★☆ complexity21 nodesHTTP RequestForm TriggerFormGmail
Email & Gmail Trigger: Event Nodes: 21 Complexity: ★★★★☆ Added:

This workflow follows the Form → Form Trigger 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
{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "ed993205-977a-43cd-8d0b-4faef216d766",
      "name": "Split Out",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        360,
        -120
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "predictions"
      },
      "typeVersion": 1
    },
    {
      "id": "67f2bb16-ee38-4bc8-9cc7-50a44614cc3b",
      "name": "Imagen 3.0",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        140,
        -120
      ],
      "parameters": {
        "url": "https://generativelanguage.googleapis.com/v1beta/models/imagen-3.0-generate-002:predict",
        "method": "POST",
        "options": {},
        "jsonBody": "={{\n{\n  \"instances\": [\n    {\n      \"prompt\": [\n        $json.candidates[0].content.parts[0].text,\n       `Generate the following image: ${$('Variables').first().json.targetPrompt}`\n      ].join(' ')\n    }\n  ],\n  \"parameters\": {\n    \"sampleCount\": $('Variables').first().json.numberSamples.toNumber()\n  }\n}\n}}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "googlePalmApi"
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "b1730c97-8c5c-48a5-90cf-7940f6c9e2d0",
      "name": "Variables",
      "type": "n8n-nodes-base.set",
      "position": [
        -940,
        -120
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "7616f991-76d0-4dd0-9385-f08ed14e8dfa",
              "name": "sourceStyleUrl",
              "type": "string",
              "value": "={{ $json.SourceImage }}"
            },
            {
              "id": "126cb06e-4d69-4163-ba76-c694103bf5bb",
              "name": "targetPrompt",
              "type": "string",
              "value": "={{ $json.TargetPrompt }}"
            },
            {
              "id": "055d247b-586d-4bb8-a319-262c241df48c",
              "name": "numberSamples",
              "type": "string",
              "value": "={{\n(function(numSamples) {\n  if (!numSamples) return 1;\n  if (numSamples < 0) return 1;\n  if (numSamples > 4) return 4;\n  return numSamples;\n}($json['Number of Images']))\n}}"
            },
            {
              "id": "77a27e0e-24f4-4358-8cdc-84552be6c0b5",
              "name": "email",
              "type": "string",
              "value": "={{ $json['Your Email (Optional)'] }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "5c26062c-74cf-4140-8dcb-8688c8daec67",
      "name": "Download Image",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -620,
        -120
      ],
      "parameters": {
        "url": "={{ $json.sourceStyleUrl }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "20744adb-cdf5-4558-b6e6-4206d7c1f356",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -1400,
        -120
      ],
      "parameters": {
        "options": {
          "path": "style-copy-with-imagen3",
          "ignoreBots": true,
          "buttonLabel": "Generate!",
          "appendAttribution": true
        },
        "formTitle": "Style Copy with Imagen 3.0",
        "formFields": {
          "values": [
            {
              "fieldLabel": "SourceImage",
              "placeholder": "The image URL to copy the style from",
              "requiredField": true
            },
            {
              "fieldLabel": "TargetPrompt",
              "placeholder": "The new image to generate",
              "requiredField": true
            },
            {
              "fieldType": "number",
              "fieldLabel": "Number of Images",
              "placeholder": "Default 1. Max. 4 images"
            },
            {
              "fieldType": "email",
              "fieldLabel": "Your Email (Optional)",
              "placeholder": "The results will be sent to this email"
            }
          ]
        },
        "responseMode": "lastNode",
        "formDescription": "Use this form to generate an image using another image as a style reference."
      },
      "typeVersion": 2.2
    },
    {
      "id": "917db247-1be3-4814-a96d-145957aa5db3",
      "name": "Form Validation",
      "type": "n8n-nodes-base.if",
      "position": [
        -1180,
        -120
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "1b440b81-06c9-4133-bfd2-8ec07c7c3734",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{ $json.SourceImage.isUrl() }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "65a8b617-318c-429a-b37e-45ead00dbb7e",
      "name": "Retry Form",
      "type": "n8n-nodes-base.form",
      "position": [
        -940,
        60
      ],
      "parameters": {
        "options": {
          "formTitle": "Retry Submission",
          "buttonLabel": "Generate!",
          "formDescription": "Please enter a URL for the source image."
        },
        "formFields": {
          "values": [
            {
              "fieldLabel": "SourceImage",
              "placeholder": "The image URL to copy the style from",
              "requiredField": true
            },
            {
              "fieldLabel": "TargetPrompt",
              "placeholder": "The new image to generate",
              "requiredField": true
            },
            {
              "fieldType": "number",
              "fieldLabel": "Number of Images",
              "placeholder": "Max. 4 images"
            },
            {
              "fieldLabel": "Your Email (Optional)",
              "placeholder": "The results will be sent to this email"
            }
          ]
        },
        "limitWaitTime": true
      },
      "typeVersion": 1
    },
    {
      "id": "8a0e8dae-9f6f-488e-9977-fd89e885f30e",
      "name": "Upload to Cloudinary",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        880,
        -120
      ],
      "parameters": {
        "url": "https://api.cloudinary.com/v1_1/daglih2g8/image/upload",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "sendQuery": true,
        "contentType": "multipart-form-data",
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "file",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "data"
            }
          ]
        },
        "genericAuthType": "httpQueryAuth",
        "queryParameters": {
          "parameters": [
            {
              "name": "upload_preset",
              "value": "n8n-workflows-preset"
            }
          ]
        }
      },
      "credentials": {
        "httpQueryAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "525725ea-effe-410b-8f39-ad01ae755d1a",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1480,
        -340
      ],
      "parameters": {
        "color": 7,
        "width": 760,
        "height": 640,
        "content": "## 1. \uc18c\uc2a4 \uc2a4\ud0c0\uc77c \ubc0f \ud0c0\uac9f \uc774\ubbf8\uc9c0 \uc694\uccad\n\n[\ud615\uc2dd \ud2b8\ub9ac\uac70\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\uae30](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.formtrigger/)\n\n\uc774 \ud15c\ud50c\ub9bf\uc5d0 \ub300\ud574 \uc591\uc2dd \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud558\uaca0\uc2b5\ub2c8\ub2e4. \uc774 \uc778\ud130\ud398\uc774\uc2a4\ub294 \uc0ac\uc6a9\uc790\uac00 \ucc38\uc870\ud560 \uc774\ubbf8\uc9c0\uc758 \uc2a4\ud0c0\uc77c\uc744 \uc9c0\uc815\ud558\uace0 \ud0c0\uac9f \uc774\ubbf8\uc9c0\ub97c \uc0dd\uc131\ud560 \ud504\ub86c\ud504\ud2b8\ub97c \uc9c0\uc815\ud560 \uc218 \uc788\uac8c \ud569\ub2c8\ub2e4. \ud615\uc2dd \uc720\ud6a8\uc131 \uac80\uc0ac \ub8e8\ud504\ub294 \ub2e4\ub978 \ud615\uc2dd \ub178\ub4dc\uc640 IF \ub178\ub4dc\ub97c \uacb0\ud569\ud558\uc5ec \ub2ec\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4."
      },
      "typeVersion": 1
    },
    {
      "id": "ba9d4bdc-b695-4acf-9593-2ce979053744",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -700,
        -340
      ],
      "parameters": {
        "color": 7,
        "width": 720,
        "height": 440,
        "content": "## 2. Gemini 2.0\uc744 \uc0ac\uc6a9\ud55c \uc2dc\uac01\uc801 \uc2a4\ud0c0\uc77c \uc124\uba85\n\n[Gemini \uc774\ubbf8\uc9c0 \uc774\ud574\uc5d0 \ub300\ud574 \ub354 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\uae30](https://ai.google.dev/gemini-api/docs/image-understanding)\n\n\uc774\ubbf8\uc9c0 \uc2a4\ud0c0\uc77c\uc744 \ubcf5\uc0ac\ud558\ub294 \ube44\ubc95\uc740 \ub2e4\uc911 \ubaa8\ub2ec LLM\uc774 \uc774\ub97c \uc790\uc138\ud788 \uc124\uba85\ud558\uac8c \ud558\ub294 \uac83\uc785\ub2c8\ub2e4. Gemini\uc758 \uc774\ubbf8\uc9c0 \uc774\ud574 \uae30\ub2a5\uc744 \uc0ac\uc6a9\ud558\uba74, \uaf64 \uc88b\uc740 \uc791\uc5c5\uc744 \ud574\uc11c \uc6b0\ub9ac\uac00 \ud544\uc694\ud55c \ud3ec\uad04\uc801\uc778 \uc124\uba85\uc744 \uc81c\uacf5\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4."
      },
      "typeVersion": 1
    },
    {
      "id": "455f7956-6e39-4d84-af7e-d5908d4e5307",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        40,
        -340
      ],
      "parameters": {
        "color": 7,
        "width": 720,
        "height": 440,
        "content": "## 3. Imagen 3.0\uc744 \uc0ac\uc6a9\ud55c \uc774\ubbf8\uc9c0 \uc0dd\uc131\n\n[Imagen \uc774\ubbf8\uc9c0 \uc0dd\uc131\uc5d0 \ub300\ud574 \ub354 \uc54c\uc544\ubcf4\uae30](https://ai.google.dev/gemini-api/docs/image-generation#imagen)\n\n\uc774\ubbf8\uc9c0\ub97c \uc0dd\uc131\ud558\uae30 \uc704\ud574 Google\uc758 Imagen 3.0 \ubaa8\ub378\uc744 \uc0ac\uc6a9\ud560 \uac83\uc785\ub2c8\ub2e4. \uc774\uc804 Gemini \ubaa8\ub378\uc5d0\uc11c \uc0dd\uc131\ub41c \uc2dc\uac01\uc801 \uc2a4\ud0c0\uc77c \uc124\uba85\uc744 \uc0ac\uc6a9\uc790\uc758 \ub300\uc0c1 \uc774\ubbf8\uc9c0 \ud504\ub86c\ud504\ud2b8\uc640 \uacb0\ud569\ud558\uc5ec Imagen\uc5d0 \uc804\ub2ec\ud558\uba74, \uadf8 \ub9c8\ubc95\uc774 \uc77c\uc5b4\ub0a9\ub2c8\ub2e4! \uacb0\uacfc\ub294 \uc2a4\ud0c0\uc77c \uc804\uc1a1\uacfc \ub9e4\uc6b0 \uc720\uc0ac\ud558\uba70, \uc0c1\ub2f9\ud788 \uc124\ub4dd\ub825 \uc788\uace0 \uc778\uc0c1\uc801\uc778 \uacb0\uacfc\ub97c \ub9cc\ub4e4\uc5b4 \ub0c5\ub2c8\ub2e4."
      },
      "typeVersion": 1
    },
    {
      "id": "0c1d5a7f-9102-4558-a830-ed558f72c086",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        780,
        -340
      ],
      "parameters": {
        "color": 7,
        "width": 980,
        "height": 600,
        "content": "## 4. \uacb0\uacfc\ub97c HTML \ud398\uc774\uc9c0\uc5d0 \ub80c\ub354\ub9c1\n\n[HTML \ub178\ub4dc\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\uae30](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.html)\n\n\ub9c8\uc9c0\ub9c9\uc73c\ub85c \ud504\ub808\uc820\ud14c\uc774\uc158\uc744 \uc704\ud574 \uc0dd\uc131\ub41c \uc774\ubbf8\uc9c0\ub97c HTML \ub178\ub4dc\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc6f9\ud398\uc774\uc9c0\ub85c \ub80c\ub354\ub9c1\ud558\uc5ec \ub354 \uc27d\uac8c \ubcfc \uc218 \uc788\uac8c \ud569\ub2c8\ub2e4. \uc774 \ud398\uc774\uc9c0\ub294 \uc81c\uacf5\ub41c \uacbd\uc6b0 \uc0ac\uc6a9\uc790\uc758 \uc774\uba54\uc77c\ub85c \ubcf4\ub0bc \uc218 \uc788\uace0, \ud3fc \uc885\ub8cc \ub178\ub4dc\uc5d0 \ub3c4\ub2ec\ud558\uba74 \ud30c\uc77c\ub85c \ub2e4\uc6b4\ub85c\ub4dc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4."
      },
      "typeVersion": 1
    },
    {
      "id": "ccc1ff65-0416-4dae-9557-ba2f98c5ac80",
      "name": "Convert to File1",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        1320,
        60
      ],
      "parameters": {
        "options": {
          "encoding": "utf8",
          "fileName": "={{ $('Variables').item.json.targetPrompt.toSnakeCase().urlEncode() }}.html"
        },
        "operation": "toText",
        "sourceProperty": "html"
      },
      "typeVersion": 1.1
    },
    {
      "id": "0252d373-3678-4851-819d-d36efb40dfb2",
      "name": "Generate HTML",
      "type": "n8n-nodes-base.html",
      "position": [
        1080,
        -120
      ],
      "parameters": {
        "html": "<h1>\n  {{ $('Variables').item.json.targetPrompt.toSentenceCase() }}\n</h1>\n<div class=\"gallery\">\n{{\n$input.all()\n  .chunk(2)\n  .map(row =>\n    `<div class=\"gallery-row\">\n      ${row.map(item =>\n        `<a href=\"${item.json.url}\" target=\"_blank\">\n          <img src=\"${item.json.url}\" width=\"320px\" height=\"240px\"  />\n        </a>`).join('')}\n    </div>`\n  ).join('')\n}}\n</div>\n<div class=\"fineprint\">\n  Generated by Imagen 3.0 (imagen-3.0-generate-002) @ {{ $now.format('d MMM yyyy') }}.\n</div>\n<div class=\"fineprint\">\n  <h3>Style Prompt</h3>\n  <div style=\"display:flex;gap: 10px;\">\n    <div>\n      <img\n        src=\"{{ $('Download Image').item.json.sourceStyleUrl }}\"\n        width=\"100px\"\n        height=\"auto\"\n      />\n    </div>\n    <div>\n      {{ $('Gemini 2.0').first().json.candidates[0].content.parts[0].text }}\n    </div>\n  </div>\n</div>\n<style>\n  body { padding: 32px 64px; font-family: sans-serif; background-color: #fffaf2; }\n  h1 { max-width: 640px; }\n  .gallery { display: inline-block; padding: 5px; border: 1px solid #ccc; background-color: white; margin-bottom: 32px;}\n  .gallery-row { display: flex; }\n  .gallery-row img { padding: 5px; background-color: white }\n  .gallery-row img:hover { background-color: orange; } \n  .fineprint { font-size: 0.7rem; max-width: 480px; text-align: justify;}\n  .fineprint h3 { font-size: 0.8rem; }\n</style>"
      },
      "executeOnce": true,
      "typeVersion": 1.2
    },
    {
      "id": "b712bd74-8615-4080-aad2-dc0b0df0b07e",
      "name": "Convert to File",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        580,
        -120
      ],
      "parameters": {
        "options": {
          "fileName": "={{ $execution.id }}_{{ $itemIndex }}.{{ $json.mimeType.split('/')[1] }}",
          "mimeType": "={{ $json.mimeType }}"
        },
        "operation": "toBinary",
        "sourceProperty": "bytesBase64Encoded"
      },
      "typeVersion": 1.1
    },
    {
      "id": "ee3e168a-038c-4524-93fc-ced5d4956fa1",
      "name": "Form Ending",
      "type": "n8n-nodes-base.form",
      "position": [
        1540,
        60
      ],
      "parameters": {
        "options": {
          "formTitle": "Generation Complete"
        },
        "operation": "completion",
        "respondWith": "returnBinary",
        "completionTitle": "Image Generation Successful",
        "completionMessage": "Download has started.\nOpen the HTML file to view results."
      },
      "executeOnce": true,
      "typeVersion": 1
    },
    {
      "id": "c4b1648a-c7d9-46cd-af28-527f9b169ab6",
      "name": "Has Email?",
      "type": "n8n-nodes-base.if",
      "position": [
        1320,
        -120
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "07d04523-f81a-4efa-b46a-cb640bcc608a",
              "operator": {
                "type": "string",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $('Variables').item.json.email }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "bc0a8188-27ff-4834-9c7a-8760531f4252",
      "name": "Send Results to Email",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1540,
        -120
      ],
      "parameters": {
        "sendTo": "={{ $('Variables').first().json.email }}",
        "message": "={{ $json.html }}",
        "options": {},
        "subject": "=#{{$execution.id}} - Image Generated Successfully!"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "f18ab53b-d8e2-4625-a8f6-8b97959a15d1",
      "name": "Image to Base64",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        -400,
        -120
      ],
      "parameters": {
        "options": {},
        "operation": "binaryToPropery"
      },
      "typeVersion": 1
    },
    {
      "id": "ac6c1353-035c-4045-aed9-46285b757b98",
      "name": "Gemini 2.0",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -180,
        -120
      ],
      "parameters": {
        "url": "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n    \"contents\": [{\n      \"parts\": [\n        {\n          \"inline_data\": {\n            \"mime_type\":\"{{ $('Download Image').item.binary.data.mimeType }}\",\n            \"data\": \"{{ $json.data }}\"\n          }\n        },\n        {\"text\": \"Describe the visual style of this image. Do not include any character names or IP in the description. Include names of any famous artists associated with this style if known.\"}\n      ]\n    }]\n  }",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "googlePalmApi"
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "fae8c5f0-9d6f-4e45-8f7a-82f361bf9b1b",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1920,
        -840
      ],
      "parameters": {
        "width": 400,
        "height": 1140,
        "content": "## \uc9c1\uc811 \ud574\ubcf4\uc138\uc694!\n### \uc774 n8n \ud15c\ud50c\ub9bf\uc744 \uc0ac\uc6a9\ud558\uba74 AI\ub97c \ud65c\uc6a9\ud558\uc5ec \ub2e4\ub978 \ub85c\uace0\ub098 \uc774\ubbf8\uc9c0\uc758 \uc2dc\uac01\uc801 \uc2a4\ud0c0\uc77c\uc744 \ubaa8\ubc29\ud55c \ub85c\uace0\ub098 \uc774\ubbf8\uc9c0\ub97c \uc0dd\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ubbf8\uc9c0\ub97c \uc0dd\uc131\ud558\ub294 \ub370 \uc0ac\uc6a9\ub418\ub294 \ubaa8\ub378\uc740 Google\uc758 Imagen 3.0\uc785\ub2c8\ub2e4.\n\n\uc774 \ud15c\ud50c\ub9bf\uc744 \ud1b5\ud574 \uc0ac\uc6a9\uc790\ub294 \uae30\uc874 \ub514\uc790\uc778\uc758 \ubcc0\ud615 \uc0dd\uc131, \uae30\uc874 \uc790\uc0b0\uc758 \ub9ac\ubbf9\uc2a4 \ub4f1\uc744 \ud1b5\ud574 \ub2e4\uc591\ud55c \uc2a4\ud0c0\uc77c\uc744 \uac80\uc99d\ud558\uace0, \uc774\uc804\uc5d0\ub294 \ube44\uc6a9\uacfc \uc2dc\uac04\uc774 \ub108\ubb34 \ub9ce\uc774 \ub4e4\uc5c8\uc744 \ub2e4\uc591\ud55c \ub514\uc790\uc778\uc744 \ud0d0\uc0c9\ud558\ub294 \ub4f1\uc758 \ub514\uc790\uc778\uacfc \ub9c8\ucf00\ud305 \uc791\uc5c5\uc744 \uc790\ub3d9\ud654\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n\n### \uc791\ub3d9 \uc6d0\ub9ac\n* \ud3fc \ud2b8\ub9ac\uac70\ub97c \uc0ac\uc6a9\ud558\uc5ec \ucc38\uc870\ud560 \uc18c\uc2a4 \uc774\ubbf8\uc9c0\uc640 \uc0dd\uc131\ud560 \ub300\uc0c1 \uc774\ubbf8\uc9c0\uc758 \ud504\ub86c\ud504\ud2b8\ub97c \ucea1\ucc98\ud569\ub2c8\ub2e4.\n* \uc18c\uc2a4 \uc774\ubbf8\uc9c0\ub97c Gemini 2.0\uc5d0 \uc804\ub2ec\ud558\uc5ec \ubd84\uc11d\ud558\uace0, \uadf8 \uc2dc\uac01\uc801 \uc2a4\ud0c0\uc77c\uacfc \ud1a4\uc744 \uc790\uc138\ud55c \uc124\uba85\uc73c\ub85c \ucd94\ucd9c\ud569\ub2c8\ub2e4.\n* \uc774 \uc2dc\uac01\uc801 \uc2a4\ud0c0\uc77c \uc124\uba85\uc744 \uc0ac\uc6a9\uc790\uc758 \ucd08\uae30 \ub300\uc0c1 \uc774\ubbf8\uc9c0 \ud504\ub86c\ud504\ud2b8\uc640 \uacb0\ud569\ud569\ub2c8\ub2e4. \uc774 \ucd5c\uc885 \ud504\ub86c\ud504\ud2b8\ub294 Imagen 3.0\uc5d0 \uc81c\uacf5\ub418\uc5b4 \uc774\ubbf8\uc9c0\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4.\n* \uc0dd\uc131\ub41c \uc774\ubbf8\uc9c0\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc0ac\uc6a9\uc790\uc5d0\uac8c \uc81c\uc2dc\ud560 \uac04\ub2e8\ud55c \uc6f9\ud398\uc774\uc9c0\ub97c \uad6c\uc131\ud569\ub2c8\ub2e4.\n* \uc0ac\uc6a9\uc790\uac00 \uc774\uba54\uc77c \uc8fc\uc18c\ub97c \uc81c\uacf5\ud55c \uacbd\uc6b0, \uc774 HTML \ud398\uc774\uc9c0\uc758 \uc0ac\ubcf8\uc744 \uc804\uc1a1\ud569\ub2c8\ub2e4.\n\n### \uc0ac\uc6a9 \ubc29\ubc95\n* \uc6cc\ud06c\ud50c\ub85c\uac00 \ud65c\uc131\ud654\ub418\uc5b4 \uc788\uc5b4\uc57c \ud3fc\uc744 \uacf5\uac1c\uc801\uc73c\ub85c \uacf5\uc720\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n* \uc18c\uc2a4 \uc774\ubbf8\uc9c0\ub294 n8n \uc778\uc2a4\ud134\uc2a4\uc5d0\uc11c \uc811\uadfc \uac00\ub2a5\ud574\uc57c \ud569\ub2c8\ub2e4 - \uc778\ud130\ub137\uc758 \uacf5\uac1c \uc774\ubbf8\uc9c0 \ub610\ub294 \ub124\ud2b8\uc6cc\ud06c \ub0b4 \uc774\ubbf8\uc9c0.\n\n### \uc694\uad6c \uc0ac\ud56d\n* LLM \ubc0f Imagen \ubaa8\ub378\uc744 \uc704\ud55c Gemini.\n* \uc774\ubbf8\uc9c0 CDN\uc744 \uc704\ud55c Cloudinary.\n* \uc774\uba54\uc77c \uc804\uc1a1\uc744 \uc704\ud55c Gmail.\n\n### \uc774 \uc6cc\ud06c\ud50c\ub85c \ucee4\uc2a4\ud130\ub9c8\uc774\uc9d5\n* \uc120\ud638\ud558\ub294 \ub3c4\uad6c\ub098 \uc11c\ube44\uc2a4\ub85c \uc5b8\uc81c\ub4e0\uc9c0 \uad50\uccb4\ud558\uc138\uc694.\n* \uc644\uc804 \uc790\ub3d9\ud654\ub97c \uc6d0\ud558\uc2dc\ub098\uc694? \ud3fc \ud2b8\ub9ac\uac70\ub97c \uc6f9\ud6c5 \ud2b8\ub9ac\uac70\ub85c \ubcc0\uacbd\ud558\uc138\uc694!\n\n### \ub3c4\uc6c0\uc774 \ud544\uc694\ud558\uc2e0\uac00\uc694?\n[Discord](https://discord.com/invite/XPKeKXeB7d) \ucee4\ubba4\ub2c8\ud2f0\uc5d0 \ucc38\uc5ec\ud558\uac70\ub098 [Forum](https://community.n8n.io/)\uc5d0\uc11c \ubb38\uc758\ud558\uc138\uc694!\n\n\uc990\uac70\uc6b4 \ud574\ud0b9!"
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Split Out": {
      "main": [
        [
          {
            "node": "Convert to File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Variables": {
      "main": [
        [
          {
            "node": "Download Image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Gemini 2.0": {
      "main": [
        [
          {
            "node": "Imagen 3.0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Has Email?": {
      "main": [
        [
          {
            "node": "Send Results to Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Imagen 3.0": {
      "main": [
        [
          {
            "node": "Split Out",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Retry Form": {
      "main": [
        [
          {
            "node": "Form Validation",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate HTML": {
      "main": [
        [
          {
            "node": "Convert to File1",
            "type": "main",
            "index": 0
          },
          {
            "node": "Has Email?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download Image": {
      "main": [
        [
          {
            "node": "Image to Base64",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert to File": {
      "main": [
        [
          {
            "node": "Upload to Cloudinary",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Form Validation": {
      "main": [
        [
          {
            "node": "Variables",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Retry Form",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Image to Base64": {
      "main": [
        [
          {
            "node": "Gemini 2.0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert to File1": {
      "main": [
        [
          {
            "node": "Form Ending",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "Form Validation",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload to Cloudinary": {
      "main": [
        [
          {
            "node": "Generate HTML",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Results to Email": {
      "main": [
        []
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

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

About this workflow

3954. Uses httpRequest, formTrigger, form, gmail. Event-driven trigger; 21 nodes.

Source: https://github.com/n8nKOR/n8n-shared-workflow/blob/62a671327e906c22a40d290b339ff6d2373f8d75/workflows/n8nworkflows/ai/3954.json — original creator credit. Request a take-down →

More Email & Gmail workflows → · Browse all categories →

Related workflows

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

Email & Gmail

🎥 Analyze YouTube Video for Summaries, Transcripts & Content + Google Gemini AI. Uses stickyNote, httpRequest, googleDrive, gmail. Event-driven trigger; 33 nodes.

HTTP Request, Google Drive, Gmail +2
Email & Gmail

Splitout Extractfromfile. Uses splitOut, httpRequest, formTrigger, form. Event-driven trigger; 21 nodes.

HTTP Request, Form Trigger, Form +1
Email & Gmail

With this template, users will be able to automate design and marketing tasks such as creating variants of existing designs, remixing existing assets to validate different styles and explore a range o

HTTP Request, Form Trigger, Form +1
Email & Gmail

ASO Analyzer. Uses formTrigger, httpRequest, openAi, googleSheets. Event-driven trigger; 17 nodes.

Form Trigger, HTTP Request, OpenAI +3
Email & Gmail

Echo Brand Voice Analysis (Processor) - TASK-074 Dec 10 Fix. Uses formTrigger, httpRequest, executeWorkflowTrigger, moveBinaryData. Event-driven trigger; 40 nodes.

Form Trigger, HTTP Request, Execute Workflow Trigger +2