/ Blog · all articles

How to collect WooCommerce reviews automatically: a breakdown of our n8n template

Oleh Marechko · July 28, 2026

The store sells but product pages stay empty. A walkthrough of a ready n8n template that emails the customer after a completed order, serves a one-time-token form, and files the review into WooCommerce for moderation.

Reviews on a product page move conversion more than most design changes. The problem is that they do not appear on their own: a happy customer simply moves on, while an unhappy one writes without being asked. The result is a page that is either empty or carries two complaints.

We built an n8n template for this and published it publicly. Below is how it works and where automations like it usually break.

Why built-in WooCommerce emails do not solve it

WooCommerce has transactional emails, but none of them asks for a review. Plugins that do usually run into three things.

  • Send timing. The email fires on order status, not on delivery. The customer gets "rate your purchase" while the parcel is still moving.
  • Friction. The link leads to the product page, where they must find the reviews tab, log in and write. Every step loses people.
  • No control. You cannot see who was contacted, who opened, who left a review — and without that you can neither measure nor repeat.

How the template works

The chain starts on a WooCommerce webhook for order.completed — when the order is closed, not merely paid. Seven steps follow.

  • Normalize the order. Webhook data is flattened into one shape, a unique form token and an expiry are generated, and a personal link is built from them.
  • Enrich with products. The WooCommerce REST API supplies images and permalinks for every line item, so the email shows exactly what was bought.
  • Write the registry row. Customer, order and token land in Google Sheets. That is the control layer plugins lack.
  • Shorten and delay. Optional: the URL is shortened through Dub.co and sending is deferred by a configured number of days.
  • Send the email. SMTP delivers an HTML email listing the products with a single button.
  • Serve the form. When the customer follows the link, the workflow validates the token against the sheet, checks expiry, and returns either the rating form or an error page.
  • Accept the review. On submit the token is validated again, each review is posted to WooCommerce with hold status, and the sheet is marked complete.

Three decisions worth explaining

A one-time token with an expiry

The simplest option is to put the order ID in the link. You must not: IDs are predictable, and anyone could leave a review in someone else's name by iterating numbers. The token is bound to a specific order, validated twice — on opening and on submitting — and expires. A month later the link from the email opens nothing.

A form instead of the product page

n8n serves the form itself, so the customer does not log into the shop or hunt for a tab. They press the button in the email and immediately see stars and a text field. Every removed step is conversion saved, and here it is the cheapest kind.

Hold status, not publish

Reviews go to moderation rather than straight to the page. That is deliberate: automated collection means you no longer read each review before it appears, and without moderation the first emotional rating lands on your product page unnoticed.

What you need to configure

  • WooCommerce REST API — Consumer Key and Secret with rights to read products and create reviews.
  • Google Sheets — a sheet with a ReviewForms tab and the required column headers.
  • SMTP — host, port, username and password for the sending account.
  • Config values — site URL, shop name, logo, your n8n URL, token expiry and optionally a Dub.co key.
  • A WooCommerce webhook on order.completed pointing at the workflow.

Also make sure the form and submit webhook paths match the ones set in the nodes — that is the most common reason a template "does not work" right after import.

Where automations like this break

  • The email arrives too early. "Completed" is often set on dispatch, not delivery. If shipping takes three days, the delay must be at least that, otherwise you are asking about something the person has not seen.
  • The shop domain lands in spam. Transactional mail and review requests from one domain without SPF, DKIM and DMARC degrade deliverability fast. Check that before launch, not after.
  • Nobody reads the moderation queue. Reviews on hold can sit unnoticed for months. Automating collection and forgetting publication is the most common way the whole system returns zero.
  • Duplicate emails. If an order changes status several times, the webhook can fire again. The sheet registry exists for exactly this — check whether you already wrote.

Who it fits

The template targets WooCommerce stores with a steady flow of completed orders and a need for social proof. On another platform the logic stays the same — only the integration layer changes: your store's API replaces the Woo API and the rest of the chain is untouched.

If order volume is low, writing to customers by hand is more honest — a personal note from the owner converts better than any automation. Automate once you have stopped doing it manually.

Get the template

The template is published in the n8n library and imports in one click: Collect post-purchase product reviews with WooCommerce, Google Sheets and SMTP.

If you need it adapted to another platform, made multilingual, or wired into a CRM — get in touch and we will look at your case.

n8nWooCommerceautomationreviewse-commerce

Looking to automate your business the same way? We will show you how on a free intro call.