All Products
Search
Document Center

Data Management:Gunakan notifikasi webhook kustom

Last Updated:Jun 21, 2026

Selain notifikasi melalui SMS, email, DingTalk, chatbot DingTalk, dan Lark, Data Management DMS mendukung webhook kustom.

Konfigurasi

Untuk mengonfigurasi webhook Anda, buka bagian Webhook di pengaturan pribadi Anda, masukkan URL endpoint, lalu pilih saluran notifikasi Webhook.

Anda juga harus mengonfigurasi signature method dan kunci tanda tangan. Klik tombol Test untuk memverifikasi konektivitas URL webhook Anda. Panel pengaturan notifikasi juga memungkinkan Anda memilih saluran lain, seperti DingTalk (exclusive), DingTalk, DingTalk chatbot, Email, Lark, dan SMS.

Untuk informasi lebih lanjut, lihat Konfigurasikan informasi pribadi dan metode notifikasi Anda.

Events

Ketika notifikasi dipicu di DMS, sistem mengirim permintaan HTTP POST ke URL webhook yang telah Anda konfigurasi. Permintaan tersebut terdiri dari header dan body.

Request header

DMS-Event: Message Hook

Request body

Parameter

Type

Description

submitterUid

String

UID pengguna yang mengajukan permintaan.

submitterName

String

Nama pengguna yang mengajukan permintaan.

category

String

Modul fitur, seperti ticket, task orchestration, atau pengembangan gudang data.

module

String

Jenis bisnis, seperti permission application, data change, schema design, atau data export.

event

String

Event spesifik. Contoh: Pending Approval, Succeeded, dan Failed.

taskId

String

ID ticket atau alur tugas.

taskName

String

Nama tugas.

eventTime

String

Waktu saat event terjadi.

message

String

Teks pesan bawaan sistem.

targetUsers

Array of objects

Penerima yang dituju. Mendukung beberapa penerima.

receivers

Array of objects

Array objek yang merepresentasikan penerima aktual. Pengguna yang tidak memiliki metode notifikasi yang dikonfigurasi tidak akan menerima notifikasi.

uid

String

UID penerima.

name

String

Nama penerima.

signatureMethod

String

Metode tanda tangan. Metode tanda tangan berikut didukung:

  • None (default): Tidak menggunakan tanda tangan.

  • HMAC_SHA1: Menggunakan algoritma HMAC-SHA1.

signatureText

String

Tanda tangan digital, yaitu nilai HmacSha1 yang dihitung dari URL webhook, kunci tanda tangan, dan event pesan. Contoh: 4mOdwflN1CgxxxxxxxuipuCYYWk=.

Contoh request body

{
"messageEvent":{
    "submitterName":"xxx",
    "submitterUid":"167382665015xxxx",
    "category":"ticket",
    "event":"Succeeded",
    "eventTime":1625630049930,
    "message":"[Data Management DMS] Webhook test, code: 144619 ",
    "module":"data change",
    "receivers":[{"name":"xxx1","uid":"167382665015xxxx"},{"name":"xxx2","uid":"167382665016xxxx"}],
    "targetUsers":[{"name":"xxx1","uid":"167382665015xxxx"},{"name":"xxx2","uid":"167382665016xxxx"}],
    "taskName":"Webhook test"
    },
"signatureMethod":"HMAC_SHA1",
"signatureText":"4mOdwflN1Cg5NdM2XPuipuCYYWk="
 }

Contoh respons

{"root":"","success":true}                   //Success
{"root":"error message","success":false}     //Failure

Verifikasi tanda tangan

Jika Anda telah mengonfigurasi kunci tanda tangan, gunakan kode berikut untuk memverifikasi tanda tangan.

// Memverifikasi tanda tangan dari pesan yang masuk
public void callback(String message) {
    JSONObject jsonObject = JSONObject.parseObject(message, Feature.OrderedField);
    String webhookUrl = "Your configured webhook URL";
    String signatureKey = "Your configured signature key";
    String origin = webhookUrl + signatureKey + JSON.toJSONString(jsonObject.getJSONObject("messageEvent"));
    // Tanda tangan dari pesan DMS
    String signatureText = jsonObject.getString("signatureText");
    // Tanda tangan yang dihitung di sisi Anda
    String expectedSignatureText = signatureByHmacSha1(origin, signatureKey);
    assert Objects.equals(signatureText, expectedSignatureText);
}
public String signatureByHmacSha1(String origin, String key) {
    final String charset = "UTF-8";
    String result = "N/A";
    try {
        SecretKey secretKey = new SecretKeySpec(key.getBytes(charset), "HmacSHA1");
        Mac mac = Mac.getInstance("HmacSHA1");
        mac.init(secretKey);
        result = Base64.getEncoder().encodeToString(mac.doFinal(origin.getBytes(charset)));
    } catch (Exception ex){
    }
    return result;
}

Contoh penerima webhook

Anda dapat membuat skrip echo sederhana untuk menguji endpoint webhook dan melihat muatan event.

  1. Simpan skrip berikut sebagai print_http_body.rb.

    require 'webrick'
    server = WEBrick::HTTPServer.new(:Port => ARGV.first)
    server.mount_proc '/' do |req, res|
      puts req.body
    end
    trap 'INT' do
      server.shutdown
    end
    server.start
  2. Pilih port yang tidak digunakan, misalnya 8000, lalu jalankan skrip: ruby print_http_body.rb 8000.

  3. Di Konsol DMS, konfigurasikan URL webhook, misalnya http://my.host:8000/. Untuk informasi lebih lanjut, lihat Konfigurasikan informasi pribadi dan metode notifikasi Anda.

    Jika server Anda memerlukan HTTP Basic Authentication, Anda dapat menyertakan username dan password di URL. Contohnya:

    http://userName:password@my.host:8080/project/test-job
  4. Di kotak dialog Modify notification method, klik Test di sebelah URL webhook Anda. Server Anda akan menerima notifikasi uji coba dari DMS.

    Server menerima notifikasi yang mirip dengan contoh berikut:

    {
    "messageEvent":{
        "submitterName":"xxx",
        "submitterUid":"167382665015xxxx",
        "category":"ticket",
        "event":"Succeeded",
        "eventTime":1625630049930,
        "message":"[Data Management DMS] Webhook test, code: 144619 ",
        "module":"data change",
        "receivers":[{"name":"xxx1","uid":"167382665015xxxx"}],
        "targetUsers":[{"name":"xxx1","uid":"167382665015xxxx"}],
        "taskName":"Webhook test"
        },
    "signatureMethod":"HMAC_SHA1",
    "signatureText":"4mOdwflN1Cg5NdM2XPuipuCYYWk="
     }
    127.0.0.1 - - [20/Apr/2021:20:07:47 CST] "POST / HTTP/1.1" 200 0