This workflow follows the Google Sheets → OpenAI 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": "AI-Powered Visual Merchandising Agent",
"nodes": [
{
"parameters": {
"updates": [
"message"
],
"additionalFields": {
"download": true
}
},
"type": "n8n-nodes-base.telegramTrigger",
"typeVersion": 1.2,
"position": [
0,
0
],
"id": "44571ae9-6cdf-4665-aa06-4811969aa17e",
"name": "Inbound Product Stream",
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"modelId": {
"__rl": true,
"value": "gpt-4o",
"mode": "list",
"cachedResultName": "GPT-4O"
},
"responses": {
"values": [
{
"content": "Sen uzman bir Etsy Metin Yazar\u0131 ve SEO Stratejistisin. G\u00d6REV\u0130N: \u00dcr\u00fcn foto\u011fraf\u0131n\u0131 analiz et ve sonucu SAF JSON format\u0131nda ver.\n\n\u00d6NEML\u0130: \"aciklama\" k\u0131sm\u0131 \u00e7ok detayl\u0131, uzun ve profesyonel olmal\u0131. A\u015fa\u011f\u0131daki ba\u015fl\u0131klar\u0131 i\u00e7ermeli:\n- \ud83c\udf1f Product Story (Duygusal giri\u015f)\n- \ud83e\uddf6 Material & Quality (Malzeme kalitesi)\n- \ud83d\udccf Size & Fit (Tahmini beden bilgisi)\n- \ud83e\uddfc Care Instructions (Y\u0131kama talimat\u0131)\n- \ud83c\udf81 Gift Option (Hediye vurgusu)\n\n\u00c7IKTI FORMATI (Sadece bu JSON'u ver):\n{\n\"urun_tanimi\": \"Buraya \u00fcr\u00fcn\u00fcn T\u00fcrk\u00e7e k\u0131sa analizini yaz (renk, desen, t\u00fcr)\",\n\"baslik\": \"Buraya Etsy uyumlu, \u00e7ok satan kelimelerle dolu \u0130ngilizce ba\u015fl\u0131\u011f\u0131 yaz (Max 140 karakter)\",\n\"etiketler\": \"Buraya virg\u00fclle ayr\u0131lm\u0131\u015f 13 adet \u0130ngilizce etiketi yaz\",\n\"aciklama\": \"Buraya yukar\u0131da bahsetti\u011fim maddeleri i\u00e7eren, emojilerle s\u00fcslenmi\u015f, paragraflara ayr\u0131lm\u0131\u015f, madde i\u015faretleri i\u00e7eren UZUN ve SATI\u015e ODAKLI \u0130ngilizce a\u00e7\u0131klamay\u0131 yaz.\"\n}"
},
{
"type": "image",
"imageType": "base64"
}
]
},
"builtInTools": {},
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.openAi",
"typeVersion": 2.1,
"position": [
208,
0
],
"id": "9df961e2-5ad9-4f7d-b760-7f477fcb9808",
"name": "AI Vision & SEO Engine",
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"jsCode": "// D\u0130KKAT: Senin yap\u0131nda \u00e7ift 'content' oldu\u011fu i\u00e7in yolu uzatt\u0131k\nconst content =$input.first().json.output[0].content[0].text;\n\n// Temizlik ve \u00c7evirme\nconst cleanJson = content.replace(/```json/g, '').replace(/```/g, '').trim();\n\nreturn JSON.parse(cleanJson);"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
560,
0
],
"id": "e8099cfd-e955-4161-bbb7-1abcae32e517",
"name": "JSON Data Parser"
},
{
"parameters": {
"operation": "append",
"documentId": {
"__rl": true,
"value": "1XHkz-wS6UbMNDM_q0bl2AvuhxeIAo3lBzQPQSn5ZNUI",
"mode": "list",
"cachedResultName": "envanter takibi",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1XHkz-wS6UbMNDM_q0bl2AvuhxeIAo3lBzQPQSn5ZNUI/edit?usp=drivesdk"
},
"sheetName": {
"__rl": true,
"value": "gid=0",
"mode": "list",
"cachedResultName": "Sayfa1",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1XHkz-wS6UbMNDM_q0bl2AvuhxeIAo3lBzQPQSn5ZNUI/edit#gid=0"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"\u00dcr\u00fcn Tan\u0131m\u0131\r\n": "={{ $json.urun_tanimi }}",
"Ba\u015fl\u0131k\r\n": "={{ $json.baslik }}",
"Etiketler\r\n": "={{ $json.etiketler }}",
"A\u00e7\u0131klama\n": "={{ $json.aciklama }}",
"Tarih": "={{ $now.format('yyyy-MM-dd HH:mm') }}"
},
"matchingColumns": [],
"schema": [
{
"id": "Tarih",
"displayName": "Tarih",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "\u00dcr\u00fcn Tan\u0131m\u0131\r\n",
"displayName": "\u00dcr\u00fcn Tan\u0131m\u0131\r\n",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Ba\u015fl\u0131k\r\n",
"displayName": "Ba\u015fl\u0131k\r\n",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Etiketler\r\n",
"displayName": "Etiketler\r\n",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "A\u00e7\u0131klama\n",
"displayName": "A\u00e7\u0131klama\n",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "row_number",
"displayName": "row_number",
"required": false,
"defaultMatch": false,
"display": true,
"type": "number",
"canBeUsedToMatch": true,
"readOnly": true,
"removed": true
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.7,
"position": [
800,
0
],
"id": "ec604cd8-c3d7-4f99-8db9-725ff9dd113f",
"name": "Inventory Database (CMS)",
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"chatId": "479149859",
"text": "=\u2705 \u00dcr\u00fcn Analizi Kaydedildi!\n\n\ud83d\udccc Ba\u015fl\u0131k:\n{{ $('JSON Data Parser').item.json.baslik }}\n\n\ud83d\udcdd A\u00e7\u0131klama:\n{{ $('JSON Data Parser').item.json.aciklama }}\n\n\ud83c\udff7\ufe0f Etiketler:\n{{ $('JSON Data Parser').item.json.etiketler }}\n\n(Envantere Eklendi: {{ $json[\"Tarih\"] }})",
"additionalFields": {}
},
"type": "n8n-nodes-base.telegram",
"typeVersion": 1.2,
"position": [
1040,
0
],
"id": "9eb42868-87e5-40bf-a0de-9865d2d017bd",
"name": "Mobile Admin Dashboard",
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
}
}
],
"connections": {
"Inbound Product Stream": {
"main": [
[
{
"node": "AI Vision & SEO Engine",
"type": "main",
"index": 0
}
]
]
},
"AI Vision & SEO Engine": {
"main": [
[
{
"node": "JSON Data Parser",
"type": "main",
"index": 0
}
]
]
},
"JSON Data Parser": {
"main": [
[
{
"node": "Inventory Database (CMS)",
"type": "main",
"index": 0
}
]
]
},
"Inventory Database (CMS)": {
"main": [
[
{
"node": "Mobile Admin Dashboard",
"type": "main",
"index": 0
}
]
]
}
},
"active": true,
"settings": {
"executionOrder": "v1",
"availableInMCP": false
},
"versionId": "ee9d80e6-c639-4be1-94c2-785ce705bc4d",
"meta": {
"templateCredsSetupCompleted": true
},
"id": "eYXX6X4t4HxIdp8GXHe2u",
"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.
googleSheetsOAuth2ApiopenAiApitelegramApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
AI-Powered Visual Merchandising Agent. Uses telegramTrigger, openAi, googleSheets, telegram. Event-driven trigger; 5 nodes.
Source: https://github.com/emrahdemirkoc/AI-Visual-Merchandiser/blob/main/workflow1.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.
BoomerBobBot.TP. Uses agent, telegramTrigger, telegram, memoryBufferWindow. Event-driven trigger; 95 nodes.
Generate AI viral videos with NanoBanana & VEO3, shared on socials via Blotato 2. Uses @blotato/n8n-nodes-blotato, googleSheets, lmChatOpenAi, toolThink. Event-driven trigger; 94 nodes.
This template is designed for marketers, content creators, and e-commerce brands who want to automate the creation of professional ad videos at scale. It’s ideal for teams looking to generate consiste
N8N-Workflow. Uses telegramTrigger, telegram, googleSheets, openAi. Event-driven trigger; 63 nodes.
This automation is designed to help you generate AI-powered music tracks, cover art, and fully rendered music videos — all triggered from a simple Telegram chat and managed via Google Sheets.