Guide · Make.com · Google Sheets · Troubleshooting

Make.com Google Sheets "Search Rows" returns nothing

Short answer: If Google Sheets Search Rows in Make.com finds nothing, it passes on one empty bundle with Total number of bundles = 0, and the next module still runs. Usually it's reading a different file or tab than you think, or the filter value doesn't match the cell exactly: a trailing space, different capitalisation, a number stored as text, or a date in another format. Remove the filter, run the module once with a small limit, and compare what Make receives with your filter.

By Flowpaja · Published

This guide contains affiliate links, marked “affiliate link”.

A Search Rows filter for Status equal to Unpaid, a sheet cell containing Unpaid with a trailing space, and one bundle returned after TRIM
Run Search Rows without a filter and a limit of 5, then compare the exact cell values with your filter.
Disclosure: everything in this guide works with plain Make.com and the apps it connects. At the end we mention our own Make templates and our Make scenario fix service on Fiverr. Module names, settings and limits were checked against Make's Google Sheets modules docs and filtering docs in October 2026. Menus and limits change, so check them if something looks different.

What you need

  • The Make.com scenario with the Google Sheets → Search Rows module. No account yet? Create a free Make account (affiliate link).
  • Edit access to the Google Sheet
  • A few test runs with Run once. Each run uses credits, like any other run.

Ad disclosure: links marked "affiliate link" are ads. If you sign up or buy through them, Flowpaja may earn a commission at no extra cost to you.

First: what "returns nothing" means in Make

When Search Rows finds no matching rows, there's no error, and the route doesn't stop either. The module outputs one empty bundle: no row data, no Row number, and Total number of bundles = 0. The modules after it still run once with that empty bundle. A following Update a Row then fails with "Missing value of required parameter 'rowNumber'", and an Add a Row or Slack module may write a blank row or send an empty message. (For real error messages, see 10 common Make scenario errors.)

To check, open the run in History and click the Search Rows output bubble. A real "nothing found" is a single bundle that shows Total number of bundles: 0 and no row fields.

Step 1: Check the spreadsheet and the tab

In the module, check:

  • Spreadsheet. Copies can share a name but have different IDs. For a file in a shared drive or shared with you, use Select from all and enter the spreadsheet ID (the part of the URL between /d/ and /edit).
  • Sheet name (tab). The module reads only that tab. If it was renamed or replaced, reselect it.
  • File type. The modules need a native Google Sheet. An uploaded .xlsx opened in Sheets is still an Excel file: use File → Save as Google Sheets and select the new file.
  • Connection. The connected Google account must be able to open the file.

Step 2: Check the header and range settings

  • Table contains headers. With Yes, the first row is used as field names, not data. With No, fields are called A, B, C. A title in row 1 and headers in row 2 gives wrong field names and a broken filter, so move the headers to row 1.
  • Column range. The module only works with columns in this range. Filtering on column AB with a range ending at Z can't work; widen it.

Step 3: Debug with a test filter

Before guessing, see what Make actually receives:

  1. Remove the filter, or test on a copy of the module.
  2. Set Limit to 5 and click Run once.
  3. In the output bubble, look at the exact value in the column you filter on. A space at the end? Different capitals? A number where you expected a date?
  4. Add the filter back one condition at a time, re-running after each. The condition that empties the result is the problem.

Step 4: Trailing spaces and different case

The most common mismatch is invisible: Unpaid (with a space) isn't Unpaid. Capitalisation matters too. Make's text operators come in two versions: Equal to is case-sensitive, and Equal to (case insensitive) isn't. With plain Equal to, unpaid doesn't match Unpaid.

Fixes:

  • Clean the sheet. In a helper column, =LEN(H2) shows the real length (Unpaid = 6) and =TRIM(H2) removes extra spaces. Paste the values back.
  • Prevent it. Use a dropdown (Data → Data validation) for status columns.
  • Use the case-insensitive operator for hand-typed values such as emails.

Step 5: Numbers vs text

A cell can look like 1200 but be stored as text, for example when imported from a CSV or typed with a leading apostrophe. A number condition won't match text, and a text condition won't match a number.

  • Check with =ISNUMBER(D2) (TRUE means a number).
  • Changing the format may not convert existing text; use =VALUE(D2) in a helper column and paste the values back.
  • Match the operator to the data. Text operators have no "less than" or "greater than", so amounts need real numbers and a number operator.

Step 6: Dates in a different format

Google Sheets stores dates as serial numbers, counting days since 30 December 1899, so 46291 is 26 September 2026. What Make receives depends on two advanced options in the module:

  • Value render option: Formatted value, Unformatted value or Formula.
  • Date and time render option: Serial number or Formatted string. Google ignores this one when Formatted value is selected. Dates then arrive as text in the spreadsheet's locale format.

A filter for 2026-09-26 matches neither 46291 nor 26/09/2026. Either format the column as YYYY-MM-DD and filter with exactly that text, or return the rows and use a Make filter with parseDate() and a date operator.

More detail: Google Sheets date errors in Make.

Step 7: Check the limit and sort order

Limit caps how many matching rows Make returns per execution cycle. The module also has Sort order and Order by settings. With a limit of 1, these decide which match you get, and it may not be the row you expect. Raise the limit while debugging.

Step 8: Handle "not found" on purpose

Sometimes "no match" is the right answer ("is this email already in the sheet?"). Because Search Rows still passes one empty bundle on, you can branch right after it. Set Limit to 1, so a match also produces exactly one bundle, then use one of these options:

  • Filter on Total number of bundles (recommended). Add a router right after Search Rows. On the "not found" route, add a filter: Total number of bundles, Equal to (number), 0, then Add a Row. On the "found" route: Total number of bundles, Greater than, 0. Map the new row's values from the trigger (webhook, form, previous module), not from Search Rows, because the empty bundle holds no row data.
  • Or check the row number. "Found" route: Row number Exists. "Not found" route: Row number Does not exist (or make it the fallback route). This also works with a limit above 1, but then the "found" route runs once per matching row.
  • Don't use an Array aggregator for this. It receives the empty bundle and outputs an array with one empty item, not an empty array, so a "length = 0" check never matches and the row is never added. If you already have one, route on whether the first item's Row number exists. Background: iterator vs. aggregator.
  • For simple duplicate checks, use a data store keyed on the unique value (e.g. the email) instead of searching the sheet.

Test with a value you know isn't in the sheet. Updating the row you found? See the missing row number fix. If the scenario stops completely instead, see why a Make scenario stopped running.

Common errors and fixes

What you seeLikely causeFix
Search Rows shows Total number of bundles: 0, no errorFilter doesn't match any rowDebug with no filter and a limit of 5 (step 3)
Matches some rows but not othersTrailing spaces or different case=LEN() / =TRIM(), dropdowns, case-insensitive operator
Number filter never matchesNumbers stored as text=ISNUMBER(), then =VALUE()
Date filter never matchesSerial numbers or another date formatYYYY-MM-DD in Sheets, or parseDate in a Make filter
Wrong field names in the outputHeader setting or header row positionFix "Table contains headers" / move headers to row 1
Data from another fileA copy of the spreadsheet is selectedReselect the file and tab
Can't read an uploaded Excel fileIt's an .xlsx, not a Google SheetFile → Save as Google Sheets, select the new file
Next module fails with "Missing value of required parameter 'rowNumber'", or writes a blank rowSearch Rows passed on its empty "not found" bundleRouter with filters on Total number of bundles (= 0 / > 0) or Row number exists (step 8)
Add a Row never runs after an Array aggregatorThe aggregator outputs one empty item, not an empty arrayRoute on Total number of bundles instead (step 8)

Sending new rows to Slack? See how to send Google Form responses to Slack, or use the free Form to Slack template.

FAQ

Why does Search Rows return no results when I can see the row in the sheet?
The filter value doesn't match the cell exactly: trailing spaces, capitalisation, a number stored as text, or another date format. Run the module without a filter to see the exact value.
Does Search Rows throw an error when nothing is found?
No. It outputs one empty bundle with Total number of bundles = 0, so the next module still runs once with empty values. Add a filter on Total number of bundles: greater than 0 to continue, equal to 0 for a "not found" branch.
Is the Search Rows filter case-sensitive?
With the plain Equal to operator, yes. Make also offers Equal to (case insensitive), which is safer for values people type by hand.
Why can't I use "less than" on my amount column?
Make's text operators can't compare text with "less than". Make sure the column holds real numbers and use a number operator.
How do I add a row only when the search finds nothing?
Set Limit to 1 and add a router after Search Rows. On one route, filter Total number of bundles equal to 0 and add the row, mapping the values from the trigger. On the other route, filter greater than 0. A data store keyed on the unique value also works for duplicate checks.

Still getting Total number of bundles: 0?

Send the exported blueprint and a copy of the sheet with fictional data to our Make scenario fix service on Fiverr. No logins needed.

Stuck on an error in your own Make scenario? Make scenario fix / debugging on Fiverr, from $25: send the exported blueprint and a description of the error, no logins needed.

← All guides · All templates

Make, Slack, Google, Google Sheets and the other app names mentioned are trademarks of their owners. Flowpaja is independent and not affiliated with or endorsed by them. Menus and features change; check the providers' current help.