Google Forms: one response per email
A Google Forms responses download (Responses → Download responses) from a form that collects email addresses.
Processed locally in your browser. File contents are not uploaded. No account needed.
Before and after
Made-up rows from the sample file, run through the same code Rote Workspace runs, when this page was built. Removed rows are struck through; changed cells are highlighted — point at one for its old value.
Original
| Row | Timestamp | Email Address | Your name | Which session? |
|---|---|---|---|---|
| 2 | 2026/09/01 9:14:02 AM GMT+1 | ana@example.com | Ana Silva | Morning |
| 3 (removed) | 2026/09/01 9:14:05 AM GMT+1 | Ana@Example.com (has spaces at its edges) | Ana Silva | Morning |
| 4 | 2026/09/01 10:02:40 AM GMT+1 | ben@example.com | Ben Cole | Afternoon, Evening |
| 5 | 2026/09/02 8:00:00 PM GMT+1 | cy@example.com | Cy Diaz | Evening |
Result
| Row | Timestamp | Email Address | Your name | Which session? |
|---|---|---|---|---|
| 2 | 2026/09/01 9:14:02 AM GMT+1 | ana@example.com | Ana Silva | Morning |
| 4 | 2026/09/01 10:02:40 AM GMT+1 | ben@example.com | Ben Cole | Afternoon, Evening |
| 5 | 2026/09/02 8:00:00 PM GMT+1 | cy@example.com | Cy Diaz | Evening |
3 rows × 4 columns after the fixes · was 4 × 4 · 2 cells changed
· marks a space at the start or end of a value. The dots are not in the data; they show spaces you would otherwise not see.
Why
People submit a form twice — a double click, a correction — and the two rows differ only by Timestamp, so they are not exact duplicates and stay in every count.
What it does
- Trim spaces in every columnOn the sample: 1 cell changed
- lower-case "Email Address"On the sample: 1 cell changed
- Remove duplicates: rows with the same "Email Address" (ignoring case, ignoring extra spaces, blank keys never match), keeping the first of each groupOn the sample: 1 row removed
Your file needs this column, spelled exactly: Email Address. If one is missing or renamed, the workflow tells you which step it breaks and does not run.
It keeps each address's first row in the file. Google does not promise the rows are in time order, so sort by Timestamp first if you want a different one.
How to use it
Download the workflow
A small .json file with the steps above — no data. Want to try it first? Use the sample file (made-up rows).
Open your export
In the Data Workspace, choose your file. It is processed in your browser, not uploaded.
Import, review, run
Workflow → Import, choose the file — or skip the download: under Workflow → Templates, press Check & open. Each step is checked against your columns; press Run on this file, then Download.