Google Apps Script cho Google Forms: hướng dẫn cho người mới bắt đầu

Câu trả lời nhanh: Google Apps Script là nền tảng JavaScript miễn phí, tích hợp sẵn của Google để tự động hóa Forms, Sheets, và các ứng dụng Workspace khác. Đây là cách mọi người thêm những thứ Forms không làm được ngay từ đầu — như gửi email cho chủ sở hữu mỗi khi có lượt gửi, tự động giới hạn câu trả lời, hoặc tạo xác nhận PDF. Nó đòi hỏi kiến thức lập trình cơ bản, đó là rào cản gia nhập thực sự.

Google Forms cố tình đơn giản, điều đó có nghĩa là nhiều yêu cầu phổ biến — "gửi email cho tôi khi ai đó gửi biểu mẫu," "ngừng nhận câu trả lời sau 50 lượt," "xác thực trường này theo cách Forms không hỗ trợ" — không được xử lý sẵn. Google Apps Script là công cụ Google cung cấp để bạn tự lấp đầy khoảng trống đó, miễn phí, mà không cần rời khỏi hệ sinh thái Google. Hướng dẫn này giải thích nó là gì, nó có thể thực sự làm gì cho biểu mẫu của bạn, một ví dụ đơn giản về cách nó được cấu trúc, và nó thực sự dành cho ai.

Google Apps Script là gì?

Apps Script là nền tảng viết script tích hợp sẵn của Google, dựa trên JavaScript, cho phép bạn viết các chương trình nhỏ tương tác với các ứng dụng Google Workspace — Forms, Sheets, Docs, Gmail, Calendar, và nhiều hơn nữa. Nó chạy hoàn toàn trên máy chủ của Google, nên không có gì phải cài đặt và không cần lưu trữ riêng để quản lý. Bạn truy cập nó ở một trong hai nơi: từ menu ba chấm của biểu mẫu, chọn Script editor, hoặc mở Google Sheet đã liên kết và vào Extensions > Apps Script. Cả hai con đường đều mở cùng một loại trình chỉnh sửa, mặc dù script gắn với biểu mẫu so với gắn với sheet có ngữ cảnh khởi đầu hơi khác nhau.

Những gì Apps Script cho phép bạn làm mà Forms không cung cấp sẵn

Một ví dụ đơn giản, giải thích theo khái niệm

Đây là hình dạng sơ bộ của một script gửi email cho chủ biểu mẫu khi ai đó gửi biểu mẫu. Đây là minh họa để thể hiện cấu trúc — không phải thứ để sao chép-dán như mã sẵn sàng cho sản xuất mà không điều chỉnh theo các câu hỏi thực tế của biểu mẫu bạn.

function onFormSubmit(e) {
  // e.response holds the submitted form response
  var responses = e.response.getItemResponses();
  var summary = "";

  responses.forEach(function (itemResponse) {
    summary += itemResponse.getItem().getTitle() + ": " + itemResponse.getResponse() + "\n";
  });

  // Send the owner an email with the new response
  MailApp.sendEmail("[email protected]", "New form response", summary);
}

Các phần chính: onFormSubmit(e) là một hàm kích hoạt — Apps Script tự động gọi nó khi có câu trả lời mới đến, và e chứa dữ liệu sự kiện, bao gồm e.response, cho bạn quyền truy cập vào từng câu trả lời qua getItemResponses(). Từ đó, script có thể làm bất cứ điều gì các dịch vụ của Apps Script hỗ trợ — gửi email, ghi vào một sheet, gọi một API bên ngoài, tạo tài liệu. Bản thân trình kích hoạt được cấu hình riêng trong bảng điều khiển Triggers của trình chỉnh sửa, nơi bạn chỉ định chạy hàm này khi "On form submit."

Thiết lập từng bước

  1. Mở Script editor từ menu ba chấm của biểu mẫu, hoặc qua Extensions > Apps Script trên Sheet đã liên kết.
  2. Viết một hàm kích hoạt như ví dụ trên, đọc các câu trả lời đã gửi từ đối tượng sự kiện.
  3. Thêm logic tự động hóa của bạn — email, PDF, hoặc kiểm tra thực tế bạn muốn chạy.
  4. Thiết lập trình kích hoạt trong phần Triggers (biểu tượng đồng hồ ở thanh bên trái), thêm một trình kích hoạt mới chạy hàm của bạn khi sự kiện "From form" / "On form submit".
  5. Cấp quyền và kiểm tra. Lần chạy đầu tiên sẽ yêu cầu bạn cấp cho script quyền truy cập biểu mẫu và Gmail của bạn; chấp thuận, rồi gửi một câu trả lời thử nghiệm thật để xác nhận mọi thứ hoạt động đúng.

Tìm hiểu thêm ở đâu

Apps Script có tài liệu chính thức phong phú trực tiếp từ Google, bao phủ dịch vụ Forms, trình kích hoạt, và mọi ứng dụng Workspace khác mà nó có thể tương tác. Nếu bạn nghiêm túc muốn viết script của riêng mình, đó là tài liệu tham khảo đáng tin cậy và cập nhật nhất, vì nó được duy trì song song với chính sản phẩm chứ không phải bởi bên thứ ba.

Các trình kích hoạt phổ biến ngoài "on form submit"

Gửi biểu mẫu là trình kích hoạt phổ biến nhất, nhưng không phải là trình kích hoạt hữu ích duy nhất cho biểu mẫu. Một trình kích hoạt theo thời gian (cũng được thiết lập trong bảng Triggers) có thể chạy theo lịch — hàng giờ, hàng ngày, hoặc vào một thời điểm cụ thể — không phụ thuộc vào việc có ai gửi câu trả lời hay không. Đây là thứ vận hành các hành động theo lịch như tự động đóng biểu mẫu vào một ngày định sẵn, gửi bản tóm tắt hàng ngày về câu trả lời trong ngày thay vì một email cho mỗi lượt gửi, hoặc lưu trữ câu trả lời cũ vào một sheet riêng theo chu kỳ. Trình kích hoạt dựa trên chỉnh sửa (onEdit) kích hoạt khi ai đó thay đổi một ô trong bảng tính đã liên kết, hữu ích nếu bạn muốn một script phản ứng khi bạn thủ công đánh dấu một câu trả lời là "đã xử lý" hoặc "đã duyệt" trong một cột trạng thái.

Khắc phục sự cố Apps Script

  1. Script không chạy khi một biểu mẫu được gửi: xác nhận trình kích hoạt thực sự đã được lưu và trỏ đến "On form submit," không phải một loại sự kiện khác — các trình kích hoạt được tạo trong các phiên kiểm tra trước đó có thể vẫn âm thầm tồn tại cùng với một cái mới hơn, cấu hình sai, nên kiểm tra bảng Triggers xem có trùng lặp không.
  2. Lỗi "Authorization required" ở mỗi lần chạy: quyền của Apps Script có thể bị thu hồi nếu bạn đổi mật khẩu tài khoản Google hoặc nếu Google định kỳ kiểm tra lại các phạm vi nhạy cảm như gửi Gmail. Chạy lại script thủ công từ trình chỉnh sửa một lần để kích hoạt lại yêu cầu ủy quyền.
  3. Script hoạt động khi chạy thủ công nhưng không tự động: một số dịch vụ của Apps Script (như hiển thị hộp thoại giao diện) chỉ hoạt động khi con người trực tiếp chạy script, không phải từ một trình kích hoạt tự động — các trình kích hoạt tự động phải dùng các hành động không tương tác như gửi email hoặc ghi vào một sheet.
  4. Email không gửi được: gói miễn phí của Apps Script có hạn ngạch email hàng ngày (cao hơn trên tài khoản Google Workspace so với tài khoản Gmail cá nhân) — các biểu mẫu có lưu lượng cao có thể chạm giới hạn đó, khiến các email sau đó trong ngày âm thầm thất bại.

Rào cản gia nhập trung thực

Apps Script đòi hỏi lập trình thực sự — cụ thể là JavaScript cơ bản. Nó không phải là công cụ không cần mã, và đối xử với nó như một công tắc cài đặt đơn giản sẽ dẫn đến bực bội nếu bạn chưa bao giờ viết mã trước đây. Đọc và điều chỉnh một ví dụ ngắn như ví dụ trên là thực tế với một người mới bắt đầu có động lực, nhưng xây dựng thứ gì đó phức tạp hơn, như xác thực nhiều bước hoặc tạo PDF, cần kiến thức lập trình thực sự.

Rào cản đó chính xác là khoảng trống mà các tiện ích bên thứ ba không cần mã lấp đầy cho những người cần tự động hóa mà không cần viết script, và đó cũng là khoảng trống mà các ứng dụng chuyên dụng như FormMaker lấp đầy cho một vấn đề hoàn toàn khác — tạo và quản lý bản thân biểu mẫu trên di động, mà không cần chạm vào mã. Không cái nào thay thế Apps Script cho tùy chỉnh sâu, nhưng cũng không cái nào yêu cầu nó.

Câu hỏi thường gặp

Google Apps Script là gì?

Google Apps Script là nền tảng dựa trên JavaScript tích hợp sẵn của Google để tự động hóa và mở rộng các ứng dụng Google Workspace, bao gồm Forms, Sheets, và Gmail. Nó chạy trên máy chủ của Google miễn phí và không cần cài đặt riêng.

Google Forms có thể tự động gửi email khi ai đó gửi biểu mẫu không?

Không có sẵn. Google Forms không có cài đặt tích hợp để gửi email cho chủ biểu mẫu mỗi khi có lượt gửi. Apps Script có thể thêm điều này bằng cách chạy một hàm kích hoạt nhỏ mỗi khi có câu trả lời mới.

Tôi có cần biết lập trình để dùng Apps Script không?

Có, ít nhất là JavaScript cơ bản. Apps Script là một môi trường lập trình thật sự, không phải công cụ không cần mã. Nếu bạn không muốn viết mã, hãy xem các tiện ích không cần mã hoặc ứng dụng chuyên dụng thay thế.

Tôi mở trình chỉnh sửa Apps Script cho một Google Form ở đâu?

Từ biểu mẫu của bạn, vào menu ba chấm và chọn Script editor, hoặc mở Google Sheet đã liên kết và vào Extensions > Apps Script.

Có giới hạn số email Apps Script có thể gửi mỗi ngày không?

Có. Apps Script áp dụng hạn ngạch gửi email hàng ngày cao hơn cho tài khoản Google Workspace so với tài khoản Gmail cá nhân miễn phí. Các biểu mẫu có lưu lượng cao gửi email cho mỗi lượt gửi có thể chạm giới hạn đó, điều này đáng kiểm tra nếu email ngừng gửi giữa một ngày bận rộn.

Hướng dẫn liên quan