Xin chào,
Có thể bạn chưa biết, Google Biểu mẫu có thể gửi được email phản hồi tự động sau khi khách hàng đăng ký thông tin qua form.
Nếu bạn đang dùng Google biểu mẫu để nhận các đăng ký từ khách hàng thì bạn có thể gửi cho họ một email cảm ơn sau khi họ đăng ký. Mình sẽ hướng dẫn bạn trong bài viết này.
Video hướng dẫn Gửi email tự động sau đăng ký Google biểu mẫu
Cập nhật các thay đổi về giao diện trong năm 2022:
Hướng dẫn cũ:
Code trong video
function guiEmail (e) {
// truyền vào biến e để lấy giá trị từ biểu mẫu
var email = e.values[2]; //Lấy giá trị của cột số 2 lưu vào biến email
var name = e.values[1]; //Lấy giá trị của cột số 1 lưu vào biến name
var tel = e.values[3]; //Lấy giá trị của cột số 3 lưu vào biến tel
var subject = 'Cảm ơn ' + name + ' đã đăng ký tham dự sự kiện'; //Tiêu đề email
var body = 'Xin chào ' + name + '<br /><br />'; //Nội dung email
body = body + 'Cảm ơn bạn đã đăng ký tham dự sự kiện của chúng tôi. Dưới đây là thông tin đăng ký của bạn: <br />';
body = body + 'Họ tên: ' + name + '<br />';
body = body + 'Email: ' + email + '<br />';
body = body + 'Số điện thoại: ' + tel + '<br /><br />';
body = body + 'Hẹn gặp bạn tại sự kiện.<br />';
MailApp.sendEmail({
to: email,
subject: subject,
htmlBody: body
});
}
Vài lưu ý
Email gửi đi là email của người tạo biểu mẫu
Mỗi ngày chỉ được gửi tối đa 500 email (tài khoản gmail thông thường).
https://developers.google.com/apps-script/reference/mail/mail-app
Hướng dẫn soạn thảo nội dung email theo ý muốn
Video hướng dẫn
Gửi email theo vùng địa lý sau đăng ký
Yêu cầu: Biểu mẫu có cột Tỉnh/Thành phố. Làm thế nào để chỉ gửi email cho những người ở Tp Hà Nội?
Giải pháp: So sánh giá trị cột Tỉnh/Thành phố. Nếu bằng Hà Nội thì gửi email, nếu không thì bỏ qua.
Mở rộng: Có thể mở rộng thêm ra các tỉnh thành phố khác và có thể thay đổi nội dung email theo từng thành phố nếu muốn.
Video hướng dẫn
Code trong video
function guiEmail (e) {
// truyền vào biến e để lấy giá trị từ biểu mẫu
var email = e.values[2]; //Lấy giá trị của cột số 2 lưu vào biến email
var name = e.values[1]; //Lấy giá trị của cột số 1 lưu vào biến name
var tel = e.values[3]; //Lấy giá trị của cột số 3 lưu vào biến tel
var city = e.values[4]; // Lấy giá trị của cột số 4 lưu vào biến city
if (city.split(" ")[0] == "1") {
var subject = 'Cảm ơn ' + name + ' đã đăng ký tham dự sự kiện'; //Tiêu đề email
var body = 'Xin chào ' + name + '<br /><br />'; //Nội dung email
body = body + 'Cảm ơn bạn đã đăng ký tham dự sự kiện của chúng tôi. Dưới đây là thông tin đăng ký của bạn: <br />';
body = body + 'Họ tên: ' + name + '<br />';
body = body + 'Email: ' + email + '<br />';
body = body + 'Số điện thoại: ' + tel + '<br /><br />';
body = body + 'Hẹn gặp bạn tại sự kiện.<br />';
MailApp.sendEmail({
to: email,
subject: subject,
htmlBody: body
});
}
}
GỬI EMAIL VỚI 2 ĐIỀU KIỆN LỌC
Yêu cầu:
Một đơn vị có 2 cơ sở, mỗi cơ sở có nhiều nhân viên kỹ thuật xử lý các nhóm công việc khác nhau.
Các nhân viên của cơ sở sẽ gửi các yêu cầu hỗ trợ về kỹ thuật thông qua Google biểu mẫu.
Trong biểu mẫu sẽ cho phép chọn cơ sở và nhóm công việc.
Từ yêu cầu hỗ trợ của nhân viên gửi lên, viết code để gửi email tới đúng nhân viên kỹ thuật của cơ sở được yêu cầu
và đúng nhóm công việc mà nhân viên kỹ thuật đó phụ trách.
Ví dụ:
Nhân viên Kỹ thuật 0 của Cơ sở 1 phụ trách nhóm công việc 1
Nhân viên Kỹ thuật 1 của Cơ sở 1 phụ trách nhóm công việc 2
Nhân viên Kỹ thuật 2 của Cơ sở 2 phụ trách nhóm công việc 1
Nhân viên Kỹ thuật 3 của Cơ sở 2 phụ trách nhóm công việc 2
…
=> Các nhân viên kỹ thuật sẽ nhận được email yêu cầu hỗ trợ tương ứng với cơ sở họ đang làm việc
và nhóm công việc họ đang phụ trách.
Video hướng dẫn
https://www.youtube.com/watch?v=iNJ7ZhfgSbs
Code trong video
function guiEmail (e) {
// truyền vào biến e để lấy giá trị từ biểu mẫu
var ID_Phieu = e.values[0];
var Co_so = e.values[1];
var Don_vi = e.values[2];
var Vi_Tri_Phong = e.values[3];
var Noi_Dung_Yeu_Cau = e.values[4];
var Nhom_Cong_Viec = e.values[6];
var Nguoi_Yeu_Cau = e.values[7];
var Tel = e.values[9];
var Email_KT_0 = "kt0@gmail.com"; //KT0 xử lý vấn đề của CS1 Nhóm công việc 1
var Email_KT_1 = "kt1@gmail.com"; //KT1 xử lý vấn đề của CS1 Nhóm công việc 2
var Email_KT_2 = "kt2@hotmail.com"; //KT2 xử lý vấn đề của CS2 Nhóm công việc 1
var Email_KT_3 = "kt3@gmail.com"; //KT3 xử lý vấn đề của CS2 Nhóm công việc 2
// Viết nội dung email lưu vào biến body
var subject = '[PHIẾU YÊU CẦU SỬA CHỮA] '+ ID_Phieu +' - ' + Don_vi + ' Gửi yêu cầu sửa chữa'; //Tiêu đề email
var body = 'Đề nghị các nhân viên Phòng CNTT, nhận yêu cầu và liên hệ với người yêu cầu trong vòng 15 phút kể từ khi nhận được Email<br /><br />'; //Nội dung email
body = body + 'Dưới đây là thông tin yêu cầu: <br />';
body = body + 'Mã phiếu: ' + ID_Phieu + '<br />';
body = body + 'Cơ sở: ' + Co_so + '<br />';
body = body + 'Đơn vị: ' + Don_vi + '<br /><br />';
body = body + 'Vị trí phòng: ' + Vi_Tri_Phong + '<br /><br />';
body = body + 'Nội dung yêu cầu: ' + Noi_Dung_Yeu_Cau + '<br /><br />';
body = body + 'Nhóm công việc: ' + Nhom_Cong_Viec + '<br /><br />';
body = body + 'Người yêu cầu: ' + Nguoi_Yeu_Cau + '<br /><br />';
body = body + 'Điện thoại người yêu cầu: ' + Tel + '<br /><br />';
var nguoinhan = '';
// Kiểm tra Cơ sở 1
if (Co_so.split(" ")[0] == "1") {
// Nếu là cơ sở 1 thì kiểm tra tiếp nhóm nội dung công việc
if (Nhom_Cong_Viec.split(" ")[0] == "1") {
// Nếu là nhóm công việc 1 thì gửi email cho kỹ thuật 0
nguoinhan = Email_KT_0;
}
if (Nhom_Cong_Viec.split(" ")[0] == "2") {
// Nếu là nhóm công việc 2 thì gửi email cho kỹ thuật 1
nguoinhan = Email_KT_1;
}
}
// Kiểm tra Cơ sở 2
if (Co_so.split(" ")[0] == "2") {
// Nếu là cơ sở 2 thì kiểm tra tiếp nhóm nội dung công việc
if (Nhom_Cong_Viec.split(" ")[0] == "1") {
// Nếu là nhóm công việc 1 thì gửi email cho kỹ thuật 2
nguoinhan = Email_KT_2;
}
if (Nhom_Cong_Viec.split(" ")[0] == "2") {
// Nếu là nhóm công việc 2 thì gửi email cho kỹ thuật 3
nguoinhan = Email_KT_3;
}
}
// Kết thúc kiểm tra cơ sở và nhóm công việc
// Bắt đầu gửi email
MailApp.sendEmail({
to: nguoinhan,
bcc: Email_KT_1 + ',' + Email_KT_2 + ',' + Email_KT_3,
subject: subject,
htmlBody: body
});
}
Chào bạn, cám ơn video hướng dẫn thật hữu ich.
Trong quá trình làm thì mình gặp một vẫn đề như sau:
+ Khi bấm vào “Các kích hoạt của dự án hiện tại” thì mail của mình hiện ra không giống bạn. Cụ thể là nó chuyển mình đến 1 trang nhứ sau :”https://script.google.com/home/projects/1XxDOqnndmXVqC93bJowwplgyK_v6g2Ni3RbA8le0a_Y3A7MQCrL7lums/triggers?owned_by=1″ nên mình không thể tiến hành các bước tiếp theo được,
Bạn có thể giúp mình xem xét vấn đề này với nhé.
Mình cập nhật vào cuối bài viết rồi nhé
CHO EM HỎI CHÚT Ạ
EM GHI CẤU TRÚC GIỐNG NHƯ ANH, NHƯNG GHI GỬI MAIL THÌ LẠI KHÔNG RA NỘI DUNG Ạ
Gửi được mail nhưng nó không có nội dung à bạn? Gửi code mình xem thử
Để có thể chèn ảnh vào thì dùng lệnh code nào vậy bạn, mình có xem qua lệnh code html search trên GG
=
nhưng không biết chèn sao, bạn có thể hướng dẫn mình được không?
Bạn dùng code này: <img src=”lien-ket-den-anh” />
Mình có hướng dẫn trong bài, bạn xem phần soạn thảo email theo ý muốn nhé.
Chào anh, Em muốn gửi email cho hai nhóm khách hàng là người Việt và người sử dụng ngôn ngữ tiếng Anh khi khách hàng làm khảo sát (khá giống trường hợp gửi theo thành phố như trong bài viết của anh). Cụ thể là nếu khách chọn tiếng Việt sẽ được gửi nội dung email tiếng Việt; khách chọn làm khảo sát bằng tiếng Anh thì sẽ gửi email nội dung tiếng Anh. Em có thử làm theo cách anh hướng dẫn như trên bài nhưng chắc không đúng cách nên nó không ra. Và ở dòng code: if… Đọc tiếp »
bạn gửi mình xem form của bạn nhé
Mình cũng bị lỗi này bạn xem giúp mình với
Để chèn file (file này có sẵn trong gg Driver) thì dùng code nào ạ. rất cảm ơn bạn
gửi file đính kém rất phức tạp, bạn nên gửi link download hoặc link truy cập file cho người ta qua mail thôi
Mình đã xem và làm được, video hướng dẫn rất chi tiết, cụ thể. Trong quá trình làm cũng có chút nhầm lẫn nhưng mình đã hỏi và được bạn Vinh hướng dẫn lại. Cảm ơn bạn rất nhiều
Cảm ơn Vinh rất nhiều, em rất nhiệt tình hướng dẫn chi tiết để mình chạy được ứng dụng phù hợp với công việc.
Chào bạn, bạn cho mình hỏi form của mình đăng ký 1 ngày khoảng 2-300 lần. (<500). Nhưng sao nhiều mail vẫn bị báo lỗi ” Dịch vụ bị gọi quá nhiều lần trong 1 ngày”. Bạn chỉ giúp mình cách khắc phục được ko? Cảm ơn bạn nhiều
Hình như mình đã trả lời bạn trên FB rồi. Do google đã giảm số lần gửi mail trong ngày đối với tài khoản thông thường bạn nhé.
Em gõ code như a hướng dẫn, nhưng khi chạy thì báo lỗi “TypeError: Cannot read property ‘values’ of underfined (dòng 3, têm “Mã”) ” Em không biết sửa như thế nào ạ?
Em xem lại thứ tự các cột xem đúng chưa nhé
ok
Sao mình làm nhưng khi bấm chạy tập lệnh thì báo lỗi như này
bạn xem lại thứ tự cột nhé, có thể nhầm giữa cột số điện thoại và email
14:01:56LỗiTypeError: Cannot read property ‘values’ of undefined
guiEmail@ Mã.gs:4
Chào bạn, lúc trước mình làm theo hướng dẫn của bạn thì được rồi nhưng giờ hình như thay đổi gì, nó lại báo lỗi bạn ạ. mình gửi mã lỗi ở trên bạn xem giúp mình được ko
EM cũng gặp lỗi tương tự ah, đang đợi anh Vinh hướng dẫn thêm
gặp lỗi như bạn, không biét làm sao? Ai đã làm được xin hướng dẫn giúp ạ
Lỗi này do không đọc được giá trị trong cột gửi lên, 1 là xem lại thứ tự cột xem đúng chưa, 2 là điền biểu mẫu để test xem chạy được không, nếu test bằng nút bấm chạy thử thì không có biểu mẫu nào được gửi lên => báo lỗi không đọc được giá trị
Dạ a ơi, làm sao để chỉ gửi email cho trường vừa mới được thêm tự động vào biểu mẫu thôi ạ
Chào bạn,
Mình thực hiện email trả lời tự động giống như bạn tuy nhiên giao diện không giống như bạn hướng dẫn. NHờ bạn hướng dẫn giúp mình nhé. Mình cảm ơn
Mình bị hiện lỗi Syntax error: SyntaxError: Unexpected token ‘<‘ line: 5 file: Code.gs
Code của line 5 nếu chưa remove line break là:
<div> </div>
anh ơi cho e hỏi chút làm sao để mail tự động này khi đến hộp thư của khách hàng không vào mục spam.
em cảm ơn ạ!
Thư vào spam là do nội dung bạn nhé. Bạn viết nội dung phù hợp, không viết hoa cả cụm từ, không chèn nhiều icon là được.
Em làm theo hướng dẫn nhưng ra lỗi
TypeError: Cannot read property ‘values’ of undefined
guiEmail@ Code.gs:4
Nhờ anh xem giúp em với ạ
Em gặp lỗi khi gửi biểu mẫu hay bấm vào nút chạy thử, nếu em bấm nút chạy thử nó sẽ báo lỗi như vậy vì không có thông tin nào được gửi lên. Em cứ lưu lại và gửi biểu mẫu để test nhé
a ơi cho em hỏi ví dụ mình tạo một from đơn hàng ví dụ trên from có những mặt hàng a,b,c,d để khách điền số lượng ví dụ khách chỉ điền số lượng mặt hàng a với c còn b với d để trống thì khi e code em code để gửi mail cho khách em chỉ biết code thể hiện một lúc tất cả sản phẩm thôi cái nào có thì hiện giá trị cái nào ko thì rõng chứ hk biết code chỉ cho ra những sản phẩm có order thôi mong anh chỉ em với ạ… Đọc tiếp »
Anh ơi, em có làm thử theo như anh hướng dẫn thì em đã làm được thành công rồi. Em muốn tạo email mà có thể đính kèm file luôn, anh có thể chỉ em viết code thêm trong trường hợp này được ko?
Với em đang muốn gửi email tự động từ sender hiển thị là 1 tài khoản alias khác mà dùng tài khoản cá nhân của em để đăng nhập, ko biết có thể hỗ trợ em thêm phần gửi từ tài khoản alias được ko?
Đính kèm file sẽ phức tạp, bạn có thể gửi link Google Drive trong nội dung email để người nhận tải xuống.
Về việc gửi email tự động từ một tài khoản khác thì không được vì mặc định sẽ gửi từ email của người tạo biểu mẫu.
hello a, cám ơn a vì sự đóng góp này
cho e hỏi a có thể reup bài cuối được ko ạ, hiện tại clip yotube đã die r ko xem dc ạ!
thks a đã hỗ trợ ạ
Bài cuối có liên quan đến cơ quan nhà nước nên mình không public được video, chỉ đăng code được thôi
Bác làm được video trên sẽ làm được video dưới mà
làm thế nào để xuống dòng ạ? mail của em nó dính hết vào nhau ạ!
Bạn chèn thẻ <br /> vào chỗ cần xuống dòng nhé
Chào bạn .thanks bạn, rất dễ làm. mình làm theo đã ok . nhưng có một sô mail đã đăng ký nhưng ko nhận đc mail trả lời là bị sao bạn ha.
Bạn vào phần nhật ký thực thi để xem nó báo lỗi gì không nhé
Cho em hỏi là làm sao để email được gửi có cả chữ kỹ đã set trên gmail ạ?
bạn copy phần code html trong chữ ký gmail rồi dán vào cuối nội dung email, lưu ý đường dẫn hình ảnh cần chính xác nếu chữ ký có hình ảnh.
Mình sẽ quay lại video hướng dẫn phần này
Cảm ơn bạn rất nhiều, hướng dẫn dễ hiểu. Ở phần check điều kiện theo thành phố để gửi, mình nghĩ nên để như sau sẽ dễ hiểu, dễ làm hơn là sử dụng split: if (city_FromForm == "Hà Nội"){... Hi vọng bạn có thể làm 1 bài hướng dẫn khác về việc gửi email với Google Apps Script nhưng không qua trigger Google form, mà check theo điều kiện ở 1 cột nào đó. Ví dụ data được nhập thủ công vào Google Sheet, nếu ở cột “City” có dòng nào là Hà Nội thì sẽ gửi nội dung… Đọc tiếp »
Chào anh, em gặp lỗi khi thêm trình kích hoạt, sau khi em lưu và google bắt đăng nhập thì google tiếp tục báo là có nguy hiểm và không cho sử dụng ứng dụng. Em sửa lỗi này thế nào ạ
Bạn vào phần cài đặt bảo mật tài khoản google và cho phép các ứng dụng kém bảo mật truy cập nhé
Chào bạn, cho mình hỏi trong menu công cụ google sheet của mình lại không có trình chỉnh sửa tập lệnh (xem hình) vậy làm sao vào mục đó vậy bạn?
Ghi chú: mình thử share file google sheet đó cho bạn mình thì khi mở file đó trong tài khoản của bạn mình lại có mục “scipt editor”.
Anh ơi cho em hỏi, em đã làm giống như code anh hướng dẫn tuy nhiên nhận được báo lỗi là “TypeError: Cannot read property ‘values’ of undefined
Guiemail@ Code.gs:2”. Anh hướng dẫn giúp em trường hợp này với ạ.
Cảm ơn anh nhiều!
Chào anh ạ, em rất cảm ơn vì video hữu ích của anh. Mọi bước em làm theo anh đều rất mượt, em có thể tùy chỉnh mọi nội dung em muốn. Nhưng em gặp một vấn đề với biến name, đó là em muốn thay đổi kích cỡ nội dung lấy từ biến name nhưng em không biết cú pháp. Nếu được anh có thể chỉ em tất cả mọi thứ để có thể trang trí nội dung rút ra từ biến name nha.
Cảm ơn anh nhiều lắm ạ
“thay đổi kích cỡ nội dung lấy từ biến name”
Cái này là sao nhỉ? mình đọc không hiểu
Như anh thấy trên hình là văn bản “Trần Khánh Hưng” em lấy từ cột tên trong sheet của em ra và dòng ở trên nội dung em gõ vào trên html editor của anh, nhưng kích cỡ của giá trị name lấy từ sheet chỉ giữ nguyên size là 12, không thể tùy biến chỉnh to nhỏ hay màu được như dòng ở trên, vậy làm sao để có thể tùy chỉnh to nhỏ và tô màu cho giá trị mình lấy từ cột trong sheet ra ạ ?
Bạn dùng đoạn này xem ‘<p>Thân chào bạn <b style=”font-size: 18px;”>’ + name + ‘</b></p>’
Mình làm như bạn mà sao đến lúc đăng ký xong bên kia lại ko nhận được emali phản hồi
Chào anh, cho em hỏi code như thê nào để Cc thêm được người minh muốn họ nhận mail anh nhỉ. Cảm ơn anh
Mình cập nhật trong video mới nhất rồi nhé
có cách nào làm biến mình khai báo đạm lên hoặc đổi màu ko anh ơi
ví dụ như “name” hoặc “email” đó ạ
Dùng thẻ b và thuộc tính style (css) nhé, mình đã cập nhật trong video update 2022 rồi nhé
Hi anh,
Cảm ơn video rất bổ ích của anh ạ.
Anh cho em hỏi bấy giờ em muốn gửi mail cho người nhập nhưng không phải gửi ngay sau khi họ điền forms mà em muốn delay khoảng từ 2-3 ngày rồi mới gửi cho họ có được không ạ. Mong anh hướng dẫn.
Hàm được kích hoạt khi khách bấm gửi biểu mẫu nên cái này không làm được. Muốn làm phải gửi dữ liệu sang bên thứ 3 như zapier rồi delay hoặc các dịch vụ gửi email marketing
có cách nào thay đổi đc font chữ không ạ
bạn cho toàn bộ nội dung vào thẻ cặp thẻ <div style=”font-family: Tahoma”></div>, Tahoma là tên font chữ bạn muốn đổi nhé.
Mình muốn add thêm ảnh QR code ( mã thanh toán của mình ) để thanh toán thì làm thế nào vậy anh?
bạn thêm thẻ img vào nhé
Em chèn hình ảnh không được ai đó giúp em với 😭😭😭
bạn gửi code mình xem thử
A ơi e code xong rồi nhưng vào phần chạy nó ko hiện cái phần guiEmail thì khắc phục ntn ạ?
bạn gửi ảnh mình xem nhé
Cho em hỏi làm sao để đính kèm tệp khi gửi mail tự động vậy ạ? Em cảm ơn.
Dạ chào anh, em làm theo vid hướng dẫn và nó hiện lỗi này, mong anh chỉ em cách khắc phục, em cảm ơn ạ
em xem có nhập sai email hay lấy giá trị nhầm cột không
Có cách nào cho script trả kết quả bằng một hàm không ạ? Chẳng hạn mình khai báo trên google Form là 18 tuổi, Mail trả về sẽ là “bạn sinh năm 2006”. Mình thử làm theo cách trên nhưng kết quả trả về toàn ra mail :” bạn sinh năm undefined”
Bạn viết mã để lấy năm hiện tại rồi trừ đi số tuổi thì ra năm sinh
Mình cảm ơn bạn rất nhiều về những chia sẻ quá bổ ích, ngắn gọn và dễ hiểu.
Mình muốn hỏi thêm là có thể nào attach file theo email đính kèm được không ạ. Rất mong sớm nhận được phản hồi
Bạn làm theo tài liệu hướng dẫn ở đây nhé
https://developers.google.com/apps-script/reference/mail/mail-app
Cách 2 dễ hơn là bạn tải file lên google drive rồi gửi link trong email