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
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
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
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:
- Phần 1: Gửi Email Marketing miễn phí từ Google Sheet
- Phần 2: Đánh dấu Email đã gửi và lên lịch gửi Email tự động
- Phần 3: Gửi Email với giao diện html
- Phần 4: Gửi mail chúc mừng sinh nhật khách hàng bằng Google Sheet