Endpoint untuk mengubah status tiket live chat. Saat status berubah, handler membuat chat history baru dan mengirim notifikasi ke customer.
POST /v1/change_ticket_status
Update status tiket live chat.
Handler: handlers/chat_ticket.go:24 UpdateStatusTicket
Request body
ChatLivePayload struct:
| Field | Tipe | Wajib | Deskripsi |
|---|---|---|---|
ticket | string | ✅ | Ticket ID |
status | string | ✅ | Status baru |
team | string | ❌ | Team ID |
nohp | string | ❌ | Nomor customer |
instance | string | ❌ | Device instance |
Behavior
- Ambil ticket dari
livechat_tickets(CRM DB) - Resolve device via
GetDeviceCrm - Ambil customer + team + user
- Cek chat history existing — jika sudah ada, reject (
"cant update status ticket, contact already running other session on this device") - Create
ChatHistoryCRM - Update
BotProccessCRM - Update
LivechatTicket(status) - Build
Payload+ panggilsaveMessageMongoCrmuntuk kirim notif ke customer
Response (sukses)
{
"result": true,
"message": "success update ticket status",
"ids": ["inbox-id-1"],
"data": {/* ChatInboxStruct */}
}Response (error)
| Kondisi | Body |
|---|---|
| GetLivechatTicket gagal | {"result": false, "message": "<err>"} |
| GetDeviceCrm gagal | {"result": false, "message": "<err>"} |
| GetCustomer gagal | {"result": false, "message": "Cant get customer : <err>"} |
| GetTeam gagal | {"result": false, "message": "Cant get team : <err>"} |
| GetUser gagal | {"result": false, "message": "Cant get user : <err>"} |
| Chat history sudah ada | {"result": false, "message": "cant update status ticket, contact already running other session on this device"} |
| CreateChatHistoryCRM gagal | {"result": false, "message": "<err>"} |
| UpdateBotProccessCRM gagal | {"result": false, "message": "<err>"} |
| UpdateLivechatTicket gagal | {"result": false, "message": "<err>"} |
| saveMessageMongoCrm gagal | {"result": false, "message": "<err>"} |
Contoh request
curl -X POST https://api.dazo.id/v1/change_ticket_status \
-H "Authorization: Bearer <jwt>" \
-H "Content-Type: application/json" \
-d '{
"ticket": "ticket-uuid-xxx",
"status": "open",
"team": "team-1",
"nohp": "62812xxxx",
"instance": "device-instance-xxx"
}'Kembali ke
- API Reference Index — daftar semua grup
- Multi-tenant — kenapa ini pakai CRM DB