Xây dựng hệ thống xử lý yêu cầu của người dùng với dữ liệu đầu vào do người dùng nhập và sau đó gửi lại vào email người dùng (sử dụng Google Form – Google Sheet – Apps script – Website hiển thị Form & kết quả) 

1. Yêu cầu: 

Tạo form để người dùng nhập liệu => hệ thống xử lý => Hiển thị kết quả trả lại & gửi kết quả vào email người dùng đã nhập vào form

Hiệu quả: Thông qua đáp ứng yêu cầu của người dùng, hệ thống sẽ collect được dữ liệu người dùng để sử dụng cho các bước marketing tiếp theo

2. Các bước xử lý: 

+ Tạo google form với các yêu cầu nhập data để người dùng nhập dữ liệu tương ứng  (tạo google form)

+  Chuyển data vào google sheet (link google form với google sheet)

+ Hệ thống sẽ lấy dữ liệu mới nhất mà người dùng nhập vào (form submission trigger – google apps script) => tính toán => trả lại kết quả & gửi vào email của người dùng. 

3. Code thực tế: 

Bật script editor của google apps script:

function myFunction() {
var ss = SpreadsheetApp.openById('Google sheet ID'); //nhap google spreadsheet ID link voi google form
var sheet = ss.getSheetByName('Form Responses 1'); //mo sheet nhan form response
var row = sheet.getLastRow(); //Du lieu moi nhat
Logger.log(row);
/*get values of the last row range - exp: C2:G8 = (2, 3, 6, 4) ~ (row, column, optNumRows, optNumColumns)
2: the starting row = 2
3: the starting col = C
6: the number of rows = 6 so from 2 to 8
4: the number of cols = 4 so from C to G
*/
var datarange = sheet.getRange(row,2,1,6); //2d array - column A:G
var values = datarange.getValues(); //values of the last row added
Logger.log(values);
//destination sheet = schedule making sheet
var schedule_sheet = ss.getSheetByName('Sheet2');
var b3 = schedule_sheet.getRange("B3"); //so tien vay - lay cac du lieu de tinh toan
b3.setValue(values[0][0]);
var b4 = schedule_sheet.getRange("B4"); //thoi han vay
b4.setValue(values[0][1]);
var b5 = schedule_sheet.getRange("B5"); //thoi gian an han
b5.setValue(values[0][2]);
var b6 = schedule_sheet.getRange("B6"); //lai suat vay
b6.setValue(values[0][3]);
//convert schedule sheet to pdf
var email = values[0][5]; //dia chi email nguoi dung
Logger.log(email);
//Stop script 2 secound for sheet calculation - dam bao script tinh toan xong moi gui email ket qua cho nguoi dung
Utilities.sleep(8000);
var b10 = schedule_sheet.getRange("B10").getValue();
Logger.log(b10); //test b10
if (email != 0) {
var save_folder = DriveApp.getFolderById('Folder ID'); //folder to save pdf file
var FileID = 'File ID';  //sheet chua ket qua => convert sang pdf
//schedule_sheet.getSheetId(); // sheet to print pdf
//Logger.log(FileID);
var blob = DriveApp.getFileById(FileID).getBlob().getAs('application/pdf').setName("Lich tra no" + "_" + email);
var pdf = save_folder.createFile(blob);
var pdfID = pdf.getId();
var file = DriveApp.getFileById(pdfID);
//Logger.log(file.hasNext()); //true
MailApp.sendEmail({
to: email,
subject: "tai lieu ban muon xem",
body: " Chào bạn,\n Bạn xem tai lieu trong file đính kèm.\n Trân trọng!", //su dung <br> hoac '\n' de xuong dong
attachments: [file.getAs(MimeType.PDF)]
});
}