WordPress · Google Sheets · Forms

How to send WordPress form entries to Google Sheets

How I send WordPress form submissions to a Google Sheet as they arrive, so a sales team follows up from one live list. Plugin, Zapier and custom hook options.

Mohit Goyal 5 min read
How to send WordPress form entries to Google Sheets

To send WordPress form entries to Google Sheets, connect the form to the sheet with a form plugin add-on, a no-code tool such as Zapier or Make, or a small PHP hook that posts each submission to the sheet as it arrives. For Taxocity, a tax and compliance firm running paid ads, I wrote a PHP hook so every Bricks form submission lands in a Google Sheet. The team follows up from that one live list, and their CRM reads from it too.

Why send form entries to a Google Sheet?

Because leads hidden in the WordPress admin get followed up late, or not at all. Taxocity's brief was about the sales process more than the site. The team wanted to follow up on every enquiry fast and keep a record of who asked about what, without anyone logging into WordPress to find submissions.

A sheet solved that because it matched how the team already worked:

  • They already used Google Sheets every day.
  • Their CRM could read from a sheet.
  • A sheet can be sorted, filtered and shared with whoever is on follow-up that week.

I evaluated two alternatives first: a direct TeleCRM webhook and moving the forms to Forminator. The sheet won because it fitted the client's habits rather than a developer's preference.

What are the ways to connect WordPress forms to Google Sheets?

RouteHow it worksGood forTrade-off
Form plugin add-onThe plugin's own Google Sheets integrationTeams already on a plugin that offers oneTied to that plugin
Zapier or MakeA webhook or plugin trigger feeds a no-code workflowTeams who want to change the flow without a developerMonthly cost that grows with volume
Custom PHP hookCode runs on submit and posts the entry to the sheetBuilder forms, such as Bricks, and steady lead volumeNeeds a developer to maintain

On Taxocity the forms are Bricks Builder forms, so a PHP hook was the shortest path.

How does the custom hook route work?

Rendering diagram…

A simplified sketch of the idea, not the production code, using Bricks' custom form action and a Google Apps Script web app that appends a row:

php
add_action( 'bricks/form/custom_action', function ( $form ) {
  $fields = $form->get_fields();
  wp_remote_post( SHEET_ENDPOINT, [
    'timeout' => 10,
    'body'    => [
      'secret'  => SHEET_SECRET,
      'name'    => sanitize_text_field( $fields['form-field-name'] ?? '' ),
      'phone'   => sanitize_text_field( $fields['form-field-phone'] ?? '' ),
      'service' => sanitize_text_field( $fields['form-field-service'] ?? '' ),
      'page'    => esc_url_raw( wp_get_referer() ),
    ],
  ] );
} );

For this to run, the form's actions in Bricks must include Custom, which is what fires the hook. On the Google side, a short Apps Script checks the secret and appends the values as a new row. Field IDs differ on every form, so map them to your own, and define the endpoint and secret in wp-config.php rather than in the theme.

What should each row contain?

The minimum the team needs to act, plus enough context to prioritise:

  • Date and time, so the newest leads are at the top.
  • Name and contact details.
  • The service asked about. On Taxocity each service, such as GST filing, taxation and company registration, has its own page and its own call to action, so the sheet shows which service each lead came from.
  • The page URL, which tells you which ad or page produced the lead.
  • A status column the team fills in: contacted, quoted, won or lost.

How do you keep the setup reliable and secure?

  1. 1

    Keep a copy in WordPress or email

    If the request to the sheet fails, the lead still exists somewhere.

  2. 2

    Protect the endpoint

    Require a secret in every request and keep the endpoint URL out of public code.

  3. 3

    Limit sharing

    Only the people who follow up should have access. Leads are personal data.

  4. 4

    Validate on the server

    Sanitise every field before sending it, as in the sketch above.

  5. 5

    Test after changes

    Submit a test lead after any change to the form, plugins, caching or hosting.

Silent failures cost leads

A form that shows a thank-you message but never writes the row is the worst outcome, because nobody notices. On two client sites, a host cache layer swallowed submissions until PHP was upgraded from 8.0 to 8.3. Check the sheet, not just the thank-you message.

Can data flow the other way, from a sheet into WordPress?

Yes. On IPL Biologicals I set up bulk MRP updates from a sheet, so the marketing team updates prices across the store in one go instead of editing products one by one. The same principle applies in both directions: put the data where the team already works.

What else makes a lead form worth sending to a sheet?

Clean leads. If fake numbers are a problem, verify them before they reach the sheet, as I describe in how to add OTP phone verification to WordPress forms. If your team lives in HubSpot rather than Sheets, see how to add HubSpot forms to WordPress.

I build lead pages with Sheets, HubSpot or CRM integration through my landing pages with GA4, GTM and HubSpot service. Tell me where your team works and I will reply with a plan.

Frequently asked

Can WordPress send form entries to Google Sheets automatically?+

Yes. Many form plugins have a Google Sheets add-on, no-code tools such as Zapier and Make can connect them, or a small PHP hook can post each submission to the sheet. On Taxocity I used a PHP hook on the Bricks form.

Why use Google Sheets instead of a CRM?+

Use both if you can. On Taxocity the sheet is the integration point because the team already works in Google Sheets and their CRM reads from it. A sheet is easy to sort, filter and share with whoever is on follow-up that week.

Do I still keep entries in WordPress?+

It is a good idea. If the connection to the sheet fails, a copy in WordPress or an email notification means the lead is not lost.

Is it safe to put leads in a Google Sheet?+

It can be, with care. Share the sheet only with the people who follow up, protect the endpoint that writes to it, and mention the processing in your privacy policy.

Which is cheaper, Zapier or a custom hook?+

A custom hook has no monthly fee but needs a developer to write and maintain it. Zapier and Make charge by usage but anyone can change the setup. For a steady stream of leads on one form, a hook is often simpler to run.

Mohit Goyal

Written by Mohit Goyal

Senior Web Developer in Gurugram, India. 100+ fast, SEO-friendly sites shipped in 4+ years with Next.js, React and WordPress, including the procol.ai rebuild. Send me your next project.

Keep reading

Let's build

Have a site that needs to be fast, rank and convert?

Open to Work. Usually replies within a day.