Skip to content

Google Sheets

Promptless Forms can add every submission to a Google Sheet with no paid service in between. A small Google Apps Script, supplied with the plugin, receives the webhook and writes a row. Each form gets its own tab in the spreadsheet.

  • A shared lead list or sign-up sheet that people outside WordPress can see.
  • For chains of actions across several apps, Zapier or Make is easier; see Webhooks.
  1. Create a Google Sheet.
  2. In the sheet, open Extensions → Apps Script.
  3. Delete the code in the editor and paste the whole of the template from the plugin’s folder: docs/google/apps-script-template.gs.
  4. Save the script, then select Deploy → New deployment. Choose the type Web app, set Execute as to Me and Who has access to Anyone, and select Deploy. Approve the permissions Google asks for.
  5. Copy the Web app URL (it starts with https://script.google.com/).
  6. In WordPress, go to Form Entries → Forms and edit the form.
  7. Tick Enable webhook for this form, choose Google Sheets (Free) as the Destination, paste the address into Webhook URL and select Save Form.
  8. Send a test submission from the page. A tab named after the form ID appears with the submission as its first row.

Who has access must be Anyone so your site can reach the script without signing in to Google.

ColumnContains
timestampWhen the submission was sent
entry_idThe entry’s number in Form Entries
One per fieldThe answer, headed with the field key
…_fileFor each upload field, the uploaded file’s name

Headers are written from the first submission. A field added to the form later gets a new column the next time it is filled in. Dropdown, radio and checkbox answers arrive as their labels when the Destination is Google Sheets (Free).

The same Web app URL can serve every form on the site; each writes to its own tab.

The top of the script has a few settings:

SettingWhat it doesDefault
SHEET_IDWrite to another spreadsheet, by its ID. Empty means the sheet the script belongs to.empty
MAX_ROWSStart a new tab when one reaches this many rows. 0 means no limit.0
LOG_ERRORSRecord problems on a tab named FRE_Errors.true
WEBHOOK_SECRETThe form’s Webhook Secret, for signature checks.empty

After changing the script, publish it again with Deploy → Manage deployments, edit the deployment and choose New version. The address stays the same.

  • Nothing appears in the sheet. Check that the full Web app URL was pasted, that the deployment is active and set to Anyone, and look at the entry’s Webhook status in Form Entries. With LOG_ERRORS on, check the FRE_Errors tab.
  • Files are names only. The sheet holds the file name; the file stays on your site, where you download it from the entry.
  • Google’s limits apply, including run time and daily quotas on free accounts.