Log Netlify form submissions to Sheets and email the team

By General Input

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.

Integrations

  • Netlify
  • Google Sheets
  • Gmail

Type

Deterministic Code

Categories

  • Operations
  • Marketing

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.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageWin back LiveChat visitors whose chats went unansweredLet support send one-off Loops emails without an engineerStop cold emails to anyone with a live deal in PipedriveiMessage campaign console with pre-flight checks and delivery boardLinkedIn Ads budget pacing dashboard for every client accountFront desk appointment confirmation board for the next 3 daysGive your team Looker numbers without buying more seatsBuild audience segments from product usage and push to Loops