D
API Reference

Chat Lifecycle

Endpoint lifecycle chat — handle_chat, chat_finish, chat_open, chat_pending, chat_move, chats/request-escalate, chats/finish-escalate. Detail request param dan response.

Endpoint untuk mengubah status percakapan — finish, open, pending, move, escalate ke warehouse.

POST /v1/handle_chat

Toggle flag HandleByBot pada chat list (aktifkan/nonaktifkan bot).

Handler: handlers/chat_live.go:2186 HandleChat

Request body

FieldTipeWajibDeskripsi
nohpstring✅Nomor customer
instancestring✅Device instance
handleByBotbool❌true = bot aktif, false = bot nonaktif

Response (sukses)

json
{
  "result": true,
  "message": "success change handel chat"
}

Response (error)

json
{"result": false, "message": "<err>"}

POST /v1/chat_finish

Tutup (finish) percakapan.

Handler: handlers/chat_live.go:1854 FinishChat

Request body

FieldTipeWajibDeskripsi
nohpstring✅Nomor customer
instancestring✅Device instance
teamstring✅Team ID

Response (sukses)

json
{"result": true, "message": "success finish chat"}

Response (error)

json
{"result": false, "message": "<err>"}

Error sources: GetTeam, GetOneChatInbox (last), UpdateManyChatInbox, UpdateChatlist, UpdateChatHistory. Juga memanggil submitPoint(EngineUri + "update-chatlist", ...) untuk update WA gateway.


POST /v1/chat_open

Buka kembali (open) percakapan yang sudah di-close/pending.

Handler: handlers/chat_live.go:2086 OpenChat

Request body

FieldTipeWajibDeskripsi
nohpstring✅Nomor customer
instancestring✅Device instance
teamstring✅Team ID

Response (sukses)

json
{"result": true, "message": "success open chat"}

Response (error)

json
{"result": false, "message": "<err>"}

Error sources: GetTeam, UpdateManyChatInbox, UpdateChatlist, UpdateLastChatHistory.


POST /v1/chat_pending

Set percakapan ke status pending.

Handler: handlers/chat_live.go:1972 PendingChat

Request body

FieldTipeWajibDeskripsi
nohpstring✅Nomor customer
instancestring✅Device instance
teamstring✅Team ID

Response (sukses)

json
{"result": true, "message": "success pending chat"}

Response (error)

json
{"result": false, "message": "<err>"}

POST /v1/chat_move

Pindahkan percakapan ke CS lain.

Handler: handlers/chat_live.go:2212 MoveChat

Request body

FieldTipeWajibDeskripsi
nohpstring✅Nomor customer
instancestring✅Device instance
teamstring✅Team ID (current)
id_csstring❌CS ID tujuan (kosong = unassign)

Response (sukses)

json
{"result": true, "message": "success move chat"}

Response (error)

KondisiBody
GetTeam gagal{"result": false, "message": "<err>"}
GetTeam(id_cs) gagal{"result": false, "message": "<err>"} (jika id_cs != "")
History tidak ditemukan{"result": false, "message": "History tidak ditemukan"}
Chat sudah di-move{"result": false, "message": "Chat telah di Move/Assign"}
Update gagal{"result": false, "message": "<err>"}

POST /v1/chats/request-escalate

Alias: POST /v1/chat_requesthandle. Eskalasi percakapan ke warehouse (handle gudang).

Handler: handlers/chat_live.go:2415 RequestHandleWarehouse

Request body (multipart/form-data)

FieldTipeWajibDeskripsi
storeIdstring✅Store ID
teamstring✅Team ID
instancestring✅Device instance
nohpstring✅Nomor customer
chatIdstring❌Chat ID
complaint_titlestring❌Judul keluhan
complaint_detailstring❌Detail keluhan (max 5000 char)
filefile❌File pendukung (image/document)

Response (sukses)

json
{
  "result": true,
  "message": "success create request handle gudang",
  "data": {/* bson.M updated chat list */},
  "handling": {/* bson.M created handle gudang */}
}

Response (error)

KondisiStatusBody
Detail keluhan > 5000 char400{"result": false, "message": "Detail Keluhan tidak boleh melebihi dari 5000 karakter"}
FormFile error200{"result": false, "message": "Terjadi kendala saat memproses file", "error": "<err>"}
Upload S3 gagal200{"result": false, "message": "Gagal Saat upload Berkas Pendukung, harap coba lagi", "error": "<msg>"}
Chat sudah di-handle gudang200{"result": false, "message": "Chat on proccess handle by Gaudang"}
Tim gudang tidak ditemukan200{"result": false, "message": "Tidak dapat menemukan Tim Gudang..."}
Lainnya200{"result": false, "message": "<err>"}

POST /v1/chats/finish-escalate

Alias: POST /v1/chat_finishhandle. Selesaikan eskalasi warehouse.

Handler: handlers/chat_live.go:2633 FinishHandleWarehouse

Request body

FieldTipeWajibDeskripsi
nohpstring✅Nomor customer
instancestring✅Device instance
teamstring✅Team ID

Response (sukses)

json
{"result": true, "message": "success finish handle gudang"}

Response (error)

json
{"result": false, "message": "<err>"}

Error sources: GetTeam, UpdateHandleGudang, UpdateChatlist.


Kembali ke