AutomationFlowsAI & RAG › Generate Competitive Product Roadmap Reports with Gemini 2.5 Flash, Olostep…

Generate Competitive Product Roadmap Reports with Gemini 2.5 Flash, Olostep…

Original n8n title: Generate Competitive Product Roadmap Reports with Gemini 2.5 Flash, Olostep and Google Drive

ByYasser Sami @yassersami on n8n.io

Stop guessing what to build next. The Competitive Roadmap & Trend Arbitrage workflow acts as your automated R&D department. It compares your current product capabilities against real-time market data, competitor launches, and macro industry trends to identify "White Space"…

Event trigger★★★★☆ complexityAI-powered20 nodesForm TriggerN8N Nodes OlostepGoogle GeminiHTTP RequestGoogle Drive
AI & RAG Trigger: Event Nodes: 20 Complexity: ★★★★☆ AI nodes: yes Added:

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

This workflow follows the Form Trigger → Google Drive 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": "mHb0ll5xMypLPAPi",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Competitive Roadmap & Trend Arbitrage",
  "tags": [
    {
      "id": "xRJNyiRIpAsEzL8y",
      "name": "Olostep",
      "createdAt": "2026-01-31T11:17:46.807Z",
      "updatedAt": "2026-01-31T11:17:46.807Z"
    }
  ],
  "nodes": [
    {
      "id": "a6540ea8-e17d-4716-8632-5584947469ac",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        0,
        0
      ],
      "parameters": {
        "options": {},
        "formTitle": "Competitive Roadmap & Trend Arbitrage",
        "formFields": {
          "values": [
            {
              "fieldLabel": "industry",
              "placeholder": "Creator Economy / Solopreneur SaaS",
              "requiredField": true
            },
            {
              "fieldLabel": "top competitor",
              "placeholder": "Convert Kit (Kit)",
              "requiredField": true
            },
            {
              "fieldType": "textarea",
              "fieldLabel": "feature list"
            }
          ]
        }
      },
      "typeVersion": 2.5
    },
    {
      "id": "16046c1c-34d9-4351-8d6f-7e3599b09099",
      "name": "Research",
      "type": "n8n-nodes-olostep.olostepScrape",
      "position": [
        192,
        0
      ],
      "parameters": {
        "task": "=Search for {{ $json.industry }} trends, {{ $json['top competitor'] }} new features, and {{ $json.industry }} customer pain points forums.",
        "resource": "answer"
      },
      "credentials": {
        "olostepScrapeApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "3feb0949-3dfc-4846-8e2a-bb89b12d9414",
      "name": "Analyze and compare research data",
      "type": "@n8n/n8n-nodes-langchain.googleGemini",
      "position": [
        384,
        0
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "models/gemini-2.5-flash",
          "cachedResultName": "models/gemini-2.5-flash"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "role": "model",
              "content": "You are a Senior Product Strategist."
            },
            {
              "content": "=Analyze the provided market research and compare it against our current feature list.\n\nI. The Competitive Gap Identify 2 specific features or capabilities that our competitors have recently launched, or that customers are frequently demanding, which we currently lack. Rank them by 'Urgency' (High/Medium/Low).\n\nII. Market Trend Alignment Identify the top 2 macro trends in our industry (e.g., 'Shift toward local-first data' or 'Voice-only interfaces'). For each trend, state if our current product is 'Aligned', 'Lagging', or 'At Risk'.\n\nIII. The 'White Space' Opportunity Identify one 'Unmet Need'\u2014a problem that customers are complaining about across the industry that neither we nor our competitors have solved yet.\n\nProvide the output in structured Markdown. Be brutally honest and objective."
            },
            {
              "content": "=Research Data:\n{{ $json.result.result }}\n\nOur Feature List:\n{{ $('On form submission').item.json['feature list'] }}"
            }
          ]
        },
        "builtInTools": {}
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "202bf760-5c97-4def-898b-de7b0e3dcbd2",
      "name": "Product strategist",
      "type": "@n8n/n8n-nodes-langchain.googleGemini",
      "position": [
        672,
        0
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "models/gemini-2.5-flash",
          "cachedResultName": "models/gemini-2.5-flash"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "role": "model",
              "content": "You are a Senior Product Strategist."
            },
            {
              "content": "=Based on the identified Gaps and the 'White Space' opportunity, generate three strategic recommendations for our product roadmap:\n\nRecommendation 1: The 'Catch-Up' Play What is the single most important feature we need to build just to stay competitive with the current market leaders?\n\nRecommendation 2: The 'Trend Pivot' Suggest one modification to an existing feature that would align us better with the identified macro trends.\n\nRecommendation 3: The 'Leapfrog' Feature Propose a brand-new, innovative feature that solves the 'White Space' opportunity. This should be something that would allow us to jump ahead of the competition.\n\nProvide the output in clean Markdown without any intro/outro text."
            },
            {
              "content": "=Gap Analysis:\n{{ $json.content.parts.last().text }}"
            }
          ]
        },
        "builtInTools": {}
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "b3b839c4-3fb2-49d8-b85a-e7397d81b741",
      "name": "Report editor",
      "type": "@n8n/n8n-nodes-langchain.googleGemini",
      "position": [
        992,
        0
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "models/gemini-2.5-flash",
          "cachedResultName": "models/gemini-2.5-flash"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "role": "model",
              "content": "You are the Chief Product Officer."
            },
            {
              "content": "=Compile the following analysis and recommendations into a professional Strategic Product Roadmap & Market Opportunity Report.\n\nFormat the document with these headers:\n\nStrategic Intelligence Report: [Current Month/Year]\n\nMarket Landscape & Gap Analysis\n\n[Summarize the Competitive Gaps and Trend Alignment]\n\nIdentified 'White Space' Opportunity\n\n[Describe the unmet need that represents a market opening]\n\nRoadmap Recommendations\n\n[Include the Catch-Up, Trend Pivot, and Leapfrog recommendations]\n\nAction Plan\n\n[Provide a 2-sentence summary of what the engineering/product team should prioritize in the next 90 days]\n\nFormat the entire output as clean Markdown ready for a Google Docs Writer node. Do not include any meta-commentary. Do not include any additional text like \"markdown\" or something like that, just output the clean markdown."
            },
            {
              "content": "=\nIndustry: {{ $('On form submission').item.json.industry }}\n\nGap Analysis:\n{{ $('Analyze and compare research data').item.json.content.parts.last().text }}\n\nStrategic Recommendations:\n{{ $json.content.parts.last().text }}\n\nCurrent Date: {{ $now }}"
            }
          ]
        },
        "builtInTools": {}
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "4c104db5-2c4b-46e9-a451-753669f1326d",
      "name": "Markdown",
      "type": "n8n-nodes-base.markdown",
      "position": [
        0,
        288
      ],
      "parameters": {
        "mode": "markdownToHtml",
        "options": {
          "tables": true,
          "simplifiedAutoLink": true,
          "completeHTMLDocument": true
        },
        "markdown": "={{ $json.content.parts.last().text }}"
      },
      "typeVersion": 1
    },
    {
      "id": "27c8792d-e299-43c3-8be5-12dccd70dc81",
      "name": "Transfer HTML to Doc",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        528,
        288
      ],
      "parameters": {
        "url": "=https://www.googleapis.com/drive/v3/files/{{ $json.id }}/copy?fields=id,name,mimeType,webViewLink",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"name\":     \"Competitive Roadmap: {{ $('On form submission').item.json.industry }}\",\n  \"mimeType\": \"application/vnd.google-apps.document\"\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "googleDriveOAuth2Api"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "832a1974-a7be-4582-90ac-8e90922d94ec",
      "name": "Generate HTML Binary File",
      "type": "n8n-nodes-base.code",
      "position": [
        176,
        288
      ],
      "parameters": {
        "jsCode": "// Loop over alle items\nreturn $input.all().map(item => {\n  const html = $input.first().json.data;            // jouw HTML-string\n  // Zet \u2018m om naar een Buffer\n  item.binary = {\n    htmlFile: {\n      data: Buffer.from(html, 'utf8').toString('base64'),\n      mimeType: 'text/html',\n      fileName: 'output.html'\n    }\n  };\n  // Je hebt verder geen JSON nodig, dus ruim op:\n  return { json: {}, binary: item.binary };\n});"
      },
      "typeVersion": 2
    },
    {
      "id": "5cb8d70f-8b86-4dfd-abd5-ae5bf01eb4e9",
      "name": "Share link & email",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        880,
        288
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Transfer HTML to Doc').item.json.id }}"
        },
        "options": {
          "emailMessage": "=Hey,\n\nYour \"Competitive Roadmap: {{ $('On form submission').item.json.industry }}\" report is ready, find it at this link."
        },
        "operation": "share",
        "permissionsUi": {
          "permissionsValues": {
            "role": "reader",
            "type": "user",
            "emailAddress": "user@example.com"
          }
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "42384d6c-5e4e-4591-8045-82d9deeabc04",
      "name": "Delete html file",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        704,
        288
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Upload html file').item.json.id }}"
        },
        "options": {},
        "operation": "deleteFile"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "5f502318-ab30-462a-b32b-7fdc047cbf85",
      "name": "Upload html file",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        352,
        288
      ],
      "parameters": {
        "name": "working isa",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "root",
          "cachedResultUrl": "https://drive.google.com/drive",
          "cachedResultName": "/ (Root folder)"
        },
        "inputDataFieldName": "htmlFile"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "f271a6bd-a7c4-4c57-89ac-c743fd6a9ac7",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -832,
        -272
      ],
      "parameters": {
        "width": 704,
        "height": 1072,
        "content": "## Competitive Roadmap & Trend Arbitrage: Data-Driven Product Strategy\n\nStop guessing what to build next. The **Competitive Roadmap & Trend Arbitrage** workflow acts as your automated R&D department. It compares your current product capabilities against real-time market data, competitor launches, and macro industry trends to identify \"White Space\" opportunities\u2014high-value features that neither you nor your competitors have solved yet.\n\nBy leveraging **Gemini 2.5 Flash** and **Olostep**, it transforms raw research into a structured \"Strategic Intelligence Report\" complete with actionable roadmap recommendations.\n\n---\n\n### Who\u2019s it for?\n*   **Product Managers & CPOs:** Align your product roadmap with actual market shifts and competitor movements.\n*   **SaaS Founders:** Identify the \"Catch-Up\" plays needed to stay relevant and the \"Leapfrog\" features needed to dominate.\n*   **Product Marketers:** Gain a brutally honest assessment of how your product stacks up against industry macro-trends.\n*   **Strategy Consultants:** Deliver high-level, data-backed strategic reports to clients in minutes.\n\n### How it works / What it does\n1.  **Trigger:** Submit your **Industry**, **Top Competitor**, and **Current Feature List** via an n8n Form.\n2.  **Market Research:** **Olostep** scrapes the web for the latest industry trends, recent competitor feature launches, and customer pain point forums.\n3.  **Gap Analysis:** Gemini identifies specific capabilities you lack compared to leaders and ranks them by urgency.\n4.  **Trend Mapping:** The AI assesses if your product is \"Aligned,\" \"Lagging,\" or \"At Risk\" regarding top macro industry trends.\n5.  **Strategic Recommendations:** The workflow generates three specific plays:\n    *   **The Catch-Up:** Crucial features needed for parity.\n    *   **The Trend Pivot:** Existing feature modifications for better market alignment.\n    *   **The Leapfrog:** Innovative solutions for identified \"White Space\" opportunities.\n6.  **Reporting:** All insights are compiled into a professional Markdown document, converted to a Google Doc, and sent to your email.\n\n### How to set up\n1.  **Credentials:** Connect your API keys for **Google Gemini (PaLM)**, **Olostep**, and **Google Drive**.\n2.  **Form Trigger:** Activate the workflow to get your internal submission link.\n3.  **Email Configuration:** Ensure your email is updated in the \"Share link & email\" node to receive the final strategy reports.\n\n### Requirements\n*   **Google Gemini API:** For senior-level strategic analysis and product roadmapping.\n*   **Olostep API:** To conduct deep competitive research and trend discovery.\n*   **Google Drive (OAuth2):** For automated report storage and permission sharing.\n\n### How to customize the workflow\n*   **Competitive Depth:** Duplicate the **Research** node to scrape data for multiple competitors simultaneously for a broader market view.\n*   **Custom Frameworks:** Adjust the **Analyze and compare** prompt to use specific frameworks like SWOT, Blue Ocean Strategy, or Jobs-to-be-Done (JTBD).\n*   **Automated Backlog:** Connect this workflow to **Jira**, **Linear**, or **Productboard** to automatically push \"Catch-Up\" or \"Leapfrog\" features into your engineering backlog."
      },
      "typeVersion": 1
    },
    {
      "id": "dc9fe148-a35a-4691-b4f7-9a6f145989b1",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        304,
        176
      ],
      "parameters": {
        "color": 7,
        "width": 528,
        "height": 272,
        "content": "## Upload The File\nUploads the HTML file and converts the HTML file to google doc format and re-upload the file. And then deletes the old HTML file."
      },
      "typeVersion": 1
    },
    {
      "id": "a8236ac0-877e-4baa-8041-0ffd36561823",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -48,
        -128
      ],
      "parameters": {
        "color": 7,
        "width": 192,
        "height": 304,
        "content": "## Input form\nEnter the industry, top competitor, and your feature list"
      },
      "typeVersion": 1
    },
    {
      "id": "9b14fc83-5edd-490f-ad66-b6d7189f3866",
      "name": "Sticky Note10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        832,
        176
      ],
      "parameters": {
        "color": 7,
        "width": 224,
        "height": 272,
        "content": "## Share & Notify\nShares the doc and sends an email with the link."
      },
      "typeVersion": 1
    },
    {
      "id": "6a8fa209-556f-4adf-b570-861b4f9b4a26",
      "name": "Sticky Note11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -48,
        176
      ],
      "parameters": {
        "color": 7,
        "width": 352,
        "height": 272,
        "content": "## Markdown to HTML\nConverts Markdown content into HTML and creates an HTML binary file."
      },
      "typeVersion": 1
    },
    {
      "id": "88249501-5ade-495e-b075-714a04c606ca",
      "name": "Sticky Note12",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        144,
        -128
      ],
      "parameters": {
        "color": 7,
        "width": 192,
        "height": 304,
        "content": "## Olostep API\nSearches for industry trends, competitor new features, and customers pain points"
      },
      "typeVersion": 1
    },
    {
      "id": "c0664da5-5feb-4de4-893b-158723eb05f2",
      "name": "Sticky Note14",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        336,
        -128
      ],
      "parameters": {
        "color": 7,
        "width": 288,
        "height": 304,
        "content": "## Analyze and compare\nAnalyzes the provided market research and compares it against your current feature list."
      },
      "typeVersion": 1
    },
    {
      "id": "483358fc-da3f-4734-a327-42c0665d8ef4",
      "name": "Sticky Note15",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        624,
        -128
      ],
      "parameters": {
        "color": 7,
        "width": 320,
        "height": 304,
        "content": "## Product strategist\nGenerates three strategic recommendations for your product roadmap based on the identified Gaps and the 'White Space' opportunity."
      },
      "typeVersion": 1
    },
    {
      "id": "7df33c1b-938c-4407-b969-7a824fd0ad13",
      "name": "Sticky Note16",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        944,
        -128
      ],
      "parameters": {
        "color": 7,
        "width": 320,
        "height": 304,
        "content": "## Report editor\nCompiles the analysis and recommendations into a professional Strategic Product Roadmap & Market Opportunity Report."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "binaryMode": "separate",
    "executionOrder": "v1"
  },
  "versionId": "dca365b9-4dae-4cb5-a4b1-ad00c2320ac8",
  "connections": {
    "Markdown": {
      "main": [
        [
          {
            "node": "Generate HTML Binary File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Research": {
      "main": [
        [
          {
            "node": "Analyze and compare research data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Report editor": {
      "main": [
        [
          {
            "node": "Markdown",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Delete html file": {
      "main": [
        [
          {
            "node": "Share link & email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload html file": {
      "main": [
        [
          {
            "node": "Transfer HTML to Doc",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "Research",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Product strategist": {
      "main": [
        [
          {
            "node": "Report editor",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Transfer HTML to Doc": {
      "main": [
        [
          {
            "node": "Delete html file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate HTML Binary File": {
      "main": [
        [
          {
            "node": "Upload html file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Analyze and compare research data": {
      "main": [
        [
          {
            "node": "Product strategist",
            "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

Stop guessing what to build next. The Competitive Roadmap & Trend Arbitrage workflow acts as your automated R&D department. It compares your current product capabilities against real-time market data, competitor launches, and macro industry trends to identify "White Space"…

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

Understand your customers before you build for them. This workflow, Market Segmentation: Buyer Persona Pain Point Report, automates the grueling process of primary market research. By scraping real-wo

Form Trigger, Google Gemini, N8N Nodes Olostep +3
AI & RAG

Stop spending hours manually repurposing long-form content. The Content Atomizer.json workflow takes a single article URL and automatically "atomizes" it into high-authority LinkedIn posts, Twitter (X

Form Trigger, Google Gemini, N8N Nodes Olostep +2
AI & RAG

This n8n template automatically generates high-quality sales battle cards for any prospect company using real-time research and AI. It analyzes company news, website content, and your product’s value

N8N Nodes Olostep, Google Gemini, Form Trigger +2
AI & RAG

Establish yourself as a thought leader by answering the questions that everyone else is ignoring. The Content Authority Roadmap workflow automates deep-dive research into Reddit, Quora, and niche foru

Form Trigger, N8N Nodes Olostep, Google Gemini +2
AI & RAG

This workflow automates the creation of AI-generated viral selfie images with celebrities using Nano Banana Pro Edit via RunPod, generates engaging social media captions, and publishes the content to

HTTP Request, Form Trigger, N8N Nodes Postiz +2