StackTrading Docs

UC 8.2.8

Flow 11 - Waitlist Processor: khi Pod Leader có suất trống, giữ chỗ và mời trader phù hợp nhất trong waitlist xác nhận qua email Klaviyo trong 48 giờ

FieldValue
BA in ChargeAnh Hoang
Date Created2026-10-12
Versionv1.12
Document ReferencesZapier Integration V7.pdf (§Flow 10 Step 4–5, §Flow 11, §Flow 12, §Flow 15A, §Flow 15B, §3.3 Table E — naming reference only, Pod_Leader_Registry is native PostgreSQL, not a live Zapier Table) · RFQ_ Stack Trading Prop Tech V7.pdf (§Process Waitlist Queue, §4.4 #11) · CR-20260818-001 (Flow 7 — Pod Impact & Dispersal) · QnA from clients — STAGE 6: Pod System Flow 10 → 11 (POD-WAIT-02/03/05/07/08/15/16/17/18/21, POD-PLAN-11) · QnA_init_docs.md (A-10, A-19…A-21, N-01…N-09) · Common Rules CR-08, CR-18

UC_8.2.8 — Flow 11: Waitlist Processor

🇻🇳 Section này viết bằng tiếng Việt để BA review. Mọi ID, anchor, tên field/API và text hiển thị cho user giữ nguyên tiếng Anh.

1. Overview

FieldContent
IDUC_8.2.8
Use CaseFlow 11: Waitlist Processor
DescriptionUC này xử lý hàng chờ vào pod. Khi một Pod Leader có chỗ trống, hệ thống chọn trader phù hợp nhất trong hàng chờ, giữ chỗ cho trader đó và gửi email mời. Trader xác nhận trong 48 giờ thì được vào pod. Không xác nhận thì trader bị loại khỏi hàng chờ, và chỗ trống được mời cho người kế tiếp.
Phạm viUC này gồm việc mời trader trong waitlist khi có suất trống và vòng đời status pod của trader. Không gồm việc vào waitlist lần đầu và bước gán pod (UC_8.2.1).
Zapier FlowFlow 11 (Waitlist Processor)
Zapier TablePod_Leader_Registry (bảng PostgreSQL của Middleware: Asset_Class, Trading_Style, Max_Capacity, Current_Count, Status)
APIProcess Waitlist Queue API (POST /process-waitlist-queue) · Klaviyo API (payload Pod_Spot_Available_Confirm) · Klaviyo webhook callback khi trader bấm link
Cron Job taskKhông có
3rd PartyZapier, Klaviyo

2. Trigger

  • Một Pod Leader Active có thêm suất trống. Có 4 sự kiện tạo ra suất trống (BR_8.2.8.1). Flow nào tạo ra suất trống thì flow đó kích hoạt Zap Flow 11 ngay sau đó.

3. Pre-conditions

  • Leader đang hoạt động bình thường (Status là Active).
  • Leader còn suất trống, tức là số mentee hiện có (Current_Count) nhỏ hơn số mentee tối đa (Max_Capacity). VD: leader có Max_Capacity là 10 và Current_Count là 9 thì còn 1 suất.
  • Waitlist có ít nhất 1 trader, xếp theo Join_Date là thời điểm trader vào waitlist (BR_8.2.8.2).

4. Post-conditions

  • Trader xác nhận hợp lệ: trader vào pod của leader, status pod là Assigned.
  • Trader không bấm link trong 48 giờ: status pod của trader thành Waitlist_Ghost; Current_Count của leader giảm 1 để trả lại suất đã giữ; suất đó được mời cho người kế tiếp.
  • Không có trader phù hợp: suất để trống, không ai được mời.

5. Basic Flow

5.1 Kiểm tra waitlist (Flow 11 — Trigger, Check)

Stage 1 — Zap bắt đầu

  1. Trigger: Khi một flow khác vừa tạo ra suất trống cho một leader Active, flow đó kích hoạt Zap Flow 11 ngay sau đó cho đúng leader đó (BR_8.2.8.1). VD: Flow 4 vừa cho 1 mentee lên Level 7 và rời pod, thì Flow 4 kích hoạt Zap Flow 11 cho leader của mentee đó. Zap nhận tín hiệu bằng cách nào và kèm dữ liệu gì chưa chốt (§8 #6).
  2. Check: Zap kiểm tra waitlist có ai đang chờ không. Ai được tính là đang ở waitlist xem BR_8.2.8.2. Hệ thống không dùng bộ đếm Pod_Waitlist_Count, nên Zap kiểm tra bằng cách nào chưa chốt (§8 #6). Waitlist không có ai, hoặc Zap lỗi, thì xem E_8.2.8.1, E_8.2.8.2.

5.2 Chọn trader và giữ chỗ (Process Waitlist Queue API)

Zapier Flow 11 không có dòng riêng cho việc gọi API này. API nằm ở RFQ V7 và trả trader để Zapier gửi email mời, nên được đặt giữa bước Check và bước Engagement Check. Các bước 4 đến 7 chạy bên trong API; API chỉ trả kết quả sau khi làm xong.

Stage 2 — Chọn trader

  1. Zap gọi Process Waitlist Queue API (POST /process-waitlist-queue) để Middleware chọn trader cho leader. Mỗi suất trống gọi 1 lần. VD: 3 mentee rời pod cùng lúc thì Zap gọi API 3 lần và nhận về 3 trader khác nhau.

    Input fieldValue
    leader_idLeader_ID của leader vừa có suất trống. RFQ V7 ghi trường này là không bắt buộc, nhưng Flow 11 luôn truyền vì waitlist được xét theo đúng leader vừa có suất. Không truyền thì xử lý thế nào chưa chốt (§8 #8)
  2. Middleware khoá dòng của leader trong Pod_Leader_Registry. Trong lúc lần gọi này đang xử lý, các lần gọi khác phải chờ (BR_8.2.8.7). Leader không tồn tại, không còn Active hoặc đã hết suất thì xem E_8.2.8.3.

  3. Middleware chọn 1 trader theo BR_8.2.8.3, chỉ xét trader có status pod Waitlist. Middleware bỏ qua trader đang Inactive_Hold và trader có tài khoản giao dịch đang bị khoá (Locked) do DTO hoặc Hiatus. Middleware khoá dòng của trader được chọn. Nếu trader đó đang bị một lần gọi khác khoá thì Middleware bỏ qua và xét người kế tiếp, để các lần gọi cùng lúc không chọn trùng 1 trader. VD: 2 lần gọi chạy cùng lúc cho 2 suất; lần thứ nhất đã khoá trader A nên lần thứ hai bỏ qua A và chọn trader B. Không có ai phù hợp thì xem E_8.2.8.4.

Stage 3 — Giữ chỗ

  1. Middleware giữ chỗ ngay cho trader vừa chọn, ghi cùng lúc 3 thay đổi:

    • Tăng Current_Count của leader thêm 1.
    • Đổi status pod của trader từ Waitlist sang Pending_Pod_Confirmation (BR_8.2.8.4).
    • Lưu thời điểm gửi lời mời, dùng để tính hạn 48 giờ của link xác nhận.

    Ghi lỗi thì xem E_8.2.8.5.

  2. Middleware trả 200 OK cho Zapier:

    Output fieldValue
    next_candidate_idUUID của trader vừa được chọn và giữ chỗ
    queue_positionVị trí của trader trong waitlist theo Join_Date tại lúc được chọn. Chỉ dùng nội bộ để ghi log, không hiển thị cho trader

    Zapier gọi trùng hoặc gọi dư đều an toàn (BR_8.2.8.7).

  3. Vì suất đã được tính vào Current_Count, Flow 10 không thấy suất này khi ghép pod cho trader mới đăng ký. Nhờ vậy trader được mời không bao giờ bấm link hợp lệ rồi bị báo hết chỗ.

5.3 Gửi lời mời (Flow 11 — Engagement Check)

Stage 4 — Gửi email qua Klaviyo

  1. Sau khi giữ chỗ xong, payload Pod_Spot_Available_Confirm được gửi tới Klaviyo API để Klaviyo soạn email mời. Sau bước này Zap Flow 11 kết thúc. Middleware hay Zapier là bên gửi chưa chốt (§8 #7). Sotatek dựng dữ liệu gửi sang Klaviyo, không soạn nội dung email.

    Input fieldValue
    user_idUUID của trader được mời
    Email traderĐịa chỉ để Klaviyo gửi lời mời
    Link xác nhậnLink có sẵn user_id làm tham số, để khi trader bấm thì hệ thống biết ai bấm. Link chỉ dùng được 1 lần và hết hạn sau 48 giờ. Trader không cần đăng nhập khi bấm. Link trỏ về trang nào chưa chốt (§8 #2)
    Hạn xác nhậnThời điểm gửi lời mời cộng 48 giờ, theo giờ UTC (CR-08), để email ghi rõ hạn. VD: gửi lúc 10:00 UTC ngày 15 thì hạn là 10:00 UTC ngày 17
  2. Mỗi lần mời chỉ gửi email 1 lần. Zapier gọi lại Process Waitlist Queue API thì trader đã được mời không nhận lời mời lần nữa, vì status pod đã chuyển sang Pending_Pod_Confirmation. Email này dùng để lọc ra trader còn quan tâm (BR_8.2.8.6). Gửi sang Klaviyo lỗi thì xem E_8.2.8.6.

Các bước 13 và 14, cùng §5.6, chạy bên trong endpoint nhận Klaviyo webhook callback; endpoint chỉ trả kết quả sau khi làm xong.

Stage 5 — Nhận lần bấm

  1. Klaviyo gửi email cho trader và theo dõi trader có bấm link không.

  2. Khi trader bấm link, Klaviyo gửi Klaviyo webhook callback (POST) về Middleware. Nguồn không đặt tên endpoint này; tên, đường dẫn và tên trường trả về do BE chốt trong OpenAPI spec. Trader thấy trang gì sau khi bấm chưa chốt (§8 #2).

    Input fieldValue
    user_idBắt buộc. Lấy từ tham số trên link xác nhận

    Input sai hoặc user_id không tồn tại thì xem E_8.2.8.7.

Stage 6 — Kiểm tra lại

  1. Middleware khoá dòng của trader trong Users, để các lần bấm khác của cùng trader phải chờ.
  2. Middleware kiểm tra lại trader và leader theo BR_8.2.8.5, vì từ lúc mời tới lúc bấm có thể đã gần 48 giờ trôi qua. Đạt cả 2 kiểm tra thì sang §5.6. VD: trader được mời lúc 10:00 ngày 15 và bấm link lúc 09:00 ngày 17; trong lúc đó leader bị Suspended, nên Middleware ghép trader sang leader khác (E_8.2.8.12). Trường hợp suất bị người khác lấy mất không thể xảy ra, vì suất đã được giữ từ lúc gửi lời mời. Các trường hợp không đạt xem E_8.2.8.8 đến E_8.2.8.13.

Stage 7 — Đánh Ghost

  1. Trader không bấm link trong 48 giờ thì Klaviyo loại trader và báo cho hệ thống để mời người kế tiếp. Klaviyo báo về Middleware bằng cách nào, Middleware nhận ở đâu, và cách đếm đủ 48 giờ, đều chưa chốt; UC này chưa có cron job (§8 #1).
  2. Trader bị loại khỏi waitlist. Status pod của trader thành Waitlist_Ghost. "Ghost" là trader đã được mời nhưng không phản hồi. Từ đây hệ thống xử lý trader như người chưa có pod: thẻ My POD hiện nút [Join a POD]. Muốn vào pod lại, trader bấm nút này và gửi lại form Style theo Flow 10, được ghép như người mới; nếu phải vào waitlist thì đứng cuối hàng (Ref: UC_8.2.1 BR_8.2.1.1).
  3. Current_Count của leader giảm 1 để trả lại suất đã giữ cho trader này.
  4. Việc giảm Current_Count kích hoạt lại Zap Flow 11 cho leader này, quay về bước 1, để mời người kế tiếp. Cách kích hoạt chưa chốt (§8 #6).

5.6 Trader vào pod (Flow 11 — Assign)

Stage 8 — Gán pod

  1. Middleware chạy bước gán pod của Flow 10 ngay trong endpoint nhận Klaviyo webhook callback (UC_8.2.1 §5.4). Khác biệt duy nhất: Middleware không tăng Current_Count lần nữa, vì đã tăng lúc giữ chỗ ở bước 6. Status pod của trader thành Assigned. Mọi thay đổi ở bước 14 (nhánh từ chối hoặc ghép lại) và ở bước này được ghi xuống database cùng nhau; lỗi giữa chừng thì huỷ toàn bộ.

  2. Middleware trả 200 OK kèm kết quả xử lý, là 1 trong các trường hợp:

    • Trader đã vào pod của leader đã giữ chỗ.
    • Leader cũ không còn Active, trader đã được ghép sang leader khác.
    • Trader về Waitlist.
    • Trader bị từ chối vì không còn đủ điều kiện.
    • Lời mời đã quá 48 giờ, không ghi gì.
    • Bỏ qua và không ghi gì, vì không có lời mời đang chờ.

    Tên trường chứa kết quả do BE chốt. Bấm trùng thì xem E_8.2.8.14.

  3. Chỉ sau khi ghi xong, Middleware mới làm tiếp 2 việc:

    • Gửi sự kiện Pod_Assignment_Confirmation sang Klaviyo để Klaviyo email cho trader (Ref: UC_8.2.1 API_8.2.1.3).
    • Tự gán role Pod Member trên Discord cho trader, theo cách xử lý của API Manage Discord Role (POST /manage-discord-role), không đi qua Zap (Ref: UC_8.2.1 API_8.2.1.2).

    Gửi email hoặc gán role lỗi thì xem E_8.2.8.15.

  4. Thẻ My POD trên dashboard của trader chuyển từ Pending sang Matched (Ref: UC_4.14.2 BR_4.14.2.13 sự kiện 4).

5.7 Cập nhật waitlist (Flow 11 — Decrement)

  1. Hệ thống không dùng bộ đếm Pod_Waitlist_Count ghi trong RFQ V7, nên bước này không ghi gì thêm. Waitlist là các trader có status pod Waitlist, xếp theo Join_Date; BE tự quyết cách lưu. Trader rời waitlist khi status pod đổi, VD thành Assigned ở bước 19 hoặc Waitlist_Ghost ở bước 16. Danh sách đầy đủ xem BR_8.2.8.2.

6. Exceptional Flows

Exception IDExceptionConditionSystem Handling / Fallback
E_8.2.8.1Waitlist không có aiBước Check không thấy trader nào đang chờ.Zap dừng, không mời ai.
E_8.2.8.2Zap lỗiMột bước của Zap Flow 11 bị lỗi.Zapier tự chạy lại bước đó theo chế độ của gói đang dùng. Vẫn lỗi thì Zapier gửi "Zap Error" (ghi tên Zap và bước lỗi) vào kênh Slack Operations. Sotatek chỉ cấu hình tính năng có sẵn này, không viết xử lý lỗi riêng.
E_8.2.8.3Leader không hợp lệ hoặc hết suất (Ref: BR_8.2.8.7)leader_id không tồn tại, leader không còn Active, hoặc Current_Count đã bằng hoặc lớn hơn Max_Capacity.Middleware trả 200 OK với next_candidate_id là null, không ghi gì. Zapier không bị báo lỗi. Zap dừng, suất để trống.
E_8.2.8.4Không có trader phù hợpWaitlist không có ai, hoặc không có trader nào cùng Asset_Class với leader.Middleware trả 200 OK với next_candidate_id là null, không ghi gì. Zap dừng, suất để trống.
E_8.2.8.5Lỗi khi giữ chỗGhi lỗi giữa chừng ở bước 6, hoặc lỗi hệ thống (database lỗi, hết thời gian chờ).Middleware huỷ cả 3 thay đổi, nên không bao giờ có trường hợp Current_Count đã tăng mà trader vẫn ở Waitlist. Lỗi hệ thống thì Middleware trả 500; Zapier nhận lỗi và chạy lại theo E_8.2.8.2.
E_8.2.8.6Gửi sang Klaviyo lỗi sau khi đã giữ chỗPayload Pod_Spot_Available_Confirm không gửi được.Cách xử lý chưa chốt (§8 #5).
E_8.2.8.7Callback không hợp lệThiếu user_id hoặc sai định dạng; hoặc user_id không tồn tại.Thiếu hoặc sai định dạng thì Middleware trả 400 và không ghi gì. Không tồn tại thì Middleware trả 200 OK, bỏ qua, Klaviyo không bị báo lỗi.
E_8.2.8.8Không có lời mời đang chờ (Ref: BR_8.2.8.7, CR-18)Status pod của trader không còn là Pending_Pod_Confirmation: trader bấm link lần 2, Klaviyo gửi trùng cho cùng 1 lần bấm, hoặc trader không có lời mời nào.Middleware bỏ qua, trả 200 OK và không ghi gì.
E_8.2.8.9Lời mời đã quá 48 giờTrader bấm link sau 48 giờ kể từ lúc gửi lời mời.Lời mời đã hết hạn và bị chặn. Middleware trả 200 OK và không ghi gì. VD: lời mời gửi lúc 10:00 ngày 15, trader bấm lúc 11:00 ngày 17 (giờ thứ 49). Lúc này trader đã bị đánh Ghost (§5.5): Current_Count đã giảm và người kế tiếp đã được mời.
E_8.2.8.10Trader được mời bị Flow 12 quét trúng khi đang chờ bấmTrader đang Pending_Pod_Confirmation thì bị cron Flow 12 (Zombie Protocol) quét trúng vì 30 ngày không tạo lệnh.Xử lý như trader không bấm link (§5.5), ngay lúc Flow 12 chạy: status pod thành Waitlist_Ghost (không đặt Inactive_Hold) và trader rời waitlist. Current_Count của leader đã giữ chỗ giảm 1 lần duy nhất để trả lại suất, rồi Zap Flow 11 được kích hoạt lại cho leader đó để mời người kế tiếp. Trader bấm link sau đó thì xử lý theo E_8.2.8.8. VD: trader A được mời lúc 10:00 ngày 15, cron Flow 12 sáng ngày 16 quét trúng A. A thành Waitlist_Ghost ngay, suất được mời cho người kế tiếp; chiều ngày 16 A bấm link thì hệ thống bỏ qua.
E_8.2.8.11Trader không còn đủ điều kiện (từ chối) (Ref: BR_8.2.8.5)Kiểm tra 1 không đạt.Current_Count của leader đã giữ chỗ giảm 1 để trả lại suất. Middleware kích hoạt lại Zap Flow 11 cho leader đó để mời người kế tiếp. Middleware từ chối trader và trả 200 OK; trader thấy thông báo This invitation is no longer valid. Status pod của trader thành null (không thuộc pod nào) và trader rời waitlist.
E_8.2.8.12Leader không còn Active (ghép lại) (Ref: BR_8.2.8.5)Kiểm tra 2 không đạt: pod của leader đã bị rã qua Flow 15A hoặc Flow 15C.Middleware ghép trader sang leader khác theo UC_8.2.1 BR_8.2.1.2. Có leader phù hợp còn suất thì Middleware chạy đầy đủ UC_8.2.1 §5.4, gồm cả tăng Current_Count của leader mới; status pod thành Assigned. Không có leader phù hợp thì status pod về Waitlist và trader đứng cuối hàng: Join_Date được ghi lại là thời điểm trader về waitlist. VD: trader A bấm link lúc 09:00 ngày 17 và về waitlist; trader B đã vào hàng từ ngày 16 thì B đứng trước A. Cả 2 trường hợp đều trả 200 OK.
E_8.2.8.13Lỗi hệ thống khi xử lý callbackDatabase lỗi hoặc hết thời gian chờ.Middleware trả 500, huỷ toàn bộ thay đổi và không ghi gì.
E_8.2.8.14Bấm trùng sau khi đã vào pod (Ref: CR-18)Trader bấm lại, hoặc Klaviyo báo trùng.Lần đầu Middleware đổi status pod từ Pending_Pod_Confirmation sang Assigned. Các lần sau Middleware thấy status đã đổi nên bỏ qua, trả 200 OK và không ghi gì.
E_8.2.8.15Gửi email hoặc gán role lỗi sau khi đã gán podBước 21 lỗi.Middleware vẫn trả 200 OK. Trader vẫn ở trong pod, việc vào pod không bị huỷ. Cách xử lý tiếp xem UC_8.2.1 A-05.

7. Business Rules

BR_IDRule Description
BR_8.2.8.1Sự kiện kích hoạt Flow 11: xem chi tiết tại §7.1.
BR_8.2.8.2Waitlist — ai vào, đứng ở đâu: xem chi tiết tại §7.2.
BR_8.2.8.3Chọn trader cho suất trống: xem chi tiết tại §7.3.
BR_8.2.8.4Status pod của trader: xem chi tiết tại §7.4.
BR_8.2.8.5Kiểm tra lại khi trader bấm link: Middleware kiểm tra 2 điều kiện:- Kiểm tra 1: trader còn đủ điều kiện, tức status tài khoản không phải Failed (trader SIM bị Hard Breach hoặc Resign) hoặc Terminated (trader LIVE bị Hard Breach hoặc Resign), và Current_Level nhỏ hơn 7. Không đạt thì từ chối (E_8.2.8.11).- Kiểm tra 2: leader đã giữ chỗ vẫn Active, tức pod chưa bị rã qua Flow 15A hoặc Flow 15C. Không đạt thì Middleware chạy bước ghép pod của Flow 10 cho trader (E_8.2.8.12).Đạt cả 2 thì trader vào pod (§5.6).
BR_8.2.8.6Ba email Klaviyo của Pod: xem chi tiết tại §7.5.
BR_8.2.8.7Khoá dữ liệu và xử lý gọi trùng (áp dụng cho Process Waitlist Queue API và endpoint nhận Klaviyo webhook callback):- Đường dẫn và định dạng chi tiết của 2 endpoint do Sotatek chốt trong OpenAPI spec của Middleware. UC này chỉ chốt input, output và cách xử lý.- Lời gọi không đủ điều kiện xử lý: Middleware trả 200 OK, bỏ qua và không ghi gì (CR-18). VD: user_id không tồn tại, hoặc trader không còn ở Pending_Pod_Confirmation.- Mọi thời điểm ghi database theo chuẩn CR-08 (giờ UTC, ISO 8601, chính xác tới mili giây).- Bắt buộc khoá dòng khi chọn trader và khi giữ chỗ, để các lần gọi cùng lúc không chọn trùng 1 trader.- Chỉ Middleware được ghi Current_Count (Ref: UC_8.2.1 BR_8.2.1.5).- Zapier gọi trùng hoặc gọi dư Process Waitlist Queue API đều an toàn: mỗi lần gọi chỉ lấp suất thực sự còn trống lúc Middleware khoá dòng leader; leader đã hết suất thì trả next_candidate_id là null và không ghi gì, nên Current_Count không bao giờ vượt Max_Capacity; trader đã được mời không bị mời lại vì status pod đã rời Waitlist. VD: leader còn 1 suất nhưng Zapier gọi 2 lần. Lần 1 chọn trader A và tăng Current_Count lên bằng Max_Capacity; lần 2 thấy đã hết suất nên trả null.

7.1 BR_8.2.8.1 — Sự kiện kích hoạt Flow 11

Flow 11 chạy mỗi khi một leader Active có thêm suất trống. Flow nào gây ra sự kiện thì flow đó gọi Flow 11 ngay sau đó.

#Sự kiệnNguồn
1Current_Count giảm, tức một mentee rời pod hoặc suất đang giữ cho trader được mời được trả lại:- Mentee lên Level 7 nên tự rời pod (Flow 4, UC_8.1.1 Stage 2 bước 3)- Mentee bị Terminated (trader LIVE bị Hard Breach hoặc Resign), xử lý ở bước Pod Impact & Dispersal (Flow 7, UC_4.17.2 BR_4.17.2.10)- Mentee 30 ngày không giao dịch nên chuyển sang Inactive_Hold (Flow 12)- Operations chuyển mentee sang pod khác qua POST /admin-pod-reassignment, nên pod cũ có thêm suất (UC_8.2.9)- Trader được mời không bấm link trong 48 giờ (§5.5)- Trader được mời bấm link nhưng bị từ chối (E_8.2.8.11)- Trader được mời bị Flow 12 quét trúng khi đang chờ bấm link (E_8.2.8.10)Flow 4, Flow 7, Flow 12, Flow 15A và UC này
2Leader mới: một Pod Leader mới được thêm vào Pod_Leader_Registry với Status là Active. Flow 11 lấp ngay các suất của pod mớiFlow 15B (UC_8.2.10)
3Tăng Max_Capacity: Operations tăng số mentee tối đa của một leader Active. Flow 11 lấp phần suất tăng thêm. VD: tăng từ 8 lên 10 thì có thêm 2 suất để mờiOperations
4Leader hoạt động lại: leader đang Suspended được chuyển về Active và vẫn còn suất trống—
  • Chỉ xét leader Active. Khi leader bị Suspended hoặc Terminated, cả pod bị rã qua Flow 15A (mentee được ghép sang leader khác hoặc vào waitlist). Flow 11 không mời ai vào pod của leader đó.
  • Giảm Max_Capacity không phải sự kiện kích hoạt Flow 11. Giảm xuống thấp hơn số mentee đang có thì hệ thống không đẩy mentee nào ra. VD: pod có 10 mentee, Operations giảm Max_Capacity từ 10 xuống 8 thì cả 10 mentee vẫn ở lại. Flow 11 chỉ mời người mới khi số mentee tự giảm xuống dưới Max_Capacity; VD pod trên giảm dần còn 7 mentee thì mới có 1 suất để mời. Không cần code thêm, vì điều kiện "Current_Count nhỏ hơn Max_Capacity" đã tự chặn.

7.2 BR_8.2.8.2 — Waitlist: ai vào, đứng ở đâu

Waitlist là hàng chờ có thứ tự: trader có Join_Date sớm hơn thì đứng trước (Ref: CR-08). VD: trader A vào waitlist ngày 10, trader B vào ngày 12 thì A đứng trước B.

Cách vào waitlistVị trí trong hàngUC sở hữu
Trader gửi form Style nhưng không còn leader nào cùng Asset_Class còn suấtCuối hàngUC_8.2.1 §5.5
Leader bị Suspended hoặc Terminated, và Flow 15A không ghép được trader sang leader khácCuối hàng, tính từ lúc trader vào waitlistUC_8.2.9
Trader đang chờ trong waitlist thì bị Inactive_Hold, sau đó kích hoạt lại tài khoảnGiữ Join_Date gốc, tức về lại vị trí cũFlow 12
Trader đang ở pod thì bị Inactive_Hold, sau đó kích hoạt lại tài khoản; bước ghép pod của Flow 10 không tìm được leader cùng Asset_Class còn suấtCuối hàng. Join_Date là thời điểm trader vào waitlistFlow 12 · UC_8.2.1
Trader bấm link nhưng leader không còn Active và không ghép được sang leader khácCuối hàng. Join_Date là thời điểm trader về waitlistUC này (E_8.2.8.12)
  • Join_Date là ngày vào waitlist, khác với pod_join_date là ngày vào pod. Vào waitlist không đổi pod_join_date, và pod_join_date không được dùng để xếp hàng.
  • Trader đang chờ thì bị Inactive_Hold (30 ngày không giao dịch, Zombie Protocol của Flow 12): trader vẫn giữ bản ghi và Join_Date, nhưng bị bỏ qua khi chọn người. Khi trader bấm Reactivate (Flow 12), status pod về Waitlist và trader đứng đúng vị trí cũ.
  • Trader đang ở pod thì bị Inactive_Hold, sau đó kích hoạt lại: hệ thống chạy lại bước ghép pod của Flow 10 như với người mới (UC_8.2.1 BR_8.2.1.2). Hệ thống không ưu tiên pod cũ; trader chỉ về lại pod cũ khi bước ghép tình cờ chọn đúng leader đó. Không có leader cùng Asset_Class còn suất thì trader vào waitlist, đứng cuối hàng. VD: mentee A thuộc pod của leader X, bị Inactive_Hold nên suất được mời cho trader B. A kích hoạt lại; leader Y cùng Asset_Class có ít mentee hơn thì A vào pod của Y, không chờ suất ở pod X.
  • Trader đang chờ bấm link (Pending_Pod_Confirmation) thì bị Flow 12 quét trúng: xử lý như không bấm link, status pod thành Waitlist_Ghost (E_8.2.8.10).
  • Trader đang chờ mà tài khoản giao dịch bị khoá (Locked) do DTO hoặc Hiatus: trader vẫn giữ Join_Date nhưng bị bỏ qua khi chọn người, và được xét lại khi tài khoản về Active.
  • Trader rời waitlist khi: status pod thành Assigned (đã vào pod); status pod thành Waitlist_Ghost (không bấm link trong 48 giờ, hoặc bị Flow 12 quét trúng khi đang chờ bấm link); status pod thành null (bị từ chối lúc bấm link, E_8.2.8.11); tài khoản giao dịch thành Failed (trader SIM bị Hard Breach hoặc Resign) hoặc Terminated (trader LIVE bị Hard Breach hoặc Resign); hoặc trader lên Level 7 trở lên (thành Alumni).
  • Email Pod_Waitlist_Notification gửi 1 lần mỗi khi trader vào waitlist qua Flow 10, Flow 15A hoặc Flow 12. Không gửi email định kỳ báo vị trí.
  • Waitlist không có hạn. Chờ bao lâu cũng được, waitlist dài không kéo theo xử lý tự động nào; Operations tự lo bổ sung Pod Leader.
  • Dashboard không hiển thị vị trí trong hàng hay thời gian chờ ước tính (Ref: UC_4.14.2 BR_4.14.2.5).

7.3 BR_8.2.8.3 — Chọn trader cho suất trống

Middleware không xét chung cả waitlist mà xét riêng cho leader vừa có suất trống. Chỉ xét trader có status pod Waitlist; bỏ qua trader Inactive_Hold và trader có tài khoản giao dịch đang Locked do DTO hoặc Hiatus.

Thứ tựTiêu chíQuy tắc
1Asset_ClassBắt buộc cùng loại với leader, giống UC_8.2.1 BR_8.2.1.2. Không gán trader Forex cho leader Futures, kể cả khi trader đó chờ lâu nhất
2Trading StyleƯu tiên trader có Style nằm trong danh sách Style của leader. Không ai khớp Style thì vẫn chọn trader cùng Asset_Class
3Join_DateTrong cùng một nhóm, trader vào waitlist sớm hơn được chọn

VD: một leader Futures vừa có 1 suất, danh sách Style của leader có Scalping. Waitlist có 3 trader:

  • Trader A chơi Forex, vào ngày 1: bị loại vì khác Asset_Class.
  • Trader B chơi Futures, Style Swing, vào ngày 2.
  • Trader C chơi Futures, Style Scalping, vào ngày 5.

Middleware chọn C. B vào sớm hơn, nhưng C khớp Style của leader nên được ưu tiên.

  • Asset_Class đọc từ bảng Users. Trading Style đọc từ profile trader đã lưu ở Flow 10.
  • Nhiều lần chọn chạy cùng lúc thì mỗi lần phải chọn một trader khác nhau, không được chọn trùng (BR_8.2.8.7).

7.4 BR_8.2.8.4 — Status pod của trader

  • Status pod lưu ở cột riêng (VD pod_status), tách khỏi cột status tài khoản giao dịch users.status, để hai loại status không ghi đè lên nhau.
  • Trader được tính là đang ở waitlist khi status pod là Waitlist, Inactive_Hold hoặc Pending_Pod_Confirmation.
StatusNghĩaĐặt bởi
nullTrader không thuộc pod nào và không ở waitlist: chưa từng tham gia pod, hoặc đã rời pod hay rời waitlist vì tài khoản thành Failed (trader SIM bị Hard Breach hoặc Resign) hoặc Terminated (trader LIVE bị Hard Breach hoặc Resign), vì lên Level 7, hoặc vì bị từ chối lúc bấm linkMặc định khi chưa tham gia · Flow 7 · Flow 4 · E_8.2.8.11
WaitlistTrader đang xếp hàng chờUC_8.2.1 §5.5, Flow 15A, Flow 12 và E_8.2.8.12
Pending_Pod_ConfirmationTrader đã được mời, suất đang được giữ, hệ thống chờ trader bấm linkBước 6
AssignedTrader đã vào pod: ghép thẳng ở Flow 10, hoặc vào pod sau khi bấm link xác nhậnUC_8.2.1 §5.4 và bước 19
Waitlist_GhostTrader bị loại khỏi waitlist vì không bấm link trong 48 giờ, hoặc bị Flow 12 quét trúng khi đang chờ bấm link. Hệ thống xử lý như trader chưa có pod: thẻ My POD hiện nút [Join a POD], trader được gửi lại form StyleBước 16 · E_8.2.8.10
Inactive_HoldTrader 30 ngày không giao dịch. Nếu đang ở pod thì trả lại suất; nếu đang chờ trong waitlist thì vẫn giữ chỗ trong hàng. Không áp cho trader đang Pending_Pod_Confirmation (E_8.2.8.10)Flow 12

7.5 BR_8.2.8.6 — Ba email Klaviyo của Pod

Pod_Spot_Available_Confirm dùng để lọc ra trader còn quan tâm: chỉ trader bấm link mới được vào pod, nhờ vậy hệ thống không đưa người đã không còn hoạt động vào pod của leader. Nội dung email do Klaviyo hoặc khách quản lý.

EmailGửi khiUC sở hữu
Pod_Waitlist_NotificationTrader vào waitlistUC_8.2.1, UC_8.2.9 và Flow 12
Pod_Spot_Available_ConfirmCó suất trống dành cho trader. Email này chỉ có ở Flow 11UC này (bước 9)
Pod_Assignment_ConfirmationTrader đã vào pod: chỉ sau khi trader bấm link xác nhận, hoặc khi trader được ghép ngay ở Flow 10. Email có thông tin leader và quyền vào DiscordUC_8.2.1

8. Open Items

Chi tiết: QnA_init_docs.md.

#Câu hỏiID
1IF No Click: Klaviyo loại trader và báo hệ thống (Zapier V7 Flow 11). Báo về Middleware bằng cách nào, Middleware nhận ở đâu?N-01
2Trader bấm link thì thấy trang gì, ở đâu, nội dung từng trường hợp (kể cả link hết hạn)?N-02
3Thẻ My POD hiển thị gì cho Pending_Pod_Confirmation?N-03
4Operations tăng Max_Capacity hoặc đổi leader về Active bằng công cụ gì để Flow 11 được gọi?N-08
5Gửi lời mời sang Klaviyo lỗi thì trader không nhận email nhưng vẫn bị đánh GhostN-09
6Khi có suất trống, cái gì báo cho Zap Flow 11 chạy, truyền những gì; bước Check Pod_Waitlist > 0 kiểm tra bằng cách nào khi không còn bộ đếm?A-19
7Ai gửi Pod_Spot_Available_Confirm sang Klaviyo: Middleware ngay sau khi giữ chỗ, hay Zapier sau khi nhận next_candidate_id?A-20
8Process Waitlist Queue API không nhận leader_id (V7 ghi Optional) thì chọn trader theo tiêu chí nào?A-21

9. Phân chia trách nhiệm

Hạng mụcSotatek buildStack Trading OpsBên thứ 3 tự chạy
Gọi Flow 11 khi có suất trống (4 sự kiện)✅❓ Công cụ cho sự kiện 3, 4—
Zap Flow 11 (kiểm tra waitlist, gọi endpoint mỗi suất 1 lần)✅—Zapier
Chọn trader, khoá dữ liệu, giữ chỗ✅——
Gửi Pod_Spot_Available_Confirm và link xác nhận 1 lần, hạn 48 giờ✅——
Gửi email mời, theo dõi bấm link——✅ Klaviyo
Kiểm tra lại khi bấm; vào pod, từ chối hoặc ghép lại✅——
Tăng Max_Capacity, bổ sung Pod Leader khi waitlist dài—✅—

Changelog

DateVersionUpdated itemBeforeAfterNotes
2026-10-12v1Initial document——Bản tiếng Việt để BA re-check trước khi chuyển tiếng Anh. Viết lại từ đầu theo template UC_8.1.1 (bản 2026-10-09/12 đã xoá). Nguồn chính: QnA POD-WAIT-01…21 (round 1–3), POD-JOIN-06/09/17; BA chốt trong QnA_init_docs (A-01 → A-18, C-01 → C-05). Spec V7 bị thay thế: Flow 11 chạy cho 4 sự kiện tạo suất trống, không chỉ khi Current_Count giảm (POD-WAIT-18); giữ chỗ bằng tăng Current_Count + Pending_Pod_Confirmation (POD-WAIT-03); không bấm → Waitlist_Ghost (POD-WAIT-05); Zombie giữ Join_Date gốc thay vì cuối hàng (POD-WAIT-20 thay POD-WAIT-13) — khách đã sửa email SES-30 thành "you will resume your position on the waitlist."
2026-10-12v1.1Thêm mục API & CronEndpoint chỉ được nhắc 1 dòng trong BR_8.2.8.7; endpoint nhận báo bấm link chưa có specMục API & Cron: Zap Flow 11, spec đầy đủ POST /process-waitlist-queue, sự kiện Pod_Spot_Available_Confirm, endpoint xác nhận suất (input, output, xử lý, lỗi, gọi trùng). Basic Flow trỏ tới từng API; BR_8.2.8.7 rút các dòng API. Thêm Hạng mục mở #11 (cách kích hoạt Zap Flow 11), #12 (bên gửi sự kiện Klaviyo)leader_id bắt buộc (V7 ghi Optional — POD-WAIT-02 chốt xét theo leader vừa trống chỗ). Do BA định nghĩa theo RFQ_ Stack Trading Prop Tech V7.pdf §4.4 #11, #19: mã lỗi 400/401/500; next_candidate_id/queue_position = null khi không chọn được ai; giá trị result của endpoint xác nhận (Confirmed, Reassigned, Requeued, Rejected, Expired, Skipped); lưu thời điểm gửi lời mời để tính hạn 48 giờ; biến tối thiểu user_id, email, confirm_url, expires_at; tên endpoint xác nhận để Sotatek chốt trong OpenAPI spec
2026-10-12v1.2Basic Flow — mô tả lời gọi APIBước gọi API chỉ gắn "(Ref: API_x)", không rõ bên gọi / bên nhận / kết quả; endpoint xác nhận suất chưa có tênMỗi bước gọi giữa các hệ thống ghi dạng [Bên gọi → Bên nhận] tên API + input chính → kết quả; rẽ nhánh Stage 2 theo next_candidate_id (có giá trị / null), Stage 4 theo result (Confirmed / Reassigned / Requeued / Rejected / Expired / Skipped); ghi rõ bước nào chạy bên trong POST /process-waitlist-queue và endpoint nhận Klaviyo callback. Đặt tên chức năng endpoint nhận Klaviyo callback cho endpoint xác nhận suất (API_8.2.8.4, bảng tóm tắt, BR_8.2.8.7)API_8.2.8.2 bước 7 và API_8.2.8.4 bước 7 chỉnh cho khớp Basic Flow (bên gửi sự kiện Klaviyo trỏ Hạng mục mở #12; gán role do Middleware tự làm, không qua Zap)
2026-10-13v1.3Tên endpoint xác nhận suấtConfirm Pod Spot (tên tự đặt)Klaviyo callback — cách gọi theo Zapier Integration V7.pdf Flow 11, POD-WAIT-08—
2026-10-13v1.4Dùng tên API gốc; bỏ tên tự đặtTiêu đề / bảng tóm tắt API: Zap Flow 11, POST /process-waitlist-queue, Sự kiện Pod_Spot_Available_Confirm, Klaviyo callback. Biến tự đặt confirm_url, expires_at, email; trường result và giá trị Confirmed / Reassigned / Requeued / Rejected / Expired / SkippedTên gốc: Flow 11: Waitlist Processor, Process Waitlist Queue API (POST /process-waitlist-queue), Flow 11 — Engagement Check (payload Pod_Spot_Available_Confirm), Flow 11 — Wait (Klaviyo webhook callback), Flow 11 — Assign, API Manage Discord Role (POST /manage-discord-role). Biến / kết quả mô tả bằng lời (link xác nhận, hạn xác nhận, email trader, kết quả xử lý; nhánh rẽ ghi "bỏ qua / từ chối / hết hạn, trả 200 OK"); tên do BE chốt trong OpenAPI spec. Cột Trường đổi thành Nội dungChỉ giữ tên có trong nguồn: leader_id, next_candidate_id, queue_position (V7 Process Waitlist Queue), user_id (POD-WAIT-08). Không đổi nghiệp vụ
2026-10-13v1.5Basic Flow Stage 1, Stage 5; Process Waitlist Queue API inputBỏ bước Check; ghi "Klaviyo không báo khi trader không bấm"; leader_id bắt buộc; Zap nhận thêm "số suất trống"Khôi phục Check (Is Pod_Waitlist > 0) và IF No Click (Klaviyo loại trader, báo hệ thống) đúng Zapier Integration V7.pdf Flow 11; leader_id Optional theo RFQ V7 (Hạng mục mở #13, A-21); bỏ "số suất trống"Đối chiếu client sheet Flow 11
2026-10-13v1.6Status trader sau khi xác nhận suất (Post-conditions, Stage 4, BR_8.2.8.4, BR_8.2.8.7, API_8.2.8.4)Active_Pod_MemberAssignedKhách chốt 2026-10-13 (POD-WAIT-22): Assigned và Active_Pod_Member là một — dùng Assigned
2026-10-14v1.7Toàn UC — viết lại theo khuôn UC_8.1.xCó bảng "Giải thích thuật ngữ" ở đầu. Basic Flow 5 Stage (Có suất trống · Chọn trader · Giữ chỗ và gửi lời mời · Bấm link · Không bấm), mỗi bước trỏ sang mục API. Mục "API & Cron" riêng với 4 mục API_8.2.8.1 Zap Flow 11: Waitlist Processor, API_8.2.8.2 Process Waitlist Queue API (POST /process-waitlist-queue), API_8.2.8.3 payload Pod_Spot_Available_Confirm gửi Klaviyo, API_8.2.8.4 Klaviyo webhook callback — mỗi mục có bảng input / output / xử lý / lỗi / gọi trùng. BR_8.2.8.7 "Thông tin kỹ thuật cho dev". Phân chia trách nhiệm đứng trước Hạng mục mởBỏ bảng thuật ngữ (giải thích ngay câu dùng lần đầu). Basic Flow 5 Stage: (1) Có suất trống, kích hoạt Zap Flow 11 — kèm xử lý lỗi Zap · (2) Chọn trader và giữ chỗ — input leader_id, khoá dòng, các nhánh null / 401 / 500, output next_candidate_id + queue_position · (3) Gửi lời mời qua Klaviyo — bảng biến payload · (4) Trader bấm link — input user_id, các nhánh 401 / 400 / bỏ qua / hết hạn / từ chối / ghép lại / 500, kết quả xử lý · (5) Ghost. Bỏ mục "API & Cron" và anchor API_8.2.8.1–4. Còn 3 API đúng như nguồn: Process Waitlist Queue API (POST /process-waitlist-queue) — RFQ V7 §Process Waitlist Queue; Klaviyo API (nhận payload Pod_Spot_Available_Confirm) — Zapier V7 §Flow 11 Engagement Check; Klaviyo webhook callback upon user click — Zapier V7 §Flow 11 Wait, POD-WAIT-08. Zap Flow 11: Waitlist Processor là bước Zapier, không đánh số API. BR_8.2.8.7 đổi tên "Xác thực, khoá dữ liệu và xử lý gọi trùng" — nhận quy định chung của mục API cũ (HMAC/JWS, OpenAPI spec, CR-18, CR-08) và phần gọi trùng / bấm trùng; bỏ dòng Process Waitlist Queue API (đã nằm trong Stage 2). Open Items đứng trước Phân chia trách nhiệmTheo yêu cầu BA: mô tả và thứ tự như UC_8.1.1 / UC_8.1.2. Nội dung nghiệp vụ và BR ID giữ nguyên. Sửa số API cho khớp nguồn: Zapier Integration V7.pdf §Flow 11 (Trigger · Check · Engagement Check · Wait · IF No Click · Assign) và RFQ_ Stack Trading Prop Tech V7.pdf §Process Waitlist Queue — Zap Flow 11 không phải API
2026-10-14v1.8Cron Job task tách khỏi APIOverview chỉ có 3rd PartyThêm dòng API (3 API) và Cron Job task (Không có)Theo yêu cầu BA: Cron Job task là tác vụ nền chạy theo lịch, khác API; phải ghi rõ "Cron Job task" như API ghi rõ "API". Nguồn: RFQ_ Stack Trading Prop Tech V7.pdf §3.3 Background Workers (Cron Jobs).
2026-10-17v1.9"Table E" reference renamed in header Zapier Table row and Document ReferencesPod_Leader_Registry was referred to as "Table E — Pod_Leader_Registry", implying it is sourced from a live Zapier TableRenamed to Pod_Leader_Registry (native PostgreSQL table) — Pod_Leader_Registry is built natively in PostgreSQL as the single source of truth, not a live Zapier Table; "Table E" retained in Document References only as a naming/cross-reference convention to the original RFQ sectionClient confirmation 2026-10-17 — PostgreSQL-only build instruction for Pod_Leader_Registry, restating POD-JOIN-02
2026-10-22v1.10Stage 2 bước 3 · Stage 4 bước 2 · Stage 5 bước 1 · BR_8.2.8.1, BR_8.2.8.2, BR_8.2.8.3, BR_8.2.8.4 · Open ItemsGiảm Max_Capacity chưa có rule · trader Locked trong waitlist chưa có rule · rời waitlist khi terminate / Level 7: Open Items #9 · Waitlist_Ghost hiển thị gì, gửi lại form: Open Items #3, #10Giảm Max_Capacity không đẩy mentee ra, chờ tự giảm · trader Locked (DTO / Hiatus) bị bỏ qua khi chọn, giữ Join_Date · status pod là cột riêng, tách users.status; 3 status đang ở waitlist; rời waitlist khi Assigned / Waitlist_Ghost / Failed / Terminated (gồm resign) / Level 7+ · bấm sau 48 giờ bị chặn · Waitlist_Ghost xử lý như Unassigned: [Join a POD], gửi lại form Flow 10 · Open Items còn 11 (đánh số lại)Khách trả lời 2026-10-22: A-10, N-02 (ca hết hạn), N-03 (phần Waitlist_Ghost), UC_8.2.1 A-02 (xác nhận). Giảm Max_Capacity: câu hỏi thêm cho sự kiện 3
2026-10-22v1.10Basic Flow · Business Rules · Document References — kiểm tra chữ ký webhookBước kiểm tra chữ ký (HMAC/JWS), sai → 401 (RFQ V7 §4.4 #19)Bỏ toàn bộ bước kiểm tra chữ ký và các dòng 401BA chốt 2026-10-22: yêu cầu bảo mật chung, khách không nói riêng cho flow này
2026-10-22v1.10Stage 1 bước 2 · Stage 2 bước 3 · Stage 3 bước 1 · Stage 4 bước 1, 2, 3 · Stage 5 (IF No Click, bước 1) · BR_8.2.8.1 · BR_8.2.8.7Một số câu gộp nhiều ý trong 1 dòngTách thành các ý riêng (sub-bullet)Viết lại cho dễ hiểu, không đổi nghiệp vụ
2026-10-22v1.10Post-conditions · Stage 2 bước 5 · Stage 3 bước 1 · Stage 4 bước 2 · Stage 5 bước 2 · BR_8.2.8.2 · BR_8.2.8.7Một số câu viết tắt / mơ hồDiễn giải rõ nghĩaViết lại cho dễ hiểu, không đổi nghiệp vụ
2026-10-22v1.10Toàn UC — Basic Flow, Business RulesVăn phong ký hiệu, rút gọn, khó đọcViết lại bằng câu đầy đủ, kèm VDTheo mẫu BA duyệt 2026-10-22, không đổi nghiệp vụ
2026-10-22v1.10Basic Flow · Business Rules — cấu trúc lại theo flow gốcBasic Flow tự sắp xếp, tách rời Business RulesMỗi bước trích nguyên văn flow khách + bổ sung, edge case; BR ngắn gộp vào flow (giữ anchor), BR dài được trỏ từ flowTheo mẫu UC_8.2.2, không đổi nghiệp vụ
2026-10-29v1.11Toàn UC — cấu trúc lại theo khuôn UC_1.8.7 (giống UC_8.2.1 v1.12)Mỗi bước trích nguyên văn flow gốc của khách (Trigger, Check, Process Waitlist Queue, Engagement Check, Wait, IF No Click, Assign, Decrement); đoạn "3 điểm khác nguồn"; edge case nằm dưới từng bước; BR_8.2.8.5, BR_8.2.8.6, BR_8.2.8.7 nằm trong flow; bước đánh số lại từ 1 ở mỗi phần; mã QnA trong thân docBỏ dòng trích nguyên văn và đoạn "điểm khác nguồn" (4 sự kiện kích hoạt ở BR_8.2.8.1, giữ chỗ ngay ở bước 6, vị trí bước gọi API ghi ở câu dẫn §5.2). Mục đánh số 1 đến 9; §5 chia 5.1 đến 5.7 theo bước của Flow 11; bước đánh số liên tục 1 đến 23. Edge case gom vào bảng §6 (E_8.2.8.1 đến E_8.2.8.15). BR gom vào bảng §7; BR_8.2.8.5, BR_8.2.8.7 nằm trong bảng; BR_8.2.8.1 đến BR_8.2.8.4 và BR_8.2.8.6 ở §7.1 đến §7.5. Mọi BR đều được refer từ bước hoặc exception liên quan. Mã QnA chỉ giữ ở Document References, Open Items và Changelog. Giữ nguyên anchor BR_8.2.8.1 đến BR_8.2.8.7, UC_8.2.8-1 đến UC_8.2.8-5, UC_8.2.8-BR, UC_8.2.8-OI, UC_8.2.8-RACI; 11 Open Items giữ nguyênBA yêu cầu viết dễ hiểu như UC_1.8.7, không đổi nghiệp vụ
2026-10-29v1.11§1 Overview — DescriptionMô tả chi tiết các bước, tên API, field và nhánh xử lýChỉ ghi tổng quan: UC dùng để làm gì và nội dung chính, bằng câu thường; chi tiết xem §5BA yêu cầu Description chỉ ghi tổng quan, không đổi nghiệp vụ
2026-10-29v1.11Các chỗ ghi status tài khoản Terminated / FailedGhi status không kèm nguyên nhân, hoặc ghi "resign hoặc bị terminate", "Resigned hoặc Terminated"Ghi kèm nguyên nhân: Terminated là trader LIVE bị Hard Breach hoặc Resign; Failed là trader SIM bị Hard Breach hoặc Resign. Không có status Resigned riêngBA yêu cầu 2026-10-29, để biết status xuất hiện khi nào
2026-11-09v1.12E_8.2.8.11 · BR_8.2.8.2 · BR_8.2.8.4Status pod của trader bị từ chối lúc bấm link: chưa chốt (Open Items #6)Status pod thành null (không thuộc pod nào), trader rời waitlist. BR_8.2.8.4 thêm dòng null: chưa từng tham gia, hoặc đã rời pod / waitlist vì Failed / Terminated, lên Level 7, bị từ chối lúc bấm linkBA chốt 2026-11-09 (N-07)
2026-11-09v1.12E_8.2.8.10 · BR_8.2.8.1 sự kiện 1 · BR_8.2.8.2 · BR_8.2.8.4Trader đang Pending_Pod_Confirmation bị Inactive_Hold: chưa chốt (Open Items #6)Xử lý như không bấm link ngay lúc Flow 12 chạy: status pod thành Waitlist_Ghost (không đặt Inactive_Hold), Current_Count giảm 1 lần duy nhất, kích hoạt lại Zap Flow 11; bấm link sau đó theo E_8.2.8.8BA chốt 2026-11-09 (N-07)
2026-11-09v1.12E_8.2.8.12 · BR_8.2.8.2Bấm link nhưng leader không còn Active và không ghép được: trader về Waitlist đầu hàng (Open Items #4)Trader về Waitlist cuối hàng, Join_Date là thời điểm trader về waitlistBA chốt 2026-11-09 (N-05). Khác câu trả lời POD-WAIT-19 của khách (đầu hàng)
2026-11-09v1.12BR_8.2.8.2Trader Inactive_Hold kích hoạt lại khi pod cũ đầy → giữ Join_Date gốc (không phân biệt trader đang ở pod hay đang chờ); Join_Date của trader đang ở pod chưa chốt (Open Items #5)Tách 2 trường hợp: trader đang chờ → về Waitlist, giữ Join_Date gốc; trader đang ở pod → chạy lại bước ghép pod của Flow 10, không ưu tiên pod cũ, không có leader còn suất thì vào cuối hàng với Join_Date là thời điểm vào waitlist. Join_Date (ngày vào waitlist) khác pod_join_date (ngày vào pod)BA chốt 2026-11-09 (N-06). Khớp UC_4.17.1 bước 55
2026-11-09v1.12§8 Open Items11 hạng mụcĐóng #4 (N-05), #5 (N-06), #6 (N-07); còn 8 hạng mục, đánh số lại (#7→#4 … #11→#8) và cập nhật các chỗ trỏ tới—

On this page