{"meta":{"instanceId":"workflow-2b3edd09","versionId":"1.0.0","createdAt":"2025-09-29T07:07:42.419631","updatedAt":"2025-09-29T07:07:42.419649","owner":"n8n-user","license":"MIT","category":"automation","status":"active","priority":"high","environment":"production"},"nodes":[{"id":"bd34c2fb-9892-408e-be1f-a25f6f9970ad","name":"Add your competitors here","type":"n8n-nodes-base.code","position":[1260,800],"parameters":{"jsCode":"return [\n  {\"competitor\":\"zendesk\"},\n  {\"competitor\":\"intercom\"},\n  {\"competitor\":\"dixa\"}\n]"},"typeVersion":2,"notes":"This code node performs automated tasks as part of the workflow."},{"id":"ec726fe0-e85f-47b3-8cd9-05b94fc5f8ab","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[1400,600],"parameters":{"color":7,"width":235.65210573476693,"height":396.04301075268825,"content":"Add your API key here\n\n1. Sign up here\n{{ $env.API_BASE_URL }}\n\n2. Get your API key\n\n3. Paste it the node"},"typeVersion":1,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"id":"fd7b88e5-ef30-488e-803e-aec43334c41b","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[460,460],"parameters":{"width":465,"height":342.8125,"content":"# Read me\nThis workflow monitor G2 reviews URLS. \n\nWhen a new review is published, it will: \n- trigger a Slack notification \n- record the review in Google Sheets\n\n\nTo install it, you'll need access to Slack, Google Sheets and ScrapingBee\n\n### Full guide here: {{ $env.WEBHOOK_URL }}"},"typeVersion":1,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"id":"925c9ce9-1691-47bd-b184-5532cfa85da5","name":"Execute workflow every day","type":"n8n-nodes-base.scheduleTrigger","position":[980,560],"parameters":{"rule":{"interval":[{"triggerAtHour":8}]}},"typeVersion":1.1,"notes":"This scheduleTrigger node performs automated tasks as part of the workflow."},{"id":"2dc9997d-fd94-4beb-b5be-8ec16b70f060","name":"Get G2 data with ScrapingBee","type":"n8n-nodes-base.httpRequest","position":[1460,800],"parameters":{"url":"{{ $env.API_BASE_URL }}","options":{"batching":{"batch":{"batchSize":3}}},"sendQuery":true,"queryParameters":{"parameters":[{"name":"api_key","value":"YOUR_API_KEY"},{"name":"url","value":"={{ $env.WEBHOOK_URL }}{{ $json.competitor }}/reviews?utf8=%E2%9C%93&order=most_recent "},{"name":"premium_proxy","value":"true"},{"name":"country_code","value":"us"},{"name":"stealth_proxy","value":"true"}]}},"typeVersion":4.1,"notes":"This httpRequest node performs automated tasks as part of the workflow."},{"id":"b7472e8d-5abb-489b-bf32-5d36e7bce5cc","name":"Get review section HTML","type":"n8n-nodes-base.html","position":[1680,800],"parameters":{"options":{},"operation":"extractHtmlContent","extractionValues":{"values":[{"key":"YOUR_CREDENTIAL_HERE","cssSelector":"div.paper.paper--white.paper--box.mb-2.position-relative.border-bottom","returnArray":true,"returnValue":"html"}]}},"typeVersion":1,"notes":"This html node performs automated tasks as part of the workflow."},{"id":"9ad1fb30-c388-4ad9-a299-9fb508b01a57","name":"Iterate on reviews","type":"n8n-nodes-base.itemLists","position":[1840,800],"parameters":{"options":{},"fieldToSplitOut":"divs"},"typeVersion":3,"notes":"This itemLists node performs automated tasks as part of the workflow."},{"id":"cb25b05d-2543-4d42-9c7e-2db5f534db2a","name":"Extract structured data","type":"n8n-nodes-base.html","position":[2020,800],"parameters":{"options":{},"operation":"extractHtmlContent","dataPropertyName":"divs","extractionValues":{"values":[{"key":"YOUR_CREDENTIAL_HERE","cssSelector":"div.d-f.mb-1"},{"key":"YOUR_CREDENTIAL_HERE","cssSelector":"div[itemprop=reviewBody]","returnValue":"html"},{"key":"YOUR_CREDENTIAL_HERE","attribute":"href","cssSelector":"a.td-n","returnValue":"attribute"},{"key":"YOUR_CREDENTIAL_HERE","attribute":"content","cssSelector":"meta[itemprop=ratingValue]","returnValue":"attribute"},{"key":"YOUR_CREDENTIAL_HERE","attribute":"href","cssSelector":"a.pjax","returnValue":"attribute"}]}},"typeVersion":1,"notes":"This html node performs automated tasks as part of the workflow."},{"id":"4b2d088c-afc8-4bd9-80e1-0ef78fe94597","name":"Convert Review HTML to Markdown","type":"n8n-nodes-base.markdown","position":[2200,800],"parameters":{"html":"={{ $json.reviewHtml }}","options":{},"destinationKey":"YOUR_CREDENTIAL_HERE"},"typeVersion":1,"notes":"This markdown node performs automated tasks as part of the workflow."},{"id":"0c03c9a2-0ee8-4700-bf9d-f07b01fd9590","name":"Get all past reviews","type":"n8n-nodes-base.googleSheets","position":[1260,460],"parameters":{"options":{},"sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"{{ $env.WEBHOOK_URL }}","cachedResultName":"Sheet1"},"documentId":{"__rl":true,"mode":"url","value":"{{ $env.WEBHOOK_URL }}"}},"typeVersion":4,"notes":"This googleSheets node performs automated tasks as part of the workflow."},{"id":"27d41c8f-694b-49bf-9ea7-24964e00b9b4","name":"Continue only if review is new","type":"n8n-nodes-base.merge","position":[2420,480],"parameters":{"mode":"combine","options":{},"joinMode":"keepNonMatches","mergeByFields":{"values":[{"field1":"reviewUrl","field2":"reviewUrl"}]},"outputDataFrom":"input2"},"typeVersion":2.1,"notes":"This merge node performs automated tasks as part of the workflow."},{"id":"f4574136-c4ab-44ce-bf06-17b3c487867c","name":"Send new review to Slack","type":"n8n-nodes-base.slack","position":[2760,480],"parameters":{"text":"=🚨 New review in G2\n\nRating: {{ $json[\"rating\"] }}\n<{{ $json[\"user_profile\"]}}|See user in G2>\n<{{$json[\"reviewUrl\"]}}|See review in G2>\n\nReview Content:\n{{ $json.review }}","select":"channel","channelId":{"__rl":true,"mode":"name","value":"g2_reviews"},"otherOptions":{"botProfile":{"imageValues":{"icon_url":"{{ $env.WEBHOOK_URL }}","profilePhotoType":"image"}},"includeLinkToWorkflow":false}},"typeVersion":2.1,"notes":"This slack node performs automated tasks as part of the workflow."},{"id":"09076f69-32a4-4ddf-a662-10c0c0e35e7f","name":"Add new review to Google Sheets","type":"n8n-nodes-base.googleSheets","position":[2760,700],"parameters":{"columns":{"value":{"date":"={{ $json.date }}","rating":"={{ $json.rating }}","review":"={{ $json.review }}","reviewUrl":"{{ $env.BASE_URL }}","user_profile":"={{ $json.user_profile }}"},"schema":[{"id":"date","type":"string","display":true,"required":false,"displayName":"date","defaultMatch":false,"canBeUsedToMatch":true},{"id":"rating","type":"string","display":true,"removed":false,"required":false,"displayName":"rating","defaultMatch":false,"canBeUsedToMatch":true},{"id":"review","type":"string","display":true,"required":false,"displayName":"review","defaultMatch":false,"canBeUsedToMatch":true},{"id":"user_profile","type":"string","display":true,"removed":false,"required":false,"displayName":"user_profile","defaultMatch":false,"canBeUsedToMatch":true},{"id":"reviewUrl","type":"string","display":true,"removed":false,"required":false,"displayName":"reviewUrl","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["reviewUrl"]},"options":{},"operation":"append","sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"{{ $env.WEBHOOK_URL }}","cachedResultName":"Sheet1"},"documentId":{"__rl":true,"mode":"url","value":"{{ $env.WEBHOOK_URL }}"}},"typeVersion":4,"notes":"This googleSheets node performs automated tasks as part of the workflow."}],"connections":{"Get G2 data with ScrapingBee":{"main":[[],[],[],[],[],[],[],[],[]]},"Get all past reviews":{"main":[[]]},"Send new review to Slack":{"main":[[]]},"Add new review to Google Sheets":{"main":[[]]}},"name":"Code Workflow","settings":{"executionOrder":"v1","saveManualExecutions":true,"callerPolicy":"workflowsFromSameOwner","errorWorkflow":null,"timezone":"UTC","executionTimeout":3600,"maxExecutions":1000,"retryOnFail":true,"retryCount":3,"retryDelay":1000},"description":"Automated workflow: Code Workflow. This workflow integrates 11 different services: stickyNote, httpRequest, itemLists, markdown, code. It contains 18 nodes and follows best practices for error handling and security.","notes":"Excellent quality workflow: Code Workflow. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}