Log every WPForms entry to Google Sheets and Airtable
Every time someone fills out your WordPress form, drop a row in a master spreadsheet for analytics and a tagged record in Airtable for your ops team to triage.
Build me a deterministic code workflow that logs every new WPForms submission to both Google Sheets and Airtable in parallel. No AI reasoning anywhere in the pipeline — every step is fixed and the same fields go to the same places every time.
Trigger: WPForms Subscribe to Form Entries (webhook). The workflow runs the instant a configured form is submitted on my WordPress site. Make the WPForms form ID configurable.
Step 1 — Normalize. Take the incoming WPForms entry payload and map its nested field-ID object into a flat record using a configurable field-mapping table (WPForms field ID → friendly field name). Also capture the entry's submission timestamp and the form name. The result should be a single normalized object I can hand to both downstream steps.
Step 2a — Google Sheets Append Values. Append one row to a master submissions sheet. The spreadsheet ID, sheet tab name (A1 range like 'Submissions!A:Z'), and column order must be configurable. The row layout should be: timestamp, form name, then one column per mapped field in the order I define. Use valueInputOption USER_ENTERED so dates and numbers parse like a normal sheet entry.
Step 2b — Airtable Create Records. In parallel with the Sheets append, create one record in a configured Airtable base and table. Make the base ID, table ID or name, and the field-name mapping (normalized field → Airtable field name) configurable. Pass typecast: true so string values coerce into the right Airtable field types (number, date, single select, etc.). Include the submission timestamp and form name as their own fields, and default any 'Status' field to 'New' so the ops team has a clear starting point.
Run Sheets and Airtable as independent branches — if one fails, the other should still complete, and the workflow should surface a clear error per branch.
Configuration I should be able to edit without touching code: WPForms form ID, Google Sheets spreadsheet ID + sheet range + column order, Airtable base ID + table, and the field mapping shared across both destinations.
Additional information
What does this prompt do?
- Listens for new entries on a WPForms form and runs the moment someone submits.
- Adds one clean row per submission to a master Google Sheet, with a timestamp, the form name, and a column for each field.
- Creates a matching record in an Airtable base so your ops team can triage, assign, and tag the submission.
- Runs the same way every time, no AI guesswork, so analytics and ops always stay in sync.
What do I need to use this?
- A WordPress site running WPForms Pro with the Zapier addon enabled.
- A Google account with edit access to the spreadsheet you want to log entries to.
- An Airtable account with a base and table set up for incoming form submissions.
- Your form fields mapped to spreadsheet columns and Airtable fields so the data lands in the right place.
How can I customize it?
- Swap in the WPForms form you want to track, then point the workflow at any sheet tab and Airtable table you already use.
- Change the field mapping so each form question lands in the right spreadsheet column and Airtable field.
- Add extra columns or fields for things like submission source, campaign, or a default status like New for ops to start from.
Frequently asked questions
Does this work with the free version of WPForms?
Will old form entries get logged too, or only new ones?
Can I send entries to more than one Google Sheet or Airtable base?
What happens if my form has a new field I forgot to map?
Can my ops team add notes or tags in Airtable without breaking the workflow?
Stop copy-pasting WordPress form entries into spreadsheets.
Connect WPForms, Google Sheets, and Airtable once, and every new submission shows up in both places automatically.