Very Basic pattern that does not work

:bullseye: What is your goal?

I’m building a Make.com automation that receives inbound text messages and decides whether the sender is new or returning.

The logic is simple:
• Every incoming message has a sender phone number.
• I store past senders in a Google Sheet (“Client Memory”).
• When a message comes in:
• If the phone number already exists in the sheet → treat them as returning.
• If the phone number does not exist → treat them as new and add them to the sheet.

This distinction is critical because it determines which path the automation takes (new client vs existing client). Everything else in the project depends on this working correctly.

Right now, I am only focused on solving this one problem.

:thinking: What is the problem & what have you tried?

The problem

Even when a phone number definitely exists in the Google Sheet, the lookup step always behaves as if it does not exist.

As a result:
• Every message is treated as “new”
• Duplicate rows keep getting added
• The “existing client” path never triggers

The issue appears to be happening specifically in the Google Sheets “Search Rows” step.

What I have tried

I’ve verified all of the following:
• The sheet does contain the phone number
• The lookup column is correct
• The same exact phone value is being used in the lookup
• The scenario runs without crashing
• Rows are successfully added for new senders

I’ve tried:
• Different search settings
• Different column ranges
• Turning headers on and off
• Ensuring phone numbers are text, not numbers
• Making sure the lookup runs before the router
• Rebuilding the scenario from scratch multiple times

Despite all of this, the lookup never finds an existing row.

:clipboard: Error messages or input/output bundles

Bundles behavior (important context)

In Make.com:
• A lookup that finds a match should return 1 bundle
• A lookup that finds nothing returns 0 bundles

My routing logic depends on this:
• 1 bundle → existing client path
• 0 bundles → new client path

What I actually see
• The search step always returns 0 bundles
• Even immediately after a row was just added
• Even when the value visibly exists in the sheet

The suspicious symptom

In the run logs for the Google Sheets search step, I consistently see:
• The column range shown as only the header row
• The lookup appears to evaluate headers, not actual data rows
• Output says “0 bundles” even when data exists

This makes me think:
• The module may only be reading the header range
• Or it’s misinterpreting the table structure
• Or the row data isn’t being included in the effective search range

Why this breaks everything

Because the lookup never returns a bundle:
• The router always thinks the client is new
• The update path never runs
• The automation can’t distinguish new vs returning users

Summary (what I need help understanding)

I need to understand why a Google Sheets lookup can return 0 results even when the row clearly exists, and why the lookup appears to only reference the header range instead of the full dataset. Why I think this is happening (but not certain)

My suspicion (not confirmed) is that:
• Make is correctly defining headers as A1:Z1
• But something about formatting, value matching, or how the Search Rows module interprets the table is preventing it from matching actual data rows

It may not actually be “only reading headers,” but the google sheets ( search rows ) output makes it look that way, and I can’t tell if:
• The issue is phone number formatting
• Table interpretation
• Filter behavior
• Or something subtle about Google Sheets + Make interaction

Specifically:
• What causes a Sheets search to behave this way?
• What configuration detail would make it search headers instead of rows?
• How do I reliably get 1 bundle when a matching row exists?

If you got all the way to the end… thank you. If you got all the way to the end and are able to give me some solutions… I might just not throw the laptop at the wall. But seriously… I just want to thank you in advance. You have to idea ( maybe you do ) how long I’ve been annoyed with one simple operation that doesn’t seem to work right whatever I do.

:camera_with_flash: Screenshots (scenario flow, module settings, errors)

Hello @EuroLink and Welcome to the Make Community!

Although you’ve provided a lot of detail, it’s difficult to say exactly what’s causing the problem without seeing:

  • Inputs on Search Rows (just open it up and show a screenshot?)
  • Output of the Search Rows module
  • Example of how the data looks in Google Sheets

I realize phone numbers are sensitive information so if it helps, perhaps you can create a separate sheet with dummy data to test with and share with us here?

Search Rows has advanced options you can check out. There’s one option in particular that might need to be tweaked, Value Render Option. This determines if it returns raw or formatted values, but not sure if it affects the search as well.

You should also be normalizing phone numbers prior to any Google Sheets activity, use the Phone Numbers app for this.

Hope this helps!

1 Like

I have them in this order to test how a phone number gets added to my client_phone rows. Usually it goes QUO>SEARCH ROWS> ADD A ROW. The client phone number for ADD A ROW INPUT shows WITH A ( + ) while the OUTPUT for SEARCH ROWS shows WITHOUT A (+). But this first test was done without a filter added to my search row module. I did another test where the filter was set in my search rows module with the QUO FROM phone number. Now this time the search rows input filter area shows a ( + ) just like in the ADD A ROW module. If I create a new module which is ( UPDATE A ROW ) it still just adds the phone number again as a duplicate under the the last ones in Header A in my client memory google sheet. Even if i have the correct filters set for each arm. The filters never get hit because it all stems from my ( Search Rows) module not having a Bundle of 1 for a number thats NOT NEW. Since my filters on my add a row and update a row are set to ( bundle equal to 0 ) and ( bundle greater than 0 ) so it knows if it should go to update or add row.

I made a copy of my google sheets with literally just client_phone so that no other headers get confused. Sheets gets the information sent to it because in my ( add a row module ) I MAPPED the phone number texting QUO ( can see in the screenshot ). But when it lands in my google sheets it shows normal in the row but if I click on the number it shows +1773 in the formula bar.

Is my problem something along the lines of the system not mapping / passing the correct / exact same phone number then? Make scenerio and my google sheet is the same number but one comes in with a + and the other doesn’t? Thats why when I get no bundles in my search row when a used number texts again and it just gets added on as a duplicate in my client memory sheet?

Sorry for this bad explanation I’m not even sure how to explain this best. This is literally my only goal to fix so that I can remake my whole scenario literally just this tiny piece.

In such case you can use text operator contains if your quo number does not contain the + sign or other formatting punctuations.
For better suggestion you can share both data sets of phone number from quo output and google sheet. Also make sure to not add any extra spaces after the mapping block in filters.