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 lands in Google Sheets

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.

Send your next form submission to Google Sheets

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

Start free