Tài liệu này hướng dẫn tích hợp thư viện API Login/Logout và status trên Queue call cho Asterisk/Elastix/Trixbox vào CRM web base
API Queue
Với API Queue cho phép Dynamic CRM username | extension tương tác với hàng chờ nhận cuộc gọi không cần thông qua việc cấu hình thủ công trên tổng đài (PBX work as backend). API Queue thuộc tổng đài hoạt động độc lập với CRM. Do đó phần CRM sẽ định nghĩa và lưu trữ những thông tin sau đây, để điều phối hành động và hiển thị trạng thái của user trên CRM cho phù hợp như login,logout, set trạng thái ngưng nhận cuộc gọi …, các hành động trên Queue sẽ tuân theo chuỗi sự kiện sau đây: Ready (login hàng chờ), Pause (ngưng nhận call) | Unpause (nhận call trở lại), Logout (thoát khỏi hàng chờ):
Queue No
Đây là Number định nghĩa cho một hàng chờ (Queue) được khởi tạo và cung cấp từ tổng đài ban đầu cho CRM lưu trữ. Tham số này được tổng đài cung cấp cho CRM mỗi khi triển khai theo kịch bản IVR ban đầu hoặc thêm hàng chờ mới trên hệ thống dựa theo yêu cầu ban đầu. CRM sẽ lưu lại Number hàng chờ này. Ví dụ trên tổng đài đang có 02 hàng chờ: 999 – Khách Hàng Cá Nhân và 998 – Khách Hàng Doanh Nghiệp. thì trên CRM lưu trữ lại 02 số này và description để sang bước Map user trên CRM với các hàng chờ này.
Ví dụ:
# | Queue No | Description |
1 | 999 | Khách hàng cá nhân |
2 | 998 | Khách hàng doanh nghiệp |
User Mapping
Đây là phần cần thiết kế và lưu trữ tại CRM, cụ thể ví dụ CRM đang lưu 02 Queue No là 999 và 998 tương ứng thì, vấn đề đặt ra là một user trên CRM được khởi tạo ra sẽ phục vụ trên hàng chờ nào? Và có ưu tiên nhận call trước hay không (level nhận call)? Để giải quyết phần này. Trên CRM tiến hành Mapping như sau, ví dụ như bên dưới có 03 users trên hệ thống ở đây hiểu như sau:
> User Realtime01 trên CRM sẽ phục vụ 02 hàng chờ là 999 và 998 trong đó, Priority ở hàng chờ 999 là 0 (level 0 – luôn nhận call trước). Priority ở hàng chờ 998 là 1, tức những bạn nào chung hàng chờ 998 busy call thì mới đến lượt Realtime01 tiếp nhận call ở hàng chờ này (level 1 – sẽ nhận call sau khi level 0 full busy)
> User Realtime02 trên CRM sẽ phục vụ 02 hàng chờ là 999 và 998 trong đó Priority ở hai hàng chờ là 0 tức là mức độ phục vụ luôn nhận được call đầu tiên nếu line extension available. (level 0 – luôn nhận call)
> User Teamlead01 cũng phục vụ ở 02 hàng chờ 999 và 998 tuy nhiên priority bạn đang set là 3 cao hơn những user khác. Đồng nghĩa khi tất cả các user đều busy line thì mới tới lược Teamlead01 nhận call.
Priority càng thấp thì trọng số nhận call càng cao. Priority có thể đáp ứng từ 0 – 99. Trong đó 0 là trọng số nhận call cao nhất, priority càng cao thì tỉ trọng nhận call sẽ thấp sau priority trước nó.
Việc Mapping này do CRM tự lựa chọn và quyết định (dynamic – không phụ thuộc tổng đài nữa.)
# | Username CRM | Queue No | Priority |
1 | Realtime01 | 999 | 0 |
2 | Realtime01 | 998 | 1 |
3 | Realtime02 | 999 | 0 |
4 | Realtime02 | 998 | 0 |
5 | Teamlead01 | 999 | 3 |
6 | Teamlead01 | 998 | 3 |
Status break
Đây là phần thông tin lưu trữ trên CRM để ghi nhận và truyền trạng thái ngưng phục vụ trên hàng chờ của một user trên CRM (sẽ không nhận call đổ xuống nữa, và có lý do ngưng phục vụ). không giới hạn. (không chứa ký tự đặc biệt, không chứa tiếng Việt, không khoảng trắng, không gạch giữa)
Phần reason này sẽ được truyền sang tổng đài dành cho develop về sau này. Ví dụ:
# | Reason |
1 | break_for_lunch |
2 | break_for_training |
3 | break_for_process_ticket |
… | … |
User Status
Đây là phần thông tin lưu trữ tại CRM để kiểm soát trạng thái hiện tại của user trên CRM trên hàng chờ. Để biết một user (username CRM sẽ map với extension và cùng hiểu là 1 đối tượng, trong đó extension được sử dụng trên tổng đài trong hàng chờ tương ứng, hai tham số username và extension sẽ đi song song khi truyền biến vào API). Để user có thể chọn ready nếu đang paused hoặc paused nếu đang ready và truyền reason paused hoặc logout hàng chờ
# | Username | Extension | Queue | Status | Reason |
1 | Realtime01 | 100 | 999 | ready | |
2 | Realtime01 | 100 | 998 | paused | break_for_lunch |
3 | Realtime02 | 101 | 999 | paused | break_for_training |
4 | Realtime02 | 101 | 998 | ready |
Action send to Queue acceptation
# | State Queue | Note | Status on Queue |
1 | ready | Login vào một hàng chờ | ready |
2 | pause | Ngưng nhận call | Paused |
3 | unpause | Nhận call trở lại khi đang ngưng nhận call | ready |
4 | logout | Logout ra khỏi hàng chờ |
(1) Ready Queue
API Login Queue được code và lib bằng ngôn ngữ PHP, và chạy theo protocol web. Mỗi điện thoại viên được map với một số ext khi login vào hệ thống, Số extension này sẽ được Map vào hàng chờ được định nghĩa sẵn trên CRM
Cú pháp gọi:
http://IP_HOST_PBX:8082/api/login_queue.php?user_id=[CRM_Username]&queue_ext=[Queue_No]&priority=[Priority_No]&extension=[EXTENSION]&state=ready
Truyền biến:
- user_id: là CRM username của điện thoại viên khi login CRM.
- queue_ext: Là Queue No mà CRM username được gán làm việc
- priority: là level nhận call trên hàng chờ này 0 có trọng số cao nhất đến 99 trọng số thấp nhất.
- extension: là số extension của tổng đài gán với CRM user khi login nhận call (chính là extension dùng với API inbound call)
- state: là hành động trên hàng chờ: ready | pasue | unpause | logout
Trả về:
- ready: khi login hàng chờ thành công
- Empty: không trả về, khi lỗi
Ví dụ: CRM Username realtime01 cần login nhận call trên hàng chờ 999 có priority là 0 đang map với extension 100, đầu ca làm việc, thì cần truy xuất API như sau:
http://IP_HOST_PBX:8082/api/login_queue.php?user_id=realtime01&queue_ext=999&priority=0&extension=100&state=ready
Gọi API truyền hành động 02 lần nếu user này nằm trong 02 hàng chờ cần phục vụ. thực hiện tượng tự các hành động khác nếu một username | extension nằm trên nhiều hàng chờ thì cần gọi API song song.
(2) Pause Queue
API Pause Queue dùng khi một điện thoại viên muốn ngưng nhận call trên hàng chờ với những lý do được chấp nhận từ quản lý định nghĩa trước.
Cú pháp gọi:
http://IP_HOST_PBX:8082/api/login_queue.php?queue_ext=[Queue_No]&extension=[EXTENSION]&state=pause&reason=break_for_lunch
Truyền biến:
- queue_ext: Là Queue No mà CRM username được gán làm việc
- extension: là số extension của tổng đài gán với CRM user khi login nhận call (chính là extension dùng với API inbound call)
- state: là hành động trên hàng chờ: pause
- reason: là biến truyền lý do được chấp nhận cho trạng thái ngưng nhận call.
Trả về:
- <Extension> break <reason>: khi pause hàng chờ thành công
- Empty: không trả về, khi lỗi
Ví dụ: CRM Username realtime01 đang nhận call trên hàng chờ 999 có priority là 0 đang map với extension 100, cần ngưng nhận call với lý do ăn trưa, thì cần truy xuất API như sau:
http://IP_HOST_PBX:8082/api/login_queue.php?queue_ext=999&extension=100&state=pause&reason=break_for_luch
(3) Unpause Queue
API Unpause Queue dùng khi một điện thoại viên muốn nhận call trở lại trong khi đang ngưng nhận call trên hàng chờ.
Cú pháp gọi:
http://IP_HOST_PBX:8082/api/login_queue.php?queue_ext=[Queue_No]&extension=[EXTENSION]&state=unpause
Truyền biến:
- queue_ext: Là Queue No mà CRM username được gán làm việc
- extension: là số extension của tổng đài gán với CRM user khi login nhận call (chính là extension dùng với API inbound call)
- state: là hành động trên hàng chờ: unpause
Trả về:
- <Extension> unbreak <Queue No>: khi unpause hàng chờ thành công
- Empty: không trả về, khi lỗi
Ví dụ: CRM Username realtime01 đang ngưng nhận call trên hàng chờ 999 có priority là 0 đang map với extension 100, cần nhận call trở lại thì cần truy xuất API như sau:
http://IP_HOST_PBX:8082/api/login_queue.php?queue_ext=999&extension=100&state=unpause
(4) Logout Queue
API Logout Queue dùng khi một điện thoại viên muốn kết thúc phiên làm việc (ra về) trên một hàng chờ đã login trước đó.
Cú pháp gọi:
http://IP_HOST_PBX:8082/api/login_queue.php?queue_ext=[Queue_No]&extension=[EXTENSION]&state=logout
Truyền biến:
- queue_ext: Là Queue No mà CRM username được gán làm việc
- extension: là số extension của tổng đài gán với CRM user khi login nhận call (chính là extension dùng với API inbound call)
- state: là hành động trên hàng chờ: logout
Trả về:
- <Extension> logout <Queue No>: khi logout hàng chờ thành công
- Empty: không trả về, khi lỗi
Ví dụ: CRM Username realtime01 đang nhận call trên hàng chờ 999 có priority là 0 đang map với extension 100, cần logout thì cần truy xuất API như sau:
http://IP_HOST_PBX:8082/api/login_queue.php?queue_ext=999&extension=100&state=logout
Liên hệ: sales@realtime.vn
Hoặc hotline: 028 730 33888 | 0933119056