Skip to content

Lịch sử gọi Campaign

API tra cứu lịch sử cuộc gọi trong chiến dịch.

Webhook: Cuộc gọi tự động hoàn tất

Khi một cuộc gọi tự động (auto call) hoàn tất, hệ thống sẽ gửi webhook event AUTO_CALL_COMPLETE tới URL đã đăng ký. Bản tin chứa đầy đủ thông tin: lịch sử cuộc gọi, ghi âmdữ liệu AI trích xuất.

Event: AUTO_CALL_COMPLETE

Phương thức: POST — Hệ thống gửi tới webhook URL đã cấu hình

Cấu trúc payload

Payload gồm 3 phần chính:

PhầnKiểuMô tả
autoCallLogObjectThông tin chi tiết cuộc gọi
autoCallAIExtractionObjectDữ liệu AI trích xuất từ cuộc hội thoại
autoCallRecordingObjectThông tin ghi âm cuộc gọi

autoCallLog — Lịch sử cuộc gọi

Tham sốKiểuMô tả
phoneStringSố điện thoại khách hàng
durationIntTổng thời lượng cuộc gọi (giây)
billsecIntThời lượng tính cước (giây)
dispositionStringTrạng thái cuộc gọi (ANSWER, NOANSWER, BUSY, ...)
hotlineCodeStringMã hotline (số tổng đài)
inputLogStringLog tương tác DTMF của khách hàng
voiceTextStringNội dung thoại đã chuyển thành văn bản (STT)
postageDoubleCước phí cuộc gọi
serviceChargeDoublePhí dịch vụ
memberNameStringTên thành viên thực hiện
memberAccIdStringAccount ID thành viên
answerAtLongThời điểm nghe máy (Unix timestamp ms)
endCallAtLongThời điểm kết thúc cuộc gọi (Unix timestamp ms)
botIdStringID của bot xử lý cuộc gọi
campaignNameStringTên chiến dịch
campaignGroupNameStringTên nhóm chiến dịch
templateScriptCodeStringMã kịch bản template
templateScriptNameStringTên kịch bản template
transIdStringMã giao dịch cuộc gọi (duy nhất)
createAtLongThời điểm tạo cuộc gọi (Unix timestamp ms)
postageServiceDoubleCước dịch vụ bổ sung
postageBotServiceDoubleCước dịch vụ bot
telcoCodeStringMã nhà mạng (VTL, VNP, VMS, ...)
projectCodeStringMã dự án
callNetStringLoại cuộc gọi (OFFNET, ONNET)
metaDataStringDữ liệu meta (JSON string) — các biến đầu vào kịch bản
metaDataDescriptionStringMô tả các trường meta (JSON string)
externalCallIdStringMã cuộc gọi từ hệ thống bên ngoài
callCollectedDataStringDữ liệu thu thập từ cuộc gọi (JSON string) — bao gồm cả kết quả AI

autoCallAIExtraction — Dữ liệu AI trích xuất

Tham sốKiểuMô tả
transIdStringMã giao dịch cuộc gọi
externalCallIdStringMã cuộc gọi từ hệ thống bên ngoài
callCollectedDataStringKết quả AI trích xuất (JSON string) — danh sách các trường dữ liệu

Cấu trúc mỗi item trong callCollectedData:

Tham sốKiểuMô tả
cfkeyStringKey của trường dữ liệu
cfnameStringTên hiển thị
cfvalueStringGiá trị AI trích xuất được
descriptionStringMô tả trường dữ liệu

autoCallRecording — Ghi âm cuộc gọi

Tham sốKiểuMô tả
transIdStringMã giao dịch cuộc gọi
externalCallIdStringMã cuộc gọi từ hệ thống bên ngoài
recordUrlStringURL tải file ghi âm (yêu cầu Bearer token)

Webhook: AI trích xuất cuộc gọi tự động

Khi AI hoàn tất trích xuất dữ liệu từ cuộc gọi tự động, hệ thống sẽ gửi webhook event AUTO_CALL_AI_EXTRACTION tới URL đã đăng ký.

Event: AUTO_CALL_AI_EXTRACTION

Phương thức: POST — Hệ thống gửi tới webhook URL đã cấu hình

Cấu trúc payload

Tham sốKiểuMô tả
transIdStringMã giao dịch cuộc gọi
externalCallIdStringMã cuộc gọi từ hệ thống bên ngoài
callCollectedDataStringKết quả AI trích xuất (JSON string) — danh sách các trường dữ liệu

Cấu trúc mỗi item trong callCollectedData:

Tham sốKiểuMô tả
cfkeyStringKey của trường dữ liệu
cfnameStringTên hiển thị
cfvalueStringGiá trị AI trích xuất được
descriptionStringMô tả trường dữ liệu

Webhook: Ghi âm cuộc gọi tự động

Khi file ghi âm cuộc gọi tự động sẵn sàng, hệ thống sẽ gửi webhook event AUTO_CALL_RECORDING tới URL đã đăng ký.

Event: AUTO_CALL_RECORDING

Phương thức: POST — Hệ thống gửi tới webhook URL đã cấu hình

Cấu trúc payload

Tham sốKiểuMô tả
transIdStringMã giao dịch cuộc gọi
externalCallIdStringMã cuộc gọi từ hệ thống bên ngoài
recordUrlStringURL tải file ghi âm (yêu cầu Bearer token)

Lấy hội thoại bot

GET[URL]/api/campaignCall/cdr/getBotConversation?vbot_id={vbot_id}&project_code={project_code}&bot_id={bot_id}&trans_id={trans_id}

Header

Tham sốGiá trị
AuthorizationBearer access_token

Tham số

Tham sốKiểuMô tả
vbot_idStringVBotID
project_codeStringMã nhóm
bot_idStringMã bot
trans_idStringMã giao dịch

Response

Tham sốKiểuMô tả
errorIntMã lỗi (0: Thành công, khác 0: Có lỗi)
messageStringThông tin
dataStringDữ liệu trả về

Ví dụ response

json
{
  "error": 2,
  "message": "sample string 3",
  "data": "sample string 4"
}

Lấy danh sách lịch sử gọi

GET[URL]/api/campaignCall/cdr/getAll?vbot_id={vbot_id}&project_code={project_code}&bot_id={bot_id}&campaign_code={campaign_code}&member={member}&template_script_code={template_script_code}&disposition={disposition}&key={key}&end_date={end_date}&start_date={start_date}&hotline={hotline}&input_log_search={input_log_search}&status={status}&page={page}&size={size}

Header

Tham sốGiá trị
AuthorizationBearer access_token

Tham số

Tham sốKiểuMô tả
vbot_idStringVBotID
project_codeStringMã nhóm
bot_idStringMã bot
campaign_codeStringMã chiến dịch
memberStringThành viên
template_script_codeStringMã template kịch bản
dispositionStringTrạng thái cuộc gọi. Xem bảng giá trị disposition
keyStringTừ khóa tìm kiếm
end_dateIntNgày kết thúc
start_dateIntNgày bắt đầu
hotlineStringHotline
input_log_searchStringTìm kiếm log
statusIntTrạng thái
pageIntSố trang
sizeIntSố lượng trên 1 trang

Giá trị disposition

Giá trịMô tả
misscallCuộc gọi nhỡ
answerNghe máy
busyMáy bận
noanswerKhông trả lời
cancelCuộc gọi bị hủy
congestionLỗi mạng
chanunavailKhông liên lạc được
dontcallNgười nhận từ chối
tortureLỗi mạng
invalidargsTham số không hợp lệ
someoneansweredNgười khác đã nghe máy
logoutĐã đăng xuất
botivrCallBot
moreKhông trả lời

Response

Tham sốKiểuMô tả
errorIntMã lỗi (0: Thành công, khác 0: Có lỗi)
messageStringThông tin

Ví dụ response

json
{
  "error": 2,
  "message": "sample string 3",
  "data": [
    {
      "phone": "sample string 1",
      "name": "sample string 2",
      "customer_uid": "sample string 3",
      "duration": 4,
      "billsec": 5,
      "sip_code": "sample string 6",
      "disposition": "sample string 7",
      "input_log": "sample string 8",
      "status": 9,
      "postage": 10.1,
      "service_charge": 11.1,
      "postage_bot_service": 12.1,
      "member": {
        "name": "sample string 1",
        "color": "sample string 2",
        "vbot_id": "sample string 3"
      },
      "hotline": {
        "code": "sample string 1",
        "name": "sample string 2",
        "phone_number": "sample string 3"
      },
      "call_collected_data": [
        {
          "cfkey": "sample string 1",
          "cfname": "sample string 2",
          "cfvalue": "sample string 3",
          "description": "sample string 4"
        },
        {
          "cfkey": "sample string 1",
          "cfname": "sample string 2",
          "cfvalue": "sample string 3",
          "description": "sample string 4"
        }
      ],
      "answer_at": 13,
      "end_call_at": 14,
      "campaign_name": "sample string 15",
      "campaign_code": "sample string 16",
      "campaign_group_name": "sample string 17",
      "campaign_group_code": "sample string 18",
      "template_script_name": "sample string 19",
      "template_script_code": "sample string 20",
      "voice_text": "sample string 21",
      "create_at": 22,
      "bot_id": "sample string 23",
      "trans_id": "sample string 24",
      "create_by": "sample string 25",
      "score": 26.1,
      "is_record": true
    },
    {
      "phone": "sample string 1",
      "name": "sample string 2",
      "customer_uid": "sample string 3",
      "duration": 4,
      "billsec": 5,
      "sip_code": "sample string 6",
      "disposition": "sample string 7",
      "input_log": "sample string 8",
      "status": 9,
      "postage": 10.1,
      "service_charge": 11.1,
      "postage_bot_service": 12.1,
      "member": {
        "name": "sample string 1",
        "color": "sample string 2",
        "vbot_id": "sample string 3"
      },
      "hotline": {
        "code": "sample string 1",
        "name": "sample string 2",
        "phone_number": "sample string 3"
      },
      "call_collected_data": [
        {
          "cfkey": "sample string 1",
          "cfname": "sample string 2",
          "cfvalue": "sample string 3",
          "description": "sample string 4"
        },
        {
          "cfkey": "sample string 1",
          "cfname": "sample string 2",
          "cfvalue": "sample string 3",
          "description": "sample string 4"
        }
      ],
      "answer_at": 13,
      "end_call_at": 14,
      "campaign_name": "sample string 15",
      "campaign_code": "sample string 16",
      "campaign_group_name": "sample string 17",
      "campaign_group_code": "sample string 18",
      "template_script_name": "sample string 19",
      "template_script_code": "sample string 20",
      "voice_text": "sample string 21",
      "create_at": 22,
      "bot_id": "sample string 23",
      "trans_id": "sample string 24",
      "create_by": "sample string 25",
      "score": 26.1,
      "is_record": true
    }
  ]
}

Lấy số lượng lịch sử gọi

GET[URL]/api/campaignCall/cdr/countAll?vbot_id={vbot_id}&project_code={project_code}&bot_id={bot_id}&campaign_code={campaign_code}&member={member}&template_script_code={template_script_code}&disposition={disposition}&key={key}&end_date={end_date}&start_date={start_date}&hotline={hotline}&input_log_search={input_log_search}&status={status}&page={page}&size={size}

Header

Tham sốGiá trị
AuthorizationBearer access_token

Tham số

Tham sốKiểuMô tả
vbot_idStringVBotID
project_codeStringMã nhóm
bot_idStringMã bot
campaign_codeStringMã chiến dịch
memberStringThành viên
template_script_codeStringMã template kịch bản
dispositionStringTrạng thái cuộc gọi
keyStringTừ khóa tìm kiếm
end_dateIntNgày kết thúc
start_dateIntNgày bắt đầu
hotlineStringHotline
input_log_searchStringTìm kiếm log
statusIntTrạng thái
pageIntSố trang
sizeIntSố lượng trên 1 trang

Response

Tham sốKiểuMô tả
errorIntMã lỗi (0: Thành công, khác 0: Có lỗi)
messageStringThông tin
dataIntDữ liệu trả về

Ví dụ response

json
{
  "error": 2,
  "message": "sample string 3",
  "data": 4
}