Make.com and Google Sheets work together through a set of modules: Watch Rows triggers a scenario when new rows are added, Add a Row writes a new row, Search Rows finds rows that match a filter, and Update a Row changes a specific row by its row number. For most agency automations, the pattern is simple: log events to a sheet with Add a Row, look things up with Search Rows, and use Watch Rows when a sheet is the place new work starts. The trick is setting up the sheet properly so the modules behave predictably.
Google Sheets shows up in almost every build I do. The client health monitor reads account owner context from a sheet, and the positive-reply sales alert logs every lead to an outreach sheet. This guide covers each module, how to structure sheets, and the problems I fix most often.
Set up the sheet first
Most Make plus Sheets problems are sheet problems. Before connecting anything:
- One header row, in row 1, with clear unique names. No merged cells.
- One table per tab. Do not put notes, totals or a second table below the data.
- No blank rows in the middle of the data.
- A stable unique ID column, like a lead ID or client ID, so you can find rows reliably.
- Avoid reordering columns after the scenario is built. Mappings are tied to columns.
- Keep formulas in separate columns from data the scenario writes, and do not let the scenario overwrite formula cells.
Make.com Google Sheets Watch Rows
Watch Rows is a polling trigger that checks the sheet for new rows on your schedule.
How to set it up:
- Add Google Sheets, choose "Watch Rows", and connect your Google account.
- Choose the spreadsheet and the sheet tab.
- Confirm that the table contains headers, so outputs are named by column.
- Set the row limit per run.
- Choose where to start the first time: from now on, or from a specific row. Choose carefully to avoid processing hundreds of old rows on the first run.
- Set the schedule on the trigger.
Things to know:
- Watch Rows is for new rows. Editing an existing row does not count as new. If you need to react to edits, use a status column and a scheduled Search Rows, or look at Make's instant options for Sheets changes in the module documentation.
- Rows added in the middle of the sheet, or sorting the sheet, can confuse a row-based watcher. Always append to the bottom.
- Rows added by a form or another tool sometimes arrive before all columns are filled. If the next module needs a value that might be late, add a short delay or check for empty values with a filter.
Make.com Sheets Add a Row
Add a Row appends a row with values you map from earlier modules. It is the workhorse for logging.
- Choose the spreadsheet and sheet, and confirm headers.
- Map each column to a value. Use functions to format dates, for example formatDate with your preferred format, so the sheet stays consistent.
- Leave columns blank that are formulas or filled by people.
Use cases:
- Log every new lead with source, date and owner.
- Record every failed payment or alert for reporting later.
- Keep an audit trail of what a scenario did.
Search Rows and Update a Row
Updating a row in Make usually takes two steps, because Update a Row needs a row number.
- Search Rows with a filter on your unique ID column, for example "Client ID equals" the ID from the trigger. Set the limit to 1.
- Update a Row, mapping the row number from the Search Rows output and the new values.
Add a filter between them so the update only runs if a row was found. If no row is found, route to Add a Row instead. That gives you a simple upsert:
- Search Rows by ID.
- Router.
- Route A, filter "row found": Update a Row.
- Route B, filter "no row found": Add a Row.
Bulk operations
If you are writing many rows at once, like a weekly export of 300 records, adding them one at a time means one module run per row. Make's Google Sheets app includes bulk options for adding and updating multiple rows in one call. Use an aggregator to build the array of rows, then a single bulk module. This is faster, uses fewer credits and is less likely to hit Google's rate limits. Check the module list in your Make account for the current bulk modules.
Google Sheets automation with Make: agency patterns
Lead log and Slack alert
- Custom webhook from a form or CRM.
- Google Sheets: Add a Row to the lead log.
- Slack: post the lead to the sales channel.
Context lookup for routing
- Trigger from ClickUp, CRM or a form.
- Google Sheets: Search Rows on the client list by client ID.
- Router by account owner from the sheet.
- Slack: message the right person with context.
This is the shape of the client health monitor: when the health field changes in ClickUp, the right CSM is alerted in Slack and ClickUp, routed by account owner with context from Sheets.
Daily or weekly digest
- Schedule trigger.
- Google Sheets: Search Rows for this week's entries.
- Text aggregator: build a readable summary.
- Slack: post the digest.
Sheet as a control panel
Use a "Settings" tab to hold values your scenarios read, like which Slack channel each client uses or who owns each account. Non-technical staff can update routing without touching Make.
Common errors and fixes
- Missing columns in the mapping panel. The headers changed or were not detected. Refresh the module or reselect the sheet.
- Data written to the wrong columns. Someone inserted a column. Remap the module.
- Watch Rows processes old rows. The start point was set too early, or rows were sorted. Reset the trigger's starting row.
- Rate limit errors from Google. Too many single-row calls in a short time. Use bulk modules, add a Sleep module, or reduce frequency. Add a Retry error handler so transient failures are retried. See Make.com error handling.
- Dates look wrong. Format dates explicitly and check the spreadsheet's time zone setting matches your Make organisation's.
- Numbers saved as text. Use the right value input option or convert with a function.
When Google Sheets is the wrong tool
Sheets is great as a log, a lookup table and a light control panel. It is not a database. If you have many writers, tens of thousands of rows, or need reliable relationships between tables, move the data to a proper database or to the CRM and keep Sheets for reporting views. Make's data stores can also hold small amounts of state. See Make.com scenario variables and data stores.
How I build this
I build Google Sheets automations for agencies with clean sheet structure, upserts by ID, bulk writes and error alerts. See my Google Sheets automation service, or read Google Sheets automation for agencies for more examples. If you have a Sheets scenario that misbehaves, request a free 15-minute Loom teardown.
FAQ
How does Watch Rows work in Make.com?
Watch Rows checks your sheet on a schedule and outputs any new rows added since the last check. It watches for new rows, not edits to existing rows.
How do I update a Google Sheets row in Make?
Use Search Rows to find the row by a unique ID, then Update a Row with the row number from the search result and the new values.
Why is Make.com not detecting my Google Sheets columns?
Usually the header row is missing, changed or not in row 1. Fix the headers, then reselect the sheet or refresh the module so Make reads them again.
Can Make.com trigger when a Google Sheets cell is edited?
Watch Rows only catches new rows. For edits, use a status column with a scheduled search, or check Make's documentation for instant options for Sheets changes.