Public API & Webhook - V4

1. API khai báo webhook

Mục đích: Khai báo webhook để hệ thống callcenter gửi log cuộc gọi

Hỗ trợ 1 tổng đài/1 webhook

Endpoint: PUT https://api-callcenter.bizflycloud.vn/v1/api/webhooks

Header:

Authorization: <api_key>
Content-Type: application/json

Request Data

Tên trường dữ liệu Kiểu Bắt buộc Mô tả
url string URL của webhook
token string Không mã xác thực với webhook. Được đặt vào header khi gửi request cho webhook. Giống với cách xác thực của api này.

Response:

Định dạng: json

Code Status Lỗi Message
200 OK
400 400 Sai kiểu dữ liệu, dữ liệu không cho kết quả nào data_invalid
401 401 Lỗi authen
404 404 URL api không đúng
403 403 không được quyền truy cập url
500 500 Lỗi hệ thống API INTERNAL_SERVER_ERROR

2. API Xóa webhook

Mục đích: Xóa webhooks của một user trên tất cả các tổng đài

Endpoint: DELETE https://api-callcenter.bizflycloud.vn/v1/api/webhooks

Header:

Authorization: <api_key>
Content-Type: application/json

Response:

Định dạng: json

Code Status Lỗi
200 OK
400 400 Sai kiểu dữ liệu, dữ liệu không cho kết quả nào / Tham số request gửi lên không đúng định dạng
401 401 Lỗi authen
404 404 URL api không đúng
403 403 không được quyền truy cập url
500 500 Lỗi hệ thống API

3. Dữ liệu truyền qua webhook

1. Dữ liệu cuộc gọi

  • Một cuộc gọi được bắt đầu khi caller gọi cho một số tới tổng đài và tổng đài dựa theo kịch bản mà kết nối caller và callee.
  • event: là một sự kiện xảy ra khi có cuộc gọi vào hệ thống call center, sự kiện có thể do caller, caller hoặc callee tạo ra.
  • Với cuộc gọi vào: kịch bản gọi vào thường để KH phục vụ KH gián tiếp nên sẽ có nhiều máy lẻ trực cuộc gọi vào. 1 cuộc gọi vào có thể được kết nối đến nhiều callee, nên các event về sự tương tác với các callee cũng xảy ra nhiều lần.
  • Với cuộc gọi ra: hệ thống coi đích gọi ra là 1 callee duy nhất nên các event cũng ko lặp lại giống như với cuộc gọi vào.
  • Các cuộc gọi diễn ra đan xen nhau, nên log cuộc gọi cũng được cập nhật đan xen với nhau. dựa vào Id cuộc gọi để phân biệt log của các cuộc gọi khác nhau.
  • Trong kịch bản gọi vào, để kết nối với callee thì có cách gọi trực tiếp hoặc gọi qua queue, các event hai cách gọi này làm cho event sinh ra khác nhau. dù cho cùng sự kiện là gọi và timeout.
  • Kịch bản gọi ra chỉ có thể gọi trực tiếp nên sẽ không xuất hiện các event về queue.

Định nghĩa event

Untitled

Cuộc gọi cùng các event xảy ra theo thời gian

  • Caller: Số máy gọi
  • Callee: Số máy nghe
  • Một cuộc gọi có một chuỗi các event xảy ra theo thời gian, tương ứng với các event đó, hệ thống Bizfly call center sẽ đẩy một request POST cho mỗi event qua webhook
  • Mỗi request cho event sau sẽ bao gồm cả dữ liệu của request cho event trước.
  • Cuộc gọi nào cũng có event: end
  • Các event dial, ring, có thể lặp lại nhiều lần
  • Cuộc gọi có trạng thái miss có thể không có event update_audio_url
  • Cuộc gọi khởi tạo từ api, nếu không kết nối được caller sẽ có duy nhất một trạng thái là: cancel

=> 3 event end, update_audio_url và cancel sẽ chắc chắn được đẩy qua webhook (Nếu có lỗi sẽ được đẩy lại), còn các event khác, nếu lỗi sẽ không đẩy lại. Với các lỗi network, lỗi hệ thống webhook. Các event khác sẽ đóng vai trò thông báo sớm cho phía webhook để kịp thời hiển thị thông tin cuộc gọi theo thời gian thực.

  • Thời gian thử lại các request lỗi là 10 phút 1 lần.
  • Khuyến nghị phía webhook sử dụng cơ chế upsert vào database để lưu dữ liệu cuộc gọi, dữ liệu sẽ được bồi đắp dần theo mỗi lần request.
  • Định dạng dữ liệu truyền qua webhook là json, Content-Type: application/json
  • Các thông tin mà mỗi event quản lý có trong bảng sau:
Tên event Mô tả event Tên trường có thể thay đổi với event trước đó Kiểu Mô tả
dial Bắt đầu quay số gọi tới callee callee string Số của người nghe
dial_time int Thời điểm bắt đầu gọi tới callee
tags list Danh sách các tag của cuộc gọi
custom_data json Dữ liệu tùy biến cho từng tổng đài
ring Máy callee rung chuông callee string Số của người nghe
ring_time int Thời điểm bắt đầu rung chuông phía callee
tags list Danh sách các tag của cuộc gọi
custom_data json Dữ liệu tùy biến cho từng tổng đài
answer callee trả lời cuộc gọi, bắt đầu đàm thoại callee string Số của người nghe
answer_time int Thời điểm callee nhấc máy
tags list Danh sách các tag của cuộc gọi
custom_data json Dữ liệu tùy biến cho từng tổng đài
end Kết thúc cuộc gọi state string (‘success’, ‘miss’, ‘blocked’) Trạng thái cuộc gọi
duration int Thời gian xử lý cuộc gọi
end_time int Thời điểm kết thúc cuộc gọi
custom_data json Dữ liệu tùy biến cho từng tổng đài
tags list Danh sách các tag của cuộc gọi
custom_data json Dữ liệu tùy biến cho từng tổng đài
queue_dial Bắt đầu gọi cho callee trong queue callee string Số của người nghe
queue_dial_time int Thời điểm bắt đầu gọi tới callee trong queue
tags list Danh sách các tag của cuộc gọi
custom_data json Dữ liệu tùy biến cho từng tổng đài
caller_hangup Caller chủ động dập máy callee string Số của người nghe
caller_hangup_time int Thời điểm caller chủ động dập máy
tags list Danh sách các tag của cuộc gọi
custom_data json Dữ liệu tùy biến cho từng tổng đài
callee_timeout Timeout khi gọi callee callee string Số của người nghe
callee_timeout_time int Thời điểm xác định timeout khi gọi callee
tags list Danh sách các tag của cuộc gọi
custom_data json Dữ liệu tùy biến cho từng tổng đài
callee_offline Callee không kết nối callee string Số của người nghe
callee_offline_time int Thời điểm xác định không kết nối khi gọi callee
tags list Danh sách các tag của cuộc gọi
custom_data json Dữ liệu tùy biến cho từng tổng đài
queue_member_timeout Timeout khi gọi callee bằng queue callee string Số của người nghe
queue_member_timeout_time int Thời điểm xác định timeout khi gọi callee bằng queue
tags list Danh sách các tag của cuộc gọi
custom_data json Dữ liệu tùy biến cho từng tổng đài
connection_error Lỗi kết nối tới callee callee string Số của người nghe
connection_error_time int Thời điểm xác định lỗi kết nối khi gọi callee
tags list Danh sách các tag của cuộc gọi
custom_data json Dữ liệu tùy biến cho từng tổng đài
callee_reject Callee chủ động từ dập máy callee string Số của người nghe
callee_reject_time int Thời điểm xác định callee dập máy
tags list Danh sách các tag của cuộc gọi
custom_data json Dữ liệu tùy biến cho từng tổng đài
end_dialplan Thời điểm kết thúc kịch bản end_dialplan_time int Thời điểm xác định kết thúc kịch bản
tags list Danh sách các tag của cuộc gọi
custom_data json Dữ liệu tùy biến cho từng tổng đài
update_audio_url Cập nhật url mới cho file ghi âm cuộc gọi (file ghi âm được đưa lên hệ thống lưu trữ) audio_url string URL của file ghi âm
tags list Danh sách các tag của cuộc gọi
custom_data json Dữ liệu tùy biến cho từng tổng đài
caller_audio_url string URL của file ghi âm chỉ có giọng của caller
callee_audio_url string URL của file ghi âm chỉ có giọng của callee
cancel Khởi tạo cuộc gọi từ api không thành công cancel_time int Thời điểm cuộc gọi khởi tạo từ api được xác định là không thành công
tags list Danh sách các tag của cuộc gọi
custom_data json Dữ liệu tùy biến cho từng tổng đài

Các trường dữ liệu được truyền trong 1 request

Tên trường Kiểu dữ liệu Bắt buộc Mô tả
call_id string Id của cuộc gọi
hotline_number string Đầu số tổng đài
event string Tên event
start_time int Không Thời điểm bắt đầu cuộc gọi
ring_time int Không Thời điểm bắt đầu rung chuông phía callee
dial_time int Không Thời điểm bắt đầu gọi tới callee
answer_time int Không Thời điểm callee nhấc máy
end_time int Không Thời điểm kết thúc cuộc gọi
cancel_time int Không Thời điểm cuộc gọi khởi tạo từ api được xác định là không thành công
queue_dial_time int Không Thời điểm bắt đầu gọi tới callee trong queue
caller_hangup_time int Không Thời điểm caller chủ động dập máy
callee_timeout_time int Không Thời điểm xác định timeout khi gọi callee
callee_offline_time int Không Thời điểm xác định không kết nối khi gọi callee
queue_member_timeout_time int Không Thời điểm xác định timeout khi gọi callee bằng queue
connection_error_time int Không Thời điểm xác định lỗi kết nối khi gọi callee
callee_reject_time int Không Thời điểm xác định callee dập máy
end_dialplan_time int Không Thời điểm xác định kết thúc kịch bản
caller string Không Số của người gọi
direct string (‘in’,’out’) Không Chiều gọi
callee string Không Số của người nghe
audio_url string Không URL của file ghi âm (nếu có)
state string (‘success’, ‘miss’, ‘blocked’) Không Trạng thái cuộc gọi
duration int Không Thời gian xử lý cuộc gọi
source string Không Đánh dấu số tổng đài nguồn, trong trường hợp đấu nối 2 tổng đài lại với nhau
tags list Không Danh sách các tag của cuộc gọi
custom_data json Không Dữ liệu tùy biến cho từng tổng đài

Ví dụ về dữ liệu truyền qua webhook

Cuộc gọi ra:

- Dial: {
    "answer_time": 0,
    "audio_url": "",
    "call_id": "0000017a2023Sep2111233710310718146",
    "callee": "0973230649",
    "callee_offline_time": 0,
    "callee_reject_time": 0,
    "callee_timeout_time": 0,
    "caller": "10020",
    "caller_hangup_time": 0,
    "cancel_time": 0,
    "connection_error_time": 0,
    "custom_data": {},
    "dial_time": 1695270217,
    "direct": "out",
    "duration": 0,
    "end_dialplan_time": 0,
    "end_time": 0,
    "event": "dial",
    "hangup_cause": "",
    "hotline_number": "02473000540",
    "id": "0000017a2023Sep2111233710310718146",
    "queue_dial_time": 0,
    "queue_member_timeout_time": 0,
    "ring_time": 0,
    "source": "",
    "start_time": 1695270217,
    "state": "",
    "tags": [],
    "updated": ""
    }

- Answer:{
    "answer_time": 1695270228,
    "audio_url": "",
    "call_id": "0000017a2023Sep2111233710310718146",
    "callee": "0973230649",
    "callee_offline_time": 0,
    "callee_reject_time": 0,
    "callee_timeout_time": 0,
    "caller": "10020",
    "caller_hangup_time": 0,
    "cancel_time": 0,
    "connection_error_time": 0,
    "custom_data": {},
    "dial_time": 1695270217,
    "direct": "out",
    "duration": 0,
    "end_dialplan_time": 0,
    "end_time": 0,
    "event": "answer",
    "hangup_cause": "",
    "hotline_number": "02473000540",
    "id": "0000017a2023Sep2111233710310718146",
    "queue_dial_time": 0,
    "queue_member_timeout_time": 0,
    "ring_time": 0,
    "source": "",
    "start_time": 1695270217,
    "state": "success",
    "tags": [],
    "updated": ""
    }

- End: {
    "answer_time": 1695270228,
    "audio_url": "",
    "call_id": "0000017a2023Sep2111233710310718146",
    "callee": "0973230649",
    "callee_offline_time": 0,
    "callee_reject_time": 0,
    "callee_timeout_time": 0,
    "caller": "10020",
    "caller_hangup_time": 0,
    "cancel_time": 0,
    "connection_error_time": 0,
    "custom_data": {"outside_press_during_call": ""},
    "dial_time": 1695270217,
    "direct": "out",
    "duration": 16,
    "end_dialplan_time": 0,
    "end_time": 1695270233,
    "event": "end",
    "hangup_cause": "",
    "hotline_number": "02473000540",
    "id": "0000017a2023Sep2111233710310718146",
    "queue_dial_time": 0,
    "queue_member_timeout_time": 0,
    "ring_time": 0,
    "source": "",
    "start_time": 1695270217,
    "state": "success",
    "tags": [],
    "updated": ""
    }
- Update_audio_url: {
    "answer_time": 1695270228,
    "audio_url": "https://866f1731-7cb5-4189-ba50-d283bb30cb0c.hn.ss.bfcplatform.vn/data/record/02473000540/out/092023/21/112337_16952702171972.wav",
    "call_id": "0000017a2023Sep2111233710310718146",
    "callee": "0973230649",
    "callee_audio_url": "https://866f1731-7cb5-4189-ba50-d283bb30cb0c.hn.ss.bfcplatform.vn/data/record/02473000540/out/092023/21/112337_16952702171972_callee.wav",
    "caller": "10020",
    "caller_audio_url": "https://866f1731-7cb5-4189-ba50-d283bb30cb0c.hn.ss.bfcplatform.vn/data/record/02473000540/out/092023/21/112337_16952702171972_caller.wav",
    "cancel_time": "",
    "custom_data": {"outside_press_during_call": ""},
    "dial_time": 1695270217,
    "direct": "out",
    "duration": 16,
    "end_time": 1695270233,
    "event": "update_audio_url",
    "hotline_number": "02473000540",
    "id": "0000017a2023Sep2111233710310718146",
    "ring_time": "",
    "source": "",
    "start_time": 1695270217,
    "state": "success",
    "tags": []
    }

Cuộc gọi vào

- Dial: {
    "answer_time": 0,
    "audio_url": "",
    "call_id": "02473000540_1a18aab0-08bf-41ce-9921-6b0cc476b80c",
    "callee": "10020",
    "callee_offline_time": 0,
    "callee_reject_time": 0,
    "callee_timeout_time": 0,
    "caller": "0934569616",
    "caller_hangup_time": 0,
    "cancel_time": 0,
    "connection_error_time": 0,
    "custom_data": {},
    "dial_time": 1695271326,
    "direct": "in",
    "duration": 0,
    "end_dialplan_time": 0,
    "end_time": 0,
    "event": "dial",
    "hangup_cause": "",
    "hotline_number": "02473000540",
    "id": "0000017e2023Sep2111415110310718146",
    "queue_dial_time": 0,
    "queue_member_timeout_time": 0,
    "ring_time": 0,
    "source": "",
    "start_time": 1695271311,
    "state": "",
    "tags": [],
    "updated": ""
    }

- Ring: {
    "answer_time": 0,
    "audio_url": "",
    "call_id": "02473000540_1a18aab0-08bf-41ce-9921-6b0cc476b80c",
    "callee": "10020",
    "callee_offline_time": 0,
    "callee_reject_time": 0,
    "callee_timeout_time": 0,
    "caller": "0934569616",
    "caller_hangup_time": 0,
    "cancel_time": 0,
    "connection_error_time": 0,
    "custom_data": {},
    "dial_time": 1695271326,
    "direct": "in",
    "duration": 0,
    "end_dialplan_time": 0,
    "end_time": 0,
    "event": "ring",
    "hangup_cause": "",
    "hotline_number": "02473000540",
    "id": "0000017e2023Sep2111415110310718146",
    "queue_dial_time": 0,
    "queue_member_timeout_time": 0,
    "ring_time": 1695271326,
    "source": "",
    "start_time": 1695271311,
    "state": "",
    "tags": [],
    "updated": ""
    }

- Answer: {
    "answer_time": 1695271327,
    "audio_url": "",
    "call_id": "02473000540_1a18aab0-08bf-41ce-9921-6b0cc476b80c",
    "callee": "10020",
    "callee_offline_time": 0,
    "callee_reject_time": 0,
    "callee_timeout_time": 0,
    "caller": "0934569616",
    "caller_hangup_time": 0,
    "cancel_time": 0,
    "connection_error_time": 0,
    "custom_data": {},
    "dial_time": 1695271326,
    "direct": "in",
    "duration": 0,
    "end_dialplan_time": 0,
    "end_time": 0,
    "event": "answer",
    "hangup_cause": "",
    "hotline_number": "02473000540",
    "id": "0000017e2023Sep2111415110310718146",
    "queue_dial_time": 0,
    "queue_member_timeout_time": 0,
    "ring_time": 1695271326,
    "source": "",
    "start_time": 1695271311,
    "state": "success",
    "tags": [],
    "updated": ""
    }

- End: {
    "answer_time": 1695271327,
    "audio_url": "",
    "call_id": "02473000540_1a18aab0-08bf-41ce-9921-6b0cc476b80c",
    "callee": "10020",
    "callee_offline_time": 0,
    "callee_reject_time": 0,
    "callee_timeout_time": 0,
    "caller": "0934569616",
    "caller_hangup_time": 0,
    "cancel_time": 0,
    "connection_error_time": 0,
    "custom_data": {"outside_press_during_call": ""},
    "dial_time": 1695271326,
    "direct": "in",
    "duration": 22,
    "end_dialplan_time": 0,
    "end_time": 1695271333,
    "event": "end",
    "hangup_cause": "",
    "hotline_number": "02473000540",
    "id": "0000017e2023Sep2111415110310718146",
    "queue_dial_time": 0,
    "queue_member_timeout_time": 0,
    "ring_time": 1695271326,
    "source": "",
    "start_time": 1695271311,
    "state": "success",
    "tags": [],
    "updated": ""
    }

- Update_audio_url: {
    "answer_time": 1695271327,
    "audio_url": "https://866f1731-7cb5-4189-ba50-d283bb30cb0c.hn.ss.bfcplatform.vn/data/record/02473000540/in/092023/21/114206_16952713111978.wav",
    "call_id": "02473000540_1a18aab0-08bf-41ce-9921-6b0cc476b80c",
    "callee": "10020",
    "callee_audio_url": "https://866f1731-7cb5-4189-ba50-d283bb30cb0c.hn.ss.bfcplatform.vn/data/record/02473000540/in/092023/21/114206_16952713111978_callee.wav",
    "caller": "0934569616",
    "caller_audio_url": "https://866f1731-7cb5-4189-ba50-d283bb30cb0c.hn.ss.bfcplatform.vn/data/record/02473000540/in/092023/21/114206_16952713111978_caller.wav",
    "cancel_time": "",
    "custom_data": {"outside_press_during_call": ""},
    "dial_time": 1695271326,
    "direct": "in",
    "duration": 22,
    "end_time": 1695271333,
    "event": "update_audio_url",
    "hotline_number": "02473000540",
    "id": "0000017e2023Sep2111415110310718146",
    "ring_time": 1695271326,
    "source": "",
    "start_time": 1695271311,
    "state": "success",
    "tags": []
    }

2. Dữ liệu auto dial

Untitled

Định nghĩa event

Tên event Mô tả event Tên trường có thể thay đổi với event trước đó Kiểu Mô tả
start_preview Bắt đầu preview callee string Số của người nghe
caller string Số của người gọi
start_preview_time int Thời điểm xảy ra event. Timestamp
stop_preview Dừng preview stop_preview_time int Thời điểm xảy ra event. Timestamp
start_wrapup Bắt đầu wrapup start_wrapup_time int Thời điểm xảy ra event. Timestamp
call_id string Id của cuộc gọi
stop_wrapup Dừng wrapup stop_wrapup_time int Thời điểm xảy ra event. Timestamp

Các trường dữ liệu được truyền trong 1 request

Tên trường Kiểu dữ liệu Bắt buộc Mô tả
call_id string Không Id của cuộc gọi
auto_dial_id string id của auto_dial
event string Tên event
caller string Số của người gọi
callee string Số của người nghe

PUBLIC API

1.Khởi tạo cuộc gọi

Mục đích: Khởi tạo cuộc gọi bằng api, không cần bấm số trên thiết bị, thiết bị không hiển thị số máy sẽ gọi

Hệ thống sẽ gọi cho một đầu số (caller/callee) (chỉ định bằng ‘connect_first’), nếu đầu số đó nhấc máy thì sẽ gọi cho đầu số còn lại để kết nối 2 bên vào 1 cuộc gọi.

Endpoint: POST https://api-callcenter.bizflycloud.vn/v1/api/calls

Header:

    Authorization: <api_key>
    Content-Type: application/json

Request Data

Tên trường dữ liệu Kiểu Bắt buộc Mô tả
caller String Đầu số của máy gọi, là máy lẻ trong hệ thống
callee String Đầu số của máy nghe, là số muốn gọi bên ngoài hệ thống
caller_timeout Number Không Thời gian kết thúc cuộc gọi nếu caller không trả lời(default: 25 giây)
callee_timeout Number Không Thời gian kết thúc cuộc gọi nếu callee không trả lời(default: 25 giây)
connect_first String (‘caller’,’callee’) Không Phía được kết nối trước (default: ‘caller’)

Response:

Định dạng: json

Code Status Lỗi
200 OK call_id: xxxxxxxx
400 400 Sai kiểu dữ liệu, dữ liệu không cho kết quả nào / Tham số request gửi lên không đúng định dạng
401 401 Lỗi authen
404 404 URL api không đúng
403 403 không được quyền truy cập url
500 500 Lỗi hệ thống API

2.Ngắt cuộc gọi

Mục đích: Ngắt một cuộc gọi đang diễn ra

Endpoint: DELETE https://api-callcenter.bizflycloud.vn/v1/api/calls/<call_id>

call_id: là id của cuộc gọi được trả về lúc có request POST tới ‘/v1/calls’

Header:

    Authorization: <api_key>
    Content-Type: application/json

Response:

Định dạng: json

Code Status Lỗi
200 OK
400 400 Sai kiểu dữ liệu, dữ liệu không cho kết quả nào / Tham số request gửi lên không đúng định dạng
401 401 Lỗi authen
404 404 URL api không đúng
403 403 không được quyền truy cập url
500 500 Lỗi hệ thống API

3.Lấy report

Mục đích: Lấy report của một đầu số trong một khoảng thời gian

Endpoint: GET https://api-callcenter.bizflycloud.vn/v1/api/reports

Header:

    Authorization: <api_key>
    Content-Type: application/json

Request Param

Tên trường dữ liệu Kiểu Bắt buộc Mô tả
hotline_number string Không Đầu số của tổng đài
state string Không Trạng thái cuộc gọi (‘miss’,‘success’)
direct string Không Chiều cuộc gọi (‘in’,’out’)
from_time int Unix timestamp thời gian bắt đầu lấy report
to_time int Unix timestamp thời gian kết thúc lấy report
limit int Không Giới hạn số bản ghi trong một lần request (trong 1 trang)
offset int Không Chỉ số của trang muốn lấy report (default:1)

Response:

Định dạng: json

Thành công: 200

{‘total’: 123, // Tổng số cuộc gọi
    'data': [
    {
        ‘_id’: ‘xxx’, // id của cuộc gọi
        ‘call_id’: ‘xxx’, // id sinh ra khi khởi tạo cuộc gọi qua api
        ‘caller’: ‘xxx’, // số máy gọi
        ‘callee’: ‘xxx’, // số máy nghe
        ‘state’: ‘xxx’, // trạng thái cuộc gọi
        ‘direct’: ‘xxx’, // chiều gọi
        ‘start_time’: ‘xxx’, // Unix timestamp, thời gian bắt đầu gọi
        ‘end_time’: ‘xxx’, // Unix timestamp, thời gian kết thúc
        ‘call_time’: ‘xxx’, // Unix timestamp, thời gian bắt đầu đàm thoại
        ‘duration’: 123, // Tổng thời gian xử lý cuộc gọi
        ‘audio_url’: ‘yyyy’, // Đường dẫn file ghi âm
        ‘caller_audio_url’: ‘yyyy’, // Đường dẫn file ghi âm riêng giọng của caller
        ‘callee_audio_url’: ‘yyyy’, // Đường dẫn file ghi âm riêng giọng của callee
        'events': {'timestamp': 32142151, 'event': '<event_name>', 'data': {...}} // Các sự kiện xảy ra trong cuộc gọi, tương tự như dữ liệu truyền qua webhook
    },
    {},
    ]
}

Lỗi:

Code Status Lỗi
400 400 Sai kiểu dữ liệu, dữ liệu không cho kết quả nào / Tham số request gửi lên không đúng định dạng
401 401 Lỗi authen
404 404 URL api không đúng
403 403 không được quyền truy cập url
500 500 Lỗi hệ thống API

4.Lấy danh sách máy lẻ

Mục đích: Lấy danh sách máy lẻ của user

Đặc tả:

Endpoint: GET https://api-callcenter.bizflycloud.vn/v1/api/hotlines/<hotline_number>/extensions

hotline_number: đầu số của hotline (vd: 0123456789)

Header:

    Authorization: <api_key>
    Content-Type: application/json

Request Param

Tên trường dữ liệu Kiểu Bắt buộc Mô tả
limit string Không Giới hạn số bản ghi cho 1 lần request
offset string Không Số trang

Response:

Định dạng: json

Thành công: 200

{
'total': 123, // tổng số máy lẻ
'data': {
    ‘extension_list’:[
        {
        'extension_number': '123421', // Số máy lẻ, dùng để hiển thị và bấm gọi
        'extension_account': '4214215_215', // Account để máy lẻ đăng nhập
        'extension_password': 'abcdefg', // Mật khẩu để máy lẻ đăng nhập, mã hóa rsa, cần có key để giải mã
        ‘hotline_default’: ‘0123456789’, // Đầu số mặc định dùng để máy lẻ gọi ra
        ‘hotline’: ‘0987654321‘, // Đầu số đang dùng để gọi ra hiện tại
        ‘hotline_list’: [
        {
            ‘hotline_number’: ‘0421768532’,
            ‘network’: ‘Viettel‘
            },
        {
            ‘hotline_number’: ‘0498306897’,
            ‘network’: ‘MobiFone‘
            },
        {
            ‘hotline_number’: ‘0965478972’,
            ‘network’: ‘else‘
            }
        ] // danh sách đầu số để gọi dựa theo nhà mạng
        }.
    {}.
    ],
    ‘wss’: ‘wss://test.domain.com/ws’ // wss domain dùng cho webrtc client
    ‘Sip_domain’: ‘test.domain.com’ // dùng cho non secured sip client
}

Lỗi:

Code Status Lỗi
400 400 Sai kiểu dữ liệu, dữ liệu không cho kết quả nào / Tham số request gửi lên không đúng định dạng
401 401 Lỗi authen
404 404 URL api không đúng
403 403 không được quyền truy cập url
500 500 Lỗi hệ thống API

5.Xem chi tiết máy lẻ

Mục đích: Lấy danh sách máy lẻ của user

Đặc tả:

Endpoint: GET https://api-callcenter.bizflycloud.vn/v1/api/extensions/<extensions_id>

extension_id: id hoặc số máy lẻ

Header:

    Authorization: <api_key>
    Content-Type: application/json 

Response:

Định dạng: json Thành công: 200

{
‘extension_number': '123421', // Số máy lẻ, dùng để hiển thị và bấm gọi
'extension_account': '4214215_215', // Account để máy lẻ đăng nhập
'extension_password': 'abcdefg', // Mật khẩu để máy lẻ đăng nhập, mã hóa rsa, cần có key để giải mã
‘hotline_default’: ‘0123456789’, // Đầu số mặc định dùng để máy lẻ gọi ra
‘hotline’: ‘0987654321‘, // Đầu số đang dùng để gọi ra hiện tại
‘hotline_list’: [
    {
        ‘hotline_number’: ‘0421768532’,
        ‘network’: ‘Viettel‘
        },
    {
        ‘hotline_number’: ‘0498306897’,
        ‘network’: ‘MobiFone‘
        },
    {
        ‘hotline_number’: ‘0965478972’,
        ‘network’: ‘else‘
        }
    ] // danh sách đầu số để gọi dựa theo nhà mạng
}

Lỗi:

Code Status Lỗi
400 400 Sai kiểu dữ liệu, dữ liệu không cho kết quả nào / Tham số request gửi lên không đúng định dạng
401 401 Lỗi authen
404 404 URL api không đúng
403 403 không được quyền truy cập url
500 500 Lỗi hệ thống API

6.Chèn vào cuộc gọi đang diễn ra

Mục đích: Sử dụng một máy lẻ đang rảnh, chèn vào một cuộc gọi đang diễn ra với một máy lẻ khác để nghe hoặc tham gia vào cuộc gọi đó

Hai máy lẻ phải cùng thuộc một hotline

Endpoint: POST https://api-callcenter.bizflycloud.vn/v1/api/spy_calls

Header:

    Authorization: <api_key>
    Content-Type: application/json

Request Data

Tên trường dữ liệu Kiểu Bắt buộc Mô tả
spy_peer string Số máy thực hiện chèn cuộc gọi
spied_peer string Số máy bị chèn vào cuộc gọi
option string(‘whisper’, ‘barge’) Không Tùy chọn:
whisper: cho phép hội thoại với spied_number
barge: cho phép hội thoại với tất cả các bên trong cuộc goi của spied_number
timeout number Không Số giây cho đến khi kết thúc gọi cho spy_peer

Response:

Định dạng: json

Code Status Lỗi / message
200 200 message: (trạng thái của máy nhận cuộc gọi: busy/offline, rejected,answered)
400 400 Sai kiểu dữ liệu, dữ liệu không cho kết quả nào / Tham số request gửi lên không đúng định dạng
401 401 Lỗi authen
404 404 URL api không đúng
403 403 không được quyền truy cập url
500 500 Lỗi hệ thống API

7.Lấy report cho một cuộc gọi

Mục đích: Lấy report cho một cuộc gọi bằng id

Đặc tả:

Endpoint: GET https://api-callcenter.bizflycloud.vn/v1/api/reports/<call_id>

call_id: là ‘call_id’ trả về từ api khởi tạo cuộc gọi

Header:

    Authorization: <api_key>
    Content-Type: application/json

Response:

Định dạng: json

Thành công: 200

{
    ‘_id’: ‘xxx’, // id của cuộc gọi
    ‘call_id’: ‘xxx’, // id sinh ra khi khởi tạo cuộc gọi qua api
    ‘caller’: ‘xxx’, // số máy gọi
    ‘callee’: ‘xxx’, // số máy nghe
    ‘state’: ‘xxx’, // trạng thái cuộc gọi
    ‘direct’: ‘xxx’, // chiều gọi
    ‘start_time’: ‘xxx’, // Unix timestamp, thời gian bắt đầu gọi
    ‘end_time’: ‘xxx’, // Unix timestamp, thời gian kết thúc
    ‘call_time’: ‘xxx’, // Unix timestamp, thời gian bắt đầu đàm thoại
    ‘duration’: 123, // Tổng thời gian xử lý cuộc gọi
    ‘audio_url’: ‘yyyy’, // Đường dẫn file ghi âm
    'events': {'timestamp': 32142151, 'event': '<event_name>', 'data': {...}}, // Các sự kiện xảy ra trong cuộc gọi, tương tự như dữ liệu truyền qua webhook
}

Lỗi:

Code Status Lỗi
400 400 Sai kiểu dữ liệu, dữ liệu không cho kết quả nào / Tham số request gửi lên không đúng định dạng
401 401 Lỗi authen
404 404 URL api không đúng
403 403 không được quyền truy cập url
500 500 Lỗi hệ thống API

8.Lấy danh sách đầu số

Mục đích: Lấy danh sách đầu số của user

Endpoint: GET https://api-callcenter.bizflycloud.vn/v1/api/hotlines

Header:

    Authorization: <api_key>
    Content-Type: application/json

Response:

Định dạng: json

Code Status Lỗi / message
200 200 {‘data’: [‘0123456789’, ‘0987654321’,…] } //danh sách các đầu số của user
400 400 Sai kiểu dữ liệu, dữ liệu không cho kết quả nào / Tham số request gửi lên không đúng định dạng
401 401 Lỗi authen
404 404 URL api không đúng
403 403 không được quyền truy cập url
500 500 Lỗi hệ thống API

9.Thêm máy lẻ

Mục đích: Thêm một máy lẻ mới

Endpoint: POST https://api-callcenter.bizflycloud.vn/v1/api/extensions

Header:

    Authorization: <api_key>
    Content-Type: application/json

Request Data

Tên trường dữ liệu Kiểu Bắt buộc Mô tả
extension_number string Số máy lẻ, phải là số và it hơn 6 kí tự
hotline_number string Đầu số mặc định , máy lẻ sẽ sử dụng số tổng đài này khi gọi ra
extension_call_permit string(‘phone’, ‘mobile’,’internation’) Quyền gọi ra:
phone: gọi nội bộ mobile: thêm quyền gọi di động (so với quyền phía trên)
internation: thêm quyền gọi đi nước ngoài (so với quyền phía trên)
hotline_list list Không Danh sách đầu số để tự động chọn đầu số theo nhà mạng.
Thay cho đầu số mặc định
hotline_humber string Đầu số gọi ra
network string (‘Viettel’, ‘Vinaphone’, ‘MobiFone’, ‘Vietnamobile’, ‘Gmobile’, ‘iTelecom’,
’else’) Tên nhà mạng.
‘else’ là giá trị mặc định, dùng khi không tìm được đầu số nào cho cuộc gọi
hotline string Không Đầu số dùng để gọi ra. Khi trường này có giá trị thì sẽ ghi đè hotline_list
auto_dial_ready boolean Không Trạng thái sử dụng auto dial.
true: sẵn sàng sử dụng
false: chưa sẵn sàng.
Mặc định là: false

Response:

Định dạng: json

Định dạng: json

Code Status Lỗi / message
200 True ‘message’: {‘id’: ‘hufowa42-fawfuo214-afioa24214-’ // id của máy lẻ}
400 400 Sai kiểu dữ liệu, dữ liệu không cho kết quả nào / Tham số request gửi lên không đúng định dạng Number Extension must be less than 6 digit / Number Extension Exists in Hotline X / Number extension over limit x/y Agent. Please upgrade your Package…
401 401 Lỗi authen
404 404 URL api không đúng
403 403 không được quyền truy cập url
500 500 Lỗi hệ thống API

10. Sửa máy lẻ

Mục đích: Chỉnh sửa thông tin một máy lẻ

Endpoint: PATCH https://api-callcenter.bizflycloud.vn/v1/api/extensions/<extensions_id>

extension_id: id hoặc số máy lẻ

Header:

    Authorization: <api_key>
    Content-Type: application/json

Request Data

Tên trường dữ liệu Kiểu Bắt buộc Mô tả
hotline_list list Không Danh sách đầu số để tự động chọn đầu số theo nhà mạng.
Thay cho đầu số mặc định
hotline_humber string Đầu số gọi ra
network string (‘Viettel’, ‘Vinaphone’, ‘MobiFone’, ‘Vietnamobile’, ‘Gmobile’, ‘iTelecom’,
’else’) Tên nhà mạng.
‘else’ là giá trị mặc định, dùng khi không tìm được đầu số nào cho cuộc gọi
hotline string Không Đầu số dùng để gọi ra. Khi trường này có giá trị thì sẽ ghi đè hotline_list
auto_dial_ready boolean Không Trạng thái sử dụng auto dial.
true: sẵn sàng sử dụng
false: chưa sẵn sàng.

Response:

Định dạng: json

Code Status Lỗi / message
200 True { “message”: u"Update Success" }
400 400 ID Extension not Exists
401 401 Lỗi authen
404 404 URL api không đúng
403 403 không được quyền truy cập url
500 500 Lỗi hệ thống API

11. Xóa máy lẻ

Mục đích: Xóa một máy lẻ

Endpoint: DELETE https://api-callcenter.bizflycloud.vn/v1/api/extensions/<extensions_id>

extension_id: id hoặc số máy lẻ

Header:

    Authorization: <api_key>
    Content-Type: application/json

Response: Định dạng: json

Code Status Lỗi / message
200 True { “message”: u"Delete Success" }
400 400 ID Extension not Exists
401 401 Lỗi authen
404 404 URL api không đúng
403 403 không được quyền truy cập url
500 500 Lỗi hệ thống API

12. Tự động gọi ra cho một loạt các số

Mục đích: Thực hiện auto calls

Endpoint: POST https://api-callcenter.bizflycloud.vn/v1/api/auto_calls

Header:

    Authorization: <api_key>
    Content-Type: application/json

Request Data

Tên trường dữ liệu Kiểu Bắt buộc Mô tả
hotline_number string Đầu số dùng để thực hiện auto_call
content string Không Nội dung đoạn thoại : có thể là text hoặc link đến file audio (mp3)
type string Giá trị: text / link
Nếu text → content phải để là đoạn thoại bằng text , tổng đài sẽ tự động convert qua Audio để bắn đi
Nếu link → tổng đài sẽ lấy file bắn
callee_list List Danh sách số máy nhận cuộc gọi auto call
campaign_id string ID để phân loại cho client
timer int Không Hẹn giờ( giây)
VD:
Timer: 300 -> thực hiện auto_call sau 5 phút,
Timer: 3600 -> thực hiện auto_call sau 1 tiếng.
voice string Không Giá trị:
nam_mien_bac,
nu_mien_bac,
nam_mien_nam.
nu_mien_nam
script_id string Không id của kịch bản để ai sử dụng

Response: Định dạng: json

Thành công: 200

{
    "status": True,
    "message": u"Push Auto call Success"
    },
{
    "status": 200,
    "message": u"Setting Timer for Auto call Success",
    “id”: task_id
    }

Lỗi:

Code Status Lỗi / message
400 400 Tham số request gửi lên không đúng định dạng
401 401 “message”: “Unauthorized”
404 404 URL api không đúng
403 403 không được quyền truy cập url
500 500 Lỗi hệ thống API

Nội dung của custom_data, khi trả response cho cuộc gọi tạo bởi api này:

Tên trường Kiểu dữ liệu Bắt buộc Mô tả
campaign_id string id phân biệt các lần auto call
outside_press_during_call string Không Phím bấm của callee trong khi nghe auto call

13. Xóa hết các cuộc gọi tự động đã hẹn giờ

Mục đích: Xóa hết các cuộc gọi tự động đã được hẹn giờ trước theo campaign_id

Endpoint: DELETE https://api-stagging-callcenter.bizflycloud.vn/v1/api/auto_calls/<campaign_id>

Header:

    Authorization: <api_key>
    Content-Type: application/json

Response:

Định dạng: json

Code Status Lỗi / message
200 200 { “message”: u"Remove Timer auto call success" }
400 400 “message”:”Auto calls already run or hasn’t been set a timer"
401 401 Lỗi authen
404 404 URL api không đúng
403 403 không được quyền truy cập url
500 500 Lỗi hệ thống API

Lỗi:

400: Lỗi sai campaign_id hoặc chưa đặt hẹn giờ cho cuộc gọi tự động nào

14. Khởi tạo cuộc gọi otp

Mục đích: Khởi tạo cuộc gọi bằng api, không cần bấm số trên thiết bị, thiết bị không hiển thị số máy sẽ gọi

Hệ thống sẽ gọi cho một số máy, rồi đọc otp 2 lần

Endpoint: POST https://api-callcenter.bizflycloud.vn/v1/api/otp_calls

Header:

    Authorization: <api_key>
    Content-Type: application/json

Request Data

Tên trường dữ liệu Kiểu Bắt buộc Mô tả
callee String Số của máy nghe, là số muốn gọi bên ngoài hệ thống
callee_timeout Number Không Thời gian kết thúc cuộc gọi nếu callee không trả lời(default: 25 giây)
hotline_number String Đầu số dùng để gọi otp
otp String Nội dung otp, phải là số

Response:

Định dạng: json

Code Status Lỗi / message
200 200 { “call_id: xxxxxxxx” }
400 400 Sai kiểu dữ liệu, dữ liệu không cho kết quả nào
401 401 Lỗi authen
404 404 URL api không đúng
403 403 không được quyền truy cập url
500 500 Lỗi hệ thống API

15. Lấy danh sách đầu số v3

Mục đích: Lấy danh sách đầu số của user

Endpoint: GET https://api-callcenter.bizflycloud.vn/v3/api/hotlines

Header:

    Authorization: <api_key>
    Content-Type: application/json

Response:

  • Định dạng: json
  • Thành công: 200

{

'data': [{
    ‘Hotline_number’:'0123456789', // số tổng đài
    ’provider’: ‘ABC’, // nhà cung cấp
    ‘network’: ‘Def’ // nhà mạng trong hệ thống mạng điện thoại
    },
    '{
    ‘hotline_number’:'0123456789',
    ’provider’: ‘DEF’,
    ‘network’: ‘Ghi’
    },
    ..]
}

Lỗi:

Code Status Lỗi / message
400 400 Sai kiểu dữ liệu, dữ liệu không cho kết quả nào
401 401 Lỗi authen
404 404 URL api không đúng
403 403 không được quyền truy cập url
500 500 Lỗi hệ thống API

16. Tạo kịch bản auto dial

Mục đích: Tạo kịch bản auto dial

Endpoint: POST https://api-callcenter.bizflycloud.vn/v1/api/auto_dial

Header:

    Authorization: <api_key>
    Content-Type: application/json

Request Data:

Tên trường dữ liệu Kiểu Bắt buộc Mô tả
type String(‘progressive’,’predictive’,’preview’) Kiểu auto dial
preview_time Number Không Thời gian chờ trước khi bắt đầu gọi cho một
số callee
wrapup_time Number Không Thời gian chờ sau khi gọi cho một số callee
hotline_list list Không Danh sách đầu số để tự động chọn đầu số theo nhà mạng.
Thay cho đầu số mặc định
hotline_humber string Đầu số gọi ra
network string (‘Viettel’, ‘Vinaphone’, ‘MobiFone’, ‘Vietnamobile’, ‘Gmobile’, ‘iTelecom’,
’else’) Tên nhà mạng.
‘else’ là giá trị mặc định, dùng khi không tìm được đầu số nào cho cuộc gọi
hotline string Không Đầu số dùng để gọi ra. Khi trường này có giá trị thì sẽ ghi đè hotline_list
callee_list list Danh sách số máy nghe. Là số điện thoại ngoài hệ thống
callee string Số máy nghe
caller_list list Danh sách số máy gọi. Là số máy lẻ

Response:

  • Định dạng: json
Code Status Lỗi / message
200 True { ‘message’: ‘OK’,‘id’: ‘fhjwoafhuiowa2134-455342nf-4215’ }
400 400 Sai kiểu dữ liệu, dữ liệu không cho kết quả nào
401 401 Lỗi authen
404 404 URL api không đúng
403 403 không được quyền truy cập url
500 500 Lỗi hệ thống API

17. Xem chi tiết kịch bản auto dial

Mục đích: Xem kịch bản auto dial hiện tại

Endpoint: GET https://api-callcenter.bizflycloud.vn/v1/api/auto_dial/

id: id của auto_dial đã tạo

Header:

    Authorization: <api_key>
    Content-Type: application/json

Response:

  • Định dạng: json
  • Thành công: 200
{
    ‘type’: ‘awbnfuwab’, // kiểu auto dial
    ‘preview_time’: 0, // thời gian chờ trước khi gọi cho một callee
    ‘wrapup_time’: 0, // thời gian chờ sau khi kết thúc một cuộc gọi
    ‘hotline’: ‘0128732145’, // đầu số dùng để gọi auto dial
    ‘hotline_llist’ {
    {
        ‘hotline_number’: ‘091237841’, // đầu số để gọi auto dial
        ‘network’: ‘Viettel’ // nhà mạng trong hệ thống mạng điện thoại
        }, {}, …
    },
    ‘callee_list’: [
    {
        ‘callee’: ‘0123456789’, // số máy nghe
        ‘caller’: ‘12345’, //số máy gọi
        ‘start_time’: 12314566. // timestamp, thời gian bắt đầu xử lý cuộc gọi
        ‘state’: ‘success’, // trạng thái cuộc gọi
        ‘call_id’: ‘jui213781h-fn21ufnu2i1@$-jfionuif21-’// id của cuộc gọi sinh ra khi cuộc gọi được tạo từ api
        }
    ],,
    ‘caller_list’: [
    “100”,
    “200”,
    ….
    ]
}

Lỗi:

Code Status Lỗi / message
400 400 Sai kiểu dữ liệu, dữ liệu không cho kết quả nào
401 401 Lỗi authen
404 404 URL api không đúng
403 403 không được quyền truy cập url
500 500 Lỗi hệ thống API

18. Xóa kịch bản auto dial

Mục đích: Xóa kịch bản auto dial hiện tại

Endpoint: DELETE https://api-callcenter.bizflycloud.vn/v1/api/auto_dial/

id: id của auto_dial đã tạo

Header:

    Authorization: <api_key>
    Content-Type: application/json

Response:

  • Định dạng: json
    Code Status Lỗi / message
    200 True { ‘message’: ‘OK’ }
    400 400 Sai kiểu dữ liệu, dữ liệu không cho kết quả nào
    401 401 Lỗi authen
    404 404 URL api không đúng
    403 403 không được quyền truy cập url
    500 500 Lỗi hệ thống API

19. Chỉnh sửa auto dial

Mục đích: Xóa kịch bản auto dial hiện tại

Endpoint: PATCH https://api-callcenter.bizflycloud.vn/v1/api/auto_dial/

id: id của auto_dial đã tạo

Header:

    Authorization: <api_key>
    Content-Type: application/json

Request Data:

Tên trường dữ liệu Kiểu Bắt buộc Mô tả
type String(‘progressive’,’predictive’,’preview’) Không Kiểu auto dial
preview_time Number Không Thời gian chờ trước khi bắt đầu gọi cho một
số callee
wrapup_time Number Không Thời gian chờ sau khi gọi cho một số callee
hotline_list list Không Danh sách đầu số để tự động chọn đầu số theo nhà mạng.
Thay cho đầu số mặc định
hotline_humber string Đầu số gọi ra
network string (‘Viettel’, ‘Vinaphone’, ‘MobiFone’, ‘Vietnamobile’, ‘Gmobile’, ‘iTelecom’,
’else’) Tên nhà mạng.
‘else’ là giá trị mặc định, dùng khi không tìm được đầu số nào cho cuộc gọi
hotline string Không Đầu số dùng để gọi ra. Khi trường này có giá trị thì sẽ ghi đè hotline_list
callee_list list Không Danh sách số máy nghe. Là số điện thoại ngoài hệ thống
callee string Số máy nghe
caller_list list Không Danh sách số máy gọi. Là số máy lẻ

Response:

  • Định dạng: json
    Code Status Lỗi / message
    200 True { ‘message’: ‘OK’ }
    400 400 Sai kiểu dữ liệu, dữ liệu không cho kết quả nào
    401 401 Lỗi authen
    404 404 URL api không đúng
    403 403 không được quyền truy cập url
    500 500 Lỗi hệ thống API

20. Bật auto dial

Mục đích: Xóa kịch bản auto dial hiện tại

Endpoint: PUT https://api-callcenter.bizflycloud.vn/v1/api/auto_dial//activate

id: id của auto_dial đã tạo

Header:

    Authorization: <api_key>
    Content-Type: application/json

Response:

  • Định dạng: json
    Code Status Lỗi / message
    200 True { ‘message’: ‘OK’ }
    400 400 Sai kiểu dữ liệu, dữ liệu không cho kết quả nào
    401 401 Lỗi authen
    404 404 URL api không đúng
    403 403 không được quyền truy cập url
    500 500 Lỗi hệ thống API

21. Tắt auto dial

Mục đích: Xóa kịch bản auto dial hiện tại

Endpoint: PUT https://api-callcenter.bizflycloud.vn/v1/api/auto_dial//deactivate

id: id của auto_dial đã tạo

Header:

    Authorization: <api_key>
    Content-Type: application/json

Response:

  • Định dạng: json
    Code Status Lỗi / message
    200 True { ‘message’: ‘OK’ }
    400 400 Sai kiểu dữ liệu, dữ liệu không cho kết quả nào
    401 401 Lỗi authen
    404 404 URL api không đúng
    403 403 không được quyền truy cập url
    500 500 Lỗi hệ thống API

22. Lấy danh sách kịch bản auto dial

Mục đích: Xem kịch bản auto dial hiện tại

Endpoint: GET https://api-callcenter.bizflycloud.vn/v1/api/auto_dial

Header:

    Authorization: <api_key>
    Content-Type: application/json

Request Param

Tên trường dữ liệu Kiểu Bắt buộc Mô tả
limit string Không Giới hạn số bản ghi cho 1 lần request
offset string Không Số trang

Response:

  • Định dạng: json
  • Thành công: 200
{
    ‘status’: True
    ‘total': 21, // tổng số bản ghi
    ‘data’: [
    {
        ‘type’: ‘awbnfuwab’, // kiểu auto dial
        ‘preview_time’: 0, // thời gian chờ trước khi gọi cho một callee
        ‘wrapup_time’: 0, // thời gian chờ sau khi kết thúc một cuộc gọi
        ‘hotline’: ‘0128732145’, // đầu số dùng để gọi auto dial
        'hotline_llist’ {
    {
        ‘hotline_number’: ‘091237841’, // đầu số để gọi auto dial
        ‘network’: ‘Viettel’ // nhà mạng trong hệ thống mạng điện thoại
        }, {}, …
    },
    callee_list’: [
        {
        ‘callee’: ‘0123456789’, // số máy nghe
        ‘caller’: ‘12345’, //số máy gọi
        ‘start_time’: 12314566. // timestamp, thời gian bắt đầu xử lý cuộc gọi
        ‘state’: ‘success’, // trạng thái cuộc gọi
        ‘call_id’: ‘jui213781h-fn21ufnu2i1@$-jfionuif21-’// id của cuộc gọi sinh ra khi cuộc gọi được tạo từ api
        }
    ],,
    ‘caller_list’: [
    “100”,
    “200”,….
    ]
    },
    {},
]
    }

Lỗi:

Code Status Lỗi / message
400 400 Sai kiểu dữ liệu, dữ liệu không cho kết quả nào
401 401 Lỗi authen
404 404 URL api không đúng
403 403 không được quyền truy cập url
500 500 Lỗi hệ thống API

23. Lấy danh sách liên hệ

Mục đích: Lấy danh sách liên hệ

Đặc tả:

Endpoint: GET https://api-callcenter.bizflycloud.vn/v1/api/contacts

Header:

    Authorization: <api_key>
    Content-Type: application/json

Request Param

Tên trường dữ liệu Kiểu Bắt buộc Mô tả
limit string Không Giới hạn số bản ghi cho 1 lần request
offset string Không Số trang
search string Không tìm kiếm theo firstname, lastname và phone_number

Response:

Định dạng: json

Thành công: 200

{
    'total': 123, // tổng số máy lẻ
    'data': {
        [
        {
            'id': '123421', // id liên hệ
            'firstname’: 'Đêm Tên’', // tên và tên đệm
            'lastname': 'Họ', // Họ
            ‘full_name’: ‘Họ Tên’ // họ tên liên hệ
            ‘phone_number’: ‘0123456789’, // Số điện thoại
            ‘note’: ‘abc def ghik‘, // Mô tả của liên hệ
            }.
        {}.
        ]
    }

Lỗi:

Code Status Lỗi / message
400 400 Sai kiểu dữ liệu, dữ liệu không cho kết quả nào
401 401 Lỗi authen
404 404 URL api không đúng
403 403 không được quyền truy cập url
500 500 Lỗi hệ thống API

24. Thêm liên hệ

Mục đích: Lấy danh sách máy lẻ của user

Đặc tả:

Endpoint: POST https://api-callcenter.bizflycloud.vn/v1/api/contacts

Header:

    Authorization: <api_key>
    Content-Type: application/json

Request Data

Tên trường dữ liệu Kiểu Bắt buộc Mô tả
firstname string Không Tên và tên đệm. Không được có dấu và kí tự đặc biệt
lastname string Không Họ.
Không được có dấu và kí tự đặc biệt
phone_number string Số điện thoại
note string Không Mô tả liên hệ

Response:

  • Định dạng: json
    Code Status Lỗi / message
    200 True { ‘message’: {‘id’: ‘hufowa42fawfuo214afioa24214-’ // id của liên hệ}}
    400 400 Sai kiểu dữ liệu, dữ liệu không cho kết quả nào
    401 401 Lỗi authen
    404 404 URL api không đúng
    403 403 không được quyền truy cập url
    500 500 Lỗi hệ thống API

25. Sửa liên hệ

Mục đích:

Thêm một máy lẻ mới

Endpoint: PATCH https://api-callcenter.bizflycloud.vn/v1/api/contacts/<contact_id>

contact_id: id liên hệ

Header:

    Authorization: <api_key>
    Content-Type: application/json

Request Data

Tên trường dữ liệu Kiểu Bắt buộc Mô tả
firstname string Không Tên và tên đệm. Không được có dấu và kí tự đặc biệt
lastname string Không Họ.
Không được có dấu và kí tự đặc biệt
phone_number string Không Số điện thoại
note string Không Mô tả liên hệ

Response: Định dạng: json Định dạng: json

Code Status Lỗi / message
200 True { ‘message’: “message”: u"Delete Success"}
400 400 Sai kiểu dữ liệu, dữ liệu không cho kết quả nào
401 401 Lỗi authen
404 404 URL api không đúng
403 403 không được quyền truy cập url
500 500 Lỗi hệ thống API

26. Xóa liên hệ

Mục đích: Xóa một liên hệ

Endpoint: DELETE https://api-callcenter.bizflycloud.vn/v1/api/contacts/<contact_id>

contact_id: id liên hệ

Header:

    Authorization: <api_key>
    Content-Type: application/json

Response:

Định dạng: json

Code Status Lỗi / message
200 True { ‘message’: “message”: u"Delete Success"}
400 400 Sai kiểu dữ liệu, dữ liệu không cho kết quả nào
401 401 Lỗi authen
404 404 URL api không đúng
403 403 không được quyền truy cập url
500 500 Lỗi hệ thống API

27. Lấy một liên hệ

Mục đích: Lấy danh sách liên hệ

Đặc tả:

Endpoint: GET https://api-callcenter.bizflycloud.vn/v1/api/contacts/<contact_id>

contact_id: id liên hệ

Header:

    Authorization: <api_key>
    Content-Type: application/json

Response:

Định dạng: json

Thành công: 200

{
    'id': '123421', // id liên hệ
    'firstname’: 'Đêm Tên’', // tên và tên đệm
    'lastname': 'Họ', // Họ
    ‘full_name’: ‘Họ Tên’ // họ tên liên hệ
    'phone_number’: ‘0123456789’, // Số điện thoại
    ‘note’: ‘abc def ghik‘, // Mô tả của liên hệ
    }

Lỗi:

Định dạng: json

Code Status Lỗi / message
400 400 Sai kiểu dữ liệu, dữ liệu không cho kết quả nào
401 401 Lỗi authen
404 404 URL api không đúng
403 403 không được quyền truy cập url
500 500 Lỗi hệ thống API