I have a Google spreadsheet where I would like to automatically update one field every time a new row is added by a Zapier automation.
Every time I test the script manually by adding a row or making edits on existing rows, the script fires as expected. However, when Zapier adds a new row to the spreadsheet absolutely nothing happens.
Any idea why and how I can remedy this problem?
This the script which I am trying to use:
function onEdit(e) {
var row = e.range.getRow();
SpreadsheetApp.getActiveSheet().
getRange(row, 10).setValue('My_New_Value');
}
I was able to replicate the behavior you are seeing in your script. I believe that when you add a row outside of the active data range, it does not trigger an edit event. In order to catch those events, you will also need to catch chagne events.
https://developers.google.com/apps-script/reference/script/spreadsheet-trigger-builder#onchange
Looking at the documentation for a change event, you can detect that a row was inserted, but the row number is not returned.
https://developers.google.com/apps-script/guides/triggers/events#change
You might be able to find the row that was inserted by looking at the last row in the active range.
It is possible for a change to affect more than one row if you copy and paste into multiple cells. You should loop through all of the rows in your range.