Administration

Webhook (Outbound)

Mengirim event proses AlurKerja (process.started, task.assigned, task.completed, task.delegated) ke sistem Anda sendiri lewat HTTP webhook bertanda tangan, dari tab Webhook di Workspace Setting.

Outbound Webhook mendorong (push) event proses AlurKerja ke sistem Anda sendiri lewat HTTP webhook bertanda tangan, sehingga sistem eksternal (ERP, CRM, data lake, dsb.) tidak perlu terus-menerus melakukan polling. Setiap kali sebuah event terjadi — misalnya sebuah proses dimulai atau sebuah task di-assign — AlurKerja akan mengirim POST berisi data event ke URL yang Anda daftarkan.

Fitur ini diatur dari tab Webhook pada Workspace Setting, bersebelahan dengan tab Notification.

Tab Webhook adalah konfigurasi admin workspace, bukan setting end-user — subscription menyimpan signing secret. Anda membutuhkan role Owner atau Admin SOP untuk mengaksesnya.

Prasyarat

  1. Role Owner atau Admin SOP pada workspace.
  2. Sebuah endpoint penerima (receiver) yang dapat menerima HTTP POST dan membalas 2xx. Untuk uji coba, Anda bisa memakai layanan seperti webhook.site.
  3. Delivery worker aktif di environment (ENABLE_WEBHOOK_DELIVERY_WORKER=true). Tanpa worker ini, subscription tetap bisa dibuat dan event tetap masuk antrian, tetapi statusnya berhenti di pending dan tidak pernah terkirim. Hubungi tim infra bila pengiriman tidak berjalan sama sekali.

Membuka Tab Webhook

  1. Dari sidebar Studio, buka Workspace Setting.
  2. Pilih tab Webhook.

Halaman Outbound Webhooks menampilkan seluruh subscription yang sudah ada. Setiap kartu menampilkan nama, transport (HTTP), status (Active/paused), badge Signed bila memakai signing secret, URL tujuan, daftar event, tanggal dibuat, serta tombol Deliveries, Edit, dan Delete.

Tab Webhook pada Workspace Setting menampilkan daftar subscription

Membuat Subscription

Klik Add Subscription. Sebuah panel (drawer) akan terbuka di sisi kanan.

Form New Webhook Subscription

Isi kolom berikut:

KolomKeterangan
NameLabel untuk keperluan admin. Tidak dikirim ke subscriber.
ActiveBila menyala, event dikirim. Matikan untuk pause pengiriman tanpa menghapus subscription maupun riwayatnya.
Target URLSetiap event di-POST ke sini. Respons 2xx dihitung terkirim; selain itu akan di-retry.
Signing secretKunci untuk menandatangani setiap pengiriman. Kosongkan agar sistem membuatkan secret otomatis (disarankan).
EventsPilih event yang ingin dilangganani. Selama tidak ada yang dipilih, tidak ada yang dikirim. Gunakan Select all untuk memilih semua.
Form subscription terisi dengan URL dan seluruh event dipilih

Setelah lengkap, klik Create Subscription.

Daftar Event yang Tersedia

EventKapan diterbitkan
process.startedSebuah process instance dimulai
task.assignedSebuah user task di-assign ke user
task.completedSebuah user task diselesaikan
task.delegatedSebuah user task di-delegate ke user lain

Payload event membawa seluruh variable proses/task terkait secara utuh, sehingga subscriber menerima konteks lengkap tanpa perlu memanggil API tambahan.

Menyalin Signing Secret (Sekali Tampil)

Bila Anda membiarkan kolom Signing secret kosong, sistem membuatkan secret dan menampilkannya satu kali tepat setelah subscription dibuat.

Banner signing secret yang hanya ditampilkan sekali setelah subscription dibuat

Salin secret ini sekarang juga. Secret disimpan terenkripsi dan tidak akan pernah ditampilkan lagi. Jika hilang, satu-satunya jalan adalah me-rotate-nya (lihat Mengubah & Rotasi Secret). Simpan secret di tempat aman — jangan tampilkan di dokumentasi publik atau commit ke git.

Klik Copy untuk menyalin, lalu I saved it untuk menutup banner.

Memverifikasi Signature (HMAC)

Setiap pengiriman membawa dua header:

  • X-AlurKerja-Signature: v1=<HMAC-SHA256>
  • X-AlurKerja-Timestamp: <unix-timestamp>

Signature dihitung dengan HMAC-SHA256 memakai signing secret Anda, atas string gabungan "<timestamp>.<body>" (timestamp, tanda titik, lalu body mentah). Di sisi penerima:

  1. Baca X-AlurKerja-Timestamp dan body mentah request.
  2. Susun ulang string "<timestamp>.<body>".
  3. Hitung HMAC-SHA256 memakai signing secret, bandingkan dengan nilai pada X-AlurKerja-Signature.
  4. Tolak bila tidak cocok, atau bila timestamp sudah terlalu lama (mencegah replay attack).

Memantau Pengiriman (Deliveries)

Klik Deliveries pada sebuah subscription untuk melihat riwayat pengiriman.

Panel Deliveries menampilkan riwayat pengiriman beserta status dan tombol Replay

Panel ini menampilkan setiap pengiriman beserta Event, Status, jumlah Attempts, waktu Queued dan Finished. Gunakan filter status di atas — All, Pending, Processing, Completed, Failed — dan tombol Refresh untuk memuat data terbaru.

StatusArti
PendingMasih menunggu diproses worker
ProcessingSedang dikirim
CompletedPenerima membalas 2xx
FailedGagal setelah seluruh percobaan retry habis (kolom Attempts, misalnya 5/5). Kolom Status menampilkan penyebabnya, misalnya receiver responded 404.

Replay — untuk pengiriman yang failed, klik Replay untuk mengantrikan ulang pengiriman tersebut. Replay hanya berlaku untuk delivery yang sudah gagal; baris pending/processing masih ditangani worker.

Mengubah & Rotasi Secret

Klik Edit pada subscription untuk mengubah nama, status Active, Target URL, daftar event, atau me-rotate secret.

Panel Edit subscription dengan kolom Rotate signing secret dan daftar event
  • Rotate signing secretkosongkan untuk mempertahankan secret yang sekarang. Isi hanya bila ingin mengganti secret; secret baru juga akan ditampilkan sekali setelah disimpan, dan secret lama langsung tidak berlaku. Keterangan "A signing secret is currently set" menandakan subscription sudah punya secret.
  • Pause — matikan toggle Active untuk menghentikan pengiriman sementara tanpa kehilangan subscription maupun riwayatnya.

Klik Save Changes untuk menyimpan.

Menghapus Subscription

Klik Delete, lalu konfirmasi pada dialog.

Dialog konfirmasi hapus subscription

Subscription beserta pengaturan per-event-nya dihapus dan tidak ada event yang dikirim lagi. Riwayat pengiriman yang lampau tetap disimpan.

Troubleshooting

Yang terlihatPenyebab paling mungkinCara memperbaiki
Semua delivery berstatus Pending dan tidak pernah terkirimDelivery worker tidak aktif di environmentAktifkan ENABLE_WEBHOOK_DELIVERY_WORKER=true (hubungi tim infra)
Delivery Failed dengan receiver responded 404Target URL salah atau endpoint penerima sudah tidak ada (misalnya token webhook.site kedaluwarsa)Perbaiki Target URL lewat Edit, lalu Replay delivery yang gagal
Delivery Failed dengan timeout / 5xxEndpoint penerima down atau lambatPastikan penerima membalas 2xx dengan cepat; delivery akan otomatis di-retry
Signature tidak cocok di sisi penerimaSalah menyusun string yang ditandatanganiTandatangani "<timestamp>.<body>" (bukan body saja), memakai signing secret yang benar
Signing secret hilangSecret hanya tampil sekali saat dibuatRotate secret lewat Edit untuk mendapatkan yang baru
Tidak ada event yang terkirim padahal subscription aktifTidak ada event yang dipilihBuka Edit, pilih minimal satu event, lalu Save

Batasan yang Perlu Diketahui

  1. Transport yang tersedia saat ini adalah HTTP (webhook bertanda tangan). Setiap event dikirim sebagai POST ke Target URL.
  2. Signing secret tidak dapat dibaca ulang setelah dibuat — hanya bisa di-rotate.
  3. Pengiriman bergantung pada delivery worker. Bila worker mati, event tetap tercatat di antrian tetapi berhenti di status pending.