AutomationFlowsAI & RAG › Turns Reddit Pain Points Into Comic Ads Using Dumpling AI and Gpt-4o

Turns Reddit Pain Points Into Comic Ads Using Dumpling AI and Gpt-4o

ByYang @yang on n8n.io

This workflow turns Reddit pain points into emotionally-driven comic-style ads using AI. It takes in a product description, scrapes Reddit for real user pain points, filters relevant posts using AI, generates ad angles, rewrites them into 4-panel comic prompts, and finally uses…

Event trigger★★★★★ complexityAI-powered31 nodesForm TriggerOpenAIRedditAgentOpenAI ChatTool ThinkOutput Parser StructuredHTTP Request
AI & RAG Trigger: Event Nodes: 31 Complexity: ★★★★★ AI nodes: yes Added:

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

This workflow follows the Agent → 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
{
  "id": "oWxegB8Eht2Ezwtd",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Turn Reddit Pain Points into Comic Ads with Dumpling AI + GPT-4o",
  "tags": [],
  "nodes": [
    {
      "id": "f4fc6167-f09e-4e8d-ae2e-c128689dc05a",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2520,
        60
      ],
      "parameters": {
        "color": 4,
        "width": 580,
        "height": 340,
        "content": "## Generate Reddit Keyword "
      },
      "typeVersion": 1
    },
    {
      "id": "c19c062e-fc6f-407f-a44b-58aae492e5b3",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1880,
        60
      ],
      "parameters": {
        "color": 3,
        "width": 340,
        "height": 340,
        "content": "## Scrape Reddit"
      },
      "typeVersion": 1
    },
    {
      "id": "c919fbb8-61a0-4bb3-9d79-4faa3eeb3d49",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1480,
        60
      ],
      "parameters": {
        "color": 2,
        "width": 340,
        "height": 340,
        "content": "## Filter Posts By Popularity"
      },
      "typeVersion": 1
    },
    {
      "id": "0b83d09e-50fe-44f0-89b1-3d7f20efb303",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "parameters": {
        "color": 5,
        "width": 400,
        "height": 400,
        "content": "## Turn Painpoints Into Messaging"
      },
      "typeVersion": 1
    },
    {
      "id": "28c02aa5-e847-4c6d-b073-e69809e75193",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        460,
        0
      ],
      "parameters": {
        "color": 5,
        "width": 400,
        "height": 400,
        "content": "## Rank Top 10 Messaging"
      },
      "typeVersion": 1
    },
    {
      "id": "2eb799c8-3508-400f-9d06-e20d948f5e6c",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        920,
        0
      ],
      "parameters": {
        "color": 5,
        "width": 460,
        "height": 400,
        "content": "## Create Image Prompt"
      },
      "typeVersion": 1
    },
    {
      "id": "eb0c6704-0564-4790-ac22-77f70717552c",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1700,
        0
      ],
      "parameters": {
        "color": 6,
        "width": 900,
        "height": 400,
        "content": "## Create Images"
      },
      "typeVersion": 1
    },
    {
      "id": "f6ed7871-877d-4c6e-a79d-f82340d66d8b",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1080,
        60
      ],
      "parameters": {
        "color": 3,
        "width": 500,
        "height": 340,
        "content": "## Post Relevance Classifier"
      },
      "typeVersion": 1
    },
    {
      "id": "dd79b536-54eb-402c-88b5-c0380c14003d",
      "name": "When a Form is Submitted",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -2460,
        180
      ],
      "parameters": {
        "options": {},
        "formTitle": "Add Details Here ",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Brand Name",
              "requiredField": true
            },
            {
              "fieldLabel": "Website",
              "requiredField": true
            },
            {
              "fieldLabel": "Product Explanation",
              "requiredField": true
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "b08b7c80-31bb-4b98-b5b0-7a9e15e51145",
      "name": "Generate Reddit Keyword from Product Description",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        -2260,
        180
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "chatgpt-4o-latest",
          "cachedResultName": "CHATGPT-4O-LATEST"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "content": "=You are a marketing strategist and Reddit researcher. \nGiven the following product description, extract a single keyword or phrase (1 to 3 words max) \nthat people on Reddit might use when discussing pain points related to this product or service.\n\nReturn ONLY the keyword or phrase, no extra text.\n\n\nProduct Description:{{ $json['Product Explanation'] }}\n"
            }
          ]
        }
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "6d4393f5-766b-4f22-8e74-cc91c3f0f845",
      "name": "Search Reddit Posts Using Keyword",
      "type": "n8n-nodes-base.reddit",
      "position": [
        -1760,
        180
      ],
      "parameters": {
        "limit": 10,
        "keyword": "={{ $json.message.content }}",
        "location": "allReddit",
        "operation": "search",
        "additionalFields": {}
      },
      "credentials": {
        "redditOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "70a1070c-afd3-4122-b330-1f1e5a45b2db",
      "name": "Filter Posts With 2+ Upvotes and Text",
      "type": "n8n-nodes-base.if",
      "position": [
        -1360,
        180
      ],
      "parameters": {
        "options": {
          "ignoreCase": false
        },
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "1f62a8d7-2859-41ce-b87d-d34777bfc19b",
              "operator": {
                "type": "number",
                "operation": "gte"
              },
              "leftValue": "={{ $json.ups }}",
              "rightValue": 2
            },
            {
              "id": "1b3eb507-03e0-4cd3-8ebd-54bdfde787d5",
              "operator": {
                "type": "string",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $json.selftext }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "2e693051-f01f-44a0-b869-632c3cb6dbad",
      "name": "Classify Post Relevance to Product",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -960,
        120
      ],
      "parameters": {
        "text": "=Important: always use the think2 tool\n\nYou are a content relevance classifier.\n\nGiven the following DTC product description:\n{{ $('When a Form is Submitted').item.json['Product Explanation'] }}\n\nAnd the details of a single Reddit post:\n\u2022 **Title**: {{ $('Search Reddit Posts Using Keyword').item.json.title }}\n\u2022 **Content**: {{ $('Search Reddit Posts Using Keyword').item.json.selftext }}\n\u2022 **Subreddit**: {{ $('Search Reddit Posts Using Keyword').item.json.subreddit }}\n\u2022 **Upvotes**: {{ $('Search Reddit Posts Using Keyword').item.json.ups }}\n\u2022 **Upvote Ratio**: {{ $('Search Reddit Posts Using Keyword').item.json.upvote_ratio }}\n\u2022 **URL**: {{ $('Search Reddit Posts Using Keyword').item.json.url }}\n\nYour task is to determine whether this post is relevant for marketing our product.\nReturn **only** a JSON array with one object containing two fields:\n- `isRelevant`: `true` if the post is relevant, otherwise `false`\n- `reason`: a short explanation of why you judged it relevant or not\n\nExample output:\n[\n  {\n    \"isRelevant\": true,\n    \"reason\": \"The user describes the exact pain point our product solves.\"\n  }\n]\n",
        "options": {},
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.9
    },
    {
      "id": "e928ec1b-d561-4215-a28f-bcac7d9e24f3",
      "name": "GPT Model: Classify Relevance",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -1020,
        260
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "1bab21d3-14b8-4759-b7d7-a016425ee0d2",
      "name": "Support Relevance Classification",
      "type": "@n8n/n8n-nodes-langchain.toolThink",
      "position": [
        -860,
        260
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "308e57d1-c2a5-4e48-91fc-deb14f115581",
      "name": "Parse Relevance Classifier Output",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -720,
        260
      ],
      "parameters": {
        "jsonSchemaExample": "[\n  {\n    \"isRelevant\": true,\n    \"reason\": \"The user describes the exact pain point our product solves.\"\n  }\n]\n"
      },
      "typeVersion": 1.2
    },
    {
      "id": "72d68a9b-3fde-4674-bb28-8719fdfaa4f0",
      "name": "Format Relevant Reddit Post Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        -460,
        100
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "b2311fdd-e2bc-413f-a948-2fe4886d78e1",
              "name": "upvotes",
              "type": "string",
              "value": "={{ $('Search Reddit Posts Using Keyword').item.json.ups }}"
            },
            {
              "id": "991a6ac8-0c9d-4975-8612-b6df33c7f4e7",
              "name": "subreddit",
              "type": "string",
              "value": "={{ $('Search Reddit Posts Using Keyword').item.json.subreddit }}"
            },
            {
              "id": "c219f718-c595-4156-ae87-b672c50df142",
              "name": "originalPost",
              "type": "string",
              "value": "={{ $('Search Reddit Posts Using Keyword').item.json.selftext }}"
            },
            {
              "id": "86566583-b073-4615-b3c4-114c9f1de518",
              "name": "title",
              "type": "string",
              "value": "={{ $('Search Reddit Posts Using Keyword').item.json.title }}"
            },
            {
              "id": "faa2a938-05af-4644-9d37-a55fe748656c",
              "name": "url",
              "type": "string",
              "value": "={{ $('Search Reddit Posts Using Keyword').item.json.url }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "3492ed8f-38f2-4070-bb16-11d84aa0e5eb",
      "name": "Aggregate Relevant Reddit Data",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        -220,
        100
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData"
      },
      "typeVersion": 1
    },
    {
      "id": "a17a3e7a-a6a1-430e-bc1d-94f426979cee",
      "name": "Generate 10 Ad Angles From Reddit Posts",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        80,
        100
      ],
      "parameters": {
        "text": "=You are a copywriter and strategist helping a DTC brand turn Reddit pain points into powerful marketing messages.\n\nHere are Reddit posts expressing a problems or frustration:\n\n{{ JSON.stringify($json.data) }}\n\n\nThe brand's product is described as: {{ $('When a Form is Submitted').item.json['Product Explanation'] }}\n\nYour job is to create 10 unique, punchy variations of how this product solves the pain in the Reddit posts.\n\nEach variation should be:\n\n- 1\u20132 sentences\n- Emotionally resonant\n- Framed as a \"hero\" moment (where the product enters to solve the issue)\n\nThink of these like ad angles or mini comic scripts. Output the list clearly as:\n\n1. ...\n2. ...\n3. ...\n...\n10. ...\n",
        "agent": "conversationalAgent",
        "options": {},
        "promptType": "define"
      },
      "typeVersion": 1.7
    },
    {
      "id": "aae11d8a-52a2-4a43-95b2-42fe170e8788",
      "name": "Ad Angle Generation",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        120,
        320
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "b635fcac-3454-4bd2-a27b-e9979a9c2a0c",
      "name": "Support Ad Angle Generation",
      "type": "@n8n/n8n-nodes-langchain.toolThink",
      "position": [
        260,
        240
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "6a8a74ab-ed4c-45a1-9b71-3aab97785741",
      "name": "Rank Top 10 Ad Angles",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        540,
        100
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "chatgpt-4o-latest",
          "cachedResultName": "CHATGPT-4O-LATEST"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "content": "=You are a marketing strategist helping evaluate potential ad angles for a DTC product.\n\nThe product is described as: {{ $('When a Form is Submitted').item.json['Product Explanation'] }}\n\nBelow is a list of short ad variations generated from Reddit-sourced user pain points.\n\nPlease do the following:\n1. Review all variations.\n2. Select the top 10 that are most relevant and persuasive for this product.\n3. Re-rank them from best to least among the 10.\n4. Return them clearly as a numbered list (1 to 10), with no commentary.\n5. Only select the 10 most emotionally persuasive and product-relevant ad angles. Ignore redundant or vague lines.\n\n\nVariations: {{ $json.output }}"
            }
          ]
        }
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "9f09b164-5095-4500-a818-51c9372d0b9b",
      "name": "Create Comic Prompts from Ad Angles",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1040,
        100
      ],
      "parameters": {
        "text": "=You are a creative director making 4-panel comic ads for a product.\n\nThe product is: {{ $('When a Form is Submitted').item.json['Product Explanation'] }}\n\nHere\u2019s the ad message: {{ $json.message.content }}\n\nWrite a prompt for an AI image generator that describes a 4-panel comic showing this message as a visual story.\n\nFormat the output like:\n\n**Prompt**:  \nCreate a single image showing a 4-panel comic in clean, minimal style.  \nPanel 1: [setup/pain point]  \nPanel 2: [escalation]  \nPanel 3: [product enters heroically]  \nPanel 4: [positive outcome]  \n",
        "options": {
          "systemMessage": "Please return **only** a JSON array of 10 objects, each with a single property `\"prompt\"` containing the image prompt. Example output structure:\n\n[\n  {\n    \"prompt\": \"Sun-drenched poolside shot of the product on a marble ledge at golden hour, with soft shadows and warm tones. Aspect ratio 1:1.\"\n  },\n  {\n    \"prompt\": \"Cool lavender-tinted sunset beach backdrop behind the product, highlighting reflective metallic accents. Aspect ratio 4:5.\"\n  },\n  {\n    \"prompt\": \"...\"\n  }\n]"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.9
    },
    {
      "id": "b410b8c2-92fd-45aa-8385-4b84beac4f1a",
      "name": "Comic Prompt Creation",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        860,
        400
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "8e3ce61a-5ecc-474b-833a-69db90ababde",
      "name": "Support Comic Prompt Creation",
      "type": "@n8n/n8n-nodes-langchain.toolThink",
      "position": [
        1100,
        260
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "e5976fc3-e05d-4240-8504-f33a80d91855",
      "name": "Parse Comic Prompt JSON Output",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1240,
        260
      ],
      "parameters": {
        "jsonSchemaExample": "[\n  {\n    \"prompt\": \"Sun-drenched poolside shot of the product on a marble ledge at golden hour, with soft shadows and warm tones. Aspect ratio 1:1.\"\n  },\n  {\n    \"prompt\": \"Cool lavender-tinted sunset beach backdrop behind the product, highlighting reflective metallic accents. Aspect ratio 4:5.\"\n  },\n  {\n    \"prompt\": \"...\"\n  }\n]"
      },
      "typeVersion": 1.2
    },
    {
      "id": "dd68fec9-f977-4021-a2ce-1e42e95da827",
      "name": "Split Comic Prompt Objects",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        1480,
        100
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "output"
      },
      "typeVersion": 1
    },
    {
      "id": "472436c2-4ebb-4bba-b4b6-98e8cfbea3a5",
      "name": "Loop Through Comic Prompts",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1780,
        100
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "5b33f353-1c50-4bdf-be94-cf1080a6eff3",
      "name": "Generate Comic Image via Dumpling AI",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2000,
        100
      ],
      "parameters": {
        "url": "https://app.dumplingai.com/api/v1/generate-ai-image",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"model\": \"FLUX.1-pro\",\n  \"input\": {\n    \"prompt\": \"{{ $json.prompt.replace(/\\\\n/g, ' ').replace(/\\\\r/g, '').replace(/\\s+/g, ' ').trim() }}\",\n    \"seed\": 42,\n    \"steps\": 25,\n    \"width\": 512,\n    \"height\": 512,\n    \"guidance\": 3,\n    \"interval\": 2,\n    \"aspect_ratio\": \"1:1\",\n    \"output_format\": \"jpg\",\n    \"output_quality\": 80,\n    \"safety_tolerance\": 2,\n    \"prompt_upsampling\": false\n  }\n}\n",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "8fd05b8f-5993-4fc4-9657-92628392e8dc",
      "name": "Fetch Comic Image URL",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2220,
        100
      ],
      "parameters": {
        "url": "={{ $json.images[0].url }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "abb99085-a573-4c95-b19c-73b9561af3a5",
      "name": "Upload Image to Google Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        2640,
        100
      ],
      "parameters": {
        "name": "={{ $json.images[0].url.split('/').pop() }}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "1R5bTxrKmi9NDMFJIh3aQgbNuZwmCybLV",
          "cachedResultUrl": "https://drive.google.com/drive/folders/1R5bTxrKmi9NDMFJIh3aQgbNuZwmCybLV",
          "cachedResultName": "n8n Testing"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "80635290-92e4-4c7e-91d5-d5941e292812",
  "connections": {
    "Ad Angle Generation": {
      "ai_languageModel": [
        [
          {
            "node": "Generate 10 Ad Angles From Reddit Posts",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Comic Prompt Creation": {
      "ai_languageModel": [
        [
          {
            "node": "Create Comic Prompts from Ad Angles",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Comic Image URL": {
      "main": [
        [
          {
            "node": "Upload Image to Google Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Rank Top 10 Ad Angles": {
      "main": [
        [
          {
            "node": "Create Comic Prompts from Ad Angles",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When a Form is Submitted": {
      "main": [
        [
          {
            "node": "Generate Reddit Keyword from Product Description",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Through Comic Prompts": {
      "main": [
        [],
        [
          {
            "node": "Generate Comic Image via Dumpling AI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Comic Prompt Objects": {
      "main": [
        [
          {
            "node": "Loop Through Comic Prompts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Support Ad Angle Generation": {
      "ai_tool": [
        [
          {
            "node": "Generate 10 Ad Angles From Reddit Posts",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Upload Image to Google Drive": {
      "main": [
        [
          {
            "node": "Loop Through Comic Prompts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "GPT Model: Classify Relevance": {
      "ai_languageModel": [
        [
          {
            "node": "Classify Post Relevance to Product",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Support Comic Prompt Creation": {
      "ai_tool": [
        [
          {
            "node": "Create Comic Prompts from Ad Angles",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate Relevant Reddit Data": {
      "main": [
        [
          {
            "node": "Generate 10 Ad Angles From Reddit Posts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Comic Prompt JSON Output": {
      "ai_outputParser": [
        [
          {
            "node": "Create Comic Prompts from Ad Angles",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Support Relevance Classification": {
      "ai_tool": [
        [
          {
            "node": "Classify Post Relevance to Product",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Parse Relevance Classifier Output": {
      "ai_outputParser": [
        [
          {
            "node": "Classify Post Relevance to Product",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Search Reddit Posts Using Keyword": {
      "main": [
        [
          {
            "node": "Filter Posts With 2+ Upvotes and Text",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Classify Post Relevance to Product": {
      "main": [
        [
          {
            "node": "Format Relevant Reddit Post Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Relevant Reddit Post Fields": {
      "main": [
        [
          {
            "node": "Aggregate Relevant Reddit Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Comic Prompts from Ad Angles": {
      "main": [
        [
          {
            "node": "Split Comic Prompt Objects",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Comic Image via Dumpling AI": {
      "main": [
        [
          {
            "node": "Fetch Comic Image URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter Posts With 2+ Upvotes and Text": {
      "main": [
        [
          {
            "node": "Classify Post Relevance to Product",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate 10 Ad Angles From Reddit Posts": {
      "main": [
        [
          {
            "node": "Rank Top 10 Ad Angles",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Reddit Keyword from Product Description": {
      "main": [
        [
          {
            "node": "Search Reddit Posts Using Keyword",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

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

This workflow turns Reddit pain points into emotionally-driven comic-style ads using AI. It takes in a product description, scrapes Reddit for real user pain points, filters relevant posts using AI, generates ad angles, rewrites them into 4-panel comic prompts, and finally uses…

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

More AI & RAG workflows → · Browse all categories →

Related workflows

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

AI & RAG

🎯 Create viral TikToks, Shorts, Reels, podcasts, and ASMR videos in minutes — all on autopilot.

OpenAI, HTTP Request, Form Trigger +7
AI & RAG

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.

@Blotato/N8N Nodes Blotato, Google Sheets, OpenAI Chat +9
AI & RAG

How it Works

Memory Buffer Window, Agent, Output Parser Structured +9
AI & RAG

The best content automation template in the market is now even better—with “deep research” on time-sensitive topics\! Unlike most n8n content automation templates that are mainly for “demo purposes,”

OpenAI, HTTP Request, XML +11
AI & RAG

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

Telegram, Telegram Trigger, Google Drive +8