Tweaks so far: in collectTweets: var targetsheet=ss.getSheetByName("Archive"); ... setArchiveRowsData(targetsheet, data);// write results to Archive sheet New function: function setArchiveRowsData(sheet, objects) { var headersRange = sheet.getRange(1, 1, 1, sheet.getMaxColumns()); var firstDataRowIndex = sheet.getLastRow() + 1; var headers = normalizeHeaders(headersRange.getValues()[0]); var data = []; var itemCount=0 //add things to the archive sheet in chronological order for (var i = objects.length-1; i > 0; i--) { var values = [] //we need logic here: //if the newly found tweet id is greater than id of last tweet (or timestamp greater?) in archive, add row if (true){ itemCount++; for (j = 0; j < headers.length; ++j) { var header = headers[j]; values.push(header.length > 0 && objects[i][header] ? objects[i][header] : ""); } data.push(values); } } if (itemCount>0){ var destinationRange = sheet.getRange(firstDataRowIndex, headersRange.getColumnIndex(), itemCount, headers.length); destinationRange.setValues(data); } }