This workflow follows the Form Trigger → Google Sheets 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 →
{
"name": "Create Image Ads",
"nodes": [
{
"parameters": {
"formTitle": "Image",
"formDescription": "Please provide a photo of the product without packaging so that we can apply the selected motifs.",
"formFields": {
"values": [
{
"fieldLabel": "data",
"fieldType": "file",
"multipleFiles": false,
"requiredField": true
},
{
"fieldLabel": "Tagline",
"requiredField": true
}
]
},
"options": {}
},
"type": "n8n-nodes-base.formTrigger",
"typeVersion": 2.2,
"position": [
-580,
340
],
"id": "e4753df2-a758-4a92-bdc6-a0052c74d751",
"name": "On form submission"
},
{
"parameters": {
"documentId": {
"__rl": true,
"value": "1Ywy98bHAWZ4BS4ykvTGZ3tQhDq4sJAHwEK3qVNTdkkU",
"mode": "list",
"cachedResultName": "Image Ideas",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Ywy98bHAWZ4BS4ykvTGZ3tQhDq4sJAHwEK3qVNTdkkU/edit?usp=drivesdk"
},
"sheetName": {
"__rl": true,
"value": "gid=0",
"mode": "list",
"cachedResultName": "Sheet1",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Ywy98bHAWZ4BS4ykvTGZ3tQhDq4sJAHwEK3qVNTdkkU/edit#gid=0"
},
"filtersUI": {
"values": [
{
"lookupColumn": "Status",
"lookupValue": "to create"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.5,
"position": [
-180,
340
],
"id": "8ae9ba62-5b18-4945-8d15-c8b7192e9ca1",
"name": "Google Sheets",
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"method": "POST",
"url": "https://api.cloudinary.com/v1_1/dfidczp14/image/upload",
"sendBody": true,
"contentType": "multipart-form-data",
"bodyParameters": {
"parameters": [
{
"parameterType": "formBinaryData",
"name": "file",
"inputDataFieldName": "data"
},
{
"name": "upload_preset",
"value": "n8n_uploads"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
-380,
340
],
"id": "ffd4778d-5637-419f-bdd1-36bad3b8b1f5",
"name": "Upload Image"
},
{
"parameters": {
"operation": "sendDocument",
"chatId": "5991557141",
"binaryData": true,
"additionalFields": {}
},
"type": "n8n-nodes-base.telegram",
"typeVersion": 1.2,
"position": [
380,
440
],
"id": "28e114b6-d9f8-4564-abb8-4a49e53ba024",
"name": "Telegram",
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"options": {}
},
"type": "n8n-nodes-base.splitInBatches",
"typeVersion": 3,
"position": [
120,
200
],
"id": "56dbb49f-4380-450e-a56e-82942dc7ed98",
"name": "Loop Over Items1"
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "915e18f3-dfd2-46c4-bbdb-688bc1721cf5",
"leftValue": "={{ $('Google Sheets').item.json.Status }}",
"rightValue": "to create",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
"position": [
640,
440
],
"id": "2514671e-2ed0-4be5-8323-11586de3dfc7",
"name": "If"
},
{
"parameters": {
"method": "POST",
"url": "https://api.openai.com/v1/images/edits",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "openAiApi",
"sendBody": true,
"contentType": "multipart-form-data",
"bodyParameters": {
"parameters": [
{
"name": "prompt",
"value": "={{ $json.Prompt }} Make sure product is centered. Put In Bold 3d text below the product with {{ $('Google Sheets').item.json['Text Theme'] }} theme the words \"{{ $('On form submission').item.json.Tagline }}\""
},
{
"name": "model",
"value": "gpt-image-1"
},
{
"name": "size",
"value": "1024x1536"
},
{
"parameterType": "formBinaryData",
"name": "image",
"inputDataFieldName": "data"
},
{
"name": "quality",
"value": "high"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
640,
220
],
"id": "1d5d0b2e-8946-4842-8b7f-4c01228ffea1",
"name": "Create Image",
"credentials": {
"httpHeaderAuth": {
"name": "<your credential>"
},
"openAiApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"operation": "toBinary",
"sourceProperty": "data[0].b64_json",
"options": {}
},
"type": "n8n-nodes-base.convertToFile",
"typeVersion": 1.1,
"position": [
120,
440
],
"id": "c96ae531-44ba-4d87-86a0-a804ff701cb2",
"name": "Convert to File"
},
{
"parameters": {
"url": "={{ $('Upload Image').item.json.url }}",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
380,
220
],
"id": "e452ba94-9fe6-4199-b9f2-17837dc442ca",
"name": "Get Image"
},
{
"parameters": {
"content": "# Get Ideas",
"height": 420,
"width": 640,
"color": 5
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-660,
200
],
"id": "6eede60c-da0d-409f-a829-5ce6c08da85f",
"name": "Sticky Note"
},
{
"parameters": {
"content": "# Create Ads",
"height": 620,
"width": 860
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
20,
80
],
"id": "2e5e916e-66ec-4adb-80e1-787c67a1b119",
"name": "Sticky Note1"
}
],
"connections": {
"On form submission": {
"main": [
[
{
"node": "Upload Image",
"type": "main",
"index": 0
}
]
]
},
"Google Sheets": {
"main": [
[
{
"node": "Loop Over Items1",
"type": "main",
"index": 0
}
]
]
},
"Upload Image": {
"main": [
[
{
"node": "Google Sheets",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items1": {
"main": [
[],
[
{
"node": "Get Image",
"type": "main",
"index": 0
}
]
]
},
"Telegram": {
"main": [
[
{
"node": "If",
"type": "main",
"index": 0
}
]
]
},
"If": {
"main": [
[
{
"node": "Loop Over Items1",
"type": "main",
"index": 0
}
]
]
},
"Create Image": {
"main": [
[
{
"node": "Convert to File",
"type": "main",
"index": 0
}
]
]
},
"Convert to File": {
"main": [
[
{
"node": "Telegram",
"type": "main",
"index": 0
}
]
]
},
"Get Image": {
"main": [
[
{
"node": "Create Image",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "0a17d5eb-488a-4119-96b9-ef2fec07c701",
"meta": {
"templateCredsSetupCompleted": true
},
"id": "tRl6PwBHBtFE2fcx",
"tags": []
}
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.
googleSheetsOAuth2ApihttpHeaderAuthopenAiApitelegramApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
How this works
Generate professional image ads effortlessly from simple form submissions, saving hours of manual design work for small business owners and marketers. This workflow captures ad details and assets via a form trigger, stores them securely in Google Sheets for easy tracking, and automates the creation process using an HTTP request to a design API. The key step involves looping through items to conditionally upload and convert images into ready-to-use files, delivering polished visuals directly to your Telegram channel for quick review and deployment.
Use this workflow when you need rapid, consistent ad production from user inputs, such as promoting seasonal offers or social media campaigns without a full design team. Avoid it for complex video ads or high-volume needs exceeding API limits, where custom software might be better. Common variations include swapping Telegram for email notifications or integrating with Canva's API for varied creative styles.
About this workflow
Create Image Ads. Uses formTrigger, googleSheets, httpRequest, telegram. Event-driven trigger; 11 nodes.
Source: https://github.com/Khuzaima-AI-2112/n8n-automation-templates/blob/master/02_Visuals-&-Social-Media/01_Product-images-to-viral-ads/Create_Image_Ads.json — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
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
An automated n8n workflow that scrapes financial data from Yahoo Finance using Bright Data, processes market cap information, generates visual charts, and sends comprehensive financial insights direct
checkProcess(old). Uses googleSheets, httpRequest, telegram, @n-octo-n/n8n-nodes-json-database. Event-driven trigger; 40 nodes.
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
This workflow provides a complete solution for handling Telegram Stars payments, invoicing and refunds using n8n. It automates the process of sending invoices, managing pre-checkout approvals, recordi