Trường Số PRD/07 Phụ huynh
Trường Số · Yêu cầu sản phẩm · 09/2026

PRD 07 · Liên lạc với phụ huynh

Sổ liên lạc: tin nhắn giao dịch cho điểm danh, học phí và thay đổi lịch học, thông báo chung đến lớp và chi nhánh, báo cáo học tập dựng từ dữ liệu học tập FLYER, cấu hình Zalo OA và ZNS, và một cổng phụ huynh ưu tiên di động với đăng nhập bằng OTP.

Xuất xứ / Prompt / Giới hạn
Status
Draft v1
Owner module
Sổ liên lạc
Backend
EXISTING notify channels, parent reports, parent tuitions · NEW messaging, templates, portal, consent
Phase
P1 tin nhắn giao dịch + Zalo · P2 cổng phụ huynh, thông báo chung, báo cáo học tập
Depends on
02 Học viên, 04 Điểm danh, 05 Tài chính

Tài liệu do trợ lý AI soạn trong một phiên làm việc ngày 10/09/2026, theo yêu cầu gốc được trích nguyên văn ở trang mục lục; mục Thiết kế đề xuất được bổ sung ngày 16/09/2026. Đây là bản đề xuất để đội thảo luận, chưa phải quyết định của đội sản phẩm.

Nguồn

  • Nghiên cứu công khai về đối thủ cạnh tranh (PSE ONE, pse4.one), mã nguồn center-crm-frontend và đặc tả OpenAPI /v3 trên staging (182 endpoint), tính đến ngày 10/09/2026.
  • Nhãn existing / extend / new trong trang được xác định bằng cách đối chiếu với đặc tả /v3 trên staging tại thời điểm trên.

Giới hạn

  • Cần xác minh khi khảo sát trực tiếp trong ứng dụng, vì đăng nhập tự động vào sản phẩm tham chiếu chưa được cấp phép trong phiên soạn:
    • Các trường cấu hình Zalo của đối thủ (app id, secret, OA token) và những sự kiện nào gửi ZNS.
    • Danh sách các loại mẫu ZNS và tham số của họ (tài liệu hướng dẫn của họ tham chiếu đến một bảng tính).
    • Ứng dụng phụ huynh của họ hiển thị gì (sổ liên lạc điện tử): điểm số, điểm danh, học phí, chat.
    • Liệu giáo viên có thể nhắn tin trực tiếp cho phụ huynh không.
    • Cách nhập điểm thi ("nhập điểm thi") đến được với phụ huynh (ứng dụng, email) và liệu có hỗ trợ tệp đính kèm không.

Thiết kế đề xuất

Bố cục gồm một trang Sổ liên lạc cho nhân sự (năm tab, ô KPI và nhật ký tin nhắn theo kênh, trạng thái, chi phí) và một cổng phụ huynh ưu tiên di động; điều quan trọng nhất là mỗi tin nhắn đều hiển thị rõ kênh gửi, kết quả gửi và chi phí ZNS.

1 · Sổ liên lạc · Tin đã gửi

/communication · desktop

Sổ liên lạc, tab Tin đã gửi
Bốn ô KPI (đã gửi hôm nay, thất bại hôm nay, phụ huynh không thể liên hệ, chi phí ZNS tháng này so với hạn mức), bộ lọc ngày, loại, kênh, trạng thái, lớp, chi nhánh và bảng nhật ký với đủ các cột Thời gian, Loại, Học viên · Phụ huynh, Kênh, Trạng thái, Nội dung, Chi phí, Thao tác. Các trạng thái Đã nhận, Đã gửi, Thất bại (kèm Gửi lại), Bỏ qua kèm lý do và Chờ do giờ yên lặng minh hoạ COM-02 và chính sách kênh ở mục 3; một phiếu thu gửi trên hai kênh tạo hai dòng riêng.

2 · Soạn thông báo chung

/communication/announcements/new · desktop

Drawer soạn thông báo chung
Drawer mở trên tab Thông báo: tiêu đề có đếm ký tự, nội dung với chip placeholder, tệp đính kèm, đối tượng (chi nhánh, nhiều lớp, cờ phụ huynh), kênh kèm số người tiếp cận theo từng kênh và chi phí nếu chọn ZNS, lên lịch gửi và công tắc Cho phép phản hồi cho Zalo OA. Khung bên phải xem trước tin đúng như phụ huynh thấy; cảnh báo vàng liệt kê hai phụ huynh không thể liên hệ nhưng vẫn được ghi vào hộp thư cổng phụ huynh (COM-03, quy tắc 5).

3 · Báo cáo học tập · đợt Starters 4A

/communication/reports · desktop

Báo cáo học tập theo đợt
Bảng học viên theo đợt với tỷ lệ điểm danh, bài tập đã hoàn thành, độ chính xác, thời lượng học, số dư gói buổi, nhận xét của giáo viên sửa trực tiếp và trạng thái; cột bên phải xem trước trang báo cáo với các phần Chuyên cần, Học tập trên FLYER, Nhận xét của giáo viên, Học phí và số dư, Lịch tháng tới. Cảnh báo cho biết 5 báo cáo thiếu nhận xét không thể xuất bản trừ khi giáo vụ ghi đè (quy tắc 7); nút chính chỉ xuất bản các báo cáo đủ điều kiện, báo cáo đã xuất bản hiển thị số phiên bản (COM-05).

4 · Mẫu tin và kết nối Zalo OA

/settings/templates · desktop

Danh mục mẫu tin ZNS
Thẻ kết nối OA với trạng thái, chi phí ZNS trong tháng so với hạn mức (quy tắc 4) và bảng mẫu với loại tin nhắn, kênh, id mẫu Zalo, trạng thái duyệt, tham số, đơn giá, lần sửa gần nhất. Mẫu Nhắc học phí bị Zalo từ chối đang được sửa ở cột phải: nội dung với chip placeholder, gửi thử đến một số điện thoại, gửi duyệt lại; callout đỏ nêu kênh dự phòng đang được dùng (COM-01, quy tắc 3).

5–8 · Cổng phụ huynh (di động)

/parent/login · /parent · /parent/attendance · /parent/tuition · mobile

Đăng nhập OTP
Trang chủ phụ huynh
Lịch học và điểm danh
Hoá đơn và mã QR
Cổng phụ huynh chạy trong trình duyệt Zalo, cỡ chữ 16 px, thanh tab ở dưới, không có sidebar. Đăng nhập bằng OTP với đếm ngược gửi lại 60 giây và thông báo lỗi khi số điện thoại chưa đăng ký (COM-06); trang chủ có bộ chuyển con giữa hai chi nhánh, thẻ buổi học tiếp theo, hoá đơn chưa thanh toán và báo cáo gần nhất; lịch tháng điểm danh với chip trạng thái, buổi vắng không phép có nút đăng ký học bù và buổi đổi phòng được tô sáng (COM-08); hoá đơn hiển thị dòng mục, số còn phải thanh toán, hạn và mã QR ngân hàng kèm nội dung chuyển khoản, số dư gói buổi và phiếu thu (COM-07).

1Mục đích

Phụ huynh đánh giá một trung tâm qua tốc độ và sự rõ ràng trong liên lạc. Sổ liên lạc biến các sự kiện vận hành thành tin nhắn gửi đến phụ huynh ở nơi họ đã quen dùng (Zalo), cho nhân sự một nơi duy nhất để gửi thông báo chung và báo cáo học tập, và cung cấp một cổng phụ huynh cho thời khoá biểu, điểm danh, hoá đơn kèm thanh toán QR và báo cáo học tập. Backend hiện đã gửi nhắc học phí và nhắc bài học qua ứng dụng, email và Zalo kèm kết quả theo từng kênh, và đã cung cấp các endpoint học phí và báo cáo học tập dành cho phụ huynh. PRD này bổ sung lớp gửi tin nhắn, mẫu tin, định tuyến theo sự đồng ý, thông báo chung, báo cáo học tập và cổng phụ huynh.

Trong phạm vi

Ngoài phạm vi

2Hiện trạng

Chức năngEndpoint / schemaGhi chú
Nhắc học phí qua các kênh app, email, zalo kèm kết quả theo từng kênh và lý do bỏ quaPOST .../tuitions/{id}/notify, /tuitions/notify, TuitionNotifyOutcome, ChannelOutcome, SkipReasonTái sử dụng lớp trừu tượng hoá kênh gửi
Nhắc bài học của lớpPOST /v3/teacher/class-schedules/{id}/remind, RemindLessonResultNhắc bài tập FLYER
Cấu hình thông báo theo từng tính năngNotificationConfig {feature, notify_email, notify_app, notify_zalo} trong cấu hình trườngMở rộng thêm các tính năng mới
Giao diện học phí cho phụ huynhGET /v3/parent/tuitions, /{id}, /overviewHoá đơn trên cổng phụ huynh
Báo cáo người học và báo cáo tuầnGET /v3/parent/learner/{id}/report, /weekly-report (bài tập, tự học, thời lượng học, kỹ năng, hoạt động)Tab Học tập trên cổng phụ huynh và nguồn dữ liệu cho báo cáo học tập
Thông báo kỳ thiPOST /v3/teacher/exams/{exam_id}/notifygiữ nguyên
Tài khoản phụ huynh dùng ứng dụng FLYER (thông báo đẩy)StudentParent, ứng dụng phụ huynhkênh trong ứng dụng

3Chính sách kênh

KênhYêu cầuChi phíDùng choThứ tự dự phòng
Zalo ZNSSố điện thoại phụ huynh có dùng Zalo; Zalo OA của tenant đã xác thực; mẫu tin đã được duyệt; loại đồng ý là zaloTheo tin nhắn (khoảng 200–800 VND tuỳ loại mẫu); hiển thị trong cài đặtGiao dịch: điểm danh vắng/muộn, hoá đơn, phiếu thu, nhắc hẹn, thay đổi lịch học, thông tin đăng nhập1
Tin nhắn Zalo OAPhụ huynh đã theo dõi OA và tương tác trong vòng 48 giờMiễn phíThông báo chung, trả lời, liên kết báo cáo học tập2 cho tin không mang tính giao dịch
Thông báo trong ứng dụngPhụ huynh có ứng dụng phụ huynh FLYER đã liên kết với học viênMiễn phíTất cả2 cho tin giao dịch
EmailEmail phụ huynhMiễn phíPhiếu thu, báo cáo, thông báo chung3
Hộp thư cổng phụ huynhTài khoản cổng phụ huynhMiễn phíTất cả; luôn được ghi lạiluôn luôn

Mọi tin nhắn đều được ghi vào hộp thư cổng phụ huynh, sau đó được gửi qua kênh khả dụng đầu tiên theo chính sách của tenant cho từng loại tin; một loại tin có thể được cấu hình để gửi trên toàn bộ các kênh khả dụng (ví dụ phiếu thu). Khung giờ yên tĩnh 21:30–07:00 giữ lại các tin không khẩn cấp. Đánh dấu không gọi trên một lead (PRD 01) không áp dụng cho phụ huynh của một học viên đã nhập học; sự đồng ý nhận thông báo thì có áp dụng.

4User story và tiêu chí chấp nhận

COM-01Cấu hình Zalo OA và các mẫu ZNS
Chủ trung tâm kết nối Zalo OA của trung tâm.
  • Given Cài đặt → Tích hợp → Zalo
  • When Hoàn tất luồng OAuth (hoặc dán app id, secret, OA id, access và refresh token theo đúng luồng Zalo hiện tại yêu cầu) và bài kiểm tra kết nối thành công
  • Then OA hiển thị đã kết nối kèm tên và ảnh đại diện; danh mục mẫu ZNS liệt kê các mẫu mặc định của FLYER (điểm danh vắng, điểm danh muộn, hoá đơn, phiếu thu, nhắc hẹn, thay đổi lịch học, thông tin đăng nhập, chào mừng) kèm id mẫu Zalo cần đăng ký cho từng OA; mỗi dòng mẫu hiển thị trạng thái (Chờ duyệt / Đã duyệt / Từ chối) và các tham số.
COM-02Tin nhắn giao dịch theo sự kiện
Hệ thống gửi tin nhắn theo sự kiện một cách đáng tin cậy.
  • Given Một sự kiện (điểm danh được lưu với trạng thái vắng, thanh toán được ghi nhận, buổi học bị huỷ...)
  • When Sự kiện được phát ra
  • Then Một tin nhắn cho mỗi phụ huynh mang cờ liên quan (liên hệ chính cho điểm danh và lịch học; người thanh toán cho các nội dung liên quan đến tiền) được tạo, dựng nội dung từ mẫu kèm tham số, gửi theo chính sách kênh, và trạng thái của tin (queued, sent, delivered, failed, skipped kèm lý do) hiển thị trên bản ghi nguồn và trong Tin đã gửi; thử lại 3 lần trong vòng 15 phút khi gặp lỗi tạm thời.
COM-03Gửi một thông báo chung
Giáo vụ thông báo cho một lớp.
  • Given Có quyền communication.announce
  • When Soạn tiêu đề, nội dung (văn bản thuần kèm placeholder {ten_hoc_vien}, {lop}), tệp đính kèm (hình ảnh, PDF), đối tượng (chi nhánh, lớp, học viên, phụ huynh theo cờ), kênh, gửi ngay hoặc lên lịch
  • Then Người nhận được xem trước kèm số lượng theo từng kênh và danh sách phụ huynh không thể liên hệ; thông báo được gửi đi, và số lượt đã đọc/đã nhận được cập nhật; thông báo chung xuất hiện trên cổng phụ huynh và trên trang lớp.
COM-04Giáo viên viết một ghi chú buổi học gửi phụ huynh
Giáo viên chia sẻ nội dung đã học hôm nay.
  • Given Phiếu điểm danh sau khi lưu
  • When Viết một tóm tắt ngắn về buổi học và chọn "Gửi phụ huynh"
  • Then Tóm tắt được gửi dưới dạng tin nhắn Zalo OA hoặc thông báo đẩy đến phụ huynh của cả học viên có mặt và vắng mặt kèm dòng trạng thái của từng học viên; giáo viên không thể gửi ZNS văn bản tự do (mẫu tin có phí chỉ dành cho quản trị viên).
COM-05Báo cáo học tập
Giáo vụ phát hành báo cáo hằng tháng.
  • Given Một lớp và một kỳ báo cáo
  • When Tạo báo cáo
  • Then Một bản nháp cho mỗi học viên được dựng từ điểm danh (tỷ lệ, số buổi vắng), dữ liệu FLYER (số bài tập đã hoàn thành, độ chính xác theo từng kỹ năng, thời lượng học, điểm thi gần nhất), số dư gói buổi và một trường nhận xét của giáo viên; giáo viên điền nhận xét trong một màn hình danh sách; giáo vụ xuất bản; phụ huynh nhận một liên kết (trên cổng phụ huynh) và bản PDF; báo cáo đã xuất bản không thể chỉnh sửa, các chỉnh sửa sẽ tạo một phiên bản mới.
COM-06Phụ huynh đăng nhập và xem các con
Phụ huynh sử dụng cổng phụ huynh mà không cần mật khẩu.
  • Given Số điện thoại có trên bản ghi phụ huynh của một học viên
  • When Mở liên kết cổng phụ huynh từ một tin nhắn Zalo và nhập mã OTP
  • Then Thấy toàn bộ các con được liên kết với số điện thoại đăng nhập trên tất cả chi nhánh của tenant, với các tab Lịch học, Điểm danh, Học phí, Kết quả, Thông báo, Hồ sơ; phiên đăng nhập được giữ 30 ngày trên thiết bị.
COM-07Thanh toán từ cổng phụ huynh
Phụ huynh thanh toán một hoá đơn bằng mã QR.
  • Given Một hoá đơn chưa thanh toán
  • When Mở hoá đơn đó
  • Then Thấy các dòng mục, tổng tiền, hạn thanh toán và một mã QR ngân hàng (mã QR thanh toán đã có sẵn) kèm mã thanh toán; sau khi giao dịch chuyển khoản được đối soát, trạng thái được cập nhật và bản PDF phiếu thu xuất hiện.
COM-08Gửi yêu cầu xin phép nghỉ hoặc học bù
Phụ huynh báo cho trung tâm biết con sẽ vắng mặt.
  • Given Các buổi học sắp tới
  • When Gửi "Xin phép nghỉ" kèm buổi học và lý do, hoặc "Đăng ký học bù" cho một lượt nghỉ có phép
  • Then Một yêu cầu được tạo cho bộ phận lễ tân (việc hôm nay và Điểm danh → Yêu cầu), lượt xin phép nghỉ được áp dụng khi được chấp nhận (PRD 04), và phụ huynh nhận được xác nhận.
COM-09Quản lý sự đồng ý nhận thông báo và dữ liệu
Phụ huynh kiểm soát dữ liệu cá nhân được lưu trữ.
  • Given Mục Hồ sơ trên cổng phụ huynh
  • When Bật/tắt các mục đồng ý nhận thông báo (Zalo, email, marketing, hình ảnh) hoặc gửi yêu cầu chỉnh sửa thông tin
  • Then Bản ghi đồng ý nhận thông báo được cập nhật kèm thời gian và kênh (PRD 12), yêu cầu chỉnh sửa thông tin trở thành một công việc cho giáo vụ, và một kênh đã bị thu hồi sẽ không được dùng kể từ tin nhắn tiếp theo.

5Màn hình

Sổ liên lạc (nhân sự) /communication

Các tab: Thông báo (thông báo chung) · Tin đã gửi (nhật ký tin nhắn) · Báo cáo học tập (báo cáo học tập) · Yêu cầu từ PH (yêu cầu từ phụ huynh) · Mẫu tin (mẫu tin). Các ô KPI: đã gửi hôm nay, thất bại hôm nay, phụ huynh không thể liên hệ, chi phí ZNS tháng này.

Các cột trong Tin đã gửi

CộtGhi chú
Thời giancreated_at
Loạichip loại tin nhắn
Học viên · Phụ huynhliên kết
KênhZalo ZNS / OA / Ứng dụng / Email / Cổng phụ huynh
Trạng tháiĐã gửi (ok) · Đã nhận (ok) · Thất bại (abs) · Bỏ qua: lý do (grey) · Chờ (late)
Nội dungbản xem trước nội dung đã dựng
Thao tácGửi lại · Xem

Bộ lọc: ngày, loại, kênh, trạng thái, lớp, chi nhánh. Trạng thái trống: "Chưa có tin nào được gửi."

Trình soạn thông báo chung (drawer) /communication/announcements/new

Các trường: Tiêu đề (bắt buộc, 120 ký tự), Nội dung (bắt buộc, 2.000 ký tự, có placeholder), Tệp đính kèm (tối đa 5 tệp, 10 MB), Đối tượng (chi nhánh, nhiều lớp, nhiều học viên, cờ phụ huynh: tất cả / liên hệ chính / người thanh toán), Kênh (hộp kiểm kèm xem trước phạm vi tiếp cận), Thời điểm (gửi ngay / lên lịch theo ngày giờ), công tắc "Cho phép phản hồi" (chỉ áp dụng cho OA). Khung xem trước hiển thị tin nhắn đúng như phụ huynh sẽ thấy. Kiểm tra hợp lệ: phải có ít nhất một người nhận có thể liên hệ được, nếu không sẽ hiển thị cảnh báo kèm danh sách.

Báo cáo học tập /communication/reports

Danh sách các đợt báo cáo (lớp, kỳ báo cáo, số học viên, đã tạo nháp, đã có nhận xét, đã xuất bản). Xem theo đợt: bảng học viên kèm tỷ lệ điểm danh, số bài tập đã hoàn thành, độ chính xác trung bình, thời lượng học, số dư gói buổi, nhận xét của giáo viên (chỉnh sửa trực tiếp), trạng thái; các nút Gửi GV nhận xét, Xuất bản, Xuất PDF. Mẫu trang báo cáo: phần đầu trang gồm logo trung tâm, học viên, lớp, kỳ báo cáo; các phần Chuyên cần, Học tập trên FLYER, Nhận xét của giáo viên, Học phí và số dư, Lịch tháng tới.

Mẫu tin /settings/templates

Bảng: loại tin nhắn, kênh, id mẫu Zalo, trạng thái, tham số, lần sửa gần nhất. Trình soạn: tiêu đề (email), nội dung kèm các chip placeholder ({ten_hoc_vien}, {lop}, {ngay}, {gio}, {so_tien}, {ma_thanh_toan}, {link}), gửi thử đến một số điện thoại cụ thể.

Cổng phụ huynh (ưu tiên di động) /parent/*
  • /parent/login: số điện thoại, OTP; các trạng thái lỗi (không tìm thấy số điện thoại: "Số điện thoại chưa được đăng ký với trung tâm. Vui lòng liên hệ ..."), thời gian chờ gửi lại 60 giây.
  • /parent: bộ chuyển đổi giữa các con (chip ảnh đại diện), thẻ buổi học tiếp theo, thẻ hoá đơn chưa thanh toán, thẻ báo cáo gần nhất, danh sách thông báo chung.
  • /parent/schedule: danh sách các buổi học trong tuần kèm phòng học và giáo viên; các thay đổi được tô sáng.
  • /parent/attendance: lịch theo tháng kèm chip; chạm để xem ghi chú; các nút Xin phép nghỉ, Đăng ký học bù.
  • /parent/tuition: hoá đơn (giao diện học phí cho phụ huynh đã có sẵn), số dư gói buổi, mã QR, phiếu thu.
  • /parent/results: báo cáo FLYER (đã có sẵn), danh sách báo cáo học tập.
  • /parent/inbox: toàn bộ tin nhắn; huy hiệu số tin chưa đọc.
  • /parent/profile: thông tin các con, phụ huynh, các mục đồng ý nhận thông báo, yêu cầu chỉnh sửa thông tin, gửi lại thông tin đăng nhập FLYER.

Thiết kế: token của Cloud theme, cỡ chữ gốc 16 px trên di động, thanh tab ở dưới, không có sidebar; hoạt động được bên trong trình duyệt tích hợp của Zalo.

6Quy tắc nghiệp vụ

  1. Tin nhắn giao dịch được gửi đến phụ huynh theo cờ: điểm danh và lịch học gửi liên hệ chính; nội dung liên quan đến tiền gửi người thanh toán; thông tin đăng nhập gửi liên hệ chính; thông báo chung gửi theo đối tượng đã chọn.
  2. Một kênh chỉ được dùng khi có sự đồng ý tương ứng; hộp thư cổng phụ huynh không cần sự đồng ý riêng (đã được bao gồm trong sự đồng ý dịch vụ).
  3. Mẫu ZNS gắn với từng loại tin nhắn và phải được Zalo duyệt trước khi dùng; trước khi được duyệt, kênh dự phòng sẽ được dùng và trang cài đặt hiển thị phần còn thiếu.
  4. Chi phí ZNS được theo dõi theo từng tenant và hiển thị theo tháng; một hạn mức hằng tháng tuỳ chọn sẽ tạm dừng ZNS và chuyển sang kênh dự phòng.
  5. Thông báo chung gửi đến hơn 500 người nhận cần quyền communication.announce_bulk.
  6. Giáo viên có thể gửi tin nhắn Zalo OA hoặc thông báo đẩy đến các lớp do giáo viên đó phụ trách; chỉ nhân sự có quyền communication.announce mới được dùng mẫu ZNS ngoài phạm vi điểm danh.
  7. Báo cáo học tập được xuất bản theo từng học viên; một báo cáo không thể xuất bản khi chưa có nhận xét của giáo viên, trừ khi giáo vụ ghi đè.
  8. Phiên đăng nhập trên cổng phụ huynh theo từng thiết bị, kéo dài 30 ngày, có thể bị nhân sự thu hồi từ hồ sơ của phụ huynh.
  9. Toàn bộ tin nhắn gửi đi được ghi lại kèm nội dung đã dựng trong 12 tháng.

7Mô hình dữ liệu

Thực thểTrườngGhi chú
message_templateid; tenant_id; type enum(attendance_absent, attendance_late, attendance_present, invoice_created, receipt, fee_reminder, low_balance, schedule_change, session_cancelled, trial_confirm, welcome, credentials, report_published, announcement, custom); channel enum(zns, oa, push, email); zalo_template_id; body; subject; params jsonb; status enum(draft, pending, approved, rejected); updated_atmới
messageid uuid; tenant_id; school_id; type; guardian_id; student_id null; source_type, source_id (attendance_record, tuition, payment, session, announcement, report); channel; rendered_body; status enum(queued, sent, delivered, read, failed, skipped); skip_reason; provider_msg_id; cost_vnd; attempts; created_at; sent_at; delivered_at; read_atmới; index (guardian_id, created_at), (source_type, source_id)
announcementid; tenant_id; school_id null; title; body; attachments file_id[]; audience jsonb {school_ids, class_ids, student_ids, guardian_flag}; channels[]; allow_reply; scheduled_at; sent_at; created_by; stats jsonb {recipients, sent, delivered, read, failed}mới
progress_report_batch, progress_reportbatch: class_id, period_start, period_end, status, created_by; report: batch_id, student_id, data jsonb (attendance, flyer, balance), teacher_comment, status enum(draft, commented, published), version, pdf_file_id, published_atmới
parent_requestid; guardian_id; student_id; type enum(excuse, makeup, correction, other); payload jsonb; status enum(open, accepted, rejected); handled_by; note; created_atmới
zalo_oa_connectiontenant_id; oa_id; oa_name; app_id; tokens (encrypted); connected_at; status; last_errormới
portal_sessionid; guardian_id; device; created_at; expires_at; revoked_atmới
notification_policy (cấu hình trường)theo từng loại: channels[], quiet_hours_apply bool; zns_monthly_capmở rộng NotificationConfig

8Hợp đồng API

MethodPathRequest / responseStatus
GET/PUT/v3/teacher/school-configkhối chính sách thông báo mở rộng theo từng loạiextend
POST/v3/teacher/school-finance/tuitions/{id}/notify, /notifytái sử dụng; định tuyến qua lớp gửi tin nhắnexisting
GET/POST/PATCH/v3/school/message-templates[/{id}]; POST /{id}/test{to_phone}new
GET/v3/school/messagesfrom, to, type, channel, status, student_id, class_id → Message[]new
POST/v3/school/messages/{id}/resendnew
POST/v3/school/messages/send{type: custom, guardian_ids | student_ids, body, channels} gửi tự do (ghi chú buổi học của giáo viên)new
GET/POST/v3/school/announcements; POST /{id}/preview; POST /{id}/send; POST /{id}/cancelxác định đối tượng nhận trả về số lượng và danh sách không thể liên hệnew
POST/v3/school/progress-reports/batches{class_id, period_start, period_end} → batch kèm các bản nhápnew
GET/PATCH/v3/school/progress-reports/{id}{teacher_comment}new
POST/v3/school/progress-reports/batches/{id}/publish{student_ids?} → messagesnew
GET/v3/school/progress-reports/{id}.pdfnew
GET/POST/PATCH/v3/school/parent-requests[/{id}]chấp nhận/từ chối kèm ghi chúnew
GET/POST/DELETE/v3/school/integrations/zalokết nối, trạng thái, ngắt kết nối; GET /zalo/templates đồng bộ trạng thái mẫunew
POST/v3/parent/auth/otp, /v3/parent/auth/verify{phone} / {phone, code} → session tokennew
GET/v3/parent/mephụ huynh + children[] trên toàn bộ chi nhánhnew
GET/v3/parent/learner/{id}/schedule, /attendance, /reports, /announcementsnew
GET/v3/parent/tuitions, /{id}, /overview; /v3/parent/learner/{id}/report, /weekly-reportkhông đổi; bổ sung phiếu thu và gói buổiexisting / extend
GET/POST/v3/parent/inbox; POST /{id}/readnew
POST/v3/parent/requests{student_id, type, payload}new
GET/PUT/v3/parent/consentsnew
POST/v3/webhooks/zalosự kiện gửi và đọc, tin nhắn người dùng OA (lưu lại cho hộp thư P3)new

9Phân quyền

Mã quyềnownerbranch_manageracademic_adminaccountantadmissionsteacherparent
communication.view_logTất cảChi nhánhChi nhánhLoại tài chínhLead cá nhânLớp cá nhânHộp thư cá nhân
communication.announceCóCóCóKhôngKhôngLớp cá nhân (Zalo OA/thông báo đẩy)Không
communication.announce_bulkCóCóKhôngKhôngKhôngKhôngKhông
communication.templatesCóKhôngKhôngKhôngKhôngKhôngKhông
communication.reports (báo cáo học tập)CóCóCóKhôngKhôngNhận xét (lớp cá nhân)Xem (cá nhân)
communication.requestsCóCóCóKhôngKhôngKhôngTạo mới
integrations.zaloCóKhôngKhôngKhôngKhôngKhôngKhông

10Sự kiện phân tích

Sự kiệnThuộc tính
message_sent / message_failed / message_skippedtype, channel, reason, cost
announcement_sentaudience_size, channels, scheduled
progress_report_publishedclass_level, students, with_comment_rate
parent_loginvia (zalo_link|direct), children_count
parent_invoice_viewed / parent_qr_shown
parent_request_createdtype
consent_changedtype, granted
zalo_connected / zalo_template_approved

11Trường hợp biên

12Câu hỏi còn mở

Trường Số (truongso.net) · Nội bộ FLYER