Growth Mindset

#04: Setup Moment Path Analysis – [User Activation Moments]

Challenge 4: Setup Moment Path Analysis là bài thứ 04 trong case study User Activation Moments

Sau khi đã tìm ra “Aha! Moment” (ví dụ: invite_teammate ở Challenge 3), bước này tập trung vào việc xác định chuỗi hành vi phổ biến nhất dẫn đến khoảnh khắc đó. Mục tiêu là tối ưu hóa Setup Moment – tập hợp các hành động thiết lập ban đầu giúp người dùng sẵn sàng trải nghiệm giá trị cốt lõi.

Bằng cách phân tích các con đường hành vi (event paths), bạn có thể hiểu rõ hơn: Người dùng đã làm gì trước khi đạt Aha! Moment? Và từ đó, thiết kế lại luồng onboarding hiệu quả hơn.

Tình huống: Sau khi tìm ra “Aha! Moment” là invite_teammate (Challenge 3), đội ngũ sản phẩm nhận thấy một vấn đề: tỷ lệ người dùng thực sự đạt được khoảnh khắc này vẫn chưa cao như kỳ vọng. Họ nghi ngờ rằng các bước thiết lập ban đầu (“Setup Moment”) có thể chưa tối ưu, thậm chí gây bối rối cho người dùng mới. Giả thuyết được đặt ra là: có một golden path – một chuỗi hành vi cụ thể mà những người dùng thành công thường đi theo để đến được “Aha! Moment”. Nếu tìm ra con đường này, họ có thể thiết kế lại luồng onboarding để dẫn dắt nhiều người dùng hơn đến thành công.

Challenge Setup Moment

Phân tích và xác định các chuỗi hành vi (event paths) phổ biến nhất mà người dùng thực hiện trước khi đạt được “Aha! Moment” (thực hiện sự kiện invite_teammate lần đầu tiên).

  • Chỉ xét các hành vi trong vòng 24 giờ đầu tiên kể từ lúc người dùng đăng ký.
  • Xác định chuỗi 2-3 sự kiện liền trước hành động invite_teammate.
  • Đếm số lượng người dùng đi theo từng chuỗi hành vi và xếp hạng các chuỗi phổ biến nhất.

Theory Liên Quan

Setup Moment
  • Định nghĩa: Setup Moment là một tập hợp các hành động thiết lập ban đầu mà người dùng thực hiện để chuẩn bị và sẵn sàng trải nghiệm giá trị cốt lõi của sản phẩm. Đây không phải là một hành động đơn lẻ, mà là một chuỗi các bước đầu tư công sức của người dùng (user investment) để “mở khóa” tính năng quan trọng nhất.
  • Cách hoạt động:
    • Nó diễn ra sau khi người dùng đăng ký và trước khi họ thực sự đạt được “Aha! Moment”.
    • Các hành động này tạo ra bối cảnh cần thiết để “Aha! Moment” trở nên có ý nghĩa. Ví dụ, việc mời đồng đội (invite_teammate) chỉ thực sự giá trị khi đã có một dự án (create_project) và một vài tài liệu (upload_document) để cộng tác.
  • Tầm quan trọng:
    • Một Setup Moment được thiết kế tốt là một chỉ báo mạnh mẽ cho việc giữ chân người dùng dài hạn.
    • Bằng cách phân tích các con đường (paths) dẫn đến “Aha! Moment”, chúng ta có thể loại bỏ các bước không cần thiết, giảm thiểu sự phức tạp và làm nổi bật các hành động quan trọng nhất trong quá trình onboarding.
  • Ví dụ thực tế (Slack):
    • Aha! Moment của Slack là khi một nhóm gửi và nhận khoảng 2.000 tin nhắn.
    • Setup Moment để đạt được điều đó bao gồm:
      1. Tạo một workspace.
      2. Mời một vài đồng đội cốt cán.
      3. Tạo một vài kênh (channels) cho các chủ đề cụ thể.
    • Nếu không hoàn thành các bước thiết lập này, việc đạt đến 2.000 tin nhắn là gần như không thể. Slack đã tối ưu hóa luồng onboarding của mình để hướng dẫn người dùng mới hoàn thành chính xác các bước này.
Path Analysis (Phân Tích Chuỗi Hành Vi)
  • Định nghĩa: Path Analysis là một phương pháp phân tích dữ liệu dùng để trực quan hóa và hiểu rõ trình tự các bước (chuỗi sự kiện) mà người dùng thực hiện để hoàn thành một mục tiêu hoặc một kết quả cụ thể trong sản phẩm.
  • Cách hoạt động:
    • Kỹ thuật này theo dõi hành trình của người dùng qua từng sự kiện (event) theo thứ tự thời gian.
    • Nó giúp trả lời câu hỏi: “Người dùng đã làm gì trước khi họ mua hàng/hủy đăng ký/mời bạn bè?”
  • Tầm quan trọng:
    • Xác định Golden Paths: Tìm ra chuỗi hành vi phổ biến nhất mà những người dùng thành công (ví dụ: người dùng được giữ chân, người dùng trả phí) thường thực hiện.
    • Phát hiện điểm ma sát (Friction Points): Xác định các bước trong chuỗi hành vi nơi người dùng thường xuyên rời bỏ hoặc gặp khó khăn.
    • Tối ưu hóa chuyển đổi: Bằng cách hiểu các con đường thành công, công ty có thể tối ưu hóa giao diện người dùng (UI) và trải nghiệm người dùng (UX) để hướng nhiều người dùng hơn đi theo những con đường đó.
  • Ví dụ thực tế (E-commerce):
    • Một trang web thương mại điện tử muốn tăng tỷ lệ hoàn tất thanh toán.
    • Họ sử dụng Path Analysis và phát hiện ra hai chuỗi hành vi chính:
      1. Path A (thành công cao): Homepage -> Search for item -> View Product -> Add to Cart -> Checkout
      2. Path B (tỷ lệ rời bỏ cao): Homepage -> Browse Categories -> View Product -> View another Product -> View a third Product -> Exit
    • Insight: Những người dùng sử dụng chức năng tìm kiếm có khả năng mua hàng cao hơn nhiều.
    • Hành động: Công ty quyết định làm cho thanh tìm kiếm nổi bật hơn trên trang chủ và thêm các gợi ý tìm kiếm thông minh để khuyến khích hành vi này.
setup moment

SQL Solution

-- MỤC TIÊU (OBJECTIVE):
-- Truy vấn này nhằm mục đích xác định các chuỗi hành vi (event paths) phổ biến nhất mà người dùng thực hiện
-- ngay TRƯỚC KHI họ đạt được "Aha! Moment" (hành động 'invite_teammate'). Việc này giúp tìm ra "con đường vàng"
-- (golden path) mà những người dùng thành công thường đi theo, từ đó tối ưu hóa luồng onboarding.

WITH UserFirstAhaMoment AS (
    -- MỤC TIÊU: Tìm thời điểm xảy ra "Aha! Moment" (invite_teammate) lần đầu tiên cho mỗi người dùng.
    -- TƯ DUY NGƯỢC (WHY): Đây là bước nền tảng. Chúng ta không thể phân tích các hành vi "trước Aha! Moment"
    -- nếu không xác định được chính xác "Aha! Moment" là khi nào. Đây là điểm neo để chúng ta so sánh.
    -- CÁCH THỰC HIỆN (HOW):
    --   - Lọc tất cả sự kiện có tên là 'invite_teammate'.
    --   - Gom nhóm theo UserID và dùng hàm MIN() trên EventTimestamp để tìm thời điểm sớm nhất.
    SELECT
        UserID,
        MIN(EventTimestamp) AS FirstAhaTimestamp
    FROM Events
    WHERE EventName = 'invite_teammate'
    GROUP BY UserID
),
EventsBeforeAha AS (
    -- MỤC TIÊU: Lấy tất cả các sự kiện của mỗi người dùng xảy ra TRƯỚC thời điểm "Aha! Moment" đầu tiên của họ
    -- và trong vòng 24 giờ kể từ lúc đăng ký. Đồng thời, đánh số thứ tự ngược các sự kiện này.
    -- TƯ DUY NGƯỢC (WHY): Để xây dựng một chuỗi hành vi, chúng ta cần một danh sách các "viên gạch" (sự kiện)
    -- theo đúng thứ tự. Việc đánh số (rn=1, 2, 3,...) cho phép chúng ta xác định chính xác sự kiện nào
    -- xảy ra ngay trước (rn=1), trước đó nữa (rn=2), v.v.
    -- CÁCH THỰC HIỆN (HOW):
    --   - JOIN bảng Events với CTE `UserFirstAhaMoment` (để có FirstAhaTimestamp) và bảng Users (để có RegistrationDate).
    --   - Lọc các sự kiện có EventTimestamp < FirstAhaTimestamp VÀ trong vòng 24 giờ sau khi đăng ký.
    --   - Dùng hàm ROW_NUMBER() OVER(PARTITION BY e.UserID ORDER BY e.EventTimestamp DESC) để đánh số.
    --     Sắp xếp theo EventTimestamp DESC (giảm dần) là một mẹo quan trọng: nó giúp sự kiện gần nhất với
    --     Aha! Moment có số thứ tự là 1.
    SELECT
        e.UserID,
        e.EventName,
        e.EventTimestamp,
        ROW_NUMBER() OVER(PARTITION BY e.UserID ORDER BY e.EventTimestamp DESC) as rn
    FROM Events e
    JOIN UserFirstAhaMoment f ON e.UserID = f.UserID
    JOIN Users u ON e.UserID = u.UserID
    WHERE
        e.EventTimestamp < f.FirstAhaTimestamp
        AND e.EventTimestamp <= DATEADD(hour, 24, u.RegistrationDate)
),
EventPaths AS (
    -- MỤC TIÊU: "Xoay" (pivot) dữ liệu từ nhiều hàng sự kiện thành một hàng duy nhất cho mỗi người dùng,
    -- chứa 2 sự kiện liền trước "Aha! Moment".
    -- TƯ DUY NGƯỢC (WHY): Dữ liệu ở dạng nhiều hàng (long format) rất khó để nhóm và đếm theo chuỗi. Bằng cách
    -- chuyển sang định dạng một hàng (wide format) với các cột Event_Minus_1, Event_Minus_2, chúng ta có thể
    -- dễ dàng nhóm các người dùng có cùng chuỗi hành vi lại với nhau.
    -- CÁCH THỰC HIỆN (HOW):
    --   - Lọc các sự kiện có `rn <= 2` (chỉ lấy 2 sự kiện gần nhất).
    --   - Gom nhóm theo UserID.
    --   - Dùng MAX(CASE WHEN rn = 1...) để lấy EventName của sự kiện có rn=1 gán vào cột Event_Minus_1.
    --   - Tương tự, MAX(CASE WHEN rn = 2...) để gán EventName của sự kiện có rn=2 vào cột Event_Minus_2.
    SELECT
        UserID,
        MAX(CASE WHEN rn = 1 THEN EventName ELSE NULL END) AS Event_Minus_1,
        MAX(CASE WHEN rn = 2 THEN EventName ELSE NULL END) AS Event_Minus_2
    FROM EventsBeforeAha
    WHERE rn <= 2 -- Chỉ lấy 2 sự kiện liền trước
    GROUP BY UserID
)
-- MỤC TIÊU: Đếm số lượng người dùng cho mỗi chuỗi hành vi và xếp hạng chúng.
-- TƯ DUY NGƯỢC (WHY): Đây là bước cuối cùng để trả lời câu hỏi kinh doanh. Sau khi đã chuẩn bị dữ liệu
-- (mỗi người dùng một hàng với chuỗi hành vi của họ), giờ là lúc tổng hợp để tìm ra "con đường vàng".
-- CÁCH THỰC HIỆN (HOW):
--   - Dùng CONCAT_WS để nối các sự kiện Event_Minus_2, Event_Minus_1 và chuỗi 'invite_teammate' thành một EventPath.
--   - Lọc bỏ những trường hợp không có sự kiện nào trước Aha! Moment (Event_Minus_1 IS NOT NULL).
--   - GROUP BY theo EventPath vừa tạo.
--   - Dùng COUNT(UserID) để đếm số người dùng trong mỗi nhóm.
--   - Sắp xếp theo PathCount giảm dần để chuỗi phổ biến nhất lên đầu.
SELECT
    CONCAT_WS(' -> ', Event_Minus_2, Event_Minus_1, 'invite_teammate') AS EventPath,
    COUNT(UserID) AS PathCount
FROM EventPaths
WHERE Event_Minus_1 IS NOT NULL -- Đảm bảo có ít nhất một sự kiện trước "Aha! Moment"
GROUP BY CONCAT_WS(' -> ', Event_Minus_2, Event_Minus_1, 'invite_teammate')
ORDER BY PathCount DESC;

Giải Thích Output

  • EventPath: Chuỗi các hành động mà người dùng đã thực hiện theo thứ tự, ngay trước khi họ mời một thành viên mới lần đầu tiên.
  • PathCount: Số lượng người dùng đã đi theo chính xác chuỗi hành vi này.

Template Insight Mẫu

  • Insight 1: “Con đường phổ biến nhất dẫn người dùng đến ‘Aha! Moment’ là create_project -> upload_document -> invite_teammate, được thực hiện bởi 3 người dùng. Điều này cho thấy việc tạo dự án và tải tài liệu lên là các bước chuẩn bị quan trọng, tạo ra ngữ cảnh giá trị cho việc mời đồng đội.
  • Insight 2: Hành động create_project xuất hiện trong cả 3 chuỗi hành vi hàng đầu. Đây rõ ràng là bước khởi đầu không thể thiếu trong hành trình của người dùng. Chúng ta nên đảm bảo hành động này cực kỳ đơn giản và dễ tìm thấy.
  • Insight 3: Dựa trên dữ liệu, một luồng onboarding lý tưởng nên hướng người dùng thực hiện create_project đầu tiên, sau đó khuyến khích họ upload_document hoặc customize_dashboard. Ngay sau khi hoàn thành các bước này, một lời kêu gọi hành động (CTA) mời đồng đội nên được hiển thị nổi bật.

Liên Kết Điều Hướng

← Về Case User Activation Moments
← Về Challenge 1 → Retention Curve Analysis
← Về Challenge 2 → Habit Moment Correlation
← Về Challenge 3 → Aha! Moment Behavioral Analysis
Tiếp tục Challenge 5 →

Nếu bạn muốn học phân tích dữ liệu thực chiến từ Business Mindset cho đến Coding thì có thể đăng ký các khóa học Phân Tích Dữ Liệu Thực Chiến nhé. Inbox mình Tại Đây.