Capture vendor status updates via tokenized email links and Google Sheets
Go to WorkflowDescription
Quick Overview
This workflow sends scheduled vendor status ping emails with one-click buttons, then captures responses via an n8n webhook and logs the selected status and timestamp to Google Sheets using a one-time token per ping cycle.
How it works
Runs every Monday at 8am on a schedule.
Reads all vendors from a Google Sheets “Vendors” tab and keeps only rows where status is set to Active.
Generates a unique token per vendor, builds four status-link URLs (On Track, At Risk, Delayed, Needs PM Input), and timestamps the ping.
Updates the matching vendor row in Google Sheets with the new token and ping timestamp and clears any prior response fields.
Sends an HTML email to each vendor via SMTP with four one-click status buttons that link back to the n8n webhook.
When a vendor clicks a button, the webhook validates the vendor_id, status value, and token against Google Sheets, writes the response status and timestamp back to the sheet (and clears the token), and returns either a confirmation page or an error page.
Setup
Create a Google Sheet with a “Vendors” tab that includes the required columns (including vendor_id, status, contact_email, ping_token, response_status, and timestamps).
Add a Google Sheets OAuth2 credential in n8n and replace YOUR_GOOGLE_SHEET_ID in all Google Sheets nodes.
Add an SMTP email credential (for example, Gmail SMTP with an app password) and set the sender address used for the email.
Set your public n8n webhook base URL and sender email in the Config code so the status links point to your production webhook URL.
Activate the workflow and use the webhook’s Production URL in the outgoing emails (not the Test URL).