FRD nghiệp vụ — Lịch gọi khách hàng trong chiến dịch Callbot
1. Mục tiêu và phạm vi
| Thông tin | Nội dung |
|---|---|
| Sản phẩm | UCALL — Chiến dịch Callbot |
| Đối tượng sử dụng tài liệu | BA, Product Owner, UI/UX và QA |
| Phiên bản nội dung | 1.0 — bản viết lại theo hướng nghiệp vụ |
| Ngày cập nhật | 01/10/2026 |
| Trạng thái | Đã chốt các phương án nghiệp vụ tại mục 7.1; còn các thông số giới hạn tại mục 7.2 |
Mục tiêu
Cho phép đặt lịch gọi riêng cho khách hàng khi nhập vào chiến dịch; cấu hình cách xử lý khi gọi thất bại hoặc không thực hiện kịp lịch.
Phạm vi
- Bước 2 — Nhập khách hàng: nhập từ file, chiến dịch khác và danh sách liên hệ.
- Bước 3 — Cấu hình gọi: gọi ngay/đặt lịch, gọi lại khi thất bại, xử lý khi hết giờ hoặc hết ngày.
- Theo dõi kết quả: lịch dự kiến tiếp theo, số lần đã gọi và lý do dừng của khách hàng.
Tài liệu mô tả thao tác và hành vi nghiệp vụ. Phạm vi này sử dụng số lần gọi lại trên toàn quá trình; chưa có lịch lặp vô hạn hoặc số lần gọi lại riêng theo từng ngày.
2. Mô tả tính năng tổng quan
| Bước | Người dùng thực hiện | Hệ thống xử lý |
|---|---|---|
| Bước 2 | Chọn nguồn khách hàng và cách đặt lịch | Nhập khách cùng lịch đã chọn; thông báo dữ liệu lỗi |
| Bước 3 | Cấu hình lịch chiến dịch, điều kiện gọi lại và phạm vi tiếp tục gọi | Xác định khi nào khách được gọi, được thử thêm, được chuyển lịch hoặc phải dừng |
| Chạy chiến dịch | Bắt đầu hoặc tiếp tục chiến dịch | Chỉ gọi khách đã đến lịch và còn đủ điều kiện |
| Theo dõi | Xem danh sách và kết quả | Hiển thị khách đang chờ, đã gọi, đã thành công hoặc đã dừng và lý do |
Hai tình huống cần phân biệt:
- Gọi thất bại: cuộc gọi đã được thực hiện nhưng có kết quả như máy bận, không nghe máy hoặc vào hộp thư thoại.
- Không thực hiện kịp lịch: chưa gọi được do thiếu kênh, chạm hạn mức, hết ngân sách hoặc chiến dịch tạm dừng.
“Cho gọi lại” áp dụng cho tình huống đã gọi thất bại. “Cho chuyển lịch” áp dụng cho việc dời một lượt còn được phép thực hiện. Chuyển lịch không cấp thêm số lần gọi.
3. Bước 2 — Nhập khách hàng
3.1. Lựa chọn lịch theo nguồn nhập
Trong mỗi nguồn nhập, bổ sung phần Lịch gọi khách hàng. Mặc định sử dụng lịch chiến dịch.
| Nguồn | Lựa chọn đặt lịch |
|---|---|
| File | Theo lịch chiến dịch / Đặt lịch chung cho đợt nhập / Lấy ngày và giờ từ các cột trong file |
| Chiến dịch khác | Theo lịch chiến dịch đích / Đặt lịch chung mới / Giữ lịch riêng từ chiến dịch nguồn |
| Danh sách liên hệ | Theo lịch chiến dịch / Đặt lịch chung cho đợt nhập / Lấy lịch từ các trường trên liên hệ |
- File mới và file đã lưu đều sử dụng các lựa chọn trên.
- Khi lấy lịch từ dữ liệu nguồn, người dùng chọn cột hoặc trường tương ứng.
- Khi giữ lịch từ chiến dịch khác, lịch đã qua được thông báo là lỗi; không tự đổi sang lịch mới.
- Lịch lấy từ liên hệ được ghi nhận tại thời điểm nhập. Sửa lịch trên liên hệ sau đó không tự thay đổi lịch đã nhập vào chiến dịch.
- Khách nhập từ chiến dịch khác sử dụng số lần gọi riêng trong chiến dịch đích; không cộng số lần đã gọi của chiến dịch nguồn vào giới hạn chiến dịch đích.
3.2. Các trường và cách xử lý
| Trường/lựa chọn | Người dùng nhập hoặc chọn | Hệ thống xử lý |
|---|---|---|
| Ngày gọi | Một ngày cụ thể | Là ngày bắt đầu được phép xử lý khách theo lịch đã đặt |
| Giờ bắt đầu | Ví dụ 09:00 | Không bắt đầu cuộc gọi trước giờ này |
| Giờ kết thúc | Ví dụ 10:00 | Không bắt đầu thêm cuộc gọi tại hoặc sau giờ này |
| Chỉ có ngày | Để trống cả hai giờ | Gọi trong các khung giờ hợp lệ của chiến dịch ở ngày đó |
| Không có ngày và giờ | Chọn theo lịch chiến dịch hoặc để trống lịch riêng | Xử lý theo lịch và cách vận hành hiện có của chiến dịch |
| Có giờ nhưng không ngày | Nhập giờ, để trống ngày | Báo thiếu ngày gọi |
| Có một giờ nhưng thiếu giờ còn lại | Nhập khung chưa đầy đủ | Yêu cầu bổ sung để xác định đầy đủ khung được phép gọi |
Ngày và giờ sử dụng múi giờ Việt Nam. Lịch thể hiện khung được phép gọi, không cam kết gọi đúng một phút cụ thể khi có nhiều khách cùng lịch.
Ví dụ:
| Khách hàng | Ngày gọi | Giờ bắt đầu | Giờ kết thúc |
|---|---|---|---|
| Khách A | 02/10/2026 | 09:00 | 10:00 |
| Khách B | 02/10/2026 | 14:00 | 16:00 |
| Khách C | 02/10/2026 | Để trống | Để trống |
3.3. Kiểm tra dữ liệu và kết quả nhập
- Ngày, giờ phải hợp lệ; giờ kết thúc phải sau giờ bắt đầu. Khung qua đêm không nằm trong phạm vi bản này.
- Dòng có lịch sai, thiếu hoặc đã hết hạn được báo lỗi; không tự trở thành khách được gọi ngay.
- Nếu người dùng chọn lấy lịch từ nguồn mà một dòng không có lịch, báo thiếu lịch. Người dùng có thể chọn lại lịch chung hoặc theo chiến dịch trước khi nhập lại.
- Hiển thị số khách nhập thành công và danh sách dòng lỗi kèm lý do. Các dòng hợp lệ vẫn được nhập.
- Khi cấu hình chiến dịch đầy đủ, thông báo lịch khách không phù hợp với lịch chiến dịch. Nếu bước 3 chưa cấu hình xong, kiểm tra lại trước khi chạy.
3.4. Khi khách đã tồn tại
- Thông báo khách/số điện thoại đã có trong chiến dịch.
- Không tự tạo thêm lượt gọi chỉ vì lịch mới khác lịch cũ.
- Cho phép cập nhật lịch có kiểm soát cho khách còn được xử lý; không xóa lịch sử hoặc đặt lại số lần đã gọi.
- Khách đã thành công hoặc đã dừng không tự được gọi tiếp khi nhập lại. Muốn tiếp tục phải có thao tác đặt lại lịch rõ ràng.
- Một khách có nhiều số điện thoại sử dụng chung một lịch trong bản này.
4. Bước 3 — Cấu hình gọi
4.1. Chiến lược và lịch chiến dịch
| Cấu hình | Ý nghĩa |
|---|---|
| Gọi ngay | Chiến dịch bắt đầu xử lý ngay; khách có lịch riêng vẫn chờ đến lịch |
| Đặt lịch gọi | Chiến dịch chỉ xử lý từ ngày và trong các khung giờ được cấu hình |
| Lịch riêng khách hàng | Là điều kiện bổ sung; cuộc gọi phải phù hợp cả lịch khách và lịch chiến dịch |
Ví dụ: khách hẹn 09:00–10:00 nhưng chiến dịch chỉ chạy 14:00–16:00 thì không có giờ phù hợp. Người dùng cần điều chỉnh một trong hai lịch; hệ thống không tự bỏ lịch khách hoặc lịch chiến dịch.
4.2. Gọi lại khi thất bại
| Cấu hình | Người dùng chọn/nhập | Hệ thống xử lý |
|---|---|---|
| Cho phép gọi lại | Bật hoặc tắt | Tắt: không gọi thêm sau kết quả thất bại |
| Điều kiện gọi lại | Máy bận / Không nghe máy / Hộp thư thoại | Chỉ thử thêm khi kết quả thuộc điều kiện đã chọn |
| Số lần gọi lại | Ví dụ 2 lần | Tối đa 3 cuộc, gồm 1 cuộc đầu và 2 cuộc gọi lại |
| Khoảng cách gọi lại | Ví dụ 15 phút | Lượt tiếp theo không sớm hơn 15 phút sau khi lượt trước kết thúc |
Quy tắc đã chốt:
- Số lần gọi lại tính trên toàn quá trình của khách trong chiến dịch, không reset mỗi ngày.
- Hết số lần gọi lại thì dừng, dù còn ngày được chuyển tiếp.
- Khách đã gọi thành công không tiếp tục gọi tự động.
- Các lỗi hệ thống được xem riêng; không mặc định mọi lỗi đều là lý do gọi lại cho khách.
- Đầu số theo lần gọi lại tiếp tục theo thứ tự lượt đã thực hiện, không quay về lượt đầu khi chuyển ngày.
4.3. Khi không hoàn tất trong lịch đã đặt
Người dùng chọn một phạm vi tiếp tục gọi:
| Lựa chọn | Cách xử lý |
|---|---|
| Chỉ trong khung giờ đã đặt | Không còn thời gian hợp lệ trong khung thì dừng khách đó |
| Cho tiếp tục trong cùng ngày | Tìm khoảng gọi hợp lệ tiếp theo trong ngày; không còn khoảng phù hợp thì dừng |
| Cho tiếp tục sang ngày sau | Tìm khoảng gọi hợp lệ tiếp theo trong phạm vi số ngày được chuyển thêm |
Nếu cho chuyển ngày, bắt buộc nhập số ngày chuyển thêm. Ví dụ ngày gốc là 02/10, chuyển thêm 2 ngày thì ngày cuối là 04/10; chuyển nhiều lần không làm kéo dài hạn này.
- Khách có khung riêng: tiếp tục giữ khung riêng đó. Chuyển sang ngày sau vẫn lấy giao với lịch chiến dịch ngày sau.
- Khách chỉ có ngày: sử dụng các khung giờ chiến dịch phù hợp ở ngày được chuyển đến.
- Không tự mở rộng giờ ngoài khung riêng. Ví dụ khách hẹn 09:00–10:00 không tự chuyển sang 14:00.
- Tắt gọi lại vẫn cho phép chuyển lịch cho khách chưa từng được gọi, nếu đã chọn phạm vi cho chuyển.
- Khách đã gọi thất bại chỉ được chuyển lịch khi vẫn đủ điều kiện gọi lại và còn lượt.
“Cho tiếp tục trong cùng ngày” có ích khi còn khoảng giao hợp lệ trong ngày. Lựa chọn này không tự tạo thêm khung giờ ngoài lịch riêng.
4.4. Giới hạn và thay đổi cấu hình
- Giới hạn đồng thời, số cuộc/ngày, ngân sách và thời gian gọi được phép vẫn áp dụng.
- Số cuộc/ngày bao gồm cuộc đầu và các cuộc gọi lại.
- Thiếu tài nguyên hoặc tạm dừng không tự gia hạn lịch khách.
- Sửa cấu hình áp dụng cho lượt chưa thực hiện. Cuộc đang diễn ra được hoàn tất.
- Thay đổi cấu hình không tự mở lại khách đã thành công hoặc đã dừng.
Hiển thị câu diễn giải cấu hình, ví dụ:
Mỗi khách được gọi tối đa 3 cuộc, cách nhau ít nhất 15 phút. Khách có lịch riêng chỉ được gọi trong khung đã đặt; có thể chuyển thêm tối đa 2 ngày. Số lần gọi không reset khi chuyển ngày.
Các giá trị 2 ngày và 15 phút trong ví dụ là giá trị người dùng nhập, không phải giới hạn sản phẩm mặc định.
5. Quy tắc xử lý chung
5.1. Điều kiện được gọi
Khách chỉ được bắt đầu cuộc gọi khi:
- Chiến dịch đang được phép chạy.
- Đã đến lịch của khách và đang trong thời gian phù hợp với lịch chiến dịch.
- Nếu là gọi lại: đúng điều kiện đã chọn, đủ khoảng cách và còn lượt.
- Còn kênh gọi, ngân sách và hạn mức.
- Khách chưa thành công, chưa kết thúc xử lý và không thuộc danh sách bị chặn gọi.
Khách được gọi từ mốc bắt đầu nhưng không được bắt đầu tại mốc kết thúc. Cuộc đã bắt đầu trước hạn được hoàn tất, kể cả khi kéo dài qua giờ kết thúc.
5.2. Phối hợp gọi lại và chuyển lịch
| Tình trạng khách | Cách xử lý |
|---|---|
| Chưa gọi, còn trong lịch | Gọi khi đủ điều kiện |
| Chưa gọi, hết khung | Dừng hoặc chuyển theo phạm vi đã chọn |
| Đã thất bại, không cho gọi lại | Dừng, dù có bật chuyển ngày |
| Đã thất bại, còn quyền gọi lại | Thử thêm ở thời điểm phù hợp; chuyển lịch nếu được phép |
| Hết số lần gọi lại | Dừng |
| Đã thành công | Kết thúc |
Chuyển thời gian nhưng chưa thực hiện cuộc gọi không được tính thêm một lượt gọi.
5.3. Xung đột và trạng thái theo dõi
| Tình huống | Cách xử lý/hiển thị |
|---|---|
| Chưa đến lịch | Chờ đến lịch |
| Đã đến lịch nhưng chạm hạn mức/thiếu kênh/tạm dừng | Hiển thị lý do chờ; thời hạn vẫn tiếp tục |
| Không còn khoảng phù hợp trong phạm vi được phép | Hết hạn — chưa gọi hoặc Hết hạn — sau cuộc gọi thất bại |
| Lịch khách không có khoảng giao với lịch chiến dịch | Báo xung đột; yêu cầu điều chỉnh trước khi xử lý khách đó |
| Hết số lần gọi lại | Dừng — hết số lần gọi lại |
Quy tắc hết hạn mới áp dụng cho khách có lịch được đặt tại bước 2. Khách theo lịch chiến dịch và không có lịch riêng tiếp tục cách xử lý hiện có của chiến dịch.
Danh sách cần hiển thị: lịch yêu cầu, lịch dự kiến tiếp theo, số lần đã gọi, kết quả gần nhất và lý do chờ/dừng.
- Không có khách được gọi ngay lúc này nhưng còn khách hẹn tương lai: chiến dịch đang chờ lịch, không coi là đã hoàn tất.
- Khách hết hạn được ghi nhận đã kết thúc xử lý; không ghi là “không nghe máy” nếu chưa từng được gọi.
- Báo cáo phân biệt gọi thành công, gọi thất bại và hết hạn chưa thực hiện.
6. Tình huống và kết quả mong đợi
| # | Tình huống | Cấu hình/điều kiện | Kết quả mong đợi |
|---|---|---|---|
| 1 | Chọn Gọi ngay, khách hẹn ngày mai 09:00–10:00 | Chiến dịch được phép chạy khung đó | Khách chờ đến ngày mai, không gọi ngay |
| 2 | Chỉ nhập ngày 02/10 | Chiến dịch chạy 09:00–11:00 và 14:00–16:00 | Khách được xử lý trong các khung phù hợp của ngày 02/10 |
| 3 | Khách hẹn 09:00–10:00, chiến dịch chạy 14:00–16:00 | Hai lịch không giao nhau | Báo xung đột; không tự chọn một lịch để gọi |
| 4 | Gọi thất bại lúc 09:05 | Đúng điều kiện retry; cách 15 phút; còn lượt và còn khung | Có thể thử thêm từ 09:20 |
| 5 | Gọi thất bại lúc 09:55, khung kết thúc 10:00 | Cách 15 phút; chỉ trong khung | Không gọi 10:10; dừng xử lý khách |
| 6 | Khung riêng 09:00–10:00; chiến dịch có khoảng 09:00–09:20 và 09:40–10:00 | Cho tiếp tục trong ngày; chưa gọi hoặc còn quyền retry | Có thể chuyển sang khoảng 09:40–10:00 nếu đủ điều kiện |
| 7 | Hết khung riêng 09:00–10:00 | Cho tiếp tục trong ngày nhưng không còn khoảng phù hợp | Dừng; không tự chuyển sang 14:00 |
| 8 | Chưa gọi được trước 10:00 vì thiếu kênh | Cho chuyển ngày; còn ngày và ngày sau có khung phù hợp | Chuyển lịch sang ngày sau, giữ khung riêng |
| 9 | Đã thất bại, tắt gọi lại | Có cho chuyển ngày | Dừng; không chuyển để gọi thêm |
| 10 | Đã thực hiện 3 cuộc | Cấu hình gọi lại 2 lần; còn thời hạn chuyển ngày | Dừng vì hết lượt |
| 11 | Chạm hạn mức ngày, còn khách có lịch | Cho chuyển ngày | Không vượt hạn mức; nếu bỏ lỡ lịch thì chuyển trong hạn |
| 12 | Tạm dừng rồi chạy lại sau giờ hẹn | Chỉ trong khung | Khách hết hạn, không tự gọi tiếp |
| 13 | Cuộc gọi bắt đầu 09:59 và kết thúc 10:03 | Khung kết thúc 10:00 | Cuộc gọi được hoàn tất |
| 14 | Bắt đầu một cuộc mới lúc 10:00 | Khung kết thúc 10:00 | Không thực hiện |
| 15 | Nhập lại khách với lịch mới | Khách đã có lịch sử gọi | Không tự tạo thêm lượt hoặc reset số lần; cập nhật lịch theo thao tác rõ ràng |
| 16 | Lịch lấy từ contact, sau import contact thay đổi | Đã nhập vào chiến dịch | Lịch chiến dịch của khách không tự đổi |
| 17 | Danh sách chỉ còn khách hẹn ngày mai | Không có khách đủ điều kiện hiện tại | Hiển thị đang chờ lịch, chưa hoàn tất chiến dịch |
| 18 | Nhập ngày/giờ sai hoặc lịch đã hết hạn | Một số dòng khác hợp lệ | Báo lỗi các dòng sai, nhập các dòng hợp lệ; không đổi dòng sai thành gọi ngay |
7. Các quyết định đã chốt và thông tin cần hoàn thiện
7.1. Các phương án đã được xác nhận
Người dùng xác nhận “Chốt các mục theo đề xuất” ngày 01/10/2026. Bảng dưới ghi nhận 12 nhóm quyết định của bản đề xuất dành cho BA.
| # | Vấn đề | Quyết định |
|---|---|---|
| 1 | Ý nghĩa ngày/giờ | Ngày gọi và khung giờ bắt đầu–kết thúc |
| 2 | Thiếu ngày/giờ | Có ngày: theo khung chiến dịch; không lịch: theo chiến dịch; chỉ có giờ: yêu cầu bổ sung ngày |
| 3 | Ba nguồn nhập | Theo chiến dịch, lịch chung hoặc lấy lịch từ nguồn phù hợp |
| 4 | Lịch khách và lịch chiến dịch | Phải thỏa mãn cả hai; Gọi ngay không bỏ lịch khách |
| 5 | Điều kiện gọi lại | Giữ các điều kiện hiện có; lỗi hệ thống được xem riêng |
| 6 | Số lần và khoảng cách | N lần gọi lại là N+1 cuộc; tính toàn quá trình; khoảng cách từ lúc cuộc trước kết thúc |
| 7 | Chưa gọi và thất bại | Phân biệt hai tình huống; tắt gọi lại không ngăn chuyển lịch cho khách chưa gọi |
| 8 | Hết giờ/ngày | Chọn một phạm vi: trong khung, trong ngày hoặc sang ngày sau có giới hạn |
| 9 | Giờ sau khi chuyển | Giữ khung riêng; không tự mở rộng sang giờ khác |
| 10 | Thiếu tài nguyên/tạm dừng | Không tự gia hạn; tuân thủ phạm vi tiếp tục đã chọn |
| 11 | Lịch lỗi/trùng số | Báo lỗi; cập nhật có kiểm soát, không tự reset lịch sử hoặc tạo thêm lượt |
| 12 | Sửa khi đang chạy | Áp dụng cho lượt chưa thực hiện; không tự mở lại khách đã dừng |
7.2. Thông tin chưa có giá trị cụ thể trong đề xuất
Các điểm sau là thông số hoặc chi tiết cần BA hoàn thiện; không làm thay đổi 12 phương án đã chốt:
| Nội dung | Cần hoàn thiện |
|---|---|
| Giới hạn số lần gọi lại và khoảng cách | Giá trị tối đa số lần; khoảng cách tối thiểu/tối đa; có cho nhập 0 phút hay không |
| Giới hạn chuyển ngày | Số ngày chuyển thêm tối đa và giá trị mặc định |
| Lỗi hệ thống | Nhóm lỗi cụ thể được thử lại và cách tính lượt nếu chưa thực hiện cuộc gọi |
| Lịch không phù hợp trước khi chạy | Chiến dịch phải chặn chạy toàn bộ hay cho chạy các khách hợp lệ sau khi người dùng chọn rõ |
Các ví dụ trong tài liệu không mặc định chốt giá trị giới hạn sản phẩm. BA bổ sung các giá trị này khi hoàn thiện đặc tả giao diện và điều kiện kiểm tra.