Outbound Webhooks
Webhook ialah cara Reply.la beritahu sistem anda secara automatik bila sesuatu berlaku. Outbound Webhooks hantar event akaun anda (kejadian seperti mesej masuk atau contact baru) terus ke alamat web milik anda, sebaik sahaja ia berlaku. Bila ada mesej atau contact baru, CRM anda boleh terus dikemas kini, atau automasi dalam tool seperti n8n, Make atau Zapier boleh terus berjalan. Tiada siapa perlu salin data secara manual.
Sebelum Mula
- Plan anda - Webhook bergantung pada plan anda. Kalau plan anda belum termasuk, page ini akan tunjuk Webhooks are not in your plan yet bersama butang View plans.
- Peranan anda - Peranan anda perlu ada kebenaran untuk urus integration.
- Alamat penerima - Anda perlukan alamat HTTPS yang boleh terima request
POST, iaitu alamat web yang sedia menerima data yang dihantar kepadanya. Tool automasi atau developer anda boleh sediakan alamat ini.
Tambah Endpoint
Endpoint ialah alamat yang terima event anda. Setiap organisasi boleh ada sehingga 5 endpoint.
- Klik Integrations dalam sidebar, kemudian klik Configure pada Outbound Webhook. Page Webhooks akan dibuka.
- Klik Add endpoint.
- Di bawah Name, beri nama yang mudah anda kenal, contohnya "My CRM webhook".
- Di bawah Endpoint URL, paste alamat itu. Ia mesti bermula dengan
https://. Port khas dan alamat private atau dalaman akan ditolak. - Di bawah Channel filter, kekalkan All channels atau pilih device tertentu. Rujuk Channel Filter.
- Di bawah Events, tanda event yang anda mahu, atau tanda Select all.
- Klik Create endpoint.
- Dalam Save your signing secret, klik Copy dan simpan signing secret itu di tempat yang selamat. Ini kunci rahsia yang server anda guna untuk sahkan setiap event yang sampai betul-betul dari Reply.la. Kemudian klik I have saved it.
Event Yang Boleh Dipilih
Tanda event satu per satu, ikut kumpulan, atau semua sekali gus. Nama dalam code ialah nama event yang server anda akan terima.
| Kumpulan | Event |
|---|---|
| Tokens & usage | Token usage threshold reached (tokens.usage_threshold_reached), Tokens exhausted (tokens.exhausted) |
| Product activation | Channel connected (channel.connected), Channel disconnected (channel.disconnected), Chatbot created (chatbot.created), Chatbot published (chatbot.published), Chatbot connected to channel (chatbot.connected_to_channel), Chatbot disconnected from channel (chatbot.disconnected_from_channel) |
| Labels | Label assigned (label.assigned), Label removed (label.removed), Label created (label.created), Label deleted (label.deleted) |
| Contacts | Contact created (contact.created), Contact updated (contact.updated), Contact deleted (contact.deleted), Contact import completed (contact.import_completed), Contacts merged (contact.merged), Contact merge reverted (contact.merge_reverted) |
| Messages | Message received (message.received), Message sent (message.sent), Message failed (message.failed) |
| Conversations | Conversation started (conversation.started), Conversation window closing (conversation.window_closing) |
| AI handover | AI handover requested (ai.handover_requested), AI handover resolved (ai.handover_resolved) |
| Broadcasts | Broadcast scheduled (blast.scheduled), Broadcast started (blast.started), Broadcast paused (blast.paused), Broadcast completed (blast.completed), Broadcast failed (blast.failed), Broadcast cancelled (blast.cancelled), Broadcast unsubscribed (blast.unsubscribed) |
Endpoint yang langgan semua event juga akan terima event baru yang ditambah pada masa depan.
Setiap delivery, iaitu setiap penghantaran event ke endpoint anda, membawa maklumat customer seperti isi mesej dan nombor telefon. Guna alamat yang anda percaya sahaja.
Channel Filter
Guna Channel filter bila satu endpoint cuma perlu tahu tentang device WhatsApp tertentu. Dengan All channels, tiada apa yang ditapis, dan device yang anda sambung kemudian turut termasuk.
Event bertanda Whole account sentiasa sampai, sebab ia tidak terikat kepada satu device.
Label assigned dan Label removed hanya lepas filter bila label itu berubah di dalam perbualan pada device yang anda pilih. Label yang berubah dari page Contacts atau REST API tidak dihantar kepada endpoint yang ditapis. Guna All channels kalau anda perlukan setiap perubahan label.
Hantar Test Event
- Pada endpoint itu, klik ikon hantar (Send test event).
- Pilih satu event.
- Klik Send test event.
- Buka tab Delivery Log untuk tengok hasilnya.
Test ini hantar contoh payload (isi data event) dengan bentuk yang sama seperti event sebenar. Endpoint mesti dihidupkan, sebab endpoint yang di-pause tidak hantar apa-apa. Kalau terlalu banyak test dihantar dalam masa singkat, tunggu seminit dan cuba lagi.
Sahkan Delivery
Sesiapa sahaja boleh jumpa atau teka alamat web, jadi server anda perlu semak yang setiap request betul-betul datang dari Reply.la. Bahagian ini untuk developer anda.
Setiap delivery ialah POST dengan body JSON dan header ini:
X-Replyla-Signature: t=UNIX_SECONDS,v1=SIGNATURE
- Baca
tdanv1daripada header. - Tolak request itu kalau
tberbeza lebih 300 saat daripada jam server anda. - Bina teks yang ditandatangani: nilai
t, satu titik, kemudian raw request body. - Kira HMAC SHA256 bagi teks itu, dengan signing secret endpoint itu sebagai kunci.
- Bandingkan hasilnya dengan
v1menggunakan constant time comparison. - Selepas itu barulah baca body.
Tab Docs pada page Webhooks ada rujukan penuh: format request, contoh code dalam Node dan PHP, serta payload tepat bagi setiap event. Klik Copy all as Markdown untuk serahkan kepada developer atau ejen AI anda.
Server anda juga perlu:
- Jawab dengan mana-mana status
2xxdalam masa 10 saat. Kalau tidak, cubaan itu dikira gagal. - Abaikan event yang berulang dengan semak
occurrence_key. Event yang sama boleh sampai lebih daripada sekali, dan event juga boleh sampai tidak ikut turutan.
Delivery Log dan Retry
Kalau server anda tidak jawab dengan 2xx, Reply.la akan cuba lagi secara automatik, sehingga 3 cubaan bagi setiap event: lebih kurang 30 saat selepas cubaan pertama, kemudian lebih kurang 2 minit selepas cubaan kedua.
Tab Delivery Log tunjuk Event, Delivery, Endpoint, Status, Attempts dan Time bagi setiap cubaan. Sejarah ini disimpan selama 14 hari.
| Status | Maksud |
|---|---|
| Queued | Sedang menunggu untuk dihantar. |
| Retrying | Satu cubaan gagal, dan cubaan seterusnya akan menyusul. |
| Delivered | Server anda sudah jawab dengan 2xx. |
| Failed | Semua cubaan sudah habis. |
- Cari delivery - Guna Search event or endpoint, atau tapis ikut status, endpoint atau event.
- Tengok apa yang berlaku - Klik View detail untuk tengok request yang Reply.la hantar dan response daripada server anda.
- Hantar semula - Klik Retry delivery pada baris Failed, selepas server anda dibetulkan.
- Tengok satu endpoint - Pada tab Endpoints, klik View delivery history pada endpoint itu.
Urus Endpoint
Setiap endpoint pada tab Endpoints tunjuk status, alamat dan event yang dilanggan.
| Status | Maksud |
|---|---|
| Active | Event sedang dihantar. |
| Paused | Dimatikan oleh anda. Hidupkan semula untuk sambung penghantaran. |
| Auto-disabled | Reply.la matikan selepas penghantaran berulang kali gagal. Betulkan server anda, kemudian hidupkan semula. |
- Suis - Hidupkan atau matikan endpoint.
- Edit endpoint - Tukar nama, alamat, channel filter atau event, kemudian klik Save changes.
- Rotate - Dapatkan signing secret baru. Secret lama terus berhenti berfungsi, jadi delivery akan gagal sehingga server anda dikemas kini.
- Delete endpoint - Buang endpoint itu bersama sejarah delivery yang berkaitan. Ini tidak boleh dibatalkan.
Soalan Lazim
Kemas kini terakhir: 6 November 2026