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.
When to use it
Section titled “When to use it”- 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.
How to set it up
Section titled “How to set it up”- Create a Google Sheet.
- In the sheet, open Extensions → Apps Script.
- Delete the code in the editor and paste the whole of the template from the
plugin’s folder:
docs/google/apps-script-template.gs. - 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.
- Copy the Web app URL (it starts with
https://script.google.com/). - In WordPress, go to Form Entries → Forms and edit the form.
- Tick Enable webhook for this form, choose Google Sheets (Free) as the Destination, paste the address into Webhook URL and select Save Form.
- 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.
What the sheet gets
Section titled “What the sheet gets”| Column | Contains |
|---|---|
timestamp | When the submission was sent |
entry_id | The entry’s number in Form Entries |
| One per field | The answer, headed with the field key |
…_file | For 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.
Options in the script
Section titled “Options in the script”The top of the script has a few settings:
| Setting | What it does | Default |
|---|---|---|
SHEET_ID | Write to another spreadsheet, by its ID. Empty means the sheet the script belongs to. | empty |
MAX_ROWS | Start a new tab when one reaches this many rows. 0 means no limit. | 0 |
LOG_ERRORS | Record problems on a tab named FRE_Errors. | true |
WEBHOOK_SECRET | The 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.
Limits and common problems
Section titled “Limits and common problems”- 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_ERRORSon, check theFRE_Errorstab. - 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.