send.webforms.toRead the docs →

Databases and spreadsheets

In development

Send form submissions to Google Sheets

A spreadsheet is still the fastest way to sort, filter and share a pile of submissions, and everyone on the team already knows how to use one. Google Forms gets you a sheet but not your own markup. This gets you both: your form, your styling, rows appended to your sheet.

The native Google Sheets destination is still being built. The steps below use a webhook, which works today and needs no change to your form once the adapter ships.

Get an endpointRead the docs

What will land in Google Sheets

The native adapter is still in progress. The webhook route below delivers the same data today.

Setup

  1. Prepare the sheet

    Create a header row whose labels match your form field names. Header matching is what keeps columns aligned as the form evolves.

  2. Add a webhook destination today

    Point a WebForms webhook at a Google Apps Script web app or a function using the Sheets API. Sample below.

  3. Switch to the native adapter when it lands

    The Google Sheets destination will connect with OAuth, let you pick a spreadsheet and tab, and map headers automatically.

Google Sheets example

Swap in your own endpoint and these run as-is.

Google Apps Script, deployed as a web app with access set to anyone. Paste the deployment URL into a webhook destination.

Code.gs
function doPost(e) {
  const body = JSON.parse(e.postData.contents);
  const sheet = SpreadsheetApp.getActiveSpreadsheet()
    .getSheetByName("Submissions");

  const headers = sheet
    .getRange(1, 1, 1, sheet.getLastColumn())
    .getValues()[0];

  // Match on header name so reordering columns never scrambles the data.
  const row = headers.map(function (h) {
    if (h === "Submitted at") return new Date();
    return body.data[h] || "";
  });

  sheet.appendRow(row);
  return ContentService.createTextOutput("ok");
}

Worth knowing

Google Sheets form FAQ

Today, deploy a small Apps Script web app and point a WebForms webhook destination at its URL. A native Sheets adapter with OAuth is in development.

Sending from your stack

The destination is set in the dashboard, so the form itself is the same plain POST everywhere. These guides have the markup for the common setups.

Send your next form submission to Google Sheets

Free for 300 submissions a month. Endpoint in under a minute, no card required.

Start free