Google Form gửi email tự động khi có người điền

Cách bật email thông báo khi Google Form có phản hồi mới, gửi bản sao câu trả lời cho người điền và viết Apps Script gửi email xác nhận tuỳ biến theo trigger.

Google Form có sẵn hai kiểu email tự động, không cần lập trình: báo cho bạn mỗi khi có phản hồi mới và gửi bản sao câu trả lời cho người điền. Nếu muốn email xác nhận có nội dung riêng — chào đúng tên, kèm giờ, địa điểm, link nhóm Zalo — bạn cần một đoạn Apps Script ngắn chạy mỗi khi form được gửi.

1. Nhận email khi có phản hồi mới

  1. Mở form → thẻ Responses.
  2. Bấm dấu ba chấm ⋮ → Get email notifications for new responses.

Thông báo gửi tới email của chính người bật (mỗi cộng tác viên tự bật cho mình). Email chỉ báo có phản hồi mới, kèm nút xem — không chứa toàn bộ nội dung câu trả lời. Form đông người điền có thể gửi gộp, không phải từng email một.

2. Gửi bản sao câu trả lời cho người điền

  1. Vào Settings → Responses.
  2. Ở Collect email addresses, chọn Verified (lấy email tài khoản Google đã đăng nhập) hoặc Responder input (người điền tự gõ email).
  3. Ở Send responders a copy of their response, chọn Always (luôn gửi) hoặc When requested (người điền tự tích ô nhận bản sao).

Email bản sao do Google gửi, nội dung là toàn bộ câu trả lời, bạn không sửa được lời chào. Cách này đủ cho form đăng ký đơn giản; thiết kế form đăng ký xem ở bài form đăng ký sự kiện, khoá học.

3. Email xác nhận tuỳ biến bằng Apps Script

Ví dụ form đăng ký có câu Short answer tên là “Họ và tên” và đã bật thu email (bước 2).

  1. Trong trang soạn form, bấm ⋮ → Apps Script. Một dự án script gắn với form được mở.
  2. Xoá đoạn mẫu, dán mã dưới đây, sửa tiêu đề câu hỏi và nội dung email cho phù hợp.
  3. Bấm biểu tượng đĩa mềm (Save project).
// Gửi email xác nhận khi có người gửi form
function guiEmailXacNhan(e) {
  var phanHoi = e.response;
  var email = phanHoi.getRespondentEmail();
  if (!email) return; // form chưa bật thu email

  var hoTen = '';
  phanHoi.getItemResponses().forEach(function (r) {
    if (r.getItem().getTitle() === 'Họ và tên') {
      hoTen = r.getResponse();
    }
  });

  var tieuDe = 'Xác nhận đăng ký thành công';
  var noiDung = 'Chào ' + hoTen + ',\n\n' +
    'Ban tổ chức đã nhận đăng ký của bạn.\n' +
    'Thời gian: 8h00 thứ Bảy 15/11/2026\n' +
    'Địa điểm: Phòng họp tầng 3\n\n' +
    'Trân trọng.';

  MailApp.sendEmail(email, tieuDe, noiDung);
}

Tiêu đề câu hỏi trong mã phải giống hệt trong form, kể cả dấu và chữ hoa.

4. Tạo trigger onFormSubmit và cấp quyền

  1. Trong Apps Script, bấm biểu tượng đồng hồ Triggers ở thanh bên trái → Add Trigger.
  2. Chọn hàm guiEmailXacNhan, Select event source: From form, Select event type: On form submit → Save.
  3. Google yêu cầu chọn tài khoản và cấp quyền (xem, sửa form; gửi email thay bạn). Vì script do bạn tự viết, sẽ có cảnh báo Google hasn’t verified this app → bấm Advanced → Go to … (unsafe) → Allow.
  4. Mở form ở chế độ Preview, tự điền thử bằng email của bạn và kiểm tra hộp thư (cả mục Spam).
Lưu ýĐừng bấm Run trực tiếp hàm này trong trình soạn script: khi chạy tay, không có dữ liệu biểu mẫu nên biến e rỗng và báo lỗi “Cannot read properties of undefined”. Hãy thử bằng cách gửi form thật. Lỗi của các lần chạy xem ở mục Executions.
Chỉ cấp quyền cho mã bạn hiểuMàn hình “unsafe” ở trên chỉ nên vượt qua với script do chính bạn viết hoặc đọc kỹ. Script lạ được chia sẻ trên mạng có thể gửi email, đọc Drive dưới tên bạn. Xem thêm bài nhận diện lừa đảo.

5. Giới hạn gửi mail mỗi ngày

Email gửi bằng Apps Script tính vào hạn mức của tài khoản:

Loại tài khoảnSố người nhận/ngày qua Apps Script (tham khảo)
Gmail cá nhân miễn phíKhoảng 100
Google Workspace (trả phí)Khoảng 1.500

Google có thể thay đổi hạn mức; kiểm tra số còn lại bằng MailApp.getRemainingDailyQuota(). Vượt hạn mức, script báo lỗi và người điền sau đó không nhận được email cho tới ngày hôm sau. Sự kiện có vài trăm người đăng ký trở lên nên dùng tài khoản Workspace, hoặc gửi gộp bằng trộn thư.

MẹoĐể biết ngay khi có người đăng ký mà không tốn hạn mức, giữ thông báo có sẵn ở mục 1 cho bạn, chỉ dùng script cho email gửi người điền.
Zalo