AutomationFlowsAI & RAG › Automate Feature Request Collection & Analysis From Reviews to Jira with AI

Automate Feature Request Collection & Analysis From Reviews to Jira with AI

ByYaron Been @yaron-nofluff on n8n.io

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

Event trigger★★★★☆ complexityAI-powered16 nodesAgentJiraN8N Nodes McpOpenAI ChatOutput Parser AutofixingOutput Parser Structured
AI & RAG Trigger: Event Nodes: 16 Complexity: ★★★★☆ AI nodes: yes Added:

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

This workflow follows the Agent → OpenAI Chat 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": "FAL2gIZB1DbRSWZe",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "25 Gather Feature Requests",
  "tags": [],
  "nodes": [
    {
      "id": "ea6c476a-1bd8-4fca-be69-95ae7103d0e1",
      "name": "\ud83d\udd18 Start Manual Execution",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        0,
        0
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "30863bd5-2e0b-4f52-831f-43500fa124d1",
      "name": "\ud83d\udd8a\ufe0f Edit Target Site URL",
      "type": "n8n-nodes-base.set",
      "position": [
        200,
        0
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "2e6b2a54-7505-418c-a429-4429e2a4535c",
              "name": "URL",
              "type": "string",
              "value": "https://www.trustpilot.com/review/clickup.com"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "79e21868-a09d-4b05-b5ee-c96de87355bb",
      "name": "\ud83e\udd16 Scrape Reviews using Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        440,
        0
      ],
      "parameters": {
        "text": "=Extract review text, title, date and username (if any) from the following url. Make sure to extract only those reviews that are asking for functionality for better user experiance.\n\nURL: {{ $json.URL }}",
        "options": {},
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2
    },
    {
      "id": "93f540b0-8767-4fdb-8317-d86a56bd4a4b",
      "name": "\ud83e\udde9 Format Individual Reviews",
      "type": "n8n-nodes-base.code",
      "position": [
        860,
        0
      ],
      "parameters": {
        "jsCode": "// Get the array of reviews from the previous node's output\nconst reviews = items[0].json.output;\n\n// Return each review as a separate item so n8n can iterate over them\nreturn reviews.map(review => ({\n  json: review\n}));\n"
      },
      "typeVersion": 2
    },
    {
      "id": "a21702be-0720-4232-a283-ad2963ddd9ad",
      "name": "\ud83d\uddc2\ufe0f Create Feature Ticket in Jira",
      "type": "n8n-nodes-base.jira",
      "position": [
        1040,
        0
      ],
      "parameters": {
        "project": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "summary": "=Below are the feature requests from the users on trustpilot:\n\nTitle: {{ $json.title }}\nURL: {{ $json.url }}\nDate: {{ $json.date }}\nUsername: {{ $json.username }}\nFeature request: {{ $json.review_text }}",
        "issueType": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "additionalFields": {}
      },
      "typeVersion": 1
    },
    {
      "id": "5b761525-8484-4191-9206-ada550f0d494",
      "name": "\ud83c\udf10 Bright Data MCP Scraper",
      "type": "n8n-nodes-mcp.mcpClientTool",
      "position": [
        560,
        260
      ],
      "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": "8374ad84-6d94-4957-b071-8bd0dcddd151",
      "name": "\ud83e\udde0 OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        400,
        260
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "598209e8-3618-4c54-819a-27a862674742",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -40,
        -980
      ],
      "parameters": {
        "color": 5,
        "width": 380,
        "height": 1160,
        "content": "## \ud83e\udde9 **Section 1: Start and Target Setup**\n\n\ud83d\udce6 **Nodes Combined**:\n\n* `\ud83d\udd18 Start Manual Execution`\n* `\ud83d\udd8a\ufe0f Edit Target Site URL`\n\n### \ud83d\udd0d What Happens Here:\n\nThis section is where your workflow **begins** and gets the **input URL** of the review site.\n\n* \u2705 **Manual Trigger**:\n  Allows you to run this workflow by clicking \u201cExecute Workflow.\u201d Great for testing new URLs.\n\n* \u270d\ufe0f **Edit Field**:\n  You input the **URL of the review page**, such as:\n\n  * `https://www.g2.com/products/clickup/reviews`\n  * `https://www.trustpilot.com/review/clickup.com`\n\n### \ud83d\udca1 Beginner Tip:\n\nInstead of hardcoding URLs in code, this editable field makes it easy for **non-developers** to change input by just typing/pasting the review page.\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "77c6fff4-321b-4bea-893c-92da762d96b3",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        420,
        -1300
      ],
      "parameters": {
        "color": 3,
        "width": 320,
        "height": 1480,
        "content": "## \ud83e\udd16 **Section 2: Scrape and Structure User Reviews**\n\n\ud83d\udee0\ufe0f **Core Nodes**:\n\n* `\ud83e\udd16 Scrape Reviews using Agent`\n* `\ud83c\udf10 Bright Data MCP Scraper`\n* `\ud83e\udde0 OpenAI Chat Model (Optional)`\n* `\ud83e\uddfe Parse Structured Agent Output`\n\n### \ud83d\udd0d What Happens Here:\n\nThis section uses **AI + Bright Data** to fetch review content, extract important insights, and prepare structured output.\n\n* \ud83c\udf10 **Agent Node**:\n  Launches your custom scraper (via Bright Data MCP) to visit the site and collect reviews.\n\n* \ud83e\uddfe **Output Parser**:\n  Cleans up the output to return just the **structured review objects** like:\n\n  ```json\n  {\n    \"title\": \"...\",\n    \"username\": \"...\",\n    \"review_text\": \"...\",\n    \"date\": \"...\"\n  }\n  ```\n\n* \ud83e\udde0 **(Optional AI Model)**:\n  If used, this can:\n\n  * Classify reviews into categories (e.g., UI issue, billing issue)\n  * Summarize long reviews\n  * Extract common themes or keywords\n\n### \ud83d\udca1 Beginner Tip:\n\nThis is where the **heavy lifting happens** \u2014 the agent goes out and scrapes the content **so you don\u2019t have to copy-paste reviews manually.**\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "0e802510-132c-40ab-89c0-99c53e5b84ec",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        820,
        -1020
      ],
      "parameters": {
        "color": 6,
        "width": 360,
        "height": 1200,
        "content": "## \ud83e\uddfe **Section 3: Convert Reviews into Jira Tasks**\n\n\ud83e\udde9 **Final Nodes**:\n\n* `\ud83e\udde9 Format Individual Reviews` (Function Node)\n* `\ud83d\uddc2\ufe0f Create Feature Ticket in Jira`\n\n### \ud83d\udd0d What Happens Here:\n\nEach review gets **processed and pushed to Jira** as an individual ticket so your product team can track it.\n\n* \ud83d\udd04 **Split Function Node**:\n  Takes the list of 5+ reviews returned by the agent and **splits them one by one** so Jira receives **a single review per ticket**.\n\n* \ud83d\udccb **Jira Node**:\n  Sends the review content to **Jira Software**, creating a ticket like:\n\n  * **Summary**: `\"Feature Request: Better Dashboard Customization\"`\n  * **Description**: `\"James (Jul 24, 2024): 'It would be nice to see a simplified home screen and personalized dashboards.'\"`\n  * **Priority**: Can be assigned based on keyword frequency or sentiment.\n\n### \ud83d\udca1 Beginner Tip:\n\nYou\u2019re now **automatically turning feedback into action**, saving hours of reading and logging manually into Jira.\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "32241104-9e0f-4959-905b-598c1c24f59f",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1820,
        -980
      ],
      "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": "7ff8c929-3499-4bb8-85a6-263906eea08f",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1820,
        -640
      ],
      "parameters": {
        "color": 4,
        "width": 1289,
        "height": 2898,
        "content": "## \ud83c\udf1f Workflow Title:\n\n# **\ud83d\udce5 Gather & Prioritize Feature Requests into Jira (Trustpilot)**\n\n\n*\u201cAutomatically collect real user feedback and convert it into actionable Jira tasks using scraping and AI.\u201d*\n\n---\n\n## \ud83e\udde9 **Section 1: Start and Target Setup**\n\n\ud83d\udce6 **Nodes Combined**:\n\n* `\ud83d\udd18 Start Manual Execution`\n* `\ud83d\udd8a\ufe0f Edit Target Site URL`\n\n### \ud83d\udd0d What Happens Here:\n\nThis section is where your workflow **begins** and gets the **input URL** of the review site.\n\n* \u2705 **Manual Trigger**:\n  Allows you to run this workflow by clicking \u201cExecute Workflow.\u201d Great for testing new URLs.\n\n* \u270d\ufe0f **Edit Field**:\n  You input the **URL of the review page**, such as:\n\n  * `https://www.g2.com/products/clickup/reviews`\n  * `https://www.trustpilot.com/review/clickup.com`\n\n### \ud83d\udca1 Beginner Tip:\n\nInstead of hardcoding URLs in code, this editable field makes it easy for **non-developers** to change input by just typing/pasting the review page.\n\n---\n\n## \ud83e\udd16 **Section 2: Scrape and Structure User Reviews**\n\n\ud83d\udee0\ufe0f **Core Nodes**:\n\n* `\ud83e\udd16 Scrape Reviews using Agent`\n* `\ud83c\udf10 Bright Data MCP Scraper`\n* `\ud83e\udde0 OpenAI Chat Model (Optional)`\n* `\ud83e\uddfe Parse Structured Agent Output`\n\n### \ud83d\udd0d What Happens Here:\n\nThis section uses **AI + Bright Data** to fetch review content, extract important insights, and prepare structured output.\n\n* \ud83c\udf10 **Agent Node**:\n  Launches your custom scraper (via Bright Data MCP) to visit the site and collect reviews.\n\n* \ud83e\uddfe **Output Parser**:\n  Cleans up the output to return just the **structured review objects** like:\n\n  ```json\n  {\n    \"title\": \"...\",\n    \"username\": \"...\",\n    \"review_text\": \"...\",\n    \"date\": \"...\"\n  }\n  ```\n\n* \ud83e\udde0 **(Optional AI Model)**:\n  If used, this can:\n\n  * Classify reviews into categories (e.g., UI issue, billing issue)\n  * Summarize long reviews\n  * Extract common themes or keywords\n\n### \ud83d\udca1 Beginner Tip:\n\nThis is where the **heavy lifting happens** \u2014 the agent goes out and scrapes the content **so you don\u2019t have to copy-paste reviews manually.**\n\n---\n\n## \ud83e\uddfe **Section 3: Convert Reviews into Jira Tasks**\n\n\ud83e\udde9 **Final Nodes**:\n\n* `\ud83e\udde9 Format Individual Reviews` (Function Node)\n* `\ud83d\uddc2\ufe0f Create Feature Ticket in Jira`\n\n### \ud83d\udd0d What Happens Here:\n\nEach review gets **processed and pushed to Jira** as an individual ticket so your product team can track it.\n\n* \ud83d\udd04 **Split Function Node**:\n  Takes the list of 5+ reviews returned by the agent and **splits them one by one** so Jira receives **a single review per ticket**.\n\n* \ud83d\udccb **Jira Node**:\n  Sends the review content to **Jira Software**, creating a ticket like:\n\n  * **Summary**: `\"Feature Request: Better Dashboard Customization\"`\n  * **Description**: `\"James (Jul 24, 2024): 'It would be nice to see a simplified home screen and personalized dashboards.'\"`\n  * **Priority**: Can be assigned based on keyword frequency or sentiment.\n\n### \ud83d\udca1 Beginner Tip:\n\nYou\u2019re now **automatically turning feedback into action**, saving hours of reading and logging manually into Jira.\n\n---\n\n## \u2705 Why This Workflow is Powerful:\n\n| Benefit                       | Description                                                          |\n| ----------------------------- | -------------------------------------------------------------------- |\n| \u23f1\ufe0f **Time-Saving**            | No need to copy/paste from reviews \u2014 everything is automated.        |\n| \ud83e\udde0 **AI-Driven**              | Optional summarization and categorization using OpenAI.              |\n| \ud83d\udcca **Product Prioritization** | Focus on real user pain points based on what\u2019s actually said online. |\n| \ud83d\udcbb **No Code Required**       | All steps are configurable in n8n with drag-and-drop ease.           |\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "f29c4e05-8305-45e8-81a9-01b0441e5438",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1260,
        -1020
      ],
      "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": "1267372e-f1e9-49cb-812d-985d0f73c56f",
      "name": "Auto-fixing Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserAutofixing",
      "position": [
        720,
        260
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "83ca91a6-aae8-4c66-8265-016ddf461682",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        700,
        480
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "9a686cdb-d1bf-439a-85c1-984391421b37",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        860,
        480
      ],
      "parameters": {
        "jsonSchemaExample": "[\n  {\n    \"title\": \"Accessed blocked if you don't give in to their relentless demands for more money\",\n    \"url\": \"https://www.trustpilot.com/reviews/68545e853e1c35a6c56f3cdf\",\n    \"date\": \"2025-06-19\",\n    \"username\": \"Sam Rimmer\",\n    \"review_text\": \"Useful but limited during the free trial period, as soon as I paid it got worse and all I get now is messages saying I am being charged more for using a feature that wasn't kicked and appeared free. They are trying to charge me 4 times what I agreed to.\"\n  },\n  {\n    \"title\": \"Sneaky thievery\",\n    \"url\": \"https://www.trustpilot.com/reviews/6853a8b8f4a7682e23040c20\",\n    \"date\": \"2025-06-19\",\n    \"username\": \"Marisa Taylor\",\n    \"review_text\": \"I was very excited to join ClickUp due to its features and the supposed flexibility. The package I bought was supposedly for 15 users. Long story short, when members were added to the package it was not made clear that additional seats would be automatically debited from my account - without warning.\"\n  },\n  {\n    \"title\": \"Misleading Storage Limits, Buggy System, and Clueless Support\",\n    \"url\": \"https://www.trustpilot.com/reviews/684add985445fa4b95152b78\",\n    \"date\": \"2025-06-12\",\n    \"username\": \"Dovid Kaleky\",\n    \"review_text\": \"ClickUp talks a big game, but the actual experience is frustrating and unreliable. Here\u2019s the real issue: The system claims I\u2019ve used 80MB of file space, but I only have about 1MB of actual files. I even deleted a bunch... but despite being well under the supposed limit, ClickUp still acts like I\u2019m maxed out.\"\n  },\n  {\n    \"title\": \"Is it theft? ClickUp's \\\"downgrade\\\" money-taking\",\n    \"url\": \"https://www.trustpilot.com/reviews/682a3f93cc1817e84578bfb5\",\n    \"date\": \"2025-05-18\",\n    \"username\": \"CMJP\",\n    \"review_text\": \"ClickUp's \\\"downgrade\\\" policy looks very much like theft. As soon as you disable recurrent billing for an 'annual' plan, you lose all the time you prepaid for.\"\n  },\n  {\n    \"title\": \"Lots of functionality, not intuitive\",\n    \"url\": \"https://www.trustpilot.com/reviews/67fd967ce994c1648b704ffe\",\n    \"date\": \"2025-04-15\",\n    \"username\": \"James\",\n    \"review_text\": \"Looks like there is a lot of functionality here, but I find the user experience to be a bit clunky. It would be nice to see a simplified home screen and much more personalized dashboards.\"\n  }\n]\n"
      },
      "typeVersion": 1.2
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "06c4d683-3f3f-4ec3-81e2-cd251c275e87",
  "connections": {
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Auto-fixing Output Parser",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "\ud83e\udde0 OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "\ud83e\udd16 Scrape Reviews using Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Auto-fixing Output Parser",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Auto-fixing Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "\ud83e\udd16 Scrape Reviews using Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\udd18 Start Manual Execution": {
      "main": [
        [
          {
            "node": "\ud83d\udd8a\ufe0f Edit Target Site URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83c\udf10 Bright Data MCP Scraper": {
      "ai_tool": [
        [
          {
            "node": "\ud83e\udd16 Scrape Reviews using Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\udd8a\ufe0f Edit Target Site URL": {
      "main": [
        [
          {
            "node": "\ud83e\udd16 Scrape Reviews using Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83e\udde9 Format Individual Reviews": {
      "main": [
        [
          {
            "node": "\ud83d\uddc2\ufe0f Create Feature Ticket in Jira",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83e\udd16 Scrape Reviews using Agent": {
      "main": [
        [
          {
            "node": "\ud83e\udde9 Format Individual Reviews",
            "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/5968/ — 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

This workflow automatically monitors competitor social media engagement on LinkedIn to track their content performance and posting strategies. It saves you time by eliminating the need to manually che

Agent, N8N Nodes Mcp, Google Sheets +3
AI & RAG

This workflow automatically identifies and tracks backlink opportunities by analyzing competitor link profiles and finding potential linking websites. It saves you time by eliminating the need to manu

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.

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

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

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

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

OpenAI Chat, Agent, N8N Nodes Mcp +4