{
  "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
          }
        ]
      ]
    }
  }
}