{"name":"Review Aggregator & Responder","nodes":[{"id":"schedule","type":"n8n-nodes-base.scheduleTrigger","name":"Check Reviews Hourly","position":[250,300],"parameters":{"rule":{"interval":[{"field":"hours","hoursInterval":1}]}}},{"id":"googleReviews","type":"n8n-nodes-base.httpRequest","name":"Fetch Google Reviews","position":[450,150],"parameters":{"url":"={{$env.GOOGLE_PLACES_API}}/reviews","method":"GET"}},{"id":"yelpReviews","type":"n8n-nodes-base.httpRequest","name":"Fetch Yelp Reviews","position":[450,300],"parameters":{"url":"={{$env.YELP_API}}/businesses/{{$env.YELP_BIZ_ID}}/reviews","method":"GET"}},{"id":"fbReviews","type":"n8n-nodes-base.httpRequest","name":"Fetch Facebook Reviews","position":[450,450],"parameters":{"url":"https://graph.facebook.com/{{$env.FB_PAGE_ID}}/ratings","method":"GET"}},{"id":"merge","type":"n8n-nodes-base.merge","name":"Combine All Reviews","position":[700,300],"parameters":{"mode":"append"}},{"id":"filterNew","type":"n8n-nodes-base.filter","name":"Only New Reviews","position":[900,300],"parameters":{"conditions":{"dateTime":[{"value1":"={{$json.created_at}}","operation":"after","value2":"={{$now.minus({hours:1}).toISO()}}"}]}}},{"id":"aiAnalyze","type":"n8n-nodes-base.openAi","name":"AI Sentiment & Response","position":[1100,300],"parameters":{"model":"gpt-4o","prompt":"Analyze this customer review. Provide: {sentiment: positive|neutral|negative, rating: number, key_points: string[], urgency: low|medium|high, draft_response: string}. The response should be warm, professional, and address specific points mentioned.\n\nReview from {{$json.platform}} ({{$json.rating}} stars):\n{{$json.text}}"}},{"id":"routeSentiment","type":"n8n-nodes-base.switch","name":"Route by Sentiment","position":[1300,300],"parameters":{"rules":[{"value":"={{$json.sentiment}}","output":0,"operation":"equal","value2":"negative"}]}},{"id":"escalate","type":"n8n-nodes-base.slack","name":"Escalate Negative","position":[1500,200],"parameters":{"channel":"#review-escalations","text":"NEGATIVE REVIEW ({{$json.rating}} star) on {{$json.platform}}:\n{{$json.text}}\n\nDraft response: {{$json.draft_response}}"}},{"id":"logResponse","type":"n8n-nodes-base.googleSheets","name":"Log Review & Response","position":[1500,400],"parameters":{"operation":"append","sheetId":"={{$env.REVIEWS_SHEET}}"}}],"connections":{"Check Reviews Hourly":{"main":[[{"node":"Fetch Google Reviews","type":"main","index":0},{"node":"Fetch Yelp Reviews","type":"main","index":0},{"node":"Fetch Facebook Reviews","type":"main","index":0}]]},"Fetch Google Reviews":{"main":[[{"node":"Combine All Reviews","type":"main","index":0}]]},"Fetch Yelp Reviews":{"main":[[{"node":"Combine All Reviews","type":"main","index":0}]]},"Fetch Facebook Reviews":{"main":[[{"node":"Combine All Reviews","type":"main","index":0}]]},"Combine All Reviews":{"main":[[{"node":"Only New Reviews","type":"main","index":0}]]},"Only New Reviews":{"main":[[{"node":"AI Sentiment & Response","type":"main","index":0}]]},"AI Sentiment & Response":{"main":[[{"node":"Route by Sentiment","type":"main","index":0}]]},"Route by Sentiment":{"main":[[{"node":"Escalate Negative","type":"main","index":0}],[{"node":"Log Review & Response","type":"main","index":0}]]}}}