Integration API

Buka di CMS

Integration API memungkinkan sistem eksternal membuat, membaca, memperbarui, dan menghapus reminder item secara terprogram. Ini adalah jalur yang tepat bila reminder dibuat oleh layanan backend, CRM, atau sistem apa pun di luar percakapan agent.


Autentikasi

Semua request Integration API membutuhkan query parameter secret. Nilainya harus sama dengan Primary Key atau Secondary Key milik konfigurasi tujuan.

?secret={primaryKey or secondaryKey}

Primary key dan secondary key dibuat saat konfigurasi dibuat dan dapat diperbarui secara terpisah. Memakai dua key memungkinkan rotasi key tanpa downtime: perbarui pemanggil satu per satu ke key baru sebelum mencabut key lama.

Lihat Plugin Setup untuk detail pembuatan dan refresh key.


Pola Base URL

Semua endpoint Integration API mengikuti pola berikut:

/api/reminder/{agentId}/{configurationId}/{reminderId}?secret={key}
SegmenDeskripsi
agentIdID agent pemilik konfigurasi ini.
configurationIdID instance konfigurasi plugin.
reminderIdIdentifier unik untuk reminder. Ditentukan oleh pemanggil, bukan dibuat oleh server.

Membuat Reminder

POST /api/reminder/{agentId}/{configurationId}/{reminderId}?secret={key}

Request body:

FieldTipeWajibDeskripsi
countryCodestringYaKode telepon internasional, misalnya +62.
phoneNumberstringYaNomor telepon penerima tanpa kode negara.
recipientNamestringTidakNama tampilan untuk keperluan logging.
notificationTemplateNamestringYaIdentifier template di akun messaging.
templateParametersstring[]YaNilai untuk placeholder template, sesuai urutan.
sendTimesdatetime[]YaSatu atau beberapa waktu pengiriman terjadwal. Minimal satu wajib diisi.
timezonestringTidakZona waktu untuk menafsirkan sendTimes. Default-nya UTC.

Contoh:

{
  "countryCode": "+62",
  "phoneNumber": "81234567890",
  "recipientName": "Ani Wijaya",
  "notificationTemplateName": "loan_payment_reminder",
  "templateParameters": ["Rp 1.500.000", "31 Mei 2025"],
  "sendTimes": [
    "2025-05-29T08:00:00+07:00",
    "2025-05-31T08:00:00+07:00"
  ],
  "timezone": "Asia/Jakarta"
}

Memperbarui Status Reminder

PUT /api/reminder/{agentId}/{configurationId}/{reminderId}?secret={key}

Gunakan endpoint ini untuk mengubah status reminder yang sudah ada dari sistem eksternal.

Request body:

FieldTipeDeskripsi
datedatetimeTimestamp perubahan status.
statusstringStatus baru: active, completed, expired, atau cancelled.

Contoh:

{
  "date": "2025-05-30T10:00:00Z",
  "status": "cancelled"
}

Ini berguna ketika kejadian yang mendasarinya (misalnya pembayaran atau janji temu) sudah selesai di sistem eksternal Anda sebelum reminder dikirim. Membatalkannya mencegah pengiriman yang tidak perlu.


Menghapus Reminder

DELETE /api/reminder/{agentId}/{configurationId}/{reminderId}?secret={key}

Menghapus reminder item secara permanen. Tidak ada response body yang dikembalikan jika berhasil.


Mengambil Reminder

GET /api/reminder/{agentId}/{configurationId}/{reminderId}?secret={key}

Mengembalikan reminder item lengkap, termasuk semua field, status, waktu kirim, dan history.

Contoh response:

{
  "id": "rem-abc123",
  "countryCode": "+62",
  "phoneNumber": "81234567890",
  "recipientName": "Ani Wijaya",
  "notificationTemplateName": "loan_payment_reminder",
  "templateParameters": ["Rp 1.500.000", "31 Mei 2025"],
  "sendTimes": ["2025-05-29T08:00:00+07:00", "2025-05-31T08:00:00+07:00"],
  "timezone": "Asia/Jakarta",
  "status": "active",
  "nextSendTime": "2025-05-29T01:00:00Z",
  "lastSendTime": null,
  "lastAttempts": 0,
  "history": [
    {
      "date": "2025-05-28T14:00:00Z",
      "action": "Created",
      "detail": "Reminder created via Integration API",
      "status": "active"
    }
  ]
}

Penanganan Error

SkenarioResponse
secret tidak valid atau tidak ada401 Unauthorized
agentId atau configurationId tidak ditemukan404 Not Found
reminderId tidak ditemukan (pada GET/PUT/DELETE)404 Not Found
Request body tidak valid400 Bad Request beserta detail error

Halaman Terkait