Notifikasi Direct - Kunci API Pribadi untuk Peringatan Instan

Kirim notifikasi langsung dengan kunci API pribadi - tanpa menyiapkan saluran. Buat kunci Direct lalu picu peringatan instan berisi judul, isi, dan tautan.


Notifikasi Direct memungkinkan Anda mengirim peringatan pribadi lewat satu URL webhook sederhana — tanpa menyiapkan saluran, tanpa templat, tanpa pelanggan. Cukup buat kunci, panggil URL-nya, dan notifikasi langsung masuk ke perangkat Anda.

Apa Itu Direct?

Saluran sangat cocok untuk notifikasi terstruktur berbasis templat yang bisa dibagikan ke orang lain. Namun kadang Anda hanya butuh notifikasi pribadi yang cepat — build selesai, skrip rampung, sensor terpicu. Direct dirancang persis untuk itu.

Dengan Direct, Anda mendapat kunci API pribadi yang terhubung ke sebuah URL webhook unik. Saat Anda memanggil URL itu dengan judul dan isi, notifikasi dikirim langsung kepada Anda. Tidak perlu konfigurasi saluran.

Kapan Memakai Direct dan Kapan Memakai Saluran

DirectSaluran
PenyiapanBuat kunci, pakai URL-nyaBuat saluran, atur templatnya
PenerimaHanya AndaSiapa pun yang berlangganan
TemplatTidak ada — judul/isi ditentukan tiap permintaanTemplat yang bisa diatur dengan variabel
KondisiTidak adaMendukung pengiriman bersyarat
Paling cocok untukSkrip pribadi, peringatan cepat, otomatisasiPeringatan bersama, alur kerja terstruktur

Memulai

1. Buat Kunci Direct

Di aplikasi Echobell, ketuk Direct di bagian atas daftar saluran Anda. Lalu ketuk Create untuk membuat kunci Direct baru. Beri nama yang deskriptif (misalnya, "Build Server", "Home Lab", "Trading Bot").

2. Salin URL Webhook

Setiap kunci Direct punya URL webhook unik dengan format berikut:

https://hook.echobell.one/d/{your-key-token}

Anda bisa menemukan dan menyalin URL ini dari tampilan detail kunci Direct di aplikasi. Token-nya disembunyikan secara bawaan demi keamanan — ketuk untuk menampilkannya.

3. Kirim Notifikasi

Panggil URL webhook itu dengan body JSON yang berisi title dan body:

POST https://hook.echobell.one/d/YOUR_KEY_TOKEN
Content-Type: application/json

{
  "title": "Build Complete",
  "body": "Project X built successfully in 3m 42s"
}

Selesai — Anda akan langsung menerima notifikasinya.

Membuat Permintaan

Permintaan POST (Disarankan)

Kirim body JSON berisi konten notifikasi Anda:

POST https://hook.echobell.one/d/YOUR_KEY_TOKEN
Content-Type: application/json

{
  "title": "Deployment Status",
  "body": "v2.1.0 deployed to production",
  "externalLink": "https://dashboard.example.com/deploys/latest"
}

Permintaan GET

Anda juga bisa mengirim parameter lewat query string:

GET https://hook.echobell.one/d/YOUR_KEY_TOKEN?title=Alert&body=CPU+at+95%25

POST Only

Setiap kunci Direct punya pengaturan POST Only sendiri di aplikasi Echobell. Pengaturan ini nonaktif secara bawaan.

Saat aktif, hanya POST yang bisa memicu kunci tersebut. Permintaan GET ke URL webhook-nya akan ditolak dengan 405 Method Not Allowed, dan tidak ada notifikasi yang dikirim:

{
  "success": false,
  "notificationTriggered": false,
  "message": "This trigger only accepts POST requests; GET triggering is disabled in its settings."
}

Permintaan HEAD tidak terpengaruh — permintaan itu selalu dijawab 200 dan tidak pernah memicu notifikasi, baik POST Only aktif maupun tidak.

Pengaturan ini berlaku per kunci, jadi Anda bisa menyimpan satu kunci yang ramah GET untuk perintah shell satu baris, dan satu kunci POST-only untuk URL yang ditempel ke obrolan atau halaman wiki.

Kolom Permintaan

Semua nama kolom tidak membedakan huruf besar-keciltitle, Title, dan TITLE diperlakukan sama, baik dikirim lewat body JSON maupun query string.

KolomTipeWajibDeskripsi
titlestringTidakJudul notifikasi. Bila dikosongkan, standarnya "Direct Notification".
bodystringTidakTeks isi notifikasi.
externalLinkstringTidakTautan yang bisa diklik pada catatan notifikasi.
notificationTypestringTidakTingkat urgensi notifikasi. Menerima active, time-sensitive, atau calling. Standarnya active. Lihat Jenis Notifikasi.

Jenis Notifikasi

Anda bisa mengatur tingkat urgensi notifikasi Direct memakai kolom notificationType:

TipeDeskripsi
activeNotifikasi standar, dikirim seperti biasa. Ini adalah nilai bawaan.
time-sensitiveNotifikasi berprioritas tinggi yang bisa menembus mode Fokus.
callingPeringatan mirip panggilan untuk situasi kritis. Memerlukan langganan premium yang aktif. Tanpa premium, akan turun menjadi time-sensitive.

Contoh dengan jenis notifikasi:

POST https://hook.echobell.one/d/YOUR_KEY_TOKEN
Content-Type: application/json

{
  "title": "Server Down",
  "body": "Production server is unresponsive",
  "notificationType": "calling"
}

Format Respons

Permintaan yang berhasil mengembalikan:

{
  "success": true,
  "message": "Notification triggered successfully."
}

Jika kuncinya tidak valid atau tidak ditemukan (perhatikan bahwa ini tetap mengembalikan HTTP 200):

{
  "success": false,
  "message": "Direct key not found."
}

Mengelola Kunci Direct

Beberapa Kunci Sekaligus

Anda bisa membuat beberapa kunci Direct untuk keperluan berbeda:

  • "CI Server" — untuk notifikasi build dan deployment
  • "Home Automation" — untuk peringatan sensor IoT
  • "Cron Jobs" — untuk hasil tugas terjadwal
  • "Trading Bot" — untuk peringatan pasar

Setiap kunci punya URL webhook-nya sendiri yang independen. Catatan notifikasi otomatis dikaitkan dengan kunci yang memicunya, sehingga Anda mudah mengenali layanan mana yang mengirim tiap notifikasi.

Reset Token

Jika URL webhook sebuah kunci bocor, Anda bisa mereset token-nya dari tampilan detail kunci tersebut. Langkah ini membuat URL baru dan langsung membatalkan URL lama. Perbarui skrip atau layanan apa pun yang masih memakai URL lama.

Menghapus Kunci

Menghapus kunci Direct akan membatalkan URL webhook-nya secara permanen. Semua permintaan ke URL lama akan gagal.

Kasus Penggunaan Umum

Skrip Shell

# Beri notifikasi saat tugas yang lama berjalan selesai
./run-migration.sh && \
curl -X POST https://hook.echobell.one/d/YOUR_KEY_TOKEN \
  -H "Content-Type: application/json" \
  -d '{"title": "Migration Complete", "body": "Database migration finished successfully"}'

Cron Job

# Di crontab: beri notifikasi saat backup selesai
0 2 * * * /usr/local/bin/backup.sh && curl -s -X POST https://hook.echobell.one/d/YOUR_KEY_TOKEN -H "Content-Type: application/json" -d '{"title": "Backup Done", "body": "Nightly backup completed"}'

Python

import requests

requests.post(
    "https://hook.echobell.one/d/YOUR_KEY_TOKEN",
    json={
        "title": "Training Complete",
        "body": f"Model accuracy: {accuracy:.2%}",
        "externalLink": "https://wandb.ai/runs/abc123"
    }
)

Node.js

await fetch("https://hook.echobell.one/d/YOUR_KEY_TOKEN", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    title: "Deploy Complete",
    body: `Version ${version} deployed to production`,
  }),
});

GitHub Actions

- name: Notify via Echobell Direct
  if: always()
  env:
    ECHOBELL_DIRECT_URL: ${{ secrets.ECHOBELL_DIRECT_URL }}
  run: |
    curl -X POST "$ECHOBELL_DIRECT_URL" \
      -H "Content-Type: application/json" \
      -d '{"title": "Build ${{ job.status }}", "body": "${{ github.repository }} @ ${{ github.sha }}"}'

Praktik Terbaik

Keamanan

  • Perlakukan URL kunci Direct sebagai rahasia — siapa pun yang punya URL itu bisa mengirimi Anda notifikasi
  • Gunakan variabel lingkungan untuk menyimpan token kunci di skrip dan CI/CD
  • Reset token segera jika Anda menduga sebuah kunci telah bocor
  • Buat kunci terpisah untuk layanan yang berbeda agar bisa dicabut satu per satu

Penataan

  • Beri nama kunci secara deskriptif — Anda akan berterima kasih pada diri sendiri saat mengelola banyak kunci
  • Pakai satu kunci per layanan — memudahkan mengenali sumber notifikasi dan mencabut aksesnya
  • Hapus kunci yang tidak dipakai — perkecil permukaan serangan Anda

Penanganan Kesalahan

Saat mengintegrasikan Direct ke dalam skrip Anda, ambil keputusan berdasarkan kolom JSON success, bukan berdasarkan status HTTP:

  • 200 OK: Permintaannya diterima. Periksa body JSON-nya: success: true berarti notifikasi terpicu; success: false berarti tidak. Kunci Direct yang tidak dikenal atau sudah direset mengembalikan HTTP 200 dengan { "success": false, "message": "Direct key not found." }bukan 404.
  • 400 Bad Request: Panjang token kuncinya salah. Perbaiki URL-nya.
  • 405 Method Not Allowed: Kunci tersebut mengaktifkan POST Only sementara permintaannya bukan POST. Ubah pemanggilnya menjadi POST, atau matikan pengaturan itu.

Echobell tidak membatasi laju panggilan Direct, jadi tidak ada respons 429.

Privasi dan Keamanan

Apa yang Disimpan

  • Di Server Kami:

    • Metadata kunci Direct (nama, token ter-hash, pemilik)
    • Payload permintaan diproses sementara dan disimpan untuk keperluan pengiriman
  • Di Perangkat Anda:

    • Isi notifikasi (judul, isi)
    • Riwayat pemicu dan cap waktu
    • Tautan eksternal

Apa yang Tidak Disimpan

  • Kami tidak menyimpan payload permintaan secara permanen setelah pengiriman
  • Kami tidak menganalisis isi notifikasi
  • Kami tidak membagikan data Anda ke pihak ketiga

Pemecahan Masalah

Tidak Menerima Notifikasi

  1. Periksa URL webhook-nya — salin langsung dari aplikasi, cek apakah ada spasi berlebih
  2. Pastikan kuncinya masih ada — mungkin kunci itu sudah dihapus atau token-nya direset
  3. Pastikan izin notifikasi aktif — aplikasi Echobell memerlukan izin notifikasi di perangkat Anda
  4. Uji dengan curl — untuk memastikan masalahnya bukan pada klien HTTP Anda:
    curl -X POST https://hook.echobell.one/d/YOUR_KEY_TOKEN \
      -H "Content-Type: application/json" \
      -d '{"title": "Test", "body": "Hello from Direct"}'

Kesalahan Permintaan

  • Kesalahan parsing JSON: Pastikan header Content-Type: application/json sudah disetel dan body-nya berupa JSON yang valid
  • Kunci tidak ditemukan: Body dengan "success": false dan pesan "Direct key not found." berarti token-nya sudah direset atau kuncinya dihapus (status HTTP-nya tetap 200)

Masih Bermasalah?

  • Kunjungi Pusat Dukungan kami untuk bantuan lebih lanjut
  • Hubungi kami di echobell@weelone.com dengan menyertakan:
    • Deskripsi masalahnya
    • Contoh permintaan (dengan token disamarkan)
    • Perilaku yang diharapkan dan yang sebenarnya terjadi

Langkah Berikutnya