
Nói ngắn gọn: AppSheet vs App Script là so sánh giữa một nền tảng no-code dùng để tạo app có giao diện cho người dùng bấm, và một ngôn ngữ lập trình dùng để tự động hoá chạy nền trên dữ liệu Google. Nếu bạn cần nhân viên mở điện thoại lên nhập liệu, chụp ảnh, quét mã thì dùng AppSheet. Nếu bạn cần một việc tự chạy đúng 7 giờ sáng mỗi ngày mà không ai phải bấm gì — gửi mail, xuất PDF, dọn dữ liệu — thì Apps Script hợp hơn. Và trong thực tế, nhiều hệ thống tốt nhất mà tôi từng làm là dùng cả hai, trên cùng một file Google Sheet.
AppSheet và Apps Script là gì?
Hai công cụ này đều của Google, đều đọc được Google Sheet, nhưng sinh ra để giải hai loại bài toán khác nhau.
AppSheet là gì?
AppSheet là nền tảng no-code: bạn trỏ nó vào một bảng dữ liệu (thường là Google Sheet), nó tự sinh ra một ứng dụng chạy trên điện thoại và trình duyệt. Bạn thiết kế bằng cách chọn trong giao diện — cột nào hiện, ai được sửa, bấm nút thì làm gì — chứ không viết code. Đầu ra là một app thật, có menu, có form nhập liệu, có nút chụp ảnh và quét mã vạch. Nếu bạn chưa quen khái niệm này, tôi có viết riêng một bài AppSheet là gì và cách biến Google Sheet thành app.
Google Apps Script (App Script) là gì?
Apps Script là nền tảng lập trình bằng JavaScript chạy trên máy chủ của Google. Tên chính thức là Google Apps Script, nhưng người Việt hay gọi tắt là "App Script" nên bạn gặp cả hai cách viết. Bạn mở file Google Sheet, vào Tiện ích mở rộng → Apps Script, viết hàm, rồi đặt lịch cho hàm đó tự chạy. Nó thao tác được với Sheet, Gmail, Drive, Docs, Calendar, Forms và gọi được API bên ngoài. Đầu ra mặc định không phải là app đẹp — mà là một việc được làm tự động. Apps Script cũng tạo được web app đơn giản bằng HTML, nhưng giao diện thì bạn phải tự viết từ đầu.
Google AppSheet vs App Script: bảng so sánh nhanh
Dưới đây là 7 tiêu chí tôi hay dùng để tư vấn cho doanh nghiệp khi họ phân vân google appsheet vs app script:
| Tiêu chí | AppSheet | Google Apps Script |
|---|---|---|
| Cần biết lập trình? | Không. Chỉ cần tư duy bảng biểu và công thức kiểu Excel | Có. Cần biết JavaScript ở mức cơ bản trở lên |
| Đầu ra | App có giao diện, chạy trên Android, iOS, trình duyệt | Script chạy nền theo lịch, hàm tuỳ chỉnh trong Sheet, hoặc web app tự viết giao diện |
| Người dùng cuối | Nhân viên kho, bán hàng, kỹ thuật — người không rành máy tính | Thường chỉ người quản trị đụng vào; nhân viên chỉ nhận kết quả (email, file, dòng dữ liệu) |
| Dùng offline | Có hỗ trợ làm việc offline rồi đồng bộ lại (tuỳ cấu hình) | Không. Script chạy trên máy chủ Google, phải có mạng |
| Chi phí | Tính theo người dùng, trả hàng tháng; có bản dùng thử để xây app | Đi kèm tài khoản Google, không trả thêm phí riêng, nhưng có hạn mức sử dụng theo ngày |
| Tốc độ làm xong | Nhanh với app nhập liệu — vài ngày là có bản chạy thử | Nhanh với việc nhỏ (vài chục dòng code); chậm nếu phải tự dựng giao diện |
| Bảo trì về sau | Người kế nhiệm nhìn giao diện là hiểu, sửa được | Phụ thuộc người viết. Code không ghi chú thì người sau rất khó tiếp quản |
Về chi phí và hạn mức, tôi cố tình không ghi con số cụ thể vì Google thay đổi khá thường xuyên. Bạn nên xem trực tiếp trang hạn mức Apps Script và trang giá AppSheet trên website chính thức trước khi quyết định.
Cùng một bài toán: gửi email nhắc hạn công nợ
Cách rõ nhất để thấy khác biệt là lấy một việc thật rồi làm bằng cả hai công cụ. Giả sử một công ty vật liệu xây dựng ở tỉnh có file Google Sheet tên CongNo với các cột: KhachHang, Email, SoTien, HanTT, DaTra. Yêu cầu: trước hạn thanh toán 3 ngày thì tự gửi email nhắc khách.
Cách làm bằng AppSheet
Trong AppSheet, bạn không viết code mà cấu hình một bot:
- Vào mục Automation, tạo một Bot mới.
- Chọn Event kiểu Scheduled — chạy mỗi ngày vào giờ bạn chọn.
- Thêm bước Run a data action hoặc dùng Process duyệt qua các dòng thoả điều kiện:
AND([DaTra] = FALSE, [HanTT] - TODAY() <= 3, [HanTT] >= TODAY()). - Thêm Task kiểu Send an email, điền người nhận là
[Email], nội dung chèn<<[KhachHang]>>và<<[SoTien]>>. - Bấm lưu, xem log chạy thử trong Monitor.
Ưu điểm: người làm kế toán tự sửa được điều kiện sau này, không cần gọi ai. Và vì đã có app, sếp mở điện thoại là thấy luôn danh sách công nợ sắp đến hạn chứ không chỉ nhận email.
Cách làm bằng Apps Script
Với Apps Script, bạn mở file Sheet, vào Tiện ích mở rộng → Apps Script và viết một hàm. Đoạn dưới là bản rút gọn để bạn hình dung — nhớ đổi tên sheet cho khớp:
function nhacCongNo() {const sheet = SpreadsheetApp.getActive().getSheetByName('CongNo');const rows = sheet.getDataRange().getValues();const today = new Date();for (let i = 1; i < rows.length; i++) {const khach = rows[i][0], email = rows[i][1], soTien = rows[i][2];const hanTT = new Date(rows[i][3]), daTra = rows[i][4];if (daTra === true || !email) continue;const conLai = (hanTT - today) / 86400000;if (conLai >= 0 && conLai <= 3) {MailApp.sendEmail(email, 'Nhac han thanh toan', 'Kinh gui ' + khach + ', khoan ' + soTien + ' den han ngay ' + hanTT.toLocaleDateString());}}}
Sau đó vào mục Triggers (biểu tượng đồng hồ), bấm Add Trigger, chọn hàm nhacCongNo, kiểu Time-driven → Day timer và chọn khung giờ. Lần chạy đầu tiên Google sẽ hỏi cấp quyền truy cập Sheet và Gmail — bạn phải đồng ý thì script mới chạy được.
So sánh thẳng: Apps Script giải xong bài này trong khoảng 20 dòng code và không tốn thêm phí. AppSheet mất công cấu hình hơn một chút và tính tiền theo người dùng, nhưng đổi lại bạn có cái app để nhập liệu — còn Apps Script thì nhân viên vẫn phải gõ tay vào Sheet. Chọn bên nào phụ thuộc vào việc bạn chỉ cần nhắc nợ, hay cần cả chỗ để ghi nợ.
Khi nào nên chọn AppSheet?
Chọn AppSheet khi người dùng cuối là nhân viên và họ phải nhập dữ liệu ngoài hiện trường. Cụ thể:
- Cần app trên điện thoại: thủ kho đứng giữa kho bấm nhập xuất, tài xế xác nhận giao hàng tại điểm giao, giám sát công trình ghi nhật ký tại chỗ.
- Nhiều người dùng cùng lúc: mỗi người thấy phần việc của mình, có phân quyền theo email, tránh cảnh 8 người cùng mở một file Sheet rồi xoá nhầm dòng của nhau.
- Cần chụp ảnh, GPS, quét mã vạch, chữ ký: đây là những thứ Apps Script rất khó làm, còn AppSheet bật lên là có.
- Trong công ty không có ai viết code: và bạn không muốn hệ thống phụ thuộc vào một người duy nhất.
Nhược điểm cần biết trước: AppSheet tính phí theo đầu người dùng nên càng đông càng tốn; một số xử lý phức tạp vẫn phải "lách" bằng công thức dài, đọc rất khó; và khi dữ liệu lên vài chục nghìn dòng thì tốc độ đồng bộ sẽ chậm lại nếu bạn vẫn để dữ liệu ở Google Sheet.
Khi nào nên chọn Apps Script?
Chọn Apps Script khi việc cần làm là xử lý chạy nền, không cần giao diện. Những tình huống Apps Script làm tốt hơn hẳn:
- Việc lặp lại theo lịch: 7 giờ sáng gửi báo cáo doanh thu hôm qua cho ban giám đốc, cuối tháng khoá sổ và sao lưu sheet sang file mới.
- Xử lý hàng loạt: gộp 12 file chi nhánh thành một file tổng, dọn dữ liệu trùng, chuẩn hoá số điện thoại cho cả nghìn dòng.
- Tạo file tự động: đổ dữ liệu vào mẫu Google Docs rồi xuất PDF — ví dụ in hợp đồng, phiếu lương, giấy xác nhận.
- Gọi API bên ngoài: đẩy tin nhắn sang Telegram, lấy tỷ giá, kết nối với phần mềm kế toán có sẵn API.
- Viết hàm riêng cho Sheet: ví dụ hàm đổi số thành chữ tiếng Việt để in hoá đơn.
Nhưng đừng bỏ qua mặt trái. Thứ nhất, bạn phải viết được code hoặc thuê người viết. Thứ hai, Apps Script có giới hạn thời gian chạy cho mỗi lần thực thi và hạn mức gửi email, gọi URL theo ngày — chạy vòng lặp trên bảng quá lớn là bị cắt giữa chừng, phải chia nhỏ. Thứ ba, và đây là rủi ro tôi thấy nhiều nhất: script thường do một bạn giỏi Excel trong công ty viết, bạn đó nghỉ việc là không ai dám đụng vào nữa, đến lúc hỏng thì cả quy trình đứng.
AppSheet và Google Sheet: vai trò của mỗi bên là gì?
Hiểu đúng vai trò sẽ giúp bạn hết phân vân. Trong bộ ba này: Google Sheet là kho chứa dữ liệu, AppSheet là giao diện, Apps Script là động cơ tự động hoá.
- Google Sheet giữ dữ liệu thật — mỗi dòng là một đơn hàng, một phiếu nhập, một khoản nợ. Cả hai công cụ kia đều đọc ghi vào đây.
- AppSheet là cái mặt tiền cho con người dùng: form nhập, danh sách, bảng điều khiển, phân quyền.
- Apps Script là phần chạy phía sau, không ai nhìn thấy nhưng vẫn làm việc đều đặn.
Quan hệ appsheet và google sheet là quan hệ giao diện – dữ liệu: sửa trên app thì Sheet đổi theo và ngược lại. Còn Apps Script đứng chen vào giữa, xử lý những thứ app không làm được. Hai bên hoàn toàn gọi được nhau: trong AppSheet Automation có bước Call a script cho phép bot của app gọi thẳng một hàm Apps Script và truyền tham số sang. Đây là cách ghép hay dùng — người dùng bấm nút trong app, Apps Script lo phần nặng như tạo PDF nhiều trang hay gọi API.

Nếu dữ liệu của bạn đang phình to, nên đọc thêm bài dùng Google Sheet làm database: khi nào ổn, khi nào phải chuyển, vì cả AppSheet lẫn Apps Script đều chậm đi khi Sheet quá nặng.
Lưu ý khi kết hợp ba công cụ
Ghép AppSheet với Apps Script trên cùng một file Sheet rất mạnh, nhưng có mấy cái bẫy kinh điển. Tôi liệt kê theo thứ tự hay gặp nhất:
- Đừng để hai bên cùng ghi vào một ô. Nếu bot AppSheet và trigger Apps Script cùng cập nhật cột
TrangThai, sẽ có lúc một bên ghi đè kết quả của bên kia. Cách an toàn: chia cột — cột nào app ghi thì script chỉ đọc, và ngược lại. - Không đặt công thức Sheet vào cột mà app ghi vào. AppSheet ghi giá trị thẳng xuống ô, công thức sẽ bị xoá mất từ dòng đó trở đi. Cần tính toán thì dùng cột ảo (Virtual Column) trong AppSheet, hoặc để Apps Script tính rồi ghi giá trị.
- Chú ý quyền chạy script. Trigger chạy dưới danh nghĩa tài khoản đã cấp quyền. Nếu đó là tài khoản cá nhân của một nhân viên, hôm nào tài khoản bị khoá hoặc người đó nghỉ việc là toàn bộ tự động hoá dừng. Nên đặt script dưới một tài khoản chung của công ty.
- Ghi nhật ký lỗi. Tạo thêm một sheet
Log, mỗi lần script chạy thì ghi một dòng gồm thời gian, số bản ghi xử lý và lỗi nếu có. Nếu không, đến khi khách hàng phàn nàn "sao không thấy mail nhắc" bạn sẽ chẳng biết bắt đầu dò từ đâu. AppSheet có sẵn Monitor để xem log bot. - Cẩn thận vòng lặp. Script sửa dữ liệu có thể kích hoạt bot AppSheet, bot lại sửa dữ liệu làm script chạy tiếp. Luôn đặt điều kiện dừng rõ ràng.
Tóm lại: chọn thế nào cho đỡ sai?
Nhìn lại toàn bộ so sánh appsheet vs app script, câu hỏi nên đặt không phải "cái nào tốt hơn" mà là "việc của tôi cần giao diện hay cần tự động".
- Người dùng phải bấm, nhập, chụp → AppSheet.
- Việc phải tự chạy, xử lý hàng loạt, nối hệ thống khác → Apps Script.
- Cần cả hai → dùng Google Sheet làm dữ liệu chung, AppSheet làm mặt tiền, Apps Script làm động cơ, và phân chia rõ ai được ghi cột nào.
Bước tiếp theo bạn nên làm ngay, không cần chờ ai: lấy một việc nhỏ đang làm thủ công trong công ty — ví dụ việc nhắc hạn công nợ ở trên — viết ra đúng một câu rằng việc đó cần người nhập hay chỉ cần máy chạy. Nếu là "máy chạy", mở Apps Script trong file Sheet hiện có và thử đoạn code mẫu phía trên với 3 dòng dữ liệu giả. Nếu là "người nhập", tạo thử một app AppSheet từ chính file đó, chỉ với một bảng, xem thử nhân viên có dùng nổi không rồi hãy làm tiếp.
Đọc thêm: lộ trình học AppSheet từ cơ bản đến nâng cao nếu bạn nghiêng về hướng làm app, và low code là gì, khác no code ở đâu để hiểu vị trí của hai công cụ này trong bức tranh chung.
Câu hỏi thường gặp
›AppSheet có thay được Apps Script không?
Không thay hoàn toàn. AppSheet làm rất tốt phần giao diện, nhập liệu và tự động hoá đơn giản theo lịch hoặc theo thay đổi dữ liệu. Nhưng những việc như gộp nhiều file, tạo PDF nhiều trang từ mẫu Docs, hay gọi API bên ngoài thì Apps Script vẫn linh hoạt hơn nhiều. Thực tế nhiều hệ thống dùng cả hai, vì AppSheet có bước Call a script để gọi hàm Apps Script.
›Apps Script có miễn phí không?
Apps Script đi kèm tài khoản Google, bạn không phải trả thêm phí riêng để viết và chạy script. Đổi lại, Google áp hạn mức sử dụng theo ngày cho các việc như gửi email, gọi URL bên ngoài và tổng thời gian chạy, với mức khác nhau giữa tài khoản Gmail thường và tài khoản Google Workspace. Bạn nên kiểm tra trang hạn mức chính thức của Apps Script trước khi làm việc gì chạy số lượng lớn.
›AppSheet gọi Apps Script được không?
Được. Trong phần Automation của AppSheet có loại Task là Call a script, cho phép bot của app gọi một hàm Apps Script nằm trong dự án gắn với Google Sheet và truyền tham số sang. Đây là cách phổ biến để app xử lý những việc nặng mà bản thân AppSheet làm khó, ví dụ tạo file Docs theo mẫu rồi xuất PDF.
›Người không biết code nên bắt đầu từ công cụ nào?
Nên bắt đầu từ AppSheet. Bạn thấy kết quả ngay sau vài giờ, không phải học cú pháp lập trình, và kiến thức quan trọng nhất là cách tổ chức bảng dữ liệu thì học xong vẫn dùng được cho mọi công cụ khác. Khi gặp việc AppSheet làm không nổi, lúc đó học thêm Apps Script ở mức đọc hiểu và sửa được code mẫu là đủ dùng.
Tác giả
Chuyên gia chuyển đổi số · Đại diện 5F Edu
Hơn 8 năm triển khai và tư vấn chuyển đổi số cho doanh nghiệp vừa và nhỏ: chuẩn hoá quy trình, xây phần mềm quản lý bằng AppSheet và web app, tự động hoá bằng N8N. Người làm kênh YouTube Nghiện AppSheet.



