AutomationFlowsGeneral › AI Product Description Generator

AI Product Description Generator

Original n8n title: AI Product Description Writer

AI Product Description Writer. Uses openAi, googleSheets. Webhook trigger; 6 nodes.

Webhook trigger★★★★☆ complexityAI-powered6 nodesOpenAIGoogle Sheets
General Trigger: Webhook Nodes: 6 Complexity: ★★★★☆ AI nodes: yes Added:

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 →

Download .json
{
  "name": "AI Product Description Writer",
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "product-description",
        "responseMode": "lastNode"
      },
      "id": "a1b2c3d4-1003-4000-8000-000000000001",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1.1,
      "position": [
        250,
        300
      ]
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "set1",
              "name": "productName",
              "value": "={{ $json.body.productName }}",
              "type": "string"
            },
            {
              "id": "set2",
              "name": "features",
              "value": "={{ $json.body.features }}",
              "type": "string"
            },
            {
              "id": "set3",
              "name": "targetAudience",
              "value": "={{ $json.body.targetAudience || 'general consumers' }}",
              "type": "string"
            }
          ]
        }
      },
      "id": "a1b2c3d4-1003-4000-8000-000000000002",
      "name": "Set Product Data",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.2,
      "position": [
        500,
        300
      ]
    },
    {
      "parameters": {
        "resource": "chat",
        "model": "gpt-4",
        "messages": {
          "values": [
            {
              "content": "Write compelling product descriptions for an e-commerce listing.\n\nProduct: {{ $json.productName }}\nFeatures: {{ $json.features }}\nTarget Audience: {{ $json.targetAudience }}\n\nReturn JSON with keys:\n- shortDescription (50-80 words, punchy and engaging)\n- longDescription (150-250 words, detailed and SEO-friendly)\n- bulletPoints (array of 5 key selling points)\n- seoTitle (max 60 chars)\n- seoDescription (max 160 chars)"
            }
          ]
        },
        "options": {
          "temperature": 0.7,
          "maxTokens": 1500
        }
      },
      "id": "a1b2c3d4-1003-4000-8000-000000000003",
      "name": "OpenAI Generate Description",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 1.3,
      "position": [
        750,
        300
      ]
    },
    {
      "parameters": {
        "jsCode": "const response = JSON.parse($input.first().json.message.content);\nreturn [{\n  json: {\n    productName: $('Set Product Data').first().json.productName,\n    ...response,\n    generatedAt: new Date().toISOString()\n  }\n}];"
      },
      "id": "a1b2c3d4-1003-4000-8000-000000000004",
      "name": "Parse Description",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        1000,
        300
      ]
    },
    {
      "parameters": {
        "operation": "append",
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "your-product-descriptions-sheet-id"
        },
        "sheetName": {
          "__rl": true,
          "mode": "name",
          "value": "Descriptions"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "Product Name": "={{ $json.productName }}",
            "Short Description": "={{ $json.shortDescription }}",
            "Long Description": "={{ $json.longDescription }}",
            "Bullet Points": "={{ $json.bulletPoints.join(' | ') }}",
            "SEO Title": "={{ $json.seoTitle }}",
            "SEO Description": "={{ $json.seoDescription }}",
            "Generated At": "={{ $json.generatedAt }}"
          }
        }
      },
      "id": "a1b2c3d4-1003-4000-8000-000000000005",
      "name": "Save to Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.2,
      "position": [
        1250,
        300
      ]
    },
    {
      "parameters": {
        "respondWith": "json",
        "responseBody": "={{ JSON.stringify($('Parse Description').first().json) }}"
      },
      "id": "a1b2c3d4-1003-4000-8000-000000000006",
      "name": "Respond to Webhook",
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1,
      "position": [
        1500,
        300
      ]
    }
  ],
  "connections": {
    "Webhook": {
      "main": [
        [
          {
            "node": "Set Product Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Product Data": {
      "main": [
        [
          {
            "node": "OpenAI Generate Description",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Generate Description": {
      "main": [
        [
          {
            "node": "Parse Description",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Description": {
      "main": [
        [
          {
            "node": "Save to Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Save to Google Sheets": {
      "main": [
        [
          {
            "node": "Respond to Webhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  }
}
Pro

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

About this workflow

AI Product Description Writer. Uses openAi, googleSheets. Webhook trigger; 6 nodes.

Source: https://github.com/mlnjsh/n8n-workflows-mega/blob/main/workflows/ai-content/03-product-description-writer.json — original creator credit. Request a take-down →

More General workflows → · Browse all categories →

Related workflows

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

General

RoboNuggets - Faceless POV AI Machine (R24). Uses scheduleTrigger, googleSheets, chainLlm, lmChatOpenAi. Scheduled trigger; 31 nodes.

Google Sheets, Chain Llm, OpenAI Chat +5
General

Video Automation (images only). Uses chainLlm, lmChatOpenAi, outputParserStructured, splitOut. Scheduled trigger; 28 nodes.

Chain Llm, OpenAI Chat, Output Parser Structured +4
General

PPC Thievery. Uses manualTrigger, googleDrive, stickyNote, httpRequest. Event-driven trigger; 28 nodes.

Google Drive, HTTP Request, OpenAI +1
General

AI Facebook Ad Spy Tool. Uses manualTrigger, httpRequest, googleDrive, splitInBatches. Event-driven trigger; 25 nodes.

HTTP Request, Google Drive, OpenAI +1
General

Mailing List Analysis. Uses mailerLite, googleSheets, httpRequest, openAi. Event-driven trigger; 23 nodes.

Mailer Lite, Google Sheets, HTTP Request +1