# Google Sheet trigger stopped working out of the blue

**URL:** <https://community.make.com/t/google-sheet-trigger-stopped-working-out-of-the-blue/86027>\
**Category:** Questions\
**Tags:** google-sheets\
**Created:** [July 1, 2025, 1:43pm UTC](https://community.make.com/t/google-sheet-trigger-stopped-working-out-of-the-blue/86027 "2025-07-01T13:43:19Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![cams](https://avatars.discourse-cdn.com/v4/letter/c/5f9b8f/32.png) [@cams](https://community.make.com/u/cams)\
**Post date:** [July 1, 2025, 1:43pm UTC](https://community.make.com/t/google-sheet-trigger-stopped-working-out-of-the-blue/86027/1 "2025-07-01T13:43:19Z")

</div>

Hi there,

I have a Google Sheet which collects some data.

From that Google Sheet I am distributing that data to different place through a workflow build in Make.

In order to start the workflow in Make, I am using as a trigger the Google Sheet Watch changes which is activated by this script below added in Apps Scrips

" _//For use with the Watch Changes module. Paste the webhook URL from your scenario here:_

_WATCH\_CHANGE\_WEBHOOK\_URL = ‘ **URL** ’;_

_//OPTIONAL (for use with Watch Changes):_

_SHEET = ‘’; // Leave blank to avoid multiple triggers_

_RANGE = ‘’; // Leave blank to avoid multiple triggers_

_//For use with the Perform a Function module. Paste the webhook URL from your scenario here:_

_PERFORM\_FUNCTION\_WEBHOOK\_URL = ‘’;_

_// Define the column index for “Review” (Column AB = 28)_

_const REVIEW\_COLUMN = 28;_

_///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////_

_//////////////////////////////////////////// DO NOT TOUCH BELOW!!! /////////////////////////////////////////////////////////////////_

_///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////_

_function watchChanges(e) {_

_// Trigger only if the edited cell is in column V and its new value is “Approved”_

_if (e.range.getColumn() !== REVIEW\_COLUMN) {_

_console.log(“Edit not in Review column. No triggering.”);_

_return;_

_}_

_if (e.value !== “Approved”) {_

_console.log(“Review value is not ‘Approved’. No triggering.”);_

_return;_

_}_

_// REQUIRED_

_const UPDATE\_WEBHOOK\_URL = WATCH\_CHANGE\_WEBHOOK\_URL;_

_if (!UPDATE\_WEBHOOK\_URL) {_

_console.log(‘Enter WATCH\_CHANGE\_WEBHOOK\_URL’);_

_throw new Error(‘Enter WATCH\_CHANGE\_WEBHOOK\_URL’);_

_}_

_// OPTIONAL_

_const sheetValue = SHEET;_

_const rangeValue = RANGE;_

_const ss = SpreadsheetApp.getActive();_

_const sheet = ss.getActiveSheet();_

_if (sheetValue && sheetValue !== ‘’ && sheetValue !== sheet.getName()) {_

_console.log(‘No triggering’);_

_return null;_

_}_

_if (sheetValue && sheetValue !== ‘’ && rangeValue !== ‘’ && !isWithinRange\_(e.range.getA1Notation(), rangeValue)) {_

_console.log(‘No triggering’);_

_return null;_

_}_

_var dataRange = sheet.getDataRange();_

_var dataArr = sheet.getRange(e.range.rowStart, 1, e.range.rowEnd - e.range.rowStart + 1, dataRange.getLastColumn()).getValues();_

_var rowValues = [];_

_dataArr.forEach(function (row) {_

_var out = {};_

_row.forEach(function (v, i) {_

_out[i] = v;_

_});_

_rowValues.push(out);_

_});_

_var payload = {_

_spreadsheetId: e.source.getId(),_

_spreadsheetName: e.source.getName(),_

_sheetId: e.source.getSheetId(),_

_sheetName: e.source.getSheetName(),_

_rangeA1Notation: e.range.getA1Notation(),_

_range: e.range,_

_oldValue: e.oldValue,_

_value: e.value,_

_user: e.user,_

_rowValues: rowValues_

_};_

_var options = {_

_method: ‘post’,_

_contentType: ‘application/json’,_

_payload: JSON.stringify(payload)_

_};_

_var response = UrlFetchApp.fetch(UPDATE\_WEBHOOK\_URL, options);_

_console.log(response);_

_}_

_function isWithinRange\_(a1Notation, rangeToCheck) {_

_// arguments = [a1Notation, rangeToCheck]_

_var input = Array.prototype.map.call(arguments, function (e) {_

_return e.toUpperCase();_

_});_

_var rangeArgs = /^([A-Z]+)?(\d+)?:([A-Z]+)?(\d+)?$/.exec(input[1]);_

_var a1NotationArgs = /^([A-Z]+)(\d+)$/.exec(input[0]).map(function (e, i) {_

_return i == 1 ? (’ ’ + e).substr(-2) : e \* 1;_

_});_

_/_ If range arguments are missing (like missing end column in “A1:1”), add arbitrary arguments (like “A1:ZZ1”) _/_

_rangeArgs = rangeArgs.map(function (e, i) {_

_return e === undefined ?_

_i % 2 === 0 ?_

_i \> 2 ?_

_Infinity : -Infinity_

_: i \> 2 ?_

_‘ZZ’ : ’ A’_

_: i % 2 === 0 ?_

_e \* 1 : (’ ’ + e).substr(-2);_

_});_

_console.log(rangeArgs, a1NotationArgs);_

_return (a1NotationArgs[1] \>= rangeArgs[1] &&_

_a1NotationArgs[1] \<= rangeArgs[3] &&_

_a1NotationArgs[2] \>= rangeArgs[2] &&_

_a1NotationArgs[2] \<= rangeArgs[4]);_

_}_

_/_\*\*

\*\* @return The result of the Integromat scenario execution.\*

\*\* @customfunction\*

\*_/_

_function INTEGROMAT(input) {_

_const FUNCTION\_WEBHOOK\_URL = PERFORM\_FUNCTION\_WEBHOOK\_URL;_

_if (!FUNCTION\_WEBHOOK\_URL) {_

_console.log(‘Enter PERFORM\_FUNCTION\_WEBHOOK\_URL’);_

_throw new Error(‘Enter PERFORM\_FUNCTION\_WEBHOOK\_URL’);_

_}_

_var spreadsheet = SpreadsheetApp.getActive();_

_var cell = spreadsheet.getActiveCell();_

_var payload = {_

_spreadsheetId: spreadsheet.getId(),_

_spreadsheetName: spreadsheet.getName(),_

_sheetId: spreadsheet.getSheetId(),_

_sheetName: spreadsheet.getSheetName(),_

_cell: cell.getA1Notation(),_

_col: cell.getColumn(),_

_row: cell.getRow(),_

_parametersArray: [],_

_parametersCollection: {}_

_};_

_for (var i = 0; i \< arguments.length; i++) {_

_payload.parametersArray.push(arguments[i]);_

_payload.parametersCollection[‘p’ + i] = arguments[i];_

_}_

_var options = {_

_method: ‘post’,_

_contentType: ‘application/json’,_

_payload: JSON.stringify(payload)_

_};_

_var response = UrlFetchApp.fetch(FUNCTION\_WEBHOOK\_URL, options);_

_return JSON.parse(response.getContentText()).value;_

_}_

_/_\*\*

\*\* @return The result of the Make scenario execution.\*

\*\* @customfunction\*

\*_/_

_function MAKE\_FUNCTION(input) {_

_return INTEGROMAT(input);_

_}_

---

<div class="post-metadata">

**Author:** ![Make\_Bot](https://dub1.discourse-cdn.com/flex013/user_avatar/community.make.com/make_bot/32/14661_2.png) [@Make\_Bot](https://community.make.com/u/Make_Bot)\
**Post date:** [September 29, 2025, 1:57pm UTC](https://community.make.com/t/google-sheet-trigger-stopped-working-out-of-the-blue/86027/3 "2025-09-29T13:57:03Z")

</div>


