Instant scenario - watch new rows - google sheets

I have a Google Sheets scenario which starts with a “WATCH NEW ROWS” and collects the values to which I can generate a new job folder based off the variable values.

I need this to be instant rather than at intervals of 1 minute. Also I cant have it on demand as that defeats the purpose of it being automated

Is there a way to do this?

If I use the “Watch Changes” Instant module it only outputs a single cell value rather than row values.

See screen grabs:

  1. currently works and supplies the correct values but is not instant (broke this out whilst testing)
  2. trying to watch for instant collection but it only gives the first cell value
  3. creating a folder module
  4. to which the new folder uses the values that (2) is meant to output

FYI – aware that the values in (4) are still pointing to (1). Haven’t updated as I’m trying to illustrate the desired outcome

Anyone’s help would be greatly appreciated.

Hello,

If Google Sheets Watch Changes returns a cell, you can use Google Sheets Get Range Values to get the entire row (or range within a row).

If all you need is the value from a specific cell in that same row, then use the Google Sheets Get a Cell module.

Also, you might be able to get a Google Apps Script to call a webhook when a new row is added. If that’s the case, then it can call a Make Webhook in a separate scenario, which could then trigger your original on-demand scenario to run.

2 Likes

Thanks @Donald_Mitchell. Appreciate the feedback.

I’ve tried multiple ways but it still brings in only the 1st cell of the new row as it processes the retrieval as soon as the first cell is entered, so the "get Range Values has nothing to get but jus the first cell information. Hopefully these screengrabs will help
SCR-20230911-rddc

Even when you look at the row values they only provide results for the first column.

So it sounds like the Watch Changes module will fire each time any cell changes, but not when a new row is added.

Watch New Rows detects new rows, but is on-demand or scheduled, so it’s not the solution you’re looking for either.

You could try leaving the Watch New Rows with a schedule or an on-demand trigger.
Then, in whatever service updates the Google Sheet, see if you can call the URL that fires the on-demand scenario after it updates the sheet. Is that possible?

2 Likes

Unfortunately I couldn’t make it work. Unless i’m doing it wrong …:thinking:
Thanks anyway Donald.

Sorry we haven’t been able to figure this out yet!

The problem is more with Google Sheets.
Technically the whole sheet already exists so “new row” isn’t really a thing.
What’s really happening when you write a new row is more like “expanding the active range” which modifies the last row in the active range.

Internally, the Google Sheets Watch New Rows is probably keeping track of the last row of the active range. Every time it runs it compares the previous “last active row” with the new “last active row” then gives you the data from all row in between (or nothing if it hasn’t changed), up to the limit you specified in the module. You can override where it starts too by right-clicking the module and selecting “Choose where to start”.
Watch New Rows can’t be instant because there’s nothing to fire it on the Google Sheets side. Make just has to poll or be told when to run the check.

Another problem with running it instantly is that you need access to the values from three different columns in the same row. Technically, the “new row” is created when the first cell in the row is updated. If it were instant, you’d get that value only because there’s nothing telling Google Sheets to wait until all three columns have data.

Watch Changes doesn’t work because it’s only detecting changes on the active range. New rows aren’t yet part of the active range when they’re newly-added. And, it needs the help of Google Apps Script/Add-on.

If possible, I would suggest using something else other than Google Sheets, such as SmartSuite or Airtable, to make your process more reliable.

If you want to continue with Google Sheets, we’d need more info.

Whatever is updating your Google Sheet, is it possible to modify that process to call a URL (Make Webhook) when it’s done adding the row?

If you are certain that the data is added to columns in the new row sequentially (like A, then B, and finally, C), then we can write an Apps Script to call the Make Webhook URL and pass it a row number only when the last column (C) receives data. Then you could start your scenario with a webhook followed by a Google Sheets get range values, because you would already know what row you want to get.

Sorry for the long-winded answer, but Google Sheets gets confusing!

2 Likes