This workflow corresponds to n8n.io template #3610 — we link there as the canonical source.
This workflow follows the Chainllm → Form Trigger recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"nodes": [
{
"id": "578905af-9355-47ba-97c0-05bc9e69876c",
"name": "Sticky Note9",
"type": "n8n-nodes-base.stickyNote",
"position": [
-420,
-120
],
"parameters": {
"color": 4,
"width": 1280,
"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=======================================\nBright Data Docs: https://docs.brightdata.com/introduction\n"
},
"typeVersion": 1
},
{
"id": "b54542b4-0f68-4076-9ae9-817c1aee0c14",
"name": "Snapshot Progress",
"type": "n8n-nodes-base.httpRequest",
"position": [
2180,
300
],
"parameters": {
"url": "=https://api.brightdata.com/datasets/v3/progress/{{ $('HTTP Request- Post API call to Bright Data').item.json.snapshot_id }}",
"options": {},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer <YOUR_BRIGHT_DATA_API_KEY>"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "8ffd290a-1cc7-4cc9-86a3-397108f8584b",
"name": "Sticky Note10",
"type": "n8n-nodes-base.stickyNote",
"position": [
3240,
80
],
"parameters": {
"width": 195,
"height": 646,
"content": "In this workflow, I use Google Sheets to store the results. \n\nYou can use my template to get started faster:\n\n1. [Click on this link to get the template](https://docs.google.com/spreadsheets/d/1Zi758ds2_aWzvbDYqwuGiQNaurLgs-leS9wjLWWlbUU/edit?usp=sharing)\n2. Make a copy of the Sheets\n3. Add the URL to this node \n\n\n"
},
"typeVersion": 1
},
{
"id": "d564fdb9-06f6-42c4-96d6-9512fa7217ca",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
1200,
380
],
"parameters": {
"width": 220,
"height": 440,
"content": "Add your competitors Trustpilot Link here.\n"
},
"typeVersion": 1
},
{
"id": "8873b276-72db-42cd-8860-1327714d701b",
"name": "On form submission - Discover Jobs",
"type": "n8n-nodes-base.formTrigger",
"position": [
1260,
520
],
"parameters": {
"options": {},
"formTitle": "Please Paste The URL of Your Trustpilot competitor",
"formFields": {
"values": [
{
"fieldLabel": "Competitor TRUSTPILOT URL (include https://www.trsutpilot.com/review/",
"placeholder": "https://www.trustpilot.com/review/www.nike.com",
"requiredField": true
},
{
"fieldType": "dropdown",
"fieldLabel": "Please select the time frame of reviews you'd like. If it's a big brand go with 30 days",
"fieldOptions": {
"values": [
{
"option": "Last 30 days"
},
{
"option": "Last 3 months"
},
{
"option": "Last 6 months"
},
{
"option": "Last 12 months"
}
]
}
}
]
}
},
"typeVersion": 2.2
},
{
"id": "2396fb4f-e3da-4712-b6b5-93704fa69672",
"name": "HTTP Request- Post API call to Bright Data",
"type": "n8n-nodes-base.httpRequest",
"position": [
1560,
380
],
"parameters": {
"url": "https://api.brightdata.com/datasets/v3/trigger",
"method": "POST",
"options": {},
"jsonBody": "=[\n {\n \"url\": \"{{ $json['Competitor TRUSTPILOT URL (include https://www.trsutpilot.com/review/'] }}\",\n \"date_posted\": \"{{ $json['Please select the time frame of reviews you\\'d like. If it\\'s a big brand go with 30 days'] }}\"\n }\n]",
"sendBody": true,
"sendQuery": true,
"sendHeaders": true,
"specifyBody": "json",
"queryParameters": {
"parameters": [
{
"name": "dataset_id",
"value": "gd_lm5zmhwd2sni130p"
},
{
"name": "include_errors",
"value": "true"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer <YOUR_BRIGHT_DATA_API_KEY>"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "c90b0e25-c009-4321-9c38-7ce895d78f3f",
"name": "Wait - Polling Bright Data",
"type": "n8n-nodes-base.wait",
"position": [
1940,
300
],
"parameters": {
"unit": "minutes",
"amount": 2
},
"executeOnce": false,
"typeVersion": 1.1
},
{
"id": "ac37b7e2-04fb-4f04-96f6-c77aa282dc8e",
"name": "If - Checking status of Snapshot - if data is ready or not",
"type": "n8n-nodes-base.if",
"position": [
2380,
300
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "7932282b-71bb-4bbb-ab73-4978e554de7e",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "running"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "572ea592-8fd6-4be5-825b-83b0a7a11556",
"name": "HTTP Request - Getting data from Bright Data",
"type": "n8n-nodes-base.httpRequest",
"position": [
2660,
320
],
"parameters": {
"url": "=https://api.brightdata.com/datasets/v3/snapshot/{{ $('HTTP Request- Post API call to Bright Data').item.json.snapshot_id }}",
"options": {},
"sendQuery": true,
"sendHeaders": true,
"queryParameters": {
"parameters": [
{
"name": "format",
"value": "json"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer <YOUR_BRIGHT_DATA_API_KEY>"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "03c7bfd2-6ae5-4455-8db9-df4858af9417",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1880,
160
],
"parameters": {
"color": 4,
"width": 940,
"height": 360,
"content": "Bright Data Getting Reviews\n"
},
"typeVersion": 1
},
{
"id": "f68ece0c-6061-4204-8c90-b9dba3dae242",
"name": "Basic LLM Chain",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
4160,
380
],
"parameters": {
"text": "=Read the following bad reviews, these are reviews of our competitors:\n{{ $json.Aggregated_reviews }}\n\n---\nAfter reading them, summarize their weakest points.\nDon't mention the competitor name.\n\nWrite 3 different ads copy for our Facebook ads campaign, addressing these concerns",
"promptType": "define"
},
"typeVersion": 1.6
},
{
"id": "d07aa5c9-c0b0-440d-b9a8-21b5be269db3",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
4260,
600
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-5.5"
},
"options": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "0dceb7f9-7133-40cd-87c7-7b786e104a2f",
"name": "Send Summary To Marketers",
"type": "n8n-nodes-base.gmail",
"position": [
4800,
400
],
"parameters": {
"sendTo": "user@example.com",
"message": "=Based on the following Trustpilot page: \n{{ $('On form submission - Discover Jobs').item.json['Competitor TRUSTPILOT URL (include https://www.trsutpilot.com/review/'] }}\n\nHere is a summary of recent complaints including ideas for ad copy:\n{{ $json.text }}\n-----------------------------\n\nI'm also attaching a break down of all recent complaints {{ $('Aggregating all filtered reviews').item.json.Aggregated_reviews }}\n",
"options": {},
"subject": "=Summary of Complaints of competitor: {{ $('On form submission - Discover Jobs').item.json['Competitor TRUSTPILOT URL (include https://www.trsutpilot.com/review/'] }}",
"emailType": "text"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "14516602-fe16-4a1f-8ada-690a4188429d",
"name": "Filtering only bad reviews",
"type": "n8n-nodes-base.filter",
"position": [
3520,
380
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "or",
"conditions": [
{
"id": "7aaa3c61-27d5-4165-aaf3-4783d0ef0db0",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.review_rating }}",
"rightValue": "1"
},
{
"id": "7aab561d-2454-4d4b-a5d6-51c0582ea85b",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.review_rating }}",
"rightValue": "2"
}
]
},
"looseTypeValidation": true
},
"typeVersion": 2.2
},
{
"id": "a93f9763-4eaa-4654-9bb1-93a1c8b468f9",
"name": "Aggregating all filtered reviews",
"type": "n8n-nodes-base.aggregate",
"position": [
3780,
380
],
"parameters": {
"options": {},
"fieldsToAggregate": {
"fieldToAggregate": [
{
"renameField": true,
"outputFieldName": "Aggregated_reviews",
"fieldToAggregate": "review_content"
}
]
}
},
"typeVersion": 1
},
{
"id": "effec41f-a19f-48c7-a540-ec69968850ee",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
4120,
140
],
"parameters": {
"width": 360,
"height": 820,
"content": "Adjust This Prompt with:\n1. Add info about your company and offer.\n\n2. The template requires the LLM to generate ad copy, but you can change it to any marketing material you'd like.\nExamples:\n- Suggest ideas for FAQ\n- Suggest copy for UGC scripts\n- Suggest copy for Add to cart email flow etc\n\n"
},
"typeVersion": 1
},
{
"id": "e9bf2453-8f98-4d43-ac0c-f3e4b45787c9",
"name": "Google Sheets - Adding All Reviews",
"type": "n8n-nodes-base.googleSheets",
"position": [
3280,
380
],
"parameters": {
"columns": {
"value": {},
"schema": [
{
"id": "company_name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "company_name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "review_id",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "review_id",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "review_date",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "review_date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "review_rating",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "review_rating",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "review_title",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "review_title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "review_content",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "review_content",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "is_verified_review",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "is_verified_review",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "review_date_of_experience",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "review_date_of_experience",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "reviewer_location",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "reviewer_location",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "reviews_posted_overall",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "reviews_posted_overall",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "review_replies",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "review_replies",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "review_useful_count",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "review_useful_count",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "reviewer_name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "reviewer_name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "company_logo",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "company_logo",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "url",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "company_overall_rating",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "company_overall_rating",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "is_verified_company",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "is_verified_company",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "company_total_reviews",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "company_total_reviews",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "5_star",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "5_star",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "4_star",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "4_star",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "3_star",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "3_star",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "2_star",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "2_star",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "1_star",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "1_star",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "company_about",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "company_about",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "company_phone",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "company_phone",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "company_location",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "company_location",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "company_country",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "company_country",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "breadcrumbs",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "breadcrumbs",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "company_category",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "company_category",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "company_id",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "company_id",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "company_website",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "company_website",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "company_other_categories",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "company_other_categories",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "review_url",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "review_url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "date_posted",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "date_posted",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "timestamp",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "timestamp",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "input",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "input",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "autoMapInputData",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Zi758ds2_aWzvbDYqwuGiQNaurLgs-leS9wjLWWlbUU/edit#gid=0",
"cachedResultName": "input"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1Zi758ds2_aWzvbDYqwuGiQNaurLgs-leS9wjLWWlbUU",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Zi758ds2_aWzvbDYqwuGiQNaurLgs-leS9wjLWWlbUU/edit?usp=drivesdk",
"cachedResultName": "NoFluff-N8N-Sheet-Template- Trust PIlot Reviews Scraping WIth Bright Data"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.3,
"alwaysOutputData": true
},
{
"id": "a3911ad6-be39-4bba-9b1c-96c5a7017da4",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-400,
220
],
"parameters": {
"width": 860,
"height": 380,
"content": "### Scrape Trustpilot Reviews Using Bright Data for Winning Ad Insights\n\nThis **n8n workflow** scrapes Trustpilot reviews of a specified competitor using **Bright Data's dataset API**. Users input the competitor's Trustpilot URL and select a timeframe (30 days, 3 months, 6 months, or 12 months) via an n8n form.\n\n**Workflow steps:**\n\n- Sends a request to Bright Data to fetch Trustpilot reviews based on user input.\n- Polls Bright Data until the dataset is ready.\n- Retrieves the reviews and logs them into a Google Sheet.\n- Filters the results to isolate negative reviews (ratings of 1 or 2 stars).\n- Aggregates negative reviews into summarized text.\n- Uses OpenAI's GPT-5.5 to analyze competitor weaknesses and generate three Facebook ad copy variations addressing these pain points.\n- Emails the summary, including suggested ad copy and aggregated reviews, to the marketing team.\n"
},
"typeVersion": 1
}
],
"connections": {
"Basic LLM Chain": {
"main": [
[
{
"node": "Send Summary To Marketers",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "Basic LLM Chain",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Snapshot Progress": {
"main": [
[
{
"node": "If - Checking status of Snapshot - if data is ready or not",
"type": "main",
"index": 0
}
]
]
},
"Filtering only bad reviews": {
"main": [
[
{
"node": "Aggregating all filtered reviews",
"type": "main",
"index": 0
}
]
]
},
"Wait - Polling Bright Data": {
"main": [
[
{
"node": "Snapshot Progress",
"type": "main",
"index": 0
}
]
]
},
"Aggregating all filtered reviews": {
"main": [
[
{
"node": "Basic LLM Chain",
"type": "main",
"index": 0
}
]
]
},
"Google Sheets - Adding All Reviews": {
"main": [
[
{
"node": "Filtering only bad reviews",
"type": "main",
"index": 0
}
]
]
},
"On form submission - Discover Jobs": {
"main": [
[
{
"node": "HTTP Request- Post API call to Bright Data",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request- Post API call to Bright Data": {
"main": [
[
{
"node": "Wait - Polling Bright Data",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request - Getting data from Bright Data": {
"main": [
[
{
"node": "Google Sheets - Adding All Reviews",
"type": "main",
"index": 0
}
]
]
},
"If - Checking status of Snapshot - if data is ready or not": {
"main": [
[
{
"node": "Wait - Polling Bright Data",
"type": "main",
"index": 0
}
],
[
{
"node": "HTTP Request - Getting data from Bright Data",
"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.
gmailOAuth2googleSheetsOAuth2ApiopenAiApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
(Trustpilot + Bright Data + GPT-5.5)
Source: https://n8n.io/workflows/3610/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
The workflow runs every hour with a randomized delay of 5–20 minutes to help distribute load. It records the exact date and time a lead is emailed so you can track outreach. Follow-ups are automatical
This workflow is perfect for graphic designers, creative agencies, marketing teams, or freelancers who regularly use AI-generated images in their projects. It's specifically beneficial for teams that
This n8n template automates targeted lead discovery, AI-driven data structuring, and personalized cold-email sending at controlled intervals. It’s ideal for sales teams, founders, and agencies that wa
Workflow 3610. Uses httpRequest, formTrigger, chainLlm, lmChatOpenAi. Event-driven trigger; 18 nodes.
Fill the Form Enter the Amazon product URL to analyze competitor reviews. Trigger Bright Data Scraper Bright Data scrapes Amazon reviews based on the provided URL. Wait for Snapshot Completion Periodi