How to Connect Typeform to Google Sheets Using Make.com (Step-by-Step)
Quick Answer
Connecting Typeform to Google Sheets using Make.com means building a scenario where a new Typeform submission triggers Make to automatically append a row to a specified Google Sheet. ✓ The entire setup takes under 15 minutes and requires no code — only a Make.com account, a Typeform account, and a Google account with an existing Sheet. ✓
Why Automate Typeform → Google Sheets
Typeform stores responses inside its own dashboard, but most workflows require that data to live somewhere actionable — like a spreadsheet your team already monitors. ✓ Manually exporting CSVs from Typeform and pasting them into Google Sheets wastes time, introduces version errors, and creates data gaps between exports. ✓
Automating the connection means every new form response appears in your Sheet within seconds of submission. ✓ This is critical for lead capture forms, event registrations, customer feedback collection, and any use case where response latency has a downstream cost.
Google Sheets is the most common destination for Typeform data because it supports real-time collaboration, formula-based analysis, and direct integration with tools like Looker Studio, Notion, and Zapier. ✓
Why Make.com Wins for This Use Case
Make.com (formerly Integromat) is a visual automation platform that connects apps through drag-and-drop scenarios built from modules. ✓ Each module represents one action or trigger — for example, "Watch Responses" in Typeform or "Add a Row" in Google Sheets. ✓
For the Typeform → Google Sheets workflow specifically, Make.com has three structural advantages over alternatives:
- Operations pricing model: Make charges per operation (one trigger + one action = 2 operations), not per task. This makes multi-step workflows significantly cheaper than Zap-based pricing at scale. ✓
- Native data transformation: Make includes a built-in data transformation layer (functions, iterators, aggregators) that lets you reformat Typeform field values before they hit your Sheet — no extra tools needed. ✓
- Multi-step branching: A single Typeform trigger can fan out to multiple Google Sheets, send a Slack notification, and trigger a Gmail email all in one scenario, without paying per-action premiums. ✓
Make.com's free tier includes 1,000 operations per month with up to 5 active scenarios, which is enough to test and run low-volume Typeform automations at no cost. ✓
Get started with Make.com for free before building your first scenario — the free account is sufficient for most Typeform → Sheets setups.
Prerequisites: What You Need Before You Start
Before opening Make.com, confirm you have the following:
- A Make.com account — free tier works. Create one at make.com.
- A Typeform account — free or paid. You need at least one published form with at least one test response already submitted. ✓
- A Google account with access to Google Sheets. The target Sheet must already exist before you build the scenario; Make maps columns at setup time. ✓
- A Google Sheet with a header row — Make.com's Google Sheets module reads the first row as column headers when mapping Typeform fields. ✓ Create your Sheet, add column headers in Row 1 (e.g., "Timestamp", "Name", "Email", "Response"), and leave the rest empty.
- A test Typeform response — submit at least one response to your form before connecting it in Make. The trigger module uses existing responses to identify available fields for mapping. ✓
Permission note: When connecting Google Sheets in Make, you will authorize via OAuth and grant Make access to your Google Drive. Make requests only the scopes it needs — it does not access files outside of what you explicitly map in the scenario. ✓
Step-by-Step: Building the Scenario in Make.com
Step 1: Create a New Scenario
- Log into your Make.com dashboard.
- Click Create a new scenario in the top-right corner.
- You will land on the scenario editor — a blank canvas with a large "+" button in the center.
Step 2: Add the Typeform Trigger Module
- Click the "+" button to open the module search panel.
- Search for Typeform and select it from the results.
- Choose Watch Responses as the trigger type. This module fires every time a new response is submitted to your form. ✓
- Click Add to create a new Typeform connection.
- You will be redirected to Typeform's OAuth authorization screen. Log in and click Allow. ✓
- Once authorized, Make returns you to the module settings. Select the Form you want to watch from the dropdown.
- Set Maximum number of results to 1 for most use cases (processes one response per scenario run). ✓
- Click OK to save the trigger module.
Step 3: Test the Trigger
- Click Run once at the bottom of the scenario editor.
- Make will poll Typeform for the most recent response and display it as a data bundle on the trigger module. ✓
- Click the bubble on the Typeform module to inspect the data — you should see all field labels and submitted values from your test response.
- If the bubble shows "0 bundles," submit a test response to your Typeform and click Run once again.
Step 4: Add the Google Sheets Action Module
- Click the "+" icon to the right of the Typeform module to chain a new action.
- Search for Google Sheets and select it.
- Choose Add a Row as the action type. This appends a new row to your target Sheet for every incoming Typeform response. ✓
- Click Add to create a new Google Sheets connection and authorize via Google OAuth.
- Once connected, configure the module:
- Spreadsheet ID: Select your target Google Sheet from the dropdown (Make lists all Sheets in your Drive). ✓
- Sheet Name: Select the specific tab (worksheet) where rows should be added.
- Column headers will appear based on your header row — each column is now a mappable field.
Step 5: Map Typeform Fields to Google Sheets Columns
- Click into the first column field in the Google Sheets module.
- A mapping panel opens on the left showing all data from the Typeform trigger bundle.
- Drag or click the Typeform field (e.g., "Email") into the corresponding Google Sheets column field (e.g., "Email"). ✓
- Repeat for each column. Common mappings:
- Timestamp → Typeform's
submitted_atfield - Name → Your name question field
- Email → Your email question field
- Timestamp → Typeform's
- For date fields, wrap the Typeform value in Make's
formatDate()function to normalize it before writing to Sheets. ✓ - Click OK to save the Google Sheets module.
Step 6: Test the Full Scenario
- Click Run once again.
- Make will execute the full scenario: fetch the latest Typeform response and write it to your Google Sheet.
- Open your Google Sheet and confirm a new row appeared with the correct values.
- If the row is blank or misaligned, re-check the column mapping in Step 5.
Step 7: Activate the Scenario
- Toggle the Scheduling switch at the bottom of the editor from OFF to ON.
- Set the interval. Make.com polls Typeform on a schedule — the minimum polling interval on the free plan is 15 minutes. ✓ Paid plans support intervals as low as 1 minute.
- Click Save (disk icon) to save the scenario.
- The scenario is now live. Every new Typeform response will be written to your Google Sheet on the next polling cycle. ✓
Advanced Options: Filtering, Formatting, and Multi-Sheet Routing
Filtering Responses Before They Hit Your Sheet
Make.com supports filters between any two modules — a condition that must be true for execution to continue. ✓ For Typeform → Sheets, common filters include:
- Only process responses where a specific field equals a certain value (e.g., "Plan: Enterprise")
- Skip incomplete or partial submissions
- Route responses based on a dropdown or multiple-choice answer
To add a filter: click the wrench icon on the arrow between the Typeform module and the Google Sheets module, then define your condition using Make's filter builder. ✓
Formatting Fields with Make's Built-In Functions
Make includes a library of text, date, math, and array functions accessible directly inside module fields. ✓ Useful functions for Typeform data:
formatDate(date; "YYYY-MM-DD")— standardizes Typeform's ISO timestamp to a Sheets-readable datetrim(text)— removes leading/trailing whitespace from text fieldsupper(text)/lower(text)— normalizes capitalization for name or email fieldstoString(number)— converts numeric answers to strings if your Sheet column is text-formatted
Apply functions by clicking any mapped field and typing the function name directly into the value box. ✓
Routing Responses to Multiple Sheets
For forms with a question that determines record type (e.g., "Are you a new or returning customer?"), you can split responses into different Sheets using a Router module. ✓
- Click the wrench icon after the Typeform trigger and choose Add a router.
- Each router branch gets its own filter and its own Google Sheets module.
- Branch 1: filter where answer = "New" → write to Sheet A.
- Branch 2: filter where answer = "Returning" → write to Sheet B.
This pattern is more efficient than running two separate scenarios because it uses one Typeform trigger operation for both branches. ✓
Using Webhooks for Real-Time (Instant) Responses
By default, Make.com polls Typeform on a schedule. For real-time delivery, use a Typeform Webhook trigger instead. ✓
- Replace the Watch Responses trigger with a Webhooks > Custom Webhook module.
- Copy the generated webhook URL from Make.
- In Typeform, go to Connect > Webhooks and paste the Make webhook URL. ✓
- Typeform will now push each response to Make the instant it is submitted, bypassing polling delays entirely.
Webhook-based scenarios respond in under 5 seconds compared to up to 15 minutes with polling. ✓ This is the recommended setup for lead capture or time-sensitive workflows.
Upgrade your Make.com plan to reduce polling intervals or unlock higher operation volumes for high-traffic forms.
Pricing Comparison: Make.com vs. Zapier for This Use Case
Both Make.com and Zapier can connect Typeform to Google Sheets, but their pricing models produce very different costs at scale. ✓
Free Tier Comparison
- Make.com free: 1,000 operations/month, 5 active scenarios, 15-minute polling minimum ✓
- Zapier free: 100 tasks/month, 5 Zaps, single-step Zaps only (no multi-step on free) ✓
For a basic Typeform → Sheets scenario, Make's free tier handles up to 500 form responses per month (1 trigger + 1 action = 2 operations per response). Zapier's free tier handles only 100 responses before requiring an upgrade. ✓
Paid Tier Comparison
| Feature | Make.com Core ($10.59/mo) | Zapier Starter ($19.99/mo) |
|---|---|---|
| Operations / Tasks | 10,000 ops/mo | 750 tasks/mo |
| Multi-step workflows | Yes | Yes |
| Minimum interval | 1 minute | 2 minutes |
| Data transformation | Built-in | Requires Formatter app (+1 task) |
| Branching / Routing | Included | Paths (Zapier paid add-on) |
At Make.com Core pricing, 10,000 operations supports up to 5,000 Typeform responses per month with a 2-module scenario. ✓ At Zapier Starter, 750 tasks supports only 750 responses — and adding a Formatter step halves that to 375. ✓
When Zapier Makes Sense
- Your team already uses Zapier for other workflows and consolidation matters more than cost.
- You need Zapier-specific integrations not available in Make's module library.
- Your Typeform volume is under 100 responses per month (both free tiers cover it).
When Make.com Is the Better Choice
- You want the lowest cost per response at any volume above 100/month.
- You need data transformation (date formatting, text normalization) without paying per step.
- You want to route responses to multiple Sheets, send email confirmations, and notify Slack — all from one Typeform trigger. ✓
For the Typeform → Google Sheets use case specifically, Make.com delivers more operations, built-in transformation, and multi-path routing at roughly half the price of a comparable Zapier plan. ✓
Start building with Make.com — the free tier is enough to connect Typeform to Google Sheets and run up to 500 responses per month at no cost.
Key Terms Glossary
Scenario — A Make.com automation workflow consisting of one trigger and one or more action modules connected in sequence or branching paths. ✓
Module — A single unit in a Make scenario representing one app action or trigger, such as "Watch Responses" (Typeform) or "Add a Row" (Google Sheets). ✓
Operation — The unit Make.com uses to measure usage. Each module execution in a scenario run counts as one operation. ✓
Trigger — The event that starts a scenario. In this workflow, the trigger is a new Typeform response. ✓
Webhook — A real-time HTTP push from Typeform to Make when a response is submitted, eliminating polling delays. ✓
Router — A Make.com module that splits a scenario into multiple branches, each with its own filter and action path. ✓
Data bundle — The structured payload of field values Make passes between modules during a scenario run. Each Typeform response becomes one data bundle. ✓
Polling interval — The frequency at which Make checks Typeform for new responses when using the Watch Responses trigger rather than a webhook. ✓
Frequently Asked Questions
Does Make.com work with Typeform's free plan?
Yes. Make.com's Typeform integration works with all Typeform plan tiers, including the free plan. ✓ The Watch Responses trigger and webhook connection are both available regardless of Typeform plan.
Can I append to an existing Google Sheet that already has data?
Yes. Make's "Add a Row" module appends below existing content. It does not overwrite existing rows. ✓ Make identifies the next empty row automatically based on the Sheet's current state.
What happens if Make.com is down when a Typeform response is submitted?
With polling triggers, Make will catch up on missed responses during the next polling cycle. ✓ With webhooks, Typeform retries the webhook delivery up to 3 times over 24 hours if Make is unavailable. ✓
Can I map calculated or hidden Typeform fields?
Yes. Make exposes all Typeform field types in its data bundle, including hidden fields, calculated fields, and metadata like submitted_at and response_id. ✓
Is there a limit to how many columns I can map?
No column limit exists within Make's Google Sheets module. You can map every Typeform question to a corresponding Sheet column. ✓ Performance is determined by your Make plan's operation count, not the number of mapped fields.