Mở đầu — vì sao bài này quan trọng
Hãy tưởng tượng bạn vừa mời được một người dùng mới đăng ký sản phẩm của mình. Họ tò mò, họ háo hức, họ vừa nhấn nút "Bắt đầu". Và rồi… màn hình đầu tiên họ nhìn thấy là một khoảng trống mênh mông. Không có dự án nào. Không có dữ liệu nào. Chỉ là một dashboard trắng tinh với dòng chữ lạnh lùng "No data available" (Không có dữ liệu).
Khoảnh khắc đó — màn hình rỗng đầu tiên — chính là một trong những điểm chạm quan trọng nhất nhưng lại bị xem nhẹ nhất trong toàn bộ hành trình PLG. Trong một mô hình Product-Led Growth, nơi sản phẩm phải tự thuyết phục người dùng mà không có một nhân viên sales nào kè kè bên cạnh, mỗi màn hình đều phải "biết nói". Và empty state — màn hình rỗng — lại là màn hình mà gần như 100% người dùng mới đều phải đi qua.
Đây là nghịch lý đáng buồn: empty state là màn hình được nhìn thấy nhiều nhất bởi những người dùng dễ rời bỏ nhất (người mới, chưa có gì để mất), nhưng lại là màn hình được các team sản phẩm đầu tư ít nhất. Hầu hết đội ngũ tập trung tô vẽ cho trạng thái "đầy đủ dữ liệu" — dashboard lung linh với biểu đồ, bảng biểu, số liệu — vì đó là cái họ thấy mỗi ngày khi tự dùng sản phẩm. Còn empty state thì bị bỏ quên, để mặc một dòng "Nothing here yet".
Trong bài này, chúng ta sẽ học cách biến những màn hình trống rỗng tưởng chừng vô dụng đó thành công cụ dẫn dắt, giáo dục và thúc đẩy hành động — một đòn bẩy âm thầm nhưng cực kỳ mạnh mẽ cho tăng trưởng tự phục vụ (self-serve).
Khái niệm cốt lõi
Empty state là gì?
Empty state (trạng thái rỗng) là bất kỳ màn hình hoặc khu vực giao diện nào hiển thị khi chưa có dữ liệu để hiển thị. Nó xuất hiện trong nhiều bối cảnh khác nhau:
- First-use empty state — người dùng mới hoàn toàn, chưa tạo bất cứ thứ gì. Ví dụ: inbox trống, danh sách dự án trống, dashboard chưa có report nào.
- User-cleared empty state — người dùng đã xử lý hết dữ liệu. Ví dụ: hộp thư đã đọc hết, danh sách công việc đã hoàn thành hết (inbox zero).
- No-results empty state — kết quả tìm kiếm hoặc bộ lọc không trả về gì. Ví dụ: "Không tìm thấy kết quả nào cho từ khóa của bạn".
- Error/permission empty state — không có dữ liệu vì lỗi kết nối hoặc người dùng không có quyền truy cập.
Vì sao empty state quan trọng với PLG?
Hãy nhớ lại bản chất của PLG: sản phẩm tự bán chính nó. Không có sales rep gọi điện, không có account manager hướng dẫn. Người dùng tự đăng ký, tự khám phá, tự quyết định ở lại hay rời đi. Trong bối cảnh đó, empty state đóng ba vai trò chiến lược:
1. Giảm "khoảng trống nhận thức" (cognitive gap). Khi người dùng mới nhìn vào một sản phẩm rỗng, họ tự hỏi: "Mình phải làm gì bây giờ? Bắt đầu từ đâu? Sản phẩm này dùng để làm gì nhỉ?". Một empty state tốt trả lời ngay ba câu hỏi đó. Một empty state tồi để mặc người dùng tự bơi — và phần lớn sẽ chìm.
2. Hướng người dùng đến bước hành động đầu tiên. Empty state không chỉ thông báo "ở đây trống", mà phải biến thành một lời mời gọi hành động (call-to-action). "Bạn chưa có dự án nào — Tạo dự án đầu tiên" với một nút bấm rõ ràng. Mỗi empty state là một cơ hội để đẩy người dùng tiến gần hơn tới hành động cốt lõi của sản phẩm.
3. Bán giá trị trước khi người dùng kịp trải nghiệm. Đây là phần tinh tế nhất. Một empty state thông minh có thể mô tả sản phẩm sẽ trông như thế nào khi đầy dữ liệu, giúp người dùng hình dung được giá trị họ sắp nhận được. Nó "vẽ ra giấc mơ" để tạo động lực cho người dùng bỏ công thiết lập.
Cấu trúc của một empty state hiệu quả
Một empty state làm tốt vai trò của mình thường có đủ bốn thành phần:
- Visual — một hình minh họa, icon, hoặc preview nhẹ nhàng. Không phải để trang trí, mà để màn hình bớt lạnh lẽo và gợi mở chức năng.
- Tiêu đề rõ ràng — nói thẳng vào việc gì đang xảy ra và vì sao ("Bạn chưa có hóa đơn nào").
- Mô tả giá trị + hướng dẫn — một câu ngắn giải thích lợi ích và bước tiếp theo ("Tạo hóa đơn đầu tiên để bắt đầu theo dõi doanh thu của bạn").
- Call-to-action chính — một nút bấm nổi bật, duy nhất, dẫn thẳng đến hành động ("+ Tạo hóa đơn").
Tình huống thực tế
Ví dụ 1: Notion và empty state "có thể bấm để bắt đầu"
Notion nổi tiếng với việc biến trang trắng — vốn là nỗi sợ lớn nhất của người dùng mới — thành một empty state đầy hành động. Khi bạn tạo một trang mới hoàn toàn trống, Notion không để bạn đối mặt với màn hình trắng đáng sợ. Thay vào đó, ngay giữa trang là dòng gợi ý mờ "Press '/' for commands" (Nhấn '/' để xem lệnh), kèm các nút template gợi ý sẵn: "Empty page with icon", "Templates", "Import", "Table".
Bài học rút ra: Notion hiểu rằng "trang trắng" là điểm chết của activation. Người dùng mới không biết Notion có thể làm gì, nên họ không biết gõ gì. Bằng cách đặt các điểm vào (entry point) ngay trên empty state, Notion biến nỗi tê liệt thành một loạt lựa chọn dễ bấm. Kết quả là người dùng tạo được trang đầu tiên có nội dung — chạm tới một phần của aha moment — nhanh hơn nhiều. Empty state ở đây không phải chỗ kết thúc, mà là bệ phóng.
Ví dụ 2: Một startup SaaS quản lý bán hàng tại Việt Nam
Hãy lấy một ví dụ giả định hợp lý nhưng rất điển hình ở thị trường Việt Nam. Một startup tên "BanHangPro" làm phần mềm quản lý đơn hàng cho các shop online vừa và nhỏ. Phiên bản đầu, sau khi chủ shop đăng ký, họ đăng nhập vào và thấy một dashboard với dòng chữ tiếng Anh "No orders found" cùng một bảng trống. Tỷ lệ activation (tạo đơn hàng đầu tiên trong 7 ngày) chỉ đạt khoảng 18%.
Đội sản phẩm phân tích session recording và nhận ra: người dùng đăng nhập, nhìn màn hình trống vài giây, rồi thoát. Họ không biết bắt đầu từ đâu. Đội quyết định làm lại empty state: thay "No orders found" bằng một minh họa thân thiện, tiêu đề tiếng Việt "Chưa có đơn hàng nào — hãy thêm đơn đầu tiên của bạn", một nút lớn màu cam "+ Thêm đơn hàng", và một dòng phụ "Hoặc bấm vào đây để tạo dữ liệu mẫu và xem báo cáo doanh thu trông ra sao". Họ cũng thêm một video 30 giây nhúng ngay trong empty state.
Sau ba tuần, activation tăng từ 18% lên khoảng 34% — gần gấp đôi. Phần lớn nhờ nút "dữ liệu mẫu": rất nhiều chủ shop bấm vào để xem trước, thấy báo cáo doanh thu đẹp mắt, rồi mới có động lực nhập đơn thật.
Bài học rút ra: với người dùng Việt Nam, đặc biệt là chủ shop không rành công nghệ, một dòng tiếng Anh khô khan + bảng trống là công thức gây bỏ rơi. Ngôn ngữ bản địa, một CTA rõ ràng, và đặc biệt là lối tắt "xem thử bằng dữ liệu mẫu" có thể tạo khác biệt lớn về activation.
Ví dụ 3: Slack và empty channel
Khi bạn tạo một kênh (channel) mới trong Slack, kênh đó hoàn toàn trống. Thay vì để màn hình trắng, Slack hiển thị một empty state hướng dẫn rất khéo: tên kênh, ngày tạo, và ba nút hành động gợi ý — "Add people" (Thêm thành viên), "Set a description" (Đặt mô tả kênh), và "Send a message" (Gửi tin nhắn đầu tiên). Slack thậm chí còn dùng giọng văn thân thiện kiểu "This is the very beginning of the #marketing channel" (Đây là khởi đầu của kênh #marketing).
Bài học rút ra: Slack hiểu rằng giá trị của họ đến từ network — nhiều người trong kênh trò chuyện. Nên empty state của kênh mới được thiết kế để đẩy hành động "Add people" lên đầu, vì mời thêm người chính là hành động kích hoạt vòng lan truyền (mà ta sẽ học sâu ở các bài viral loops). Empty state không trung lập — nó được thiết kế để đẩy người dùng về phía hành động có giá trị cao nhất với mô hình tăng trưởng của sản phẩm.
Hướng dẫn từng bước
Đây là quy trình thực tế để bạn audit và thiết kế lại empty state cho sản phẩm của mình:
Bước 1 — Liệt kê tất cả empty state trong sản phẩm. Đi qua toàn bộ hành trình người dùng mới và ghi lại mọi màn hình/khu vực có thể hiển thị khi chưa có dữ liệu: dashboard, danh sách dự án, inbox, báo cáo, kết quả tìm kiếm, danh sách thành viên… Bạn sẽ ngạc nhiên vì số lượng nhiều hơn mình nghĩ.
Bước 2 — Xếp hạng theo mức độ ảnh hưởng. Empty state nào người dùng mới chắc chắn gặp đầu tiên? Đó là ưu tiên số một. Empty state ở màn hình chính sau khi đăng ký quan trọng hơn nhiều so với empty state ở một tính năng phụ ít người dùng đụng tới.
Bước 3 — Xác định "hành động kế tiếp" lý tưởng cho mỗi empty state. Với mỗi màn hình rỗng, hãy hỏi: nếu người dùng chỉ làm được một việc tại đây, việc đó nên là gì để tiến gần nhất tới giá trị cốt lõi? Đó chính là CTA chính của bạn.
Bước 4 — Viết nội dung theo cấu trúc 4 thành phần. Áp dụng visual + tiêu đề + mô tả giá trị + CTA. Viết bằng ngôn ngữ của người dùng, không phải ngôn ngữ kỹ thuật. "No data" → "Chưa có dữ liệu — hãy tạo cái đầu tiên".
Bước 5 — Cân nhắc thêm lối tắt giảm ma sát. Nút "dùng dữ liệu mẫu", "nhập từ file Excel", "chọn template có sẵn" — những lối tắt này giúp người dùng vượt qua công đoạn thiết lập ban đầu tốn công nhất.
Bước 6 — Đo lường. Đặt sự kiện (event) để theo dõi: bao nhiêu phần trăm người gặp empty state này bấm vào CTA? Bao nhiêu hoàn tất hành động? So sánh trước và sau khi thiết kế lại. Chính con số này biến empty state từ "việc trang trí" thành "đòn bẩy tăng trưởng có thể đo đếm".
Lỗi thường gặp & mẹo
Lỗi 1 — Để mặc empty state mặc định của framework. Nhiều đội dùng luôn dòng "No data available" do thư viện UI sinh ra. Đây là sự lãng phí lớn nhất, vì đó chính là màn hình nhiều người dùng mới nhìn thấy nhất.
Lỗi 2 — Empty state chỉ thông báo, không kêu gọi hành động. "Bạn chưa có dự án nào." là một câu cụt. Phải có nút "+ Tạo dự án" ngay bên dưới. Thông báo mà không có lối đi tiếp là ngõ cụt.
Lỗi 3 — Quá nhiều CTA cùng lúc. Đặt năm nút bằng nhau khiến người dùng tê liệt vì lựa chọn (paralysis of choice). Hãy có một CTA chính nổi bật, các lựa chọn khác làm phụ (link nhỏ, nút mờ hơn).
Lỗi 4 — Dùng minh họa đẹp nhưng vô nghĩa. Một hình vẽ phi hành gia lạc trong vũ trụ trông nghệ thuật nhưng không giúp người dùng hiểu phải làm gì. Visual nên gợi mở chức năng, không chỉ để đẹp.
Lỗi 5 — Quên bản địa hóa ngôn ngữ. Với thị trường Việt Nam, một empty state tiếng Anh có thể khiến nhóm người dùng không rành tiếng Anh bỏ cuộc. Dịch và dùng giọng văn gần gũi.
Mẹo 1 — "Vẽ ra giấc mơ". Hiển thị một preview mờ của dashboard khi đầy dữ liệu, hoặc một dòng "Khi bạn thêm đơn hàng, bạn sẽ thấy báo cáo doanh thu tự động ở đây". Giúp người dùng hình dung phần thưởng.
Mẹo 2 — Dùng dữ liệu mẫu một cách thông minh. Cho phép người dùng nạp dữ liệu mẫu để trải nghiệm sản phẩm "đầy" trước khi tự nhập. Nhưng nhớ làm rõ đó là dữ liệu mẫu và cho cách xóa dễ dàng.
Mẹo 3 — Khác biệt hóa empty state theo ngữ cảnh. Empty state của người dùng mới (chưa từng tạo gì) nên khác empty state của người dùng đã xóa hết (inbox zero). Người đạt inbox zero xứng đáng được khen "Tuyệt vời, bạn đã xử lý hết!" chứ không phải bị hỏi "Bạn muốn tạo cái mới không?".
Bài tập thực hành
- Audit empty state. Chọn một sản phẩm SaaS bạn đang dùng (hoặc sản phẩm công ty bạn). Đăng ký tài khoản mới và chụp lại tất cả empty state bạn gặp trong 5 phút đầu. Với mỗi cái, đánh giá theo cấu trúc 4 thành phần: có visual không? tiêu đề rõ không? có mô tả giá trị không? có CTA không?
- Thiết kế lại. Chọn empty state tệ nhất bạn tìm được ở bài 1. Viết lại nó: tiêu đề mới, mô tả giá trị, CTA chính, và một lối tắt phụ. Phác thảo bằng giấy hoặc Figma đều được.
- Xác định hành động giá trị cao nhất. Với sản phẩm của bạn (hoặc một sản phẩm giả định), liệt kê 3 empty state quan trọng nhất và viết ra "hành động kế tiếp lý tưởng" cho từng cái. Giải thích vì sao hành động đó đưa người dùng gần nhất tới giá trị cốt lõi.
- Thiết kế thử nghiệm. Đề xuất một A/B test cho empty state quan trọng nhất: phiên bản A (hiện tại) vs phiên bản B (đã cải tiến). Bạn sẽ đo metric gì để biết phiên bản nào tốt hơn? (Gợi ý: tỷ lệ bấm CTA, tỷ lệ hoàn tất hành động đầu tiên, activation rate.)
Tóm tắt
Empty state — màn hình rỗng khi chưa có dữ liệu — là một trong những cơ hội bị bỏ quên nhiều nhất trong thiết kế PLG. Nghịch lý là nó được nhìn thấy nhiều nhất bởi chính nhóm người dùng dễ rời bỏ nhất: người mới chưa có gì ràng buộc.
Những điểm cốt lõi cần nhớ:
- Empty state có nhiều loại (first-use, user-cleared, no-results, error), nhưng loại first-use có tác động lớn nhất đến activation.
- Trong PLG, không có sales hướng dẫn, nên mỗi empty state phải tự dẫn dắt: giảm khoảng trống nhận thức, chỉ ra hành động kế tiếp, và bán giá trị trước khi người dùng kịp trải nghiệm.
- Một empty state hiệu quả cần đủ 4 thành phần: visual gợi mở, tiêu đề rõ ràng, mô tả giá trị + hướng dẫn, và một CTA chính nổi bật.
- Các sản phẩm hàng đầu như Notion, Slack đều biến empty state thành bệ phóng hành động, và họ thiết kế nó để đẩy người dùng về phía hành động có giá trị cao nhất với mô hình tăng trưởng của mình.
- Với thị trường Việt Nam, bản địa hóa ngôn ngữ và lối tắt "dùng dữ liệu mẫu" có thể tạo khác biệt lớn — như ví dụ BanHangPro tăng activation từ 18% lên 34%.