Website leads to Google Sheets: every form submission becomes a new row

To save website leads to Google Sheets, nana800 uses two blocks: webhook receives the form data, and google sheet record appends it as a new row at the bottom of the sheet. Form fields go into the columns named in the first row of the sheet. One lead takes two basic block runs, 1,000 runs cost $1, and your balance is topped up to $3.50 for free every month.

Build it in the builder

What you can automate

  • All contact form leads collect in one sheet, where managers mark calls and status
  • Website orders are saved as rows with the name, phone number, total and order items
  • Survey or quiz answers land in columns, ready for filters and pivot tables
  • Online bookings go into one shared list the whole team can see
  • Data from any service that can send webhooks piles up in a sheet for reports

How to set it up

  1. 1

    Prepare the sheet

    Put column names in the first row of the sheet, for example Name, Phone, Comment. The block writes values under these names and never overwrites the first row. If a column is missing, the block adds it on the right, and on an empty sheet it writes the column names itself.

  2. 2

    Add the webhook trigger

    A webhook is an address your website sends the form data to. Create a scheme from the Google Sheet Record template, where webhook and google sheet record are already connected, or build it yourself. In webhook, choose POST in the method field and enter a path such as /lead in the path field.

  3. 3

    Give the block access to the sheet

    In the google sheet record block, choose how to sign in. OAUTH: press the connect button and sign in with a Google account that can open the sheet. SERVICE_ACCOUNT: enable the Google Sheets API in Google Cloud, create a service account, paste its email and private key, and share the sheet with that email as an editor.

  4. 4

    Map the form fields to columns

    Paste the full sheet address into the spreadsheet ID field, keep the sheet number at 0 for the first tab, and choose append_row. In the row data, put a column name on the left and a field from the webhook data on the right: form fields sit in body under the same names as in your form.

  5. 5

    Connect the form and test it

    Turn the scheme on, press API in the builder and copy the webhook address into your form settings or website code. In the Try it tab, send test JSON with your form fields, and a new row appears at the bottom of the sheet. If not, the hint from Google is in the error_message field of the block. An enabled scheme costs $0.0042 per hour.

Pricing

A run of a Webhook block costs up to $0.001, a run of a Google Sheets block costs $0.001. Every month the balance is topped up to $3.50 for free, an enabled scheme costs $0.0042 per hour.

Services in this connection

  • Webhook

    Receive website leads and service events with a webhook and answer requests with no server and no code. Free balance every month, no card needed.

  • Google Sheets

    Send leads and orders to Google Sheets without code: append rows, find, read and update them by row number. Free balance every month, no card needed.

Ready template

Frequently asked questions

Receiving a lead with the webhook and appending a row are two basic block runs, and 1,000 runs cost $1. An enabled scheme costs $0.0042 per hour. Your balance is topped up to $3.50 for free every month, no card needed. A scheme kept on around the clock for a month spends most of that on scheme hours.

Add it to the row data under a new column name. If the sheet has no such column yet, the block adds it to the right of the last one. Form fields that are not listed in the row data do not reach the sheet.

Before appending, add another google sheet record block with find_rows and look for the phone number of the lead in the Phone column. It returns found: true when a row exists. The free condition block checks this value, and a new row is added only for a new phone number. Each sheet operation is a separate run.

JSON or a regular form submission, up to 20 MB. Form fields end up in body, and parameters after the ? in the address end up in query. The webhook does not parse multipart/form-data, the format FormData uses in JavaScript, so the row would be saved without values.

Yes. Connect a second block, Telegram message send, to the same webhook, and one lead runs both blocks. Sending the message is one more basic block run.

Open the result of the google sheet record block: error_message holds the Google answer. With a service account, the usual causes are that the sheet is not shared with its email as an editor or the Google Sheets API is not enabled in Google Cloud. Also check that the scheme is on: a disabled scheme answers requests with error 409.

Build your first scheme for free

Sign-up is free and needs no card. Every month the balance is topped up to $3.50 for free, enough for about 3,500 runs of basic blocks.

Build it in the builder