Email Automation Repeatedly Sending + Google Apps Script Webhook Failure (Code 400)

Hey Make Community! I’m running into issues with a Google Sheets + Gmail scenario that automates outreach emails for nonprofit contacts. I’ve built a flow using Search Rows, filter, Gmail, and Update Row modules, but I’m struggling with duplicate sends or missed records depending on how the automation runs. I’d love your help!

Goal:
When a shelter contact email is added to a Google Sheet and their Status = Ask for Registration, I want Make to:

Automatically send them a registration email.
Then update a column (“Notified?”) to yes so the email doesn’t send again.

Current Scenario Setup:
Search Rows

Sheet: Nonprofit Tracker

Conditions:

Column “Notified?” → Does not exist

Column Nonprofit Contact Email → Exists

Column Status → Equals Ask for Registration

Filter Module

Condition: Bundle Order Position = 1

(Ensures only the first match triggers at a time)

Gmail Module

Sends a registration email using data from the row.

Update Row Module

Sets Notified? = yes for that row.

Problem:
Sometimes emails are sent more than once to the same contact (especially if I manually edit or re-run the scenario).

Other times, it skips over valid entries if more than one matches the criteria.

The filter on Bundle Order Position = 1 works, but I’m unsure if it’s ideal — I want this scenario to run once per valid row, not just the first one.

Questions:
How can I prevent repeated sends even if I manually re-run the scenario or make edits?
Should I add a more precise trigger or make the scenario iterate over all matching rows, updating each properly?

Is Search Rows + Bundle Order Position = 1 the best approach?
Or should I loop over each matching row and process them sequentially to avoid missing any contacts?

Any tips to make this setup more efficient or bulletproof to manual edits or restarts?

Ideal Outcome:
When a contact email is added and status is “Ask for Registration,” they get one email, then “Notified?” is marked yes.

No duplicates, no skipped entries, and the scenario can run daily or on-demand safely. Right now it only works to run every 15 minutes and sends 1 email when it does work.

Hey there,

why are you using Search rows as the starting point? Do you want it to trigger only when a new row is added? Or do you want to run it manually and check all rows?

Can you also share screenshots of the scenario, how the modules are configured and some input/output bundles?

Thank you for your reply! I only want it to trigger when a new complete entry is added to the spreadsheet — we’re having volunteers call shelters, so when the 1) email address column is filled and 2) the status “Asked for an Email” is marked, I want Make to automatically send an email to only that address on file. I don’t want it to check all rows, because then all the other shelter contacts who have already gotten an email would be spammed.

Well in that case I suggest writing an app script that will call a Make webhook when the conditions are met. That would be the best way to avoid sending emails to wrong contacts.

Thank you for that recommendation. Do you have any recommendations on how I could do that?