n8n-workflows/workflows/3610_workflow_3610.json
2025-05-14 11:58:29 +03:00

952 lines
28 KiB
JSON

{
"meta": {
"instanceId": "1eadd5bc7c3d70c587c28f782511fd898c6bf6d97963d92e836019d2039d1c79"
},
"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
],
"webhookId": "8d0269c7-d1fc-45a1-a411-19634a1e0b82",
"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
],
"webhookId": "8005a2b3-2195-479e-badb-d90e4240e699",
"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-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "MX2lQOZcGpmRvdVD",
"name": "OpenAi account 2"
}
},
"typeVersion": 1.2
},
{
"id": "0dceb7f9-7133-40cd-87c7-7b786e104a2f",
"name": "Send Summary To Marketers",
"type": "n8n-nodes-base.gmail",
"position": [
4800,
400
],
"webhookId": "6787416d-689c-46ee-a7b5-97edd1fd1a00",
"parameters": {
"sendTo": "youremail@gmail.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": {
"id": "TLJ5oxgGtoxdGOTZ",
"name": "Gmail account 2"
}
},
"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": {
"id": "4RJOMlGAcB9ZoYfm",
"name": "Google Sheets account 2"
}
},
"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-4o-mini 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
}
],
"pinData": {},
"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
}
]
]
}
}
}