Cách nhanh chóng phản hồi form khảo sát Google với Sheets và Apps Script

Nội dung được viết bởi Bến Hà Trương

Bạn đã gửi cho khách hàng của mình các bảng khảo sát từ Google form và nhận được hàng trăm lượt phản hồi.

Chúng đã được sắp xếp gọn gàng trong trong Google sheets của bạn, nhưng bạn lại đang phân vân không biết làm thế nào để phản hồi tất cả và gửi lời cám ơn đến những người đã bỏ thời gian tham gia khảo sát của bạn.

Việc soạn hàng đống email phản hồi cho từng người theo cách thủ công sẽ tốn của bạn khá nhiều thời gian, nếu không muốn nói là toàn bộ. Rõ ràng, đây không phải là cách sử dụng thời gian hiệu quả.

Bạn có thể sử dụng dịch vụ ESP (nhà cung cấp dịch vụ email) như Mailchimp để gửi hàng loạt thư “Cảm ơn”, nhưng những email này sẽ không mang tính cá nhân. Đó sẽ là một email chung chung, nhạt nhẽo và không ai thích. Những email đại trà kiểu đó sẽ không thu hút khách hàng của bạn và bạn sẽ bỏ lỡ cơ hội để xây dựng những mối quan hệ thân thiết cùng nhiều khác hàng tiềm năng, những người đang quan tâm tới dịch vụ của bạn và đã bỏ thời gian thực hiện bài khảo sát của bạn.

Rất may, có một cách dễ dàng vô cùng nhanh chóng giúp bạn soạn hàng tá email phản hồi tự động.

Phản hồi hàng loạt email bằng Google Sheet

Bằng cách thêm cột Phẩn hồi vào Google Sheet của bạn, bên cạnh câu trả lời khảo sát của Google form, bạn có thể soạn những tin nhắn phản hồi đã được cá nhân hóa gửi đến những người thực hiện khảo sát.

Sau đó, sử dụng Google Apps Script, bạn có thể tạo email đã được lập trình cho từng người và gửi hàng loạt tin nhắn phản hồi trực tiếp từ Google sheet của bạn.

Cách bước tạo sheet phản hồi trong Google Sheet

Giả sử chúng ta gửi một bảng khảo sát ngắn tới các khách hàng của mình, yêu cầu họ thử khóa học mới của chúng ta. Sau đó, chúng ta nhận được hơn 270 email phản hồi. Chúng ta cần phải gửi email cho từng người để nói lời cảm ơn vì đã bày tỏ sự quan tâm đến khóa học mới và chia sẻ phản hồi của họ.

Sau đây là các bước thực hiện.

Bước 1: Tạo bản khảo sát Google form

Bước này khá đơn giản.

Đầu tiên bạn sẽ tạo một bảng khảo sát với Google form. Khi tạo bản khảo sát này, bạn cần yêu cầu người thực hiện khảo sát nhập tên của họ  và bạn cũng đừng quên click vào tùy chọn “Collect Emails”  trong phần Settings .

Google form thu thập email

Dưới đây là ảnh chụp của Form demo đã hoàn thành:

Google form đã hoàn thành

Khi bạn đã tạo xong biểu mẫu Khảo sát, hãy gửi biểu mẫu này đi để bạn có thể nhận được phản hồi.

Bước 2: Thiết lập Sheet phản hồi trong Google form

Nhấp vào tab Responses (1) và sau đó nhấp vào Create Spreadsheet (2):

Tạo sheet Responses của Google form

Tiếp theo, nhấp vào tạo bảng tính mới, bảng tính này sẽ được tạo trong cùng thư mục Drive với Form của bạn:

Google Form tạo sheet mới

Hãy tìm trang tính vừa tạo và mở nó ra, bạn sẽ thấy một sheet tương tự như hình bên dưới

Trang tính biểu mẫu của Google

Chèn 2 cột vào bên phải cột dữ liệu Form Response  của bạn.

Trong ví dụ này, chúng ta sẽ thêm hai cột trống mới vào bên phải Cột D. Thực hiện việc này bằng cách đánh dấu cột D (nhấp vào tiêu đề cột D), nhấp chuột phải và chọn Insert 1 Right hai lần.

Cột mới đầu tiên, cột E,  chúng ta đặt tên là "Custom Reply" và cột thứ hai, cột F,  là "Status", vì vậy Sheet của chúng ta bây giờ trông giống như sau:

Bảng trả lời

Chúng ta sẽ tô màu hai cột mới để phân biệt chúng với dữ liệu có sẵn của Form.

Vậy là Sheet mới của chúng ta đã sẵn dàng. Bạn hãy mở Script Editor (dưới menu Tools) để bắt đầu thêm code.

Bước 3: Thêm code vào Apps Script

Trước khi bắt đầu với các đoạn code, chúng ta hãy nghĩ thử xem mình cần viết những gì

1. Xác định dữ liệu trong Sheet phản hồi khảo sát Google form của chúng ta.

2. Phân tích cú pháp dữ liệu để trích xuất câu trả lời và tên người trả lời

3. Phân tích cú pháp Sheet để trích xuất tất cả các câu trả lời tùy chỉnh của chúng ta cho từng người một

4. Quyết định xem có nên gửi email hay không (có phản hồi nào đã được gửi chưa?)

5. Tạo email chứa tên người trả lời, phản hồi của họ và câu trả lời tùy chỉnh của chúng ta

6. Gửi email

Dưới đây là đoạn code để dán vào Script Editor trên Sheet của bạn (Tools > Script editor…):

// add menu to Sheet function onOpen() {  var ui = SpreadsheetApp.getUi();    ui.createMenu("Send Emails")  .addIte

m("Send Email Batch","createEmail")  .addToUi(); } /** * take the range of data in sheet * use it to build an HTML email body */ function createEmail() {  var thisWorkbook = SpreadsheetApp.getActiveSpreadsheet();  var thisSheet = thisWorkbook.getSheetByName('Form Responses 1');  // get the data range of the sheet  var allRange = thisSheet.getDataRange();    // get all the data in this range  var allData = allRange.getValues();    // get the header row  var headers = allData.shift();    // create header index map  var headerIndexes = indexifyHeaders(headers);    allData.forEach(function(row,i) {    if (!row[headerIndexes["Status"]]) {      var   htmlBody =        "Hi " + row[headerIndexes["What is your name?"]] +",

" +          "Thanks for responding to my questionnaire!

" +            "Your choice:

" +              row[headerIndexes["Choose a number between 1 and 5?"]] + "

" +                row[headerIndexes["Custom Reply"]] + "

" +                  "Have a great day.

" +                    "Thanks,
" +                      "Ben";            var timestamp = sendEmail(row[headerIndexes["Email Address"]],htmlBody);      thisSheet.getRange(i + 2, headerIndexes["Status"] + 1).setValue(timestamp);    }    else {      Logger.log("No email sent for this row: " + i + 1);    }  }); }   /** * create index from column headings * @param {[object]} headers is an array of column headings * @return {{object}} object of column headings as key value pairs with index number */ function indexifyHeaders(headers) {    var index = 0;  return headers.reduce (    // callback function    function(p,c) {          //skip cols with blank headers      if (c) {        // can't have duplicate column names        if (p.hasOwnProperty(c)) {          throw new Error('duplicate column name: ' + c);        }        p = index;      }      index++;      return p;    },    {} // initial value for reduce function to use as first argument  ); } /** * send email from GmailApp service * @param {string} recipient is the email address to send email to * @param {string} body is the html body of the email * @return {object} new date object to write into spreadsheet to confirm email sent */ function sendEmail(recipient,body) {    GmailApp.sendEmail(    recipient,    "Thanks for responding to the questionnaire!",    "",    {      htmlBody: body    }  );    return new Date(); }

Bạn sẽ cần phải điều chỉnh tham chiếu row[headerIndexes[…]] 

row[headerIndexes["Choose a number between 1 and 5?"]]

cho khớp với các tiêu đề cột trong Sheet trả lời của bạn.

Tóm lại, đây là cách chương trình trên hoạt động:

Dòng 2 - 8 thêm menu tùy chỉnh vào Google sheet của chúng tađể chúng ta có thể chạy chương trình từ đó.

Các dòng 15 - 28 lấy tất cả dữ liệu phản hồi ra khỏi trang tính, được gọi Form Responses 1 và tạo chỉ mục của các tiêu đề cột.

Dòng 30 - 48 là phần chính của chương trình này, trong đó tập lệnh lặp qua từng hàng dữ liệu bằng phương thức forEach , kiểm tra xem email đã được gửi chưa (dòng 31) và nếu chưa, hãy tạo một email (dòng 32 - 40) với một dòng mở và đóng cố định và thông báo tùy chỉnh ở giữa, sẽ gửi nó (dòng 42) và xuất ra một ngày trong cột trạng thái (dòng 43).

Dòng 57 - 77 là hàm tạo chỉ mục tiêu đề từ dữ liệu của chúng ta.

Dòng 85 - 97 là hàm chúng ta gọi để thực sự gửi email bằng dịch vụ GmailApp .

Lưu ý:

Apps Script sẽ cho phép bạn gửi tối đa 100 email / ngày đối với gói dành cho người dùng miễn phí. Nếu bạn có nhiều gửi nhiều hơn. Chương trình sẽ báo lỗi sau:

giới hạn hạn ngạch tập lệnh ứng dụng email

Bạn sẽ phải đợi 24 giờ trước khi có thể gửi loạt email tiếp theo, chương trình sẽ bắt đầu từ nơi bạn đã dừng lại.

Bạn cũng có thể nâng cấp lên G Suite for Work và hạn ngạch email Apps Script của bạn tăng lên 1.500 email / ngày

Gửi email phản hồi cho Google Form từ trang tính của bạn

Trong cửa sổ Script Editor của bạn, hãy chọn và chạy hàm onOpen():

Run > onOpen

Thao tác này sẽ thêm một menu vào tab Sheet của bạn, để bạn có thể chạy tập lệnh email từ trang tính của mình.

Tiếp theo, hãy viết tất cả các câu trả lời tùy chỉnh của bạn vào các ô bên cạnh phản hồi cho mỗi hàng:

Cách nhanh chóng phản hồi form khảo sát Google với Sheets và Apps Script

Khi bạn đã sẵn sàng, hãy sử dụng menu tùy chỉnh mới để chạy hàm email.

Nếu hàm này hoạt động, nó sẽ chèn thông tin ngày gửi vào cột trạng thái cuối cùng đó để bạn biết điểm email được gửi đi. Bạn có thể kiểm tra thư mục thư đã gửi trong tài khoản Gmail của bạn để xác nhận lại.

Qua bài viết này, chúng tôi hy vọng bạn đã biết cách dễ dàng gửi thư phản hồi cho khách hàng của mình. Để biết thêm các mẹo và thủ thuật tin học hữu ích khác, hãy tham gia cùng Gitiho ngay hôm nay.

Google sheets - công cụ thay thế hoàn hảo cho Excel có lẽ đã quá quen thuộc với hầu hết chúng ta, đặc biệt là dân văn phòng. Nhưng bạn có biết, Google Sheets có khoảng 900 triệu người dùng, nhưng không phải ai cũng biết sử dụng thành thạo những tính năng hữu ích từ những cái cơ bản nhất.

Để giúp đỡ bạn trên hành trình chinh phục công cụ làm việc “quốc dân” này, Gitiho đã cho ra mắt khóa học Google Sheets từ Cơ bản đến Nâng cao, công cụ thay thế Excel chỉ với 45 bài giảng và 9 giờ học, bạn đã hòan toàn có thể làm chủ công cụ này.

Giờ đây, bạn hoàn toàn có thể tự tin phân tích và xử lý dữ liệu trên Google Sheet, lập bảng biểu, báo cáo trực quan và hơn thế nữa. Và chắc chắn rằng, bạn sẽ được sếp và đồng nghiệp “yêu” hơn đấy!

0/5 - (0 bình chọn)

0/5 - (0 bình chọn)

0 thảo luận

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ thông tin và truyền thông