# Send responses to Google Sheets

Keep a running sheet of your form's responses, one row each, updated on its own. This goes through an automation tool, so connect that first: [n8n](/guides/n8n/), [Zapier](/guides/zapier/) or [Make](/guides/make/).

**We wrote these steps from each tool's documentation, and haven't run them with a real Google account yet.**

## Set up your sheet

Create a sheet, with one column for each answer you want, plus these two: `Event ID` and `Received`. Put the names in the first row.

## Add the row

| Tool | Step to add | Map |
| --- | --- | --- |
| Zapier | **Google Sheets**, event **Create Spreadsheet Row** | Each column to a field under `data`, `fields` |
| Make | **Google Sheets**, the module that adds a row | Each column to a value under `data`, `fields` |
| n8n | **Google Sheets**, operation **Append Row**, with **Map Each Column Manually** | Each column to `{{ $json.body.data.fields.your_field }}` |

Map `Event ID` to the event's `id`, and `Received` to `data.submission.receivedAt`. Then send a test from Formerie, check the row, and delete it.

## Good to know

- **A delivery can arrive twice.** With n8n, use **Append or Update Row**, matching on `Event ID`, so a repeat updates its row. With the others, a filter on a lookup of `Event ID` does the same.
- **Test sends have `test` set to true.** Filter them out, as the tool's guide shows.
- **A sheet holds your visitors' answers.** Share it with care, and remember that removing a response in Formerie doesn't remove its row.
