Update a Row after Search Rows + Iterator throws missing rowNumber error

:bullseye: What is your goal?

Send a notification email to myself for each row in a shared Google Sheet where Travel Requested = Yes and Tim Notified ≠ Yes, then automatically update the Tim Notified column to Yes after each email so the scenario doesn’t send duplicate notifications on the next run (a few times a day to run)

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

My scenario is: Google Sheets Search Rows → Iterator → Gmail → Google Sheets Update a Row

The base scenario worked perfectly — Search Rows finds matching rows, Iterator unpacks each bundle, Gmail sends a separate notification email per attendee with correct details. However without the Update a Row step it kept sending duplicate emails every 15 minutes for the same attendees.

I added a Tim Notified column and a filter (Tim Notified ≠ Yes) to Search Rows, which works correctly — but only if the Update a Row step successfully writes Yes back to the sheet after each email is sent.

What I have tried:

  • Update a Row with Row Number mapped to 1. Row number from Search Rows → BundleValidationError: Missing rowNumber
  • Bulk Update Rows (Advanced) with Range = T + 1. Row number and Rows = Yes → Invalid collection in parameter rows
  • Hardcoding row number 2 in Update a Row → works but not dynamic
  • Typing {{1.rowNumber}} directly into Row Number field → same missing rowNumber error
  • Adding a second Search Rows module to look up row by email address → same error

The row number shows value 2 in the module output panel when inspected after a run, but it will not pass through dynamically to any update module. The sheet is shared with me but I am not the owner — could this be causing the issue?

:clipboard: Error messages or input/output bundles

BundleValidationError: Validation failed for 1 parameter(s). Missing value of required parameter ‘rowNumber’.

:link: Create public scenario page

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

1 Like

Hey Tim,

sorry could you please explain why you mapped the entire JSON output [bundle] in the iterator? Is there a tutorial or a guide somewhere that recommends doing this? Cause I see it time and again here in the community and I’m trying to find out if its just a common error people are making or if someone is spreading misinformation.

Now the question it self. You don’t need an iterator after a search module, search modules already iterate the arrays they produce. Then if you want to update a specific column in the same row, just use the Update a Row module and not the bulk update one.

Thanks for the response! I used the iterator because both ChatGPT and Claude AI kept telling me to add it? I will try removing to see if the scenario runs properly.

1 Like

I did use the update row first, but it was not working and spitting back the same error. So I began trying different final modules like the bulk update.

1 Like

You map the row from the first module. But can you also check if the first module is actually returning a row? Maybe its an issue with the filters?

Hello,

You do not need the Iterator and that is what is causing the issue with the rowNumber.

Each matching row found by “Search Rows” will output a single bundle and then process that return and then the next one.. Adding an iterator will change the structure of the bundle and the “rowNumber” variable will not be available the way you are trying to reference it.

You simply need your Google Sheets: “Search Rows” step followed by the Gmail step and finally the “Update a Row” step. In that map the “rowNumber” to the number from the “Search Rows” module and set “Tim Notified” to “yes”.

This should allow you to send an email for the matching row as well as update the correct row immediately.

1 Like

Thank you ALL for the insight! Removed the iterator and it seems to be working. The one odd thing I am noticing that did not happen before is that the email prompt is now showing up in my personal email account and my business email….

On my personal email I added my work email as an email I could send as. So I can send an email that reads from my business email from my personal email. Now that this is linked, the email prompts from this scenario are being sent to my personal email AND my work email. Is there any fix to avoid this? No other work emails are being directed to my personal email inbox so unsure why this specific scenario sends to my personal email….

And then still, when I go to draft an email in my personal inbox, I toggle the work email as the from field, and still unable to send the email, it just will not action anything when I click send, but not error message or anything appears.

New scenario here that is working (but sending the duplicate emails to my work AND personal): Travel Email Notify (copy) - Make.com Automation Scenario