323 lượt xem
0 bình luận

Cách gửi mail tự động và đánh dấu mail đã gửi

Bài viết này hướng dẫn cách gửi mail tự động, là phần 2 trong serie 4 bài về xây dựng hệ thống gửi Email Marketing miễn phí với Google Script.

Code mình đã nêu trong phần 1 sẽ gửi mail cho tất cả khách hàng có trong sheet. Giờ, có một khách hàng mới vừa đăng ký (file sheet có thêm 1 dòng mới), và bạn chỉ muốn gửi cho khách hàng mới đó, làm thế nào bây giờ?

Chỉ gửi cho những mail mới

send-email-02

Phương án ở đây rất đơn giản, là khi gửi mail xong cho khách hàng nào đó, ta ghi thêm vào cột bên cạnh là “Đã gửi”. Như ở file trên thì ghi vào cột G (cạnh cột cuối cùng là F).

Sau đó, mỗi lần chạy, hàm sẽ check tất cả các dòng, dòng nào mà cột G có chữ”Đã gửi” thì bỏ qua, dòng nào không có chữ”Đã gửi” thì mới gửi mail.

Code lúc này trở thành:

function getEmail(){
var file_id = 'google-sheet-file-id'; //Thay ID file của bạn vào đây
  var sheet_name = 'name-of-sheet'; //Một file google sheet có nhiều sheet con. Thay tên sheet vào đây
  var customerList = SpreadsheetApp.openById(file_id).getSheetByName(sheet_name); //Khai báo sheet
  var lastRow = customerList.getLastRow(); //Tìm dòng cuối cùng
  for(var i = 2; i <= lastRow; i++){ //Tạo vòng lặp với i là số thứ tự của dòng, bắt đầu từ 2 vì dòng 1 là header
    var tenKhachHang = customerList.getRange('B' + i).getValue(); //Lấy giá trị tên khách hàng ở cột B
    var emailKhachHang = customerList.getRange('C' + i).getValue(); //Lấy giá trị email khách hàng ở cột C
    var tenSanPham = customerList.getRange('D' + i).getValue(); //Lấy tên sản phẩm ở cột D
    var linkSanPham = customerList.getRange('E' + i).getValue(); //Lấy link sản phẩm ở cột E
    var giaSanPham = customerList.getRange('F' + i).getValue(); //Lấy giá sản phẩm ở cột F
    var tieudeThu = 'Xác nhận đơn hàng - Sản phẩm ' + tenSanPham;
    var status = customerList.getRange('G' + i).getValue(); //Kiểm tra cột G, xem khách này gửi thư hay chưa
    var noidungThu = "Chào "+tenKhachHang+"!\n"
                     + "Shop mình vừa nhận được đơn đặt hàng của bạn với sản phẩm: "+tenSanPham+"\n"
                     + "Link sản phẩm bạn đã đặt hàng: "+linkSanPham+"\n"
                     + "Shop sẽ giao hàng cho bạn trong thời gian sớm nhất.\n"
                     + "Tổng số tiền bạn cần thanh toán là: "+giaSanPham+".\n"                     
                     + "Cám ơn bạn đã đồng hành cùng shop.";
    
    if(status !== 'Đã gửi'){
      GmailApp.sendEmail(emailKhachHang,tieudeThu,noidungThu);
      customerList.getRange("G"+i).setValue('Đã gửi');   
    }
  }
}

Cách gửi mail tự động theo lịch

Với script trên đây, bạn có thể lên lịch để mỗi phút nó chạy một lần (nếu có khách hàng mới thì script gửi thư xác nhận, không có bỏ qua).

Bạn làm như sau:

Bước 1: Tại trang soạn thảo script, trên menu, chọn Edit, rồi chọn Current project ‘s triggers

send-email-04

Bước 2: Một tab mới mở ra, chọn Add Trigger (dưới cùng bên phải)

Bước 3: Chọn như hình dưới

Cách gửi mail tự động bằng Google Script Trigger

Tùy mục đích script của bạn mà bạn có thể chọn chu kỳ chạy cho phù hợp, tối thiểu là mỗi phút chạy một lần. Với cách gửi mail này, ngay khi có đơn hàng mới, thì trong vòng 1 phút sau, khách hàng đã nhận được mail xác nhận

Đến đây, bạn cơ bản đã có một tool gửi email tự động, nhanh và hiệu quả.

Trong phần 3, chúng ta sẽ tìm hiểu cách gửi mail có dạng html (đẹp hơn, có hình ảnh, chữ đậm nhạt…)

 

Đọc đầy đủ chủ đề này:

Bài viết khác
Gửi Email Marketing miễn phí từ Google Sheet

Gửi Email Marketing miễn phí từ Google Sheet

Bởi Fang.2F
August 26, 2020 · 1 phút đọc