Quick Overview
This workflow runs hourly to read completed visits from Google Sheets, waits a configurable delay, and emails customers a Google review link with a one-click unsubscribe option via an n8n webhook, then records when each request was sent.
How it works
- Runs every hour on a schedule.
- Reads visit records from the “Visits” tab in Google Sheets.
- Filters for completed visits with valid emails that ended at least a set number of hours ago, are not older than the max age, have not been asked before, are not opted out, and are not processed during configured quiet hours.
- Sends an HTML review request email via SMTP/Email, including your Google review link and a personalized unsubscribe link.
- Updates the matching row in Google Sheets to set
review_requested_at for successfully sent emails.
- Serves an unsubscribe webhook that validates the visit and email from the link, marks
opt_out as TRUE for that email in Google Sheets, and returns an unsubscribe confirmation page.
Setup
- Create a Google Sheet with a “Visits” tab containing columns
visit_id, client_name, email, visit_end, timezone, status, review_requested_at, opt_out and ensure status uses completed for eligible visits.
- Add Google Sheets credentials and configure the spreadsheet URL/ID in both configuration steps used for sending and opt-out handling.
- Add SMTP/Email Send credentials and set the sender address, business name, review link, delay/max-age, timezone, and quiet hours in the configuration values.
- Activate the workflow, copy the Production webhook URL for the unsubscribe endpoint, and paste it into the
optout_url value used to generate unsubscribe links.