Reviews & UGC
Post new 5-star reviews to Slack
Your worst reviews get found fast β a customer emails, a ticket opens, someone scrolls the dashboard. Your best ones just sit in Judge.me or Loox where nobody looks. This watches every review as it's submitted, catches the five-star ones, and posts them to a Slack channel with the product, the words, the customer, and the photo if there is one β so the team sees the wins as they happen, and the quotable ones get caught before they're buried. Build it yourself with the steps below, or we build it, wire the routing, and hand you the keys so you own it with no monthly fee. Free teardown of your current review setup first.
- Slack
- n8n
The manual way today
Reviews land inside whatever app collects them β Judge.me, Loox, Okendo, Yotpo, Stamped β and the only way anyone sees a good one is by opening that dashboard and scrolling. Nobody does that daily. So a five-star review with a specific story, a great line, or a photo of the product in someone's kitchen sits there unread, while the only reviews that ever reach a human are the ones angry enough to generate a ticket.
Two quiet costs. The first is the team: support and ops only ever see complaints, refunds, and 'where's my order?', and a queue that's all problems and no wins wears people down β the five-star 'this changed my morning routine' is exactly the thing that reminds everyone why the work matters, and almost nobody on the team ever reads it. The second is marketing: a genuinely good review is an ad headline, a product-page quote, and a UGC photo waiting to be used, but it expires in the dashboard because no one was watching when it came in. Neither shows up in a report, because nobody knows what they didn't see.
What running looks like
The moment a five-star review is submitted, a formatted card posts to a Slack channel: the rating, the product, the review title and body, the customer's first name, the photo if they attached one, and a link straight to the review in your app. Bare-rating 'great!' reviews can be filtered out so the channel stays the genuinely good ones. One review posts once. The ones worth reusing β a photo, a video, a quotable paragraph β get marked so whoever runs ads and the site can pull them. A person still decides what gets repurposed and asks permission; the automation just makes sure the win is seen the day it happens, not never.
01The build
How to build it
Decide what counts as a 'win' worth posting β on paper first
Needs a humanFive stars is the floor, not the whole rule. A five-star with no text ('great', 'love it', 'π') is technically a win but it's noise in a channel; a five-star with a paragraph, a photo, or a specific outcome is the thing you actually want the team to see and marketing to grab. Decide up front: post all five-stars, or only ones whose body is over a minimum length, or only ones with text or a photo. Write the rule down β rating is 5 AND body length is at least N β so the filter you build later is just typing in a decision you already made.
Get reviews out of your review app and into n8n
Runs itselfPick one of two intakes. If your review app emits a webhook on new reviews (Judge.me, Okendo, and Yotpo do; Loox via its API), create an n8n Webhook node and paste its production URL into the app's webhook settings β this is instant and the cleanest path. If the app has no webhook, use an n8n Schedule Trigger node (every 10β15 minutes) feeding an HTTP Request node that calls the app's reviews API and pulls everything since the last run. Either way, submit one test review and confirm the payload arrives in n8n with the star rating, product, body, reviewer name, and any photo URL attached. If the rating isn't in the payload, fix the intake before going further β every step after this filters on it.
Filter down to the five-star wins in n8n
Runs itselfAdd an n8n IF (or Filter) node right after the intake: keep only items where rating equals 5 (or equals your app's top value β some use a 0β100 scale). Then apply the on-paper rule from step one as a second condition β for example, body length is at least 40 characters β so a bare 'great!' drops out and a real testimonial passes. Set the false branch to do nothing. Filtering here, before you format or post, keeps the Slack channel the good stuff and means you're not building a card for a review you'll discard.
Fire once per review, and only on genuinely new ones
Runs itselfWebhooks and polling both repeat. Some apps re-emit a review event when a customer edits it or you reply; polling re-reads the same window every run. Add an n8n Remove Duplicates node keyed on the review's unique ID (or, for polling, store the highest review ID / latest created-at you've processed in n8n's static workflow data or a Google Sheet, and only pass newer ones). Trigger on the 'created' event, not 'updated', if your app splits them. Add a condition to skip your own staff and test emails so QA submissions never hit the channel. One review, one post.
Build the Slack card with everything to celebrate it
Runs itselfUse an n8n Set (Edit Fields) node to assemble the message from the payload, then post it. The simple version is the Slack node's 'Send Message' or an HTTP Request POST to a Slack Incoming Webhook with one text field: "βοΈβοΈβοΈβοΈβοΈ on {{ product }} β \"{{ review_body }}\" β {{ first_name }}". For a card people stop to read, send Block Kit blocks instead: the star line as a header, the review body as a quote, the product and customer as context, and an image block when the review carries a photo URL (Loox and Okendo include one in the payload). Add a button linking straight to the review in your app. Give whoever reads it the whole moment without opening another tab.
Post to a channel built for wins, not buried in general chat
Runs itselfCreate a Slack app (api.slack.com/apps β Create New App β From scratch), enable Incoming Webhooks, and add one to a dedicated channel β #wins, #five-star, or #reviews β somewhere the whole team sees it, not a busy ops channel where it scrolls away in a minute. Copy that webhook URL into the n8n node from the previous step; that single URL is the entire destination. Keep it out of any shared doc β anyone with the URL can post to the channel. Send your test review through and confirm the card lands looking the way you want before you turn the intake on for real.
Mark the ones worth reusing for ads and the site
Needs a humanThe five-star with a photo of the product in use, the video unboxing, the paragraph that reads like a headline β those are marketing assets, and this is where they surface. Route reviews that carry a photo or video to a second channel like #ugc-to-use, or add a π react convention so anyone can flag 'grab this for an ad'. The automation can surface and tag; it must not publish. Before any review or photo goes on the site, in an ad, or on social, a person confirms the customer agreed to it being reused β most review apps capture that consent, but check, because a happy customer is not the same as permission to put their face in a paid ad.
Glance at the channel weekly and adjust the bar
Needs a humanSpend five minutes a week on two questions: is the channel catching the genuinely good reviews without drowning in one-word 'nice!' posts, and is anyone actually doing something with the marked ones β reacting, replying to the customer, pulling a quote. If it's too noisy, raise the body-length minimum or require a photo; if great reviews are slipping past, loosen it. A wins channel nobody tunes either goes quiet or turns into wallpaper β the weekly glance is what keeps it something the team still looks at.
02The stack
What itβs built on
- n8n
- The glue that does the work: a Webhook or Schedule node takes reviews in from your review app, an IF node keeps only the five-star wins, a Remove Duplicates node makes sure each one posts once, and a Slack or HTTP Request node posts the card. Centering the logic here means it runs the same whether your reviews live in Judge.me, Loox, Okendo, or Yotpo β you only swap the intake.n8n is open-source and self-hostable for free, which covers this build end to end; their cloud tier just saves you running the server yourself. Either way this is a low-volume workflow, so it sits comfortably inside the smallest plan.
- Slack
- Where the win lands and the team sees it. A dedicated #wins or #reviews channel keeps five-star moments out of general chatter, Block Kit gives you the card with the photo and a deep link, and a second #ugc channel or a react convention is where the reusable ones get flagged for marketing.Incoming Webhooks and the Slack API are free on every plan, including the free tier β there's no upcharge to receive these posts.
03Questions
Before you build
Do I need n8n, or can I do this with just my review app?
A few review apps can post a basic new-review notification to Slack on their own, but they typically can't filter to only five-star, drop the one-word ones, de-dupe edits, attach the photo, or split the reusable ones to a marketing channel. n8n is what gives you that control, and it makes the build portable β if you switch from Loox to Okendo later, you swap the intake node and the rest stays. If your app does push reviews into Klaviyo as a metric, you can run the same logic there with a metric-triggered flow instead; n8n is the more flexible default.
Should every 5-star review post, even the one-word ones?
Usually not. A channel full of 'great!' and 'π' teaches the team to ignore it, and those reviews aren't useful to marketing anyway. The recipe filters on a minimum body length (or requires text or a photo) on top of the five-star check, so the channel stays the reviews worth reading. Start by requiring a sentence or two, watch the channel for a week, and loosen or tighten from there.
Can I post the customer's review photo in Slack too?
Yes, when the review carries one. Loox, Okendo, Yotpo, and most photo-review apps include the image URL in their webhook or API payload, so you add a Slack Block Kit image block pointing at that URL and the photo renders right in the card. Reviews without a photo just post the text card. This is also exactly what makes the marketing hand-off work β the photo's already in front of whoever runs ads.
Will editing a review or my reply to it re-post it?
Not if you set the de-dupe. The Remove Duplicates node keyed on the review ID means a given review posts exactly once even if your app re-emits an event when the customer edits their wording or you post a public reply. Triggering on the 'created' event rather than 'updated' (when your app separates them) covers the rest. One review, one post.
Can I send the best ones somewhere besides Slack β like to whoever runs ads?
That's the point of the last step. Reviews with a photo or video can route to a separate #ugc-to-use channel, or anyone can π a standout review to flag it for reuse. From there it's a short hop to dropping the strongest ones into a spreadsheet or Airtable that marketing pulls from. Just keep the publish decision human and confirm the customer agreed to their words or photo being reused before any of it goes into a paid ad or on the site.
Related recipes
Reviews & UGC
Flag negative reviews for follow-up
A one-star review is a customer telling you something's wrong in the most public place they have. This watches every review as it's submitted, catches the low ones, and drops them in a Slack channel with the rating, the product, what they wrote, and who they are β so someone reaches out while it still matters instead of finding it a week later in the app's dashboard. Build it yourself with the steps below, or we build it, wire the routing, and hand you the keys so you own it with no monthly fee. Free teardown of your current review setup first.
- Slack
- Klaviyo
Reviews & UGC
Trigger review requests after delivery
Most stores send their review email a fixed number of days after an order ships β which means it often lands before the customer has the product in hand. Here's how to trigger the ask on the actual delivery event instead, wait a sensible settle-in window, and only ask the people who aren't mid-return.
- Klaviyo
- Shopify
- ShipBob
Reviews & UGC
Collect photo and video UGC in Airtable
Your best content is already being made β customers shoot it and drop it in photo reviews, email replies, and DMs, where it dies. This pulls every photo and video into one Airtable library the moment it lands: the file attached, who sent it, which product, which source, and β the part most teams skip β whether you actually have the right to run it in an ad. Build it yourself with the steps below, or we build it on the accounts you already pay for and hand you the keys, so you own the whole thing with no monthly fee. Free teardown of where your UGC is currently leaking first.
- Airtable
- Klaviyo
- n8n
Reviews & UGC
Export product reviews to Google Sheets
Your reviews live inside Judge.me, Loox, Okendo, or Yotpo, where you can read them one at a time but can't easily pivot by product, filter to the angry ones, or hand marketing a list of quotable lines. This pipes every review β the ones you already have and every new one after β into a Google Sheet with a clean column per field, so you can sort, filter, pivot, and share them like any other data. Build it yourself with the steps below, or we build it, backfill your history, and hand you the keys so you own it with no monthly fee. Free teardown of your current review setup first.
- Google Sheets
- n8n