AutomationFlowsAI & RAG › Generate SAAS Product Ideas From Market Gaps with Openai and Bright Data

Generate SAAS Product Ideas From Market Gaps with Openai and Bright Data

ByYaron Been @yaron-nofluff on n8n.io

This workflow contains community nodes that are only compatible with the self-hosted version of n8n.

Cron / scheduled trigger★★★★☆ complexityAI-powered16 nodesAgentGoogle SheetsOpenAI ChatN8N Nodes McpOutput Parser AutofixingOutput Parser Structured
AI & RAG Trigger: Cron / scheduled Nodes: 16 Complexity: ★★★★☆ AI nodes: yes Added:

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

This workflow follows the Agent → 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 →

Download .json
{
  "id": "vrH9xsqMNkN1dmSN",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "27 Analyze Market Gaps",
  "tags": [],
  "nodes": [
    {
      "id": "149811e9-798b-413b-a159-5e07bb541fd0",
      "name": "Trigger: Run Weekly Check",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        0,
        0
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "weeks",
              "triggerAtDay": [
                1
              ],
              "triggerAtHour": 9
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "d175072a-abba-4e05-8262-0a7991d1fc66",
      "name": "Set: Target Topic or URL",
      "type": "n8n-nodes-base.set",
      "position": [
        200,
        0
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "f4de0d45-1ec2-4582-afa8-0f10fea9dd57",
              "name": "url",
              "type": "string",
              "value": "https://medium.com/@moneytent/how-i-generate-100-saas-ideas-from-market-gap-to-product-market-fit-f05ee5d539ee"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "4a88bcd9-e0ab-4fe1-a84b-29e6276d9812",
      "name": "AI Agent: Analyze Market Gap",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        440,
        0
      ],
      "parameters": {
        "text": "=Screpe the url below and look market gaps to build a product on.\n\nURL: {{ $json.url }}",
        "options": {},
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2
    },
    {
      "id": "589342ae-282d-47e9-9ec4-7df88812952e",
      "name": "Code: Split Opportunities",
      "type": "n8n-nodes-base.code",
      "position": [
        880,
        0
      ],
      "parameters": {
        "jsCode": "// Sample input data from previous node\nconst items = $json[\"output\"][\"productOpportunities\"];\n\n// Emit each opportunity as a single item\nreturn items.map(opportunity => {\n  return {\n    json: {\n      name: opportunity.name,\n      description: opportunity.description\n    }\n  };\n});\n"
      },
      "typeVersion": 2
    },
    {
      "id": "3e349bd0-3e28-4a09-b1df-4bac44406ede",
      "name": "Google Sheets: Log SaaS Ideas",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1080,
        0
      ],
      "parameters": {
        "columns": {
          "value": {
            "Name": "={{ $json.name }}",
            "Description": "={{ $json.description }}"
          },
          "schema": [
            {
              "id": "Name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Description",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Description",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1I2tG3DCCcMyoKtMIW6ALkp9KAgyndiik0YfWRaSWb2w/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1I2tG3DCCcMyoKtMIW6ALkp9KAgyndiik0YfWRaSWb2w",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1I2tG3DCCcMyoKtMIW6ALkp9KAgyndiik0YfWRaSWb2w/edit?usp=drivesdk",
          "cachedResultName": "Market Gaps"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "bfb80b71-c78b-46f5-a5a2-24911e747519",
      "name": "LLM: Insight Generator",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        400,
        280
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "630647dc-c0de-4165-a776-603de4c2aee3",
      "name": "Bright Data: Scraper Agent",
      "type": "n8n-nodes-mcp.mcpClientTool",
      "position": [
        560,
        280
      ],
      "parameters": {
        "toolName": "scrape_as_markdown",
        "operation": "executeTool",
        "toolParameters": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Tool_Parameters', ``, 'json') }}"
      },
      "credentials": {
        "mcpClientApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "5aac989c-f503-4e72-b2da-a3db5e9be6a0",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -20,
        -680
      ],
      "parameters": {
        "color": 6,
        "width": 360,
        "height": 860,
        "content": "## \ud83d\udfe9 **SECTION 1: Define What to Analyze**\n\n### \ud83d\udd01 Nodes: `Schedule Trigger` + `Edit Fields`\n\n| \ud83d\udd27 Node              | Name                          | Purpose                                                                                                                      |\n| -------------------- | ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |\n| \u23f0 `Schedule Trigger` | **Trigger: Run Weekly Check** | Starts this automation on a schedule (e.g., every Monday at 9 AM).                                                           |\n| \ud83d\udcdd `Edit Fields`     | **Set: Target Topic or URL**  | Manually input the industry, keyword, or trend you want to explore (like *\"AI in Healthcare\"* or *\"Sustainable Packaging\"*). |\n\n### \ud83e\udde0 Beginner Tip:\n\n> This section is where **you control the topic**. You don\u2019t need to write code \u2014 just input a keyword, and the system will go fetch all the useful insights for you later.\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "8a861a96-f34b-4e40-8804-04477a94f858",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        420,
        -1120
      ],
      "parameters": {
        "color": 3,
        "width": 300,
        "height": 1300,
        "content": "## \ud83d\udfe6 **SECTION 2: Discover Market Gaps with AI Agent**\n\n### \ud83e\udde0 Node: `AI Agent`\n\nSub-nodes: `OpenAI Chat Model`, `MCP Client (Bright Data)`, `Structured Output Parser`\n\n| \ud83e\udd16 Node                       | Name                             | Purpose                                                                                              |\n| ----------------------------- | -------------------------------- | ---------------------------------------------------------------------------------------------------- |\n| \ud83e\udde0 `AI Agent`                 | **AI Agent: Analyze Market Gap** | Main node that coordinates the scraping and insight generation.                                      |\n| \ud83c\udf10 `MCP Client`               | **Bright Data: Scraper Agent**   | Scrapes websites like Statista, Reddit, G2, etc., to find pain points, trends, and missing products. |\n| \ud83e\udde0 `OpenAI Chat Model`        | **LLM: Insight Generator**       | Summarizes scraped data and identifies potential product opportunities using GPT.                    |\n| \ud83e\uddfe `Structured Output Parser` | **Parser: JSON Output Builder**  | Converts messy AI output into clean, structured JSON (with product names and descriptions).          |\n\n### \ud83e\udde0 Beginner Tip:\n\n> This is the **brain** of the workflow. It does the heavy lifting \u2014 finding real problems from real users, and then generating SaaS product ideas you can build. You don\u2019t need to write the ideas \u2014 the AI will suggest them based on actual market gaps.\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "54b0dda6-7e85-4476-98d7-e9da30ee98b3",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        840,
        -620
      ],
      "parameters": {
        "color": 5,
        "width": 400,
        "height": 800,
        "content": "## \ud83d\udfe8 **SECTION 3: Break Into Pieces & Save to Google Sheets**\n\n### \ud83d\udd27 Nodes: `Code` + `Google Sheets`\n\n| \u2699\ufe0f Node            | Name                              | Purpose                                                                                                        |\n| ------------------ | --------------------------------- | -------------------------------------------------------------------------------------------------------------- |\n| \ud83e\udde9 `Code`          | **Code: Split Opportunities**     | Takes the structured list of SaaS ideas and splits it into individual items (so they can be saved one by one). |\n| \ud83d\udcc4 `Google Sheets` | **Google Sheets: Log SaaS Ideas** | Automatically saves each product idea (name + description) into your connected spreadsheet.                    |\n\n### \ud83e\udde0 Beginner Tip:\n\n> This is where all your hard work **gets stored**. Every week, your sheet grows with new SaaS ideas automatically \u2014 perfect for product research, newsletters, or startup launches.\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "8c7e64de-a10b-4b9e-b3fa-fa48201322d2",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1320,
        -620
      ],
      "parameters": {
        "color": 7,
        "width": 380,
        "height": 240,
        "content": "## I\u2019ll receive a tiny commission if you join Bright Data through this link\u2014thanks for fueling more free content!\n\n### https://get.brightdata.com/1tndi4600b25"
      },
      "typeVersion": 1
    },
    {
      "id": "40cd0845-d3a7-4d31-b812-7a3c05b023f5",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1720,
        -680
      ],
      "parameters": {
        "color": 4,
        "width": 1300,
        "height": 320,
        "content": "=======================================\n            WORKFLOW ASSISTANCE\n=======================================\nFor any questions or support, please contact:\n    Yaron@nofluff.online\n\nExplore more tips and tutorials here:\n   - YouTube: https://www.youtube.com/@YaronBeen/videos\n   - LinkedIn: https://www.linkedin.com/in/yaronbeen/\n=======================================\n"
      },
      "typeVersion": 1
    },
    {
      "id": "685fe958-0080-4d51-84bf-7679e6b85925",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1720,
        -340
      ],
      "parameters": {
        "color": 4,
        "width": 1289,
        "height": 1798,
        "content": "## \ud83c\udf1f **Workflow: Market Gaps \u2192 SaaS Product Ideas \u2192 Google Sheet**\n\nThis n8n automation scrapes industry insights and converts them into real SaaS product ideas using AI \u2014 and then logs them in Google Sheets. It's fully automated, smart, and scalable.\n\n---\n\n## \ud83d\udfe9 **SECTION 1: Define What to Analyze**\n\n### \ud83d\udd01 Nodes: `Schedule Trigger` + `Edit Fields`\n\n| \ud83d\udd27 Node              | Name                          | Purpose                                                                                                                      |\n| -------------------- | ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |\n| \u23f0 `Schedule Trigger` | **Trigger: Run Weekly Check** | Starts this automation on a schedule (e.g., every Monday at 9 AM).                                                           |\n| \ud83d\udcdd `Edit Fields`     | **Set: Target Topic or URL**  | Manually input the industry, keyword, or trend you want to explore (like *\"AI in Healthcare\"* or *\"Sustainable Packaging\"*). |\n\n### \ud83e\udde0 Beginner Tip:\n\n> This section is where **you control the topic**. You don\u2019t need to write code \u2014 just input a keyword, and the system will go fetch all the useful insights for you later.\n\n---\n\n## \ud83d\udfe6 **SECTION 2: Discover Market Gaps with AI Agent**\n\n### \ud83e\udde0 Node: `AI Agent`\n\nSub-nodes: `OpenAI Chat Model`, `MCP Client (Bright Data)`, `Structured Output Parser`\n\n| \ud83e\udd16 Node                       | Name                             | Purpose                                                                                              |\n| ----------------------------- | -------------------------------- | ---------------------------------------------------------------------------------------------------- |\n| \ud83e\udde0 `AI Agent`                 | **AI Agent: Analyze Market Gap** | Main node that coordinates the scraping and insight generation.                                      |\n| \ud83c\udf10 `MCP Client`               | **Bright Data: Scraper Agent**   | Scrapes websites like Statista, Reddit, G2, etc., to find pain points, trends, and missing products. |\n| \ud83e\udde0 `OpenAI Chat Model`        | **LLM: Insight Generator**       | Summarizes scraped data and identifies potential product opportunities using GPT.                    |\n| \ud83e\uddfe `Structured Output Parser` | **Parser: JSON Output Builder**  | Converts messy AI output into clean, structured JSON (with product names and descriptions).          |\n\n### \ud83e\udde0 Beginner Tip:\n\n> This is the **brain** of the workflow. It does the heavy lifting \u2014 finding real problems from real users, and then generating SaaS product ideas you can build. You don\u2019t need to write the ideas \u2014 the AI will suggest them based on actual market gaps.\n\n---\n\n## \ud83d\udfe8 **SECTION 3: Break Into Pieces & Save to Google Sheets**\n\n### \ud83d\udd27 Nodes: `Code` + `Google Sheets`\n\n| \u2699\ufe0f Node            | Name                              | Purpose                                                                                                        |\n| ------------------ | --------------------------------- | -------------------------------------------------------------------------------------------------------------- |\n| \ud83e\udde9 `Code`          | **Code: Split Opportunities**     | Takes the structured list of SaaS ideas and splits it into individual items (so they can be saved one by one). |\n| \ud83d\udcc4 `Google Sheets` | **Google Sheets: Log SaaS Ideas** | Automatically saves each product idea (name + description) into your connected spreadsheet.                    |\n\n### \ud83e\udde0 Beginner Tip:\n\n> This is where all your hard work **gets stored**. Every week, your sheet grows with new SaaS ideas automatically \u2014 perfect for product research, newsletters, or startup launches.\n\n---\n\n## \u2705 **End Result**\n\nAt the end of the workflow:\n\n* You get a list of *validated SaaS product ideas*.\n* Based on real-world gaps found in forums, review sites, and industry reports.\n* Neatly logged into Google Sheets without touching code.\n\n---\n\n### \ud83d\udca1 Bonus Ideas to Extend This:\n\n* \ud83d\udce7 **Send a weekly summary email** using the Email node.\n* \ud83d\udd14 **Post ideas to Telegram or Slack** automatically.\n* \ud83e\udde0 **Send ideas to Airtable or Notion** for team-wide collaboration.\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "49e29106-4db0-4092-acc7-45b89c09925f",
      "name": "Auto-fixing Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserAutofixing",
      "position": [
        700,
        280
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "fdd453af-d136-481f-8f36-df4ee81cee32",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        680,
        500
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "cf5d6b3f-afeb-4eb4-b8a0-4b171c41418c",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        840,
        500
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"productOpportunities\": [\n    {\n      \"name\": \"User Feedback Aggregation Tool\",\n      \"description\": \"Aggregates reviews from multiple platforms and provides actionable insights for startups.\"\n    },\n    {\n      \"name\": \"Community-Driven Ideation Platform\",\n      \"description\": \"A space for users to submit ideas and feature requests, forming a feedback loop for product teams.\"\n    },\n    {\n      \"name\": \"AI-Powered Market Research Tool\",\n      \"description\": \"Synthesizes forum posts, reviews, and social media feedback to identify emerging SaaS opportunities.\"\n    },\n    {\n      \"name\": \"SaaS Idea Validation Service\",\n      \"description\": \"Offers surveys and expert guidance to help entrepreneurs validate SaaS concepts before development.\"\n    },\n    {\n      \"name\": \"SaaS Development Accelerator\",\n      \"description\": \"An incubator offering mentorship, tools, and funding to help build and scale multiple SaaS projects.\"\n    },\n    {\n      \"name\": \"SaaS Maintenance and Refinement Tool\",\n      \"description\": \"Continuously analyzes live user feedback to help existing SaaS products evolve and remain competitive.\"\n    }\n  ]\n}"
      },
      "typeVersion": 1.2
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "2f546a0c-fb6b-44a7-a9ca-5be56e11973d",
  "connections": {
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Auto-fixing Output Parser",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "LLM: Insight Generator": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent: Analyze Market Gap",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Set: Target Topic or URL": {
      "main": [
        [
          {
            "node": "AI Agent: Analyze Market Gap",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Auto-fixing Output Parser",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Auto-fixing Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "AI Agent: Analyze Market Gap",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Code: Split Opportunities": {
      "main": [
        [
          {
            "node": "Google Sheets: Log SaaS Ideas",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Trigger: Run Weekly Check": {
      "main": [
        [
          {
            "node": "Set: Target Topic or URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Bright Data: Scraper Agent": {
      "ai_tool": [
        [
          {
            "node": "AI Agent: Analyze Market Gap",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent: Analyze Market Gap": {
      "main": [
        [
          {
            "node": "Code: Split Opportunities",
            "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 contains community nodes that are only compatible with the self-hosted version of n8n.

Source: https://n8n.io/workflows/5970/ — 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

Note: This template is for self-hosted n8n instances only

Output Parser Structured, Google Sheets, Agent +6
AI & RAG

This workflow contains community nodes that are only compatible with the self-hosted version of n8n.

OpenAI Chat, N8N Nodes Mcp, Agent +3
AI & RAG

This workflow automatically monitors competitor pricing across multiple products and services to track market positioning and pricing strategies. It saves you time by eliminating the need to manually

OpenAI Chat, N8N Nodes Mcp, Agent +4
AI & RAG

This workflow contains community nodes that are only compatible with the self-hosted version of n8n.

OpenAI Chat, N8N Nodes Mcp, Agent +4
AI & RAG

This workflow automatically analyzes sales territory performance, comparing revenue, win rates, and activity across regions. Remove the guesswork from territory planning and drive balanced growth.

Agent, Gmail, Google Sheets +4