Comportamento estranho com DriveApp.getFileById ()

O código ainda está na fase de Prova de Conceito - Tentará explicar o resultado esperado e o resultado que estou obtendo.

Este script será uma mala direta genérica. O script deve fazer o seguinte:

Solicita ao usuário o ID do arquivo de modelo a ser usado. (Documento do Google Docs)Faça uma cópia do modelo e altere os valores no corpo da cópia do modelo.Obtenha a cópia editada do modelo e anexe-a a um email.Faça isso uma vez para cada linha da planilha.

Embora tudo acima funcione muito bem, o comportamento estranho ocorre ao anexar a cópia editada do modelo. Em vez de obter uma versão editada do modelo, estou recebendo uma versão não editada do modelo anexada ao email

function myFunction() {


var ui = SpreadsheetApp.getUi();
var response = ui.prompt('Please enter the ID of your template file.', ui.ButtonSet.OK_CANCEL);

if(response.getSelectedButton() == ui.Button.OK){
var templateid = response.getResponseText()
}//End of IF Statement

var docid = DriveApp.getFileById(templateid).makeCopy().getId();
var doc = DocumentApp.openById(docid);
var body = doc.getBody();

var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var lastColumn = sheet.getLastColumn();

sheet.getRange(1, 1, sheet.getLastRow(), sheet.getLastColumn()).setNumberFormat("@");


var array = [];

for(var i = 1; i < lastColumn-1; i++) {
var headers = sheet.getRange(1, i, 1, 1).getValue();
array.push(headers)
}//END OF OUTER 1

for (var k = 2; k < sheet.getLastRow()+1; k++){
var row = sheet.getRange(k, 1, 1, lastColumn).getValues()

for (var j = 0; j <array.length; j++){
body.replaceText("<"+array[j]+">", row[0][j]);
}//END OF INNER


var recipient = sheet.getRange(k, lastColumn - 1, 1, 1).getValue();
var emailBody = "Good Day,\n\nPlease see attatched.\n\nRegards\nPerson's Name Here"
var subject = "See attatched";
var attatchment = DriveApp.getFileById(doc.getId());

Logger.log(doc.getId())


MailApp.sendEmail(recipient, subject, emailBody, {attachments: attatchment})

}//END OF OUTER 2
}//END OF FUNCTION
Planilha usada:

Resultado esperado:

Resultado atual:

questionAnswers(1)

yourAnswerToTheQuestion