How to connect Google Forms & Webhook Node in n8n | Google Forms Integration

Learn How to connect Google Forms & Webhook Node in n8n | Google Forms Integration in this comprehensive n8n tutorial. Step-by-step guide with video, code examples, and expert tips from the n8n Zero to Hero course.

Table of Contents

Overview

This lesson is part of the n8n AI Automation - Zero to Hero course, Section: 3. Deep Dive Concepts.

Watch the video above for the full tutorial, or read the written guide below.

What Is the Webhook Node and How Does It Differ from API Polling?

The Webhook Node in n8n acts as a real-time data listener that triggers your workflow the instant data arrives at its URL. Unlike API polling, where your system must repeatedly request updates on a fixed interval, the Webhook receives a push the moment an external event fires. This removes polling delays and wasted compute, making it ideal for infrequent but time-sensitive events like form submissions, CRM entries, or security incidents.

How to Connect Google Forms to the n8n Webhook Node

Google Forms has no native webhook field in its settings. You bridge it to n8n by pasting a short Apps Script into the form's built-in code editor and registering an onSubmit trigger. The script intercepts each form submission and POSTs the response data to your n8n Webhook URL, connecting Google's closed form system to any external workflow.

Inside your Google Form editor, click the three-dot menu next to your profile icon and select "Apps Script." Paste the provided script into the editor, replace the placeholder URL with your n8n test URL (copied from the Webhook Node panel after switching the HTTP method from GET to POST), and save the project to Google Drive with a recognizable name like "User Registration Form."

In the Apps Script dashboard, add a new trigger: set the function to onSubmit, deployment to Head, event source to From Form, and event type to On form submit. Save. Google prompts you to authorize access, including permission to "connect to an external service." Click the "Advanced" link to pass the unverified-app warning, since you authored the script, then grant permissions. Back in n8n, click "Listen for test events" on the Webhook Node and submit a live form response. The node displays the received payload with field values nested under body in the JSON output.

Key Takeaways

  • The Webhook Node must use the POST method, not the default GET, when receiving form submissions. Change the HTTP method in the node panel before clicking "Listen for test events."
  • Google Forms requires an Apps Script onSubmit trigger to forward submissions to an external URL. There is no native webhook configuration anywhere in Forms settings.
  • The test URL and production URL are separate endpoints. Configure the Apps Script with the test URL during development, then swap to the production URL before activating your n8n workflow.
  • The Webhook payload nests form field values under body. Use dot notation ($json.body["Your Name"]) to reference specific fields in downstream nodes like IF, Slack, or Amazon SES.
  • The Apps Script authorization requires clicking "Advanced" to bypass the "Google hasn't verified this app" screen. This is expected behavior for any self-authored script that connects to an external service.

Next Steps

Continue your n8n journey with the full n8n AI Automation - Zero to Hero course.

Frequently Asked Questions

The Webhook Node only accepts incoming POST requests while it's actively listening. Without clicking 'Listen for test events,' the Apps Script trigger fires but the POST to the n8n test URL returns a 'request failed' error. The node must be in listening mode each time you submit a test form response during development.

The Webhook Node must be set to POST, not the default GET. Google Forms sends submission data as a POST request. If the node stays on GET, it won't accept the incoming payload from the Apps Script trigger, and the form data will never reach your workflow.

The Apps Script trigger requires two Google account permissions: 'View and manage your forms in Google Drive' and 'Connect to an external service.' These appear during the authorization step when you first save the trigger. You must click 'Advanced' on the unverified-app screen and proceed, since the script is self-authored and not a published third-party app.

The IF node reads a specific form field value from the Webhook payload, such as the answer to 'Are you planning to attend an event?', referenced as `$json.body["field name"]`. When the value equals 'Yes,' the true branch fires a Slack message to the events channel. When it equals 'No,' the false branch triggers an Amazon SES email to the admin team.

Dheeraj Sharma

Dheeraj Sharma

AI Systems Builder
Creator of the n8n Zero to Hero course (42 lessons, 31+ hours). I help solopreneurs build AI systems that grow revenue without growing workload.

Get the n8n Mastery Bundle

All workflows, cheat sheets, and premium resources from the entire course in one package.

Get Premium Resources