Lewati ke konten

Event & payload

Tiga event webhook CSKU, contoh JSON lengkap, dan arti setiap field.

Setiap request webhook berisi satu pesan dan satu event. Bentuk payload sama untuk semua event; hanya field message.agent dan message.ai yang muncul sesuai event.

Daftar event

EventKapan dikirim
channel.message_inPesan pelanggan masuk dan tersimpan. Berlaku untuk semua channel, termasuk Webchat, dan tetap dikirim walau percakapan sedang ditangani agen.
ai.message_generatedAI agent selesai membuat balasan dan balasan tersimpan, tepat sebelum dikirim ke pelanggan.
agent.message_outBalasan agen dari dashboard atau aplikasi mobile berhasil terkirim ke channel. Termasuk pesan sistem CSAT (permintaan penilaian dan ucapan terima kasih).

Jeda balasan AI

AI agent menunggu sekitar 30 detik untuk menggabungkan beberapa pesan pelanggan sebelum membalas. Jadi ai.message_generated biasanya datang beberapa detik sampai sekitar 30 detik setelah channel.message_in terakhir.

Pesan dari Public API tidak memicu webhook

Pesan yang Anda kirim lewat Kirim pesan (POST /v1/message) atau lewat Proxy WABA tidak memicu agent.message_out. Sistem Anda sudah tahu pesan itu, jadi catat langsung di sisi Anda.

Contoh payload

channel.message_in

JSON
{
  "event": "channel.message_in",
  "timestamp": 1792041600,
  "conversation_id": "CO_01JQ8Z3K4M5N6P7R8S9T0V1W2X",
  "conversation_label": "Budi Santoso",
  "need_human": 0,
  "message": {
    "id": "MSG_01JQ8Z3M2A7B8C9D0E1F2G3H4J",
    "sender_name": "Budi Santoso",
    "channel": {
      "id": "WHATSAPP_01JP4R6T8V0X2Z4B6D8F0H2K4M",
      "name": "CS Toko Utama",
      "engine": "whatsapp"
    },
    "bisnis": {
      "id": "BIZ241005ABC1234",
      "name": "Rina Wijaya"
    },
    "user": {
      "id": "MER241005XYZ0001",
      "name": "Rina Wijaya"
    },
    "content": {
      "type": "text",
      "text": "Halo kak, pesanan saya sudah dikirim belum?"
    }
  }
}

ai.message_generated

JSON
{
  "event": "ai.message_generated",
  "timestamp": 1792041631,
  "conversation_id": "CO_01JQ8Z3K4M5N6P7R8S9T0V1W2X",
  "conversation_label": "Budi Santoso",
  "need_human": 0,
  "message": {
    "id": "MSG_01JQ8Z4N9Q1R2S3T4U5V6W7X8Y",
    "sender_name": "Asisten - Sari",
    "channel": {
      "id": "WHATSAPP_01JP4R6T8V0X2Z4B6D8F0H2K4M",
      "name": "CS Toko Utama",
      "engine": "whatsapp"
    },
    "bisnis": {
      "id": "BIZ241005ABC1234",
      "name": "Rina Wijaya"
    },
    "user": {
      "id": "MER241005XYZ0001",
      "name": "Rina Wijaya"
    },
    "content": {
      "type": "text",
      "text": "Halo Kak Budi, pesanan Kakak sudah dikirim hari ini via JNE ya."
    },
    "ai": {
      "name": "Sari",
      "id": "AI241005QWE5678"
    }
  }
}

agent.message_out

JSON
{
  "event": "agent.message_out",
  "timestamp": 1792041900,
  "conversation_id": "CO_01JQ8Z3K4M5N6P7R8S9T0V1W2X",
  "conversation_label": "Budi Santoso",
  "need_human": 1,
  "message": {
    "id": "MSG_01JQ8Z8D3F4G5H6J7K8L9M0N1P",
    "sender_name": "Dewi",
    "channel": {
      "id": "WHATSAPP_01JP4R6T8V0X2Z4B6D8F0H2K4M",
      "name": "CS Toko Utama",
      "engine": "whatsapp"
    },
    "bisnis": {
      "id": "BIZ241005ABC1234",
      "name": "Rina Wijaya"
    },
    "user": {
      "id": "MER241005XYZ0001",
      "name": "Rina Wijaya"
    },
    "content": {
      "type": "image",
      "attachments": [
        {
          "url": "https://bukakios-storage.b-cdn.net/chat/resi-budi.jpg",
          "mime_type": "image/jpeg"
        }
      ]
    },
    "agent": {
      "name": "Dewi"
    }
  }
}

Referensi field

FieldTipeKeterangan
eventstringNama event. Lihat daftar event.
timestampintegerUnix time (detik) saat request dikirim. Berubah di setiap retry, jadi jangan dipakai untuk deduplikasi.
conversation_idstringID percakapan. Sama dengan conversation_id di Public API.
conversation_labelstringNama tampilan percakapan, biasanya nama pelanggan.
need_humaninteger1 jika percakapan sedang ditangani agen (AI berhenti membalas), 0 jika tidak.
message.idstringID unik pesan. Pakai untuk deduplikasi.
message.sender_namestringNama pengirim: pelanggan, AI agent, atau agen. Bisa kosong untuk pesan sistem.
message.channel.idstringID channel di CSKU.
message.channel.namestringLabel channel yang Anda isi di Integrasi.
message.channel.enginestringJenis channel. Lihat nilai engine.
message.bisnis.idstringBusiness ID Anda.
message.bisnis.namestringNama akun pemilik bisnis.
message.user.idstringID akun pemilik bisnis.
message.user.namestringNama akun pemilik bisnis.
message.contentobjectIsi pesan. Lihat tipe konten.
message.agent.namestringHanya di agent.message_out. Nama agen yang membalas.
message.ai.namestringHanya di ai.message_generated, jika channel punya AI agent. Label AI agent.
message.ai.idstringID AI agent.

Tipe konten

Pesan teks:

JSON
{ "type": "text", "text": "Halo kak" }

Pesan selain teks memakai attachments. url berisi alamat file, mime_type berisi tipe file.

JSON
{
  "type": "document",
  "attachments": [
    { "url": "https://bukakios-storage.b-cdn.net/chat/invoice.pdf", "mime_type": "application/pdf" }
  ]
}

Contoh nilai type: image, video, audio, document. Nilai lain bisa muncul tergantung channel. Perlakukan type selain text yang tidak Anda kenal sebagai lampiran biasa.

Caption tidak ikut

Untuk pesan media, payload hanya berisi url dan mime_type. Teks caption tidak disertakan.

Nilai engine

engineChannel
whatsappWhatsApp (Scan QR)
wabaWhatsApp API (Token manual)
whatsapp_metaWhatsApp API (Login Meta)
telegramTelegram
instagramInstagram
facebookFacebook
intercomIntercom
slackSlack
socialchatSocialChat
webchatWebchat