# Log Netlify form submissions to Sheets and email the team

> Every contact and demo request from your Netlify site lands as a row in your tracking spreadsheet and as an email to your shared team inbox.

- Workflow type: code
- Services: Netlify, Google Sheets, Gmail
- Categories: Operations, Marketing
- Published: 2026-08-07

## What it does

- Watches your Netlify site and picks up every new form submission as it arrives.
- Adds a row to your tracking spreadsheet with the submission time, site, form, submitter name, email, and the full message.
- Emails your shared team inbox with those same details so nobody has to open the sheet to see what came in.
- Handles only your contact form and demo request form, and skips repeats so the same submission never lands twice.

## What you'll need

- A Netlify account with forms enabled on the site you want to track.
- A Google account and a spreadsheet to use as your tracking sheet.
- A Gmail account that can send to your shared team inbox.
- The names of the forms you want to track, exactly as they appear in Netlify.

## Prompt

Watch my Netlify site for new form submissions and log each one. Use a poll trigger on Netlify with the new_form_submission event so the workflow runs whenever a visitor submits a form. Netlify returns verified submissions only by default, so anything it has already flagged as spam never reaches this workflow. If the trigger payload does not carry every field I need, fetch the full record with Netlify List Form Submissions for the form the submission belongs to.

Only process submissions from two forms: the contact form and the demo request form. Check the form name on each incoming submission and end the run for anything else, so every other form on the site is ignored. Keep the list of accepted form names in one place at the top of the workflow so it is easy to edit later.

Before writing anything, make the append safe against replays. Read the existing submission ID column from the tracking sheet with Google Sheets Get Values and compare it against the ID of the incoming submission. If that ID is already present, end the run without writing a row and without sending an email. This is what keeps a retried or redelivered submission from producing a duplicate row.

For a submission that is genuinely new, append exactly one row to my Google Sheets tracking sheet using Append Values, with these columns in order: submission timestamp, site name, form name, submitter name, submitter email, the full message body, and the Netlify submission ID used for deduplication. Use the submission's own created timestamp from Netlify rather than the time the workflow happened to run. If a field is missing on a submission, write an empty cell instead of failing the run.

Once the row is written, send a plain notification email through Gmail with Send a Message to a shared team inbox. Put the form name and the submitter name in the subject line. In the body, include the same fields as plain text: submission timestamp, site name, form name, submitter name, submitter email, and the full message body. Send the email only after the sheet append has succeeded, so the notification always corresponds to a logged row.

Every step in this workflow is a fixed node. Do not summarize, classify, score, rewrite, or draft anything anywhere in it. The field mapping, the destination spreadsheet, and the notification inbox are all constant, and the only branching is the form name filter and the duplicate check.

## How to customize

- Change which forms are tracked. The contact form and demo request form are the defaults, but you can track any forms on your site or narrow it to one.
- Change where the notification goes. Point it at a shared inbox, a personal address, or several recipients at once.
- Change the columns. Add, remove, or reorder the spreadsheet fields to match how your team already tracks inbound requests.

## FAQ

### Will this log spam submissions?

No. Netlify filters submissions before they reach this workflow, so only the ones it has verified get written to your sheet and emailed to your team.

### What happens if the same submission comes through twice?

Nothing gets duplicated. Before adding a row, the workflow checks whether that submission is already in your sheet and skips it if it is, so a retry never creates a second row.

### Can I track more than two forms?

Yes. The form filter is a simple list you control, so you can add every form on your site, swap in different ones, or narrow it down to a single form.

### Does this work if my forms collect different fields?

Yes. You map whichever fields you collect into the columns you want. If a submission is missing a field, that cell is left blank instead of stopping the run.

### Do I need to be technical to set this up?

No. You connect your Netlify, Google Sheets, and Gmail accounts, choose your spreadsheet and the inbox to notify, and name the forms you care about.

Use this prompt in General Input: https://www.generalinput.com/prompts/log-netlify-form-submissions-to-sheets-and-email-the-team