[GAS] G-Drive 自動化 – 客戶互動 002 – 客群篩選

【前情提要】

在上次我們成功的寄信給每位填寫表單的用戶,但很多時候用戶可能會嫌信多煩人。為了進一步提升客戶服務,發送給指定客群能更有效的讓對方感到受尊重或提升廣告效益。

那接著,我們將模擬信件訂閱的格式,篩選要收信的客戶進行投遞。

【預計內容】

  1. 新增表單問題
  2. 建立篩選機制
  3. 測試信件投遞

【主要內容】

1. 新增表單問題

那在題目這邊,我新增確認訂閱信件的區域。當用戶選擇 “是” 的時候,才會投遞給客戶。

我這邊也順便先填寫完表單,那自己的 e-mail 就選擇不用收到信 ~~

2. 建立篩選機制

接著,我們回到 Linked Sheet 中修改 Apps Script,下方的程式碼會針對 “題目” 進行搜尋,利用 if-else 判斷是否該寄信給用戶。可以看到我們在迴圈中多做檢查,確認 “題目” 的回答為 “是” 才寄信。

JavaScript
// Send email to all responsers
function sendEmails() {
  // Name of linked sheet
  var sheetName = 'Form Responses 1';
  // Name for column that store the e-mail
  var columnEmail = 'Email Address';
  // Name for column of question of subscription
  var columnSubscribe = '是否訂閱信件';
  // e-Mail Content
  var emailContent = '<h1>Hello!</h1><p>This is a test email with HTML content.</p>';
  // Get the active spreadsheet and sheet
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = spreadsheet.getSheetByName(sheetName);

  // Get the data range
  var dataRange = sheet.getDataRange();
  var data = dataRange.getValues();

  // Find the column index of the 'Email Address' column
  var headers = data[0];
  var emailColumnIndex = headers.indexOf(columnEmail);
  var subscribeColumnIndex = headers.indexOf(columnSubscribe);

  // If the 'Email Address' column is found
  if (emailColumnIndex !== -1) {
    // Start from row 2 to skip headers
    for (var i = 1; i < data.length; i++) {
      var row = data[i];
      // If the 'Subscription' column is found
      if (subscribeColumnIndex !== 1) {
        if (row[subscribeColumnIndex] === '') {
          var recipient = row[emailColumnIndex];
          try {
            // Send the email
            GmailApp.sendEmail(recipient, 'Hello from BaBaoChou', emailContent, { 'htmlBody': emailContent });

            console.log('Successfully sent email to: ' + recipient);
          } catch (error) { console.error('Failed to send email to: ' + recipient); }
        }
      }
    }
  }
}

3. 測試信件投遞

那接著讓我們手動執行,可以看到這次只打印一個回應。

接著看到我個人的信箱,並沒有新的信件

再到執行結果所列的信箱確認,成功只寄給部分客群

【後話】

那除此之外,客製化的信件更能讓客戶感到自己的特殊,尤其針對折扣的推銷。那我們下次,則會利用用戶名稱簡單的呈現修改信件內容的方法。

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.