Tekan Enter.
Dapatkan data Anda.
REST API /api/v1, 53 cakupan, 239 titik akhir, 11 peristiwa webhook, dan API JS untuk widget. Obrolan, kontak, AI, basis pengetahuan, tiket, dan penagihan — apa pun yang dilakukan dasbor, kode Anda juga dapat melakukannya.
# tekan Enter atau tandai di sebelah kanan $ curl -H "Authorization: Bearer sb_••••" \ https://smartbtn.me/api/v1/chats?limit=1
Mulai cepat
Tiga langkah dari nol ke jawaban pertama. Setiap permintaan terikat pada satu widget dan diautentikasi dengan token pembawa.
- Keluarkan tokenDasbor → Token API: nama, masa berlaku opsional, dan cakupan yang Anda perlukan. Sebuah token dimiliki tepat oleh satu widget. Token teks biasa ditampilkan sekali; Smartbtn hanya menyimpan hash satu arah, sehingga token yang hilang tidak dapat dipulihkan — hanya dicabut dan diterbitkan kembali.
- Aktifkan API widgetDi pengaturan widget, aktifkan «Izinkan API widget (JS dan REST)». Menerbitkan token tidak mengubah hal ini untuk Anda.
- Kirim permintaan pertamaToken hanya masuk ke header
Otorisasi— tidak pernah masuk ke URL.
# daftar obrolan widget curl -H "Authorization: Bearer $SMARTBTN_TOKEN" \ https://smartbtn.me/api/v1/chats
// 200 OK · paginasi kursor { "data": [ { "id": 48211, "status": "open", "last_message_at": "2026-10-17T09:41:12+03:00" }, … ], "next_cursor": "eyJpZCI6NDgyMTB9" // null — di halaman terakhir }
https://smartbtn.me/api/v1 adalah titik akhir API utama untuk semua data proyek. Selalu kirim permintaan melalui HTTPS dan jangan pernah meneruskan token saat pengalihan.401 atau 403 dengan isi application/problem+json RFC‑7807 — lihat Errors.Otentikasi
Tiga jalur, tergantung siapa memanggil siapa. Akses ditolak secara default: tidak ada cakupan — tidak ada panggilan.
Setiap permintaan membawa Otorisasi: Pembawa . Di server, token ditentukan menjadi satu widget dan cakupannya.
Permintaan keluar ditandatangani dengan rahasia per penyewa: X‑Smartbtn‑Signature. Kredensial pembawa tambahan dapat ditambahkan jika pihak Anda membutuhkannya.
POST /v1/ai/replies menggunakan bingkai bertanda tangannya sendiri, disematkan ke operator dan widget AI Anda, serta dikunci oleh causation_id yang tahan lama.
Peralihan yang dilupakan orang
«Izinkan API widget (JS dan REST)» di pengaturan widget akan membuka REST API dan widget JS API. Menerbitkan token tidak mengaktifkannya. Cakupan kunci yang ada dapat diedit di dasbor (token API → kunci → Edit cakupan) tanpa menerbitkan ulang — integrasi tetap berfungsi.
Preset
| Prasetel | Lingkup | Kapan |
|---|---|---|
| pengaturan AI 9 | widget:read · widget:write · ai:read · ai:write · ai:apply · kb:read · kb:write · files:write · stats:read | Aplikasi AI Anda mengonfigurasi widget: asisten, basis pengetahuan, teks. Menggantikan seluruh pilihan cakupan. |
| Hanya‑baca (kumpulan contoh) | chats:read · messages:read · contacts:read · stats:read | Dasbor, BI, ekspor. |
| Jembatan helpdesk (kumpulan contoh) | chats:read · messages:read · messages:write · webhooks:write · support:read | Cerminkan dialog dan tiket ke dalam CRM Anda. |
ai:credentials:write hanya jika pemilik mengizinkan penyiapan kunci penyedia. Hak akun, penagihan, dan mitra tidak diperlukan untuk penyiapan AI. Kuncinya ditampilkan satu kali — cabut ketika pengaturan selesai.Lingkup
53 cakupan rute, ditambah satu kondisional dan satu cadangan. Permintaan berhasil hanya jika token tersebut memiliki cakupan rute (atau alternatif yang terdaftar).
| Ruang lingkup | Hibah |
|---|---|
| chats · 2 | |
| chats:read | Baca obrolan dan metadatanya |
| chats:write | Tutup obrolan, minta rating, transfer, klaim, lampirkan atau lepaskan agen |
| messages · 2 | |
| messages:read | Membaca riwayat pesan obrolan |
| messages:write | Kirim pesan, ketikkan indikator dan baca tanda terima sebagai agen |
| contacts · 2 | |
| contacts:read | Baca kontak |
| contacts:write | Perbarui bidang dan atribut kontak |
| agents · 3 | |
| agents:read | Baca agen dan kehadirannya |
| agents:writesensitif | Mengundang, memperbarui, menangguhkan, memulihkan atau menghapus agen; seorang yang diundang melihat setiap obrolan widget |
| agents:events:read | Baca log peristiwa agen dan metrik per agen |
| tags · 2 | |
| tags:read | Baca tag |
| tags:write | Lampirkan tag ke kontak |
| files · 2 | |
| files:read | Unduh file yang diunggah |
| files:write | Unggah file baru |
| stats · 1 | |
| stats:read | Baca statistik obrolan, pesan, dan peringkat agregat |
| channels · 3 | |
| channels:read | Membaca status online saluran khusus |
| channels:write | Kirimkan pesan masuk pada saluran khusus |
| channels:register | Daftarkan saluran khusus baru (hanya aplikasi yang diinstal) |
| webhooks · 2 | |
| webhooks:read | Daftar langganan webhook |
| webhooks:write | Membuat, menghapus, atau mengirim ulang langganan |
| quick_phrases · 2 | |
| quick_phrases:read | Baca frasa singkat agen |
| quick_phrases:write | Membuat, mengedit, atau menghapus frasa cepat |
| ratings · 1 | |
| ratings:read | Baca peringkat pengunjung dan agen mana yang mendapat skor |
| responder · 2 | |
| responder:injectsensitif | Masukkan balasan ke dalam obrolan langsung sebagai operator atau bot AI eksternal |
| responder:escalatebersyarat | Untuk POST /v1/ai/replies: handoff yang diarahkan ke pemanggil melalui escalate=true |
| widget · 2 | |
| widget:read | Baca tampilan widget, perilaku, dan pengaturan penyematan |
| widget:write | Perbarui pengaturan widget dan bersihkan cache widget |
| departments · 2 | |
| departments:read | Baca departemen, agen dan jadwalnya |
| departments:write | Membuat, memperbarui, atau menghapus departemen dan jadwal |
| messengers · 2 | |
| messengers:read | Baca messenger mana yang terhubung (tidak pernah kredensial) |
| messengers:writesensitif | Hubungkan atau putuskan sambungan messenger; menulis kredensial penyedia |
| ai · 4 | |
| ai:read | Baca asisten AI, konfigurasi dan peringatannya |
| ai:write | Membuat dan memperbarui asisten, pengaturan AI dan operator AI, termasuk persona dan prompt |
| ai:credentials:writesensitif | Simpan kredensial penyedia LLM pihak ketiga (BYOK) |
| ai:apply | Menyetujui peningkatan yang mengubah kepribadian asisten langsung |
| kb · 2 | |
| kb:read | Baca aturan basis pengetahuan dan sumber yang diserap |
| kb:write | Membuat, memperbarui, atau menghapus aturan dan sumber KB |
| transcripts · 1 | |
| transcripts:read | Ekspor transkrip obrolan |
| account · 2 | |
| account:read | Baca profil akun dan seluruh badan hukumnya |
| account:write | Perbarui hanya nama akun, nama keluarga, dan telepon |
| billing · 2 | |
| billing:read | Baca catatan penagihan widget dan badan hukum |
| billing:write | Membuat, memperbarui, menghapus badan hukum; tidak mengeluarkan faktur, tidak memindahkan uang |
| partners · 2 | |
| partners:read | Baca data mitra dan rujukan |
| partners:withdrawdilindungi undang‑undang | Dicadangkan: tidak ada operasi pembayaran yang menggunakannya hari ini |
| support · 4 | |
| support:read | Baca tiket, obrolan aktif, pesan mereka, dan tindakan yang diaudit sendiri |
| support:replysensitif | Jawab pelanggan sebagai operator dukungan |
| support:write | Klaim atau lepaskan obrolan, tutup tanpa balasan, buka kembali |
| support:tickets:close | Tutup saja tiketnya — tidak ada yang lain |
| marketing · 2 | |
| marketing:read | Baca kampanye pemasaran: spanduk, popup, email |
| marketing:write | Buat dan edit kampanye, ubah status, mulai pengiriman email |
| broadcasts · 2 | |
| broadcasts:read | Baca siaran messenger (WhatsApp, Telegram, Messenger, Viber, VK, MAX) |
| broadcasts:write | Membuat, mengedit, dan memulai siaran |
| problems · 2 | |
| problems:read | Baca klaster dan pengaturan masalah pelanggan |
| problems:write | Ubah pengaturan dan status klaster: baru, sedang berlangsung, terselesaikan, berulang |
| invitations · 2 | |
| invitations:read | Baca aturan undangan, varian A/B, template, dan corong |
| invitations:write | Membuat, mengedit, mengaktifkan atau menghapus aturan dan templat |
Titik akhir
Seluruh permukaan publik dalam satu daftar. Filter berdasarkan sumber daya, cari berdasarkan jalur, klik baris untuk menyalin ikal yang sudah jadi.
ai Asisten, operator, kunci, pembelajaran, pasar54
chats Dialog, pesan, transfer, peringkat18
kb Basis pengetahuan: aturan, perayap, file, pencarian16
agents Agen, undangan, metrik14
messengers Messenger, jejaring sosial & saluran pasar13
billing Saldo, langganan, faktur, entitas12
support Agen dukungan: tiket dan obrolan12
widget Pengaturan, bahasa, terjemahan, skin, cache12
channels Saluran khusus8
external‑operators Bot Anda sebagai operator8
webhook‑subscriptions Langganan webhook8
broadcasts Siaran utusan7
departments Departemen dan jadwal7
invitations Undangan cerdas7
marketing Kampanye pemasaran7
partner Program mitra7
wishes Harapan untuk AI7
contacts Kontak dan tag5
problems Analisis masalah pelanggan4
quick‑phrases Frase cepat4
compat Kompatibilitas migrasi3
stats Statistik3
account Akun2
files File2
ratings Peringkat1
tags Tag1
v1 1
webhook‑events Katalog acara1
Jalur bersifat relatif terhadap https://smartbtn.me/api. Penulisan memerlukan Content‑Type: application/json dan X‑Smartbtn‑Idempotency‑Key. Grup compat adalah lapisan kompatibilitas untuk tim yang berpindah dari platform chat lain.
Webhook
POST JSON yang ditandatangani ke URL Anda setiap kali peristiwa berlangganan terjadi. Kelola langganan melalui /v1/webhook‑subscriptions atau di dasbor.
{
"id": "evt_01JAB3K9Q7",
"type": "ticket.created",
"data": {
"button_guid": "b_3f9c2e",
"ticket_number": 10482,
"chat_id": 48211,
"client_id": 9134,
"reason": "human_request",
"priority": "high",
"sla_hours": 4,
"source": "chat",
"created_at": "2026-10-17T10:15:00+03:00"
}
}alasan: permintaan_manusia | penagihan | ai_belum terselesaikan | permintaan_aksi | …; prioritas: tinggi | normal; sumber: obrolan | aplikasi | lokasi. Baca tiket dan dialognya dengan GET /v1/support/tickets/{number}.
Header pengiriman
| X‑Smartbtn‑Event | Jenis acara, mis. pesan.dibuat. |
| X‑Smartbtn‑Signature | sha256=v1: dari isi mentah. |
| X‑Smartbtn‑Idempotency‑Key | Satu nilai per peristiwa, stabil di seluruh percobaan ulang. Dedupe di atasnya. |
| X‑Smartbtn‑Delivery | Satu nilai per upaya pengiriman — untuk log Anda. |
| X‑Smartbtn‑Timestamp | Unix waktu pengiriman. Informasional, tidak ditandatangani. |
Verifikasi tanda tangan
HMAC‑SHA256 dari isi mentah (byte yang diterima, sebelum penguraian JSON) dengan rahasia titik akhir Anda; bandingkan dalam waktu yang konstan. Rahasianya ditampilkan satu kali, saat langganan dibuat; putar dengan POST /v1/webhook‑subscriptions/{id}/rotate‑secret.
// Node.js · Misalnya, rahasianya adalah placeholder import crypto from 'node:crypto'; function verify(rawBody, header, secret) { const expected = 'sha256=v1:' + crypto.createHmac('sha256', secret).update(rawBody).digest('hex'); const a = Buffer.from(expected), b = Buffer.from(header || ''); return a.length === b.length && crypto.timingSafeEqual(a, b); }
// PHP $expected = 'sha256=v1:' . hash_hmac('sha256', file_get_contents('php://input'), $secret); if (!hash_equals($expected, $_SERVER['HTTP_X_SMARTBTN_SIGNATURE'] ?? '')) { http_response_code(401); exit; }
Coba lagi dan pesan
- Hingga 4 percobaan (pengiriman pertama ditambah 3 percobaan ulang), backoff
min(60, 2^attempt × 5)s — sekitar 10, 20, 40 detik. - Non‑2xx atau batas waktu dihitung sebagai upaya yang gagal. Pengiriman yang gagal dapat dikirim ulang dengan
POST /v1/webhook‑subscriptions/{id}/redeliver— kunci idempotensi yang sama, id pengiriman baru. - Pengiriman dilakukan setidaknya satu kali dan tidak dipesan. Muatannya minimal — id, bukan catatan lengkap; ambil detail melalui REST API.
JS API
Sampaikan apa yang sudah Anda ketahui tentang pengunjung langsung ke agen. Panggilan hanya diterima dari domain yang diatur dalam pengaturan widget.
smartbtn_widget_api.setContactInfo(info)
Mengatur data kontak pengunjung. Agen melihatnya seolah‑olah pengunjung mengisi formulir perkenalan. Nama, telepon, dan email memainkan peran khusus di Smartbtn — oleh karena itu merupakan metode terpisah.
| Nama | Ketik | Deskripsi |
|---|---|---|
| name | string | Nama pengunjung |
| string | email pengunjung | |
| phone | string | Telepon pengunjung |
| description | string | Informasi tambahan apa pun tentang klien |
Smartbtn_api.setClientInfo({ name: "Alex Morgan", email: "email@example.com", phone: "+17584987855", description: "Description text" });
smartbtn_widget_api.setCustomData(fields)
Data tambahan apa pun untuk panel info di sebelah kanan aplikasi agen. Sebut saja sesering yang Anda suka — dalam dialog terbuka, panel diperbarui secara real‑time. Bidang ditampilkan dalam urutan array.
| Nama | Ketik | Deskripsi |
|---|---|---|
| fields | array | Daftar bidang data |
| field.title | string | Menuju ke atas lapangan |
| field.content | string | Konten lapangan; tag di‑escape |
| field.link | string | URL dibuka saat diklik |
Smartbtn_api.setClientCustomData([ { title: "Order", content: "#10482 · 3 items", link: "https://shop.example/orders/10482" }, { title: "Actions", content: "Open customer profile", link: "https://crm.example/c/9134" } ]);
smartbtn_widget_api.setSkin(skin, opts) · open() · close()
Ganti tema widget dengan cepat tanpa memuat ulang halaman (klasik, minimal, capsule, liquid) atau mengontrol jendela obrolan secara terprogram. Untuk penyesuaian permanen per proyek, teruskan kolom yang sama ke PATCH /v1/widget/settings.
// JS API · ganti kulit pada halaman secara real time smartbtn_widget_api.setSkin("minimal"); smartbtn_widget_api.setSkin("capsule", { capsuleTitle: "Smartbtn AI", capsuleSubtitle: "Balasan dalam ~1 detik" }); // REST API · PATCH /v1/widget/settings (ruang lingkup widget:write) { "skin": "minimal", "widget_header_align": "center", "widget_show_operator_avatars": false, "widget_show_tabs_bar": false, "chat_bg": "#FAF8F5", "capsule_title": "Smartbtn AI", "capsule_subtitle": "Online 24/7" }
widget_api_contact_sync aktif, panggilan ini juga mengaktifkan webhook contact.updated.Support‑agent API
Agen dukungan otomatis mengerjakan antrian tiket dan obrolan pelanggan: menerima obrolan, menjawab sesuai operator dukungan manusia Anda, menutup tiket. Mati hingga pemilik widget menyalakannya.
- Pemilik mengaktifkannyaMencantumkan token yang diizinkan untuk bertindak sebagai agen dukungan dan IP yang dapat mereka gunakan untuk menelepon.
- Baca antriannya
GET /v1/support/tickets·GET /v1/support/chats - Sewa obrolan
POST …/chats/{id}/claim·…/release - MembalasTeks biasa, tautan hanya ke host widget yang diizinkan.
201hanya setelah pesan disimpan. - Tutup atau buka kembali
POST …/tickets/{number}/close·…/reopen
| Ruang lingkup | Memungkinkan |
|---|---|
| support:read | Tiket, obrolan aktif, pesan berlabel klien / ai / dukungan / sistem, tindakan yang diaudit sendiri |
| support:write | Klaim / lepaskan obrolan, tutup tanpa balasan, buka kembali |
| support:reply | Jawab pelanggan sebagai operator support (sensitif) |
| support:tickets:close | Tutup tiket saja — untuk tombol «pertanyaan terpecahkan» di backend Anda |
curl -X POST https://smartbtn.me/api/v1/support/chats/48211/reply \ -H "Authorization: Bearer $AGENT_TOKEN" \ -H "Content-Type: application/json" \ -H "X-Smartbtn-Idempotency-Key: $(uuidgen)" \ -d '{"text":"Selesai, akses telah dipulihkan."}'
API AI
Semua yang dilakukan bagian AI di dasbor: asisten, kunci penyedia Anda sendiri, basis pengetahuan, pembelajaran mandiri dengan rollback, keinginan, masalah, sinyal permintaan, dan asisten di dalam aplikasi Anda.
Beberapa asisten dengan peran dan bahasanya masing‑masing, tes sebelum ditayangkan, nama operator per bahasa.
- GET/v1/ai/assistants
- POST/v1/ai/assistants/{id}/test
- PATCH/v1/ai/operators/{id}
- POST/v1/ai/handoff
Claude, ChatGPT, DeepSeek, Gemini, Mistral, LLM regional, atau apa pun yang kompatibel dengan OpenAI. Model dicantumkan per kunci.
- GET/v1/ai/credentials
- POST/v1/ai/credentials
- GET/v1/ai/credentials/{id}/models
Perayap untuk situs Anda, unggahan PDF dan DOCX, aturan, status pencarian dan pengindeksan.
- PUT/v1/kb/crawler
- POST/v1/kb/uploads
- POST/v1/kb/rules
- GET/v1/kb/search
Penyetelan berjalan, siklus, riwayat, versi persona dengan rollback dan tombol pemutus.
- POST/v1/ai/learning/tune
- GET/v1/ai/learning/cycles
- POST/v1/ai/learning/persona‑versions/{version}/revert
- GET/v1/ai/learning/kill‑switch
Keinginan dengan kata‑kata sederhana → pratinjau bebas efek samping → setujui, tolak, atau kembalikan.
- POST/v1/wishes
- GET/v1/wishes/{id}/preview
- POST/v1/wishes/{id}/approve
- POST/v1/wishes/{id}/revert
Masalah cluster dengan status dan batas pembelanjaan bulanan; apa yang diminta pelanggan yang tidak Anda tawarkan.
- GET/v1/problems
- PATCH/v1/problems/settings
- POST/v1/problems/{id}/status
- GET/v1/ai/demand‑signals
Backend Anda memasukkan status pelanggan (terdaftar, berbayar, pelanggan sejak, status layanan) dalam permintaan yang ditandatangani HMAC — AI akan mempertimbangkannya saat menjawab dan mengeskalasi.
- POST/v1/ai/customer‑status
- POST/v1/ai/tickets
- GET/v1/ai/alerts
Pergantian dialog, penautan akun, ucapan‑ke‑teks dan teks‑ke‑ucapan, tiket aplikasi — melalui integrasi yang ditandatangani.
- POST/v1/ai/assistant/turn
- POST/v1/ai/assistant/account‑link
- POST/v1/ai/assistant/speech‑to‑text
- POST/v1/ai/assistant/text‑to‑speech
Asisten siap pakai berdasarkan niche: kafe, klinik, toko, layanan mobil. Terapkan dalam satu permintaan.
- GET/v1/ai/marketplace/templates
- POST/v1/ai/marketplace/templates/{slug}/apply
Bot Anda sendiri menjawab obrolan: balasan asinkron, handoff, pengujian, dan siklus hidup.
- POST/v1/ai/replies
- POST/v1/external‑operators/{public_id}/tests
- POST/v1/external‑operators/{public_id}/lifecycle
Batasan tarif
Per token, ada dua penghitung: baca dan tulis dihitung secara terpisah, sehingga jajak pendapat tidak pernah menghabiskan anggaran penulisan.
| X‑RateLimit‑Limit | Ukuran penghitung permintaan ini dihitung (600 atau 120) |
| X‑RateLimit‑Remaining | Permintaan tertinggal di jendela saat ini |
| X‑RateLimit‑Reset | Saat jendela direset |
| Retry‑After | Pada 429: detik untuk menunggu |
HTTP/1.1 429 Too Many Requests Content-Type: application/problem+json Retry-After: 12 X-RateLimit-Limit: 120 X-RateLimit-Remaining: 0 { "status": 429, "title": "Too Many Requests", "reason": "rate_limited" }
/v1/ai/assistant/tickets/status dan /v1/ai/assistant/account‑link memiliki penghitungnya sendiri; API agen dukungan dapat memiliki penggantian per widget.
Kesalahan
Setiap kesalahan adalah application/problem+json RFC‑7807: status dan alasan yang dapat dibaca mesin, detail yang dapat dibaca manusia.
HTTP/1.1 403 · Content-Type: application/problem+json { "type": "https://smartbtn.me/problems/forbidden", "title": "Forbidden", "status": 403, "detail": "Token lacks scope chats:write.", "required_scopes": [ "chats:write" ], "hint": "Dashboard → API tokens → key → Edit scopes" }
Nama badan yang diperlukan_scopes dan di mana memberikannya. Tidak perlu mengeluarkan ulang kuncinya.
| Status | Artinya |
|---|---|
| 400 | Permintaan salah atau kunci idempotensi yang diperlukan tidak ada |
| 401 | Tidak ada token, token tidak valid atau dicabut |
| 403 | Token tersebut tidak memiliki cakupan; isi menambahkan required_scopes dan di mana memberikannya |
| 404 | Tidak ditemukan di widget ini |
| 405 | Metode tidak diperbolehkan — berhenti dan lapor; jangan mencari tulisan alternatif |
| 409 | Kunci idempotensi digunakan kembali dalam waktu 24 jam, atau terjadi konflik negara |
| 422 | Validasi gagal (misalnya, kolom hanya baca dikirimkan) |
| 429 | Batas tarif; hormati Coba Lagi‑Setelah |
Idempotensi
Jaringan gagal. Kunci membuat percobaan ulang penulisan menjadi aman: operasi yang sama tidak pernah diterapkan dua kali.
- Kirim
X‑Smartbtn‑Idempotency‑Keypada setiap POST / PATCH / PUT / DELETE: UUID baru untuk operasi baru, kunci yang sama untuk mencoba ulang operasi yang sama. - Operasi yang ditandai
x‑idempotensi: diperlukandi OpenAPI: tanpa kunci → 400, kunci digunakan kembali dalam waktu 24 jam → 409 (tidak berhasil disimpan dalam cache). - Tidak yakin itu berhasil? Baca negara bagiannya terlebih dahulu. Jangan pernah mengganti kunci secara otomatis; hormati Coba Lagi‑Setelah.
502dari penyedia upstream melepaskan kunci — coba lagi dengan kunci yang sama.
KEY=$(uuidgen) curl -X PATCH https://smartbtn.me/api/v1/widget/settings \ -H "Authorization: Bearer $SMARTBTN_TOKEN" \ -H "Content-Type: application/json" \ -H "X-Smartbtn-Idempotency-Key: $KEY" \ -d '{"language":"ru"}' # kesalahan jaringan? ulangi dengan $KEY yang sama
Changelog
Perubahan pada API publik dan webhook pada tahun 2026. Segala sesuatu di bawah bersifat aditif dan tetap berada di v1.
Tiket acara langsung baru.dibuat. GET /v1/support/tickets menjawab kunci apa pun dengan support:read hingga agen dukungan dikonfigurasi. Cakupan utama dapat diedit tanpa diterbitkan ulang. 403 keuntungan yang diperlukan_scopes.
POST/PATCH /v1/ai/operator menerima name_i18n; nama default diterjemahkan ke dalam bahasa widget; pilihan salam yang dapat diprediksi.
Membaca — 600 per menit, menulis — 120. Jajak pendapat tidak lagi memakan anggaran penulisan. X‑RateLimit-* mendeskripsikan counter yang digunakan.
Obrolan dengan aktivitas sejak saat itu, berapa pun usianya. Setiap obrolan sekarang membawa last_message_at.
chat.account.email_requested — obrolan menunggu alamatnya; agen tidak boleh memulai aliran kode lain.
Tutup tiket dan tidak ada yang lain — untuk tombol «pertanyaan terpecahkan» di backend Anda.
Filter has_client_messages=1 dan q (2–100 karakter).
POST /v1/ai/assistant/account‑link dan /revoke. Mati sampai pemilik mengaktifkannya.
Aturan disematkan dengan tombol widget atau tombol asisten yang diaktifkan; a 502 melepaskan kunci idempotensi.
Akun tersebut terlihat saat tiket dibuka dan selama 7 hari setelahnya.
Grup /v1/support baru: antrian, obrolan, sewa, balasan, penutupan dan pembukaan kembali tiket. Mati sampai pemilik mengaktifkannya.
Bidang code_pending, code_expires_at, last_code_result dan last_code_at.
plugin WordPress
Widget di situs WordPress tanpa menyentuh kode tema.
- Unduharsip plugin ke komputer Anda.
- InstalMasukkan folder yang belum dibongkar ke dalam
wp‑content/plugins/— atau unggah ke admin WordPress. - AktifkanItem Smartbtn muncul di menu.
- Tempelkan tokennyaSalin token keamanan dari pengaturan widget di dasbor Anda.
Saat Anda mengubah kata sandi, token keamanan juga berubah dan yang lama berhenti berfungsi — tempelkan yang baru ke dalam plugin.
Contoh kode
Cantumkan setiap obrolan dengan aktivitas sejak jajak pendapat terakhir Anda — ikuti kursor hingga akhir.
# halaman pertama curl -G https://smartbtn.me/api/v1/chats \ -H "Authorization: Bearer $SMARTBTN_TOKEN" \ --data-urlencode "updated_since=2026-10-17T09:00:00+03:00" # next — dengan next_cursor dari respons curl -G https://smartbtn.me/api/v1/chats \ -H "Authorization: Bearer $SMARTBTN_TOKEN" \ --data-urlencode "cursor=eyJpZCI6NDgyMDd9"