Tính năngtrí tuệ nhân tạoTrang tổng quanAPIgiá cảTải xuốngTrợ giúp
Ngoại hình (Auto: light)
Dùng thử miễn phí
API và nhà phát triển

Nhấn Enter.
Nhận dữ liệu của bạn.

API REST /api/v1, 53 phạm vi, 239 điểm cuối, 11 sự kiện webhook và API JS cho tiện ích. Trò chuyện, danh bạ, AI, cơ sở kiến ​​thức, yêu cầu và thanh toán — bất kể bảng điều khiển làm gì thì mã của bạn cũng có thể làm được.

smartbtn.me/api/v1
# nhấn Enter hoặc dấu bên phải
$ curl -H "Authorization: Bearer sb_••••" \
    https://smartbtn.me/api/v1/chats?limit=1 
01

Bắt đầu nhanh

Ba bước từ số 0 đến câu trả lời đầu tiên. Mọi yêu cầu được gắn với một tiện ích và được xác thực bằng mã thông báo mang.

  1. Phát hành mã thông báoTrang tổng quan → Mã thông báo API: tên, thời hạn sử dụng tùy chọn và phạm vi bạn cần. Mã thông báo thuộc về chính xác một tiện ích. Mã thông báo văn bản thuần túy được hiển thị một lần; Smartbtn chỉ lưu trữ hàm băm một chiều, do đó không thể khôi phục mã thông báo bị mất mà chỉ có thể thu hồi và phát hành lại.
  2. Bật API tiện íchTrong cài đặt tiện ích, hãy bật «Cho phép API tiện ích (JS và REST)». Việc phát hành mã thông báo không giúp bạn chuyển đổi công tắc này.
  3. Gửi yêu cầu đầu tiênMã thông báo chỉ đi vào tiêu đề Ủy quyền — không bao giờ đi vào URL.
# liệt kê các cuộc trò chuyện của tiện ích
curl -H "Authorization: Bearer $SMARTBTN_TOKEN" \
     https://smartbtn.me/api/v1/chats
// 200 OK · phân trang con trỏ
{
  "data": [ { "id": 48211, "status": "open", "last_message_at": "2026-10-17T09:41:12+03:00" }, … ],
  "next_cursor": "eyJpZCI6NDgyMTB9"   // null — ở trang cuối cùng
}
URL cơ sở đã được xác minh. https://smartbtn.me/api/v1 là điểm cuối API chính cho tất cả dữ liệu dự án. Luôn gửi yêu cầu qua HTTPS và không bao giờ chuyển tiếp mã thông báo khi chuyển hướng.
Mã thông báo bị thiếu, không hợp lệ hoặc có phạm vi dưới phạm vi? Bạn nhận được 401 hoặc 403 với nội dung RFC‑7807 application/problem+json — xem Lỗi.
02

Xác thực

Ba con đường, tùy ai gọi ai. Quyền truy cập bị từ chối theo mặc định: không có phạm vi - không có lệnh gọi.

Bạn → Smartbtn
Cuộc gọi REST

Mọi yêu cầu đều mang theo Ủy quyền: Người mang . Trên máy chủ, mã thông báo phân giải thành một tiện ích và phạm vi của nó.

Smartbtn → bạn
Webhooks, toán tử AI bên ngoài

Các yêu cầu gửi đi được ký bằng bí mật của mỗi đối tượng thuê: X‑Smartbtn‑Signature. Một thông tin xác thực bổ sung có thể được thêm vào nếu phía bạn cần.

Nhà điều hành AI của bạn → Smartbtn
Trả lời không đồng bộ

POST /v1/ai/replies sử dụng khung có chữ ký riêng, được ghim vào toán tử AI và tiện ích con của bạn, đồng thời được khóa bằng causation_id bền vững.

Công tắc người ta quên

«Cho phép API tiện ích (JS và REST)» trong cài đặt tiện ích sẽ mở cả API REST và API JS tiện ích. Việc phát hành mã thông báo không kích hoạt nó. Bạn có thể chỉnh sửa phạm vi của khóa hiện có trong trang tổng quan (mã thông báo API → khóa → Chỉnh sửa phạm vi) mà không cần phát hành lại — quá trình tích hợp vẫn tiếp tục hoạt động.

cài đặt trước

cài sẵnPhạm viKhi nào
thiết lập AI 9widget:read · widget:write · ai:read · ai:write · ai:apply · kb:read · kb:write · files:write · stats:readỨng dụng AI của bạn định cấu hình tiện ích: trợ lý, cơ sở kiến ​​thức, văn bản. Thay thế toàn bộ lựa chọn phạm vi.
Chỉ đọc (bộ ví dụ)chats:read · messages:read · contacts:read · stats:readTrang tổng quan, BI, xuất khẩu.
Cầu trợ giúp (bộ ví dụ)chats:read · messages:read · messages:write · webhooks:write · support:readPhản chiếu các hộp thoại và yêu cầu vào CRM của bạn.
Khóa nhà cung cấp là riêng biệt. Chỉ cấp ai:credentials:write khi chủ sở hữu ủy quyền thiết lập khóa nhà cung cấp. Không cần có tài khoản, quyền thanh toán và quyền đối tác để thiết lập AI. Khóa này được hiển thị một lần - thu hồi nó khi quá trình thiết lập hoàn tất.
03

Phạm vi

53 phạm vi tuyến đường, cộng với một tuyến có điều kiện và một tuyến dành riêng. Yêu cầu chỉ thành công nếu mã thông báo giữ phạm vi tuyến đường (hoặc một giải pháp thay thế được liệt kê).

53 + 1 điều kiện + 1 dành riêng
nhạy cảmcó điều kiệndành riêng
Phạm viTài trợ
chats · 2
chats:readĐọc các cuộc trò chuyện và siêu dữ liệu của chúng
chats:writeĐóng cuộc trò chuyện, yêu cầu xếp hạng, chuyển nhượng, yêu cầu, đính kèm hoặc tách đại lý
messages · 2
messages:readĐọc lịch sử tin nhắn của cuộc trò chuyện
messages:writeGửi tin nhắn, gõ chỉ báo và đọc biên lai với tư cách là đại lý
contacts · 2
contacts:readĐọc danh bạ
contacts:writeCập nhật các trường và thuộc tính liên hệ
agents · 3
agents:readĐọc đại lý và sự hiện diện của họ
agents:writenhạy cảmMời, cập nhật, tạm dừng, khôi phục hoặc xóa đại lý; người được mời xem mọi cuộc trò chuyện của tiện ích
agents:events:readĐọc nhật ký sự kiện của tổng đài viên và số liệu trên mỗi tổng đài viên
tags · 2
tags:readĐọc thẻ
tags:writeĐính kèm thẻ vào một liên hệ
files · 2
files:readTải xuống một tập tin đã tải lên
files:writeTải lên một tập tin mới
stats · 1
stats:readĐọc số liệu thống kê trò chuyện, tin nhắn và xếp hạng tổng hợp
channels · 3
channels:readĐọc trạng thái trực tuyến của kênh tùy chỉnh
channels:writeGửi tin nhắn gửi đến trên kênh tùy chỉnh
channels:registerĐăng ký kênh tùy chỉnh mới (chỉ ứng dụng đã cài đặt)
webhooks · 2
webhooks:readLiệt kê đăng ký webhook
webhooks:writeTạo, xóa hoặc gửi lại đăng ký
quick_phrases · 2
quick_phrases:readĐọc cụm từ nhanh của đại lý
quick_phrases:writeTạo, chỉnh sửa hoặc xóa cụm từ nhanh
ratings · 1
ratings:readĐọc xếp hạng của khách truy cập và mỗi đại lý ghi điểm
responder · 2
responder:injectnhạy cảmĐưa câu trả lời vào cuộc trò chuyện trực tiếp với tư cách là người điều hành AI hoặc bot bên ngoài
responder:escalatecó điều kiệnĐối với POST /v1/ai/replies: chuyển giao theo hướng người gọi thông qua escalse=true
widget · 2
widget:readĐọc giao diện, hành vi và cài đặt nhúng của tiện ích
widget:writeCập nhật cài đặt tiện ích và xóa bộ đệm tiện ích
departments · 2
departments:readĐọc các phòng ban, đại lý và lịch trình của họ
departments:writeTạo, cập nhật hoặc xóa các phòng ban và lịch trình
messengers · 2
messengers:readĐọc những tin nhắn nào được kết nối (không bao giờ có thông tin xác thực)
messengers:writenhạy cảmKết nối hoặc ngắt kết nối tin nhắn; ghi thông tin xác thực của nhà cung cấp
ai · 4
ai:readĐọc trợ lý AI, cấu hình và cảnh báo của chúng
ai:writeTạo và cập nhật trợ lý, cài đặt AI và toán tử AI, bao gồm tính cách và lời nhắc
ai:credentials:writenhạy cảmLưu trữ thông tin xác thực của nhà cung cấp LLM bên thứ ba (BYOK)
ai:applyPhê duyệt cải tiến viết lại tính cách của trợ lý trực tiếp
kb · 2
kb:readĐọc các quy tắc cơ sở kiến thức và các nguồn đã nhập
kb:writeTạo, cập nhật hoặc xóa các quy tắc và nguồn KB
transcripts · 1
transcripts:readXuất bản ghi cuộc trò chuyện
account · 2
account:readĐọc hồ sơ tài khoản và tất cả các pháp nhân của nó
account:writeChỉ cập nhật tên, họ và số điện thoại của tài khoản
billing · 2
billing:readĐọc hồ sơ thanh toán và pháp nhân của tiện ích
billing:writeTạo, cập nhật, xóa pháp nhân; không xuất hóa đơn, không chuyển tiền
partners · 2
partners:readĐọc dữ liệu đối tác và giới thiệu
partners:withdrawdành riêngDành riêng: không có hoạt động thanh toán nào sử dụng nó ngày hôm nay
support · 4
support:readĐọc yêu cầu, cuộc trò chuyện đang hoạt động, tin nhắn của họ và hành động được kiểm tra của riêng họ
support:replynhạy cảmTrả lời khách hàng với tư cách là nhà điều hành hỗ trợ
support:writeXác nhận hoặc hủy bỏ cuộc trò chuyện, đóng mà không trả lời, mở lại
support:tickets:closeChỉ đóng một yêu cầu - không có gì khác
marketing · 2
marketing:readĐọc các chiến dịch tiếp thị: biểu ngữ, cửa sổ bật lên, email
marketing:writeTạo và chỉnh sửa chiến dịch, thay đổi trạng thái, bắt đầu gửi email
broadcasts · 2
broadcasts:readĐọc các chương trình phát sóng trên Messenger (WhatsApp, Telegram, Messenger, Viber, VK, MAX)
broadcasts:writeTạo, chỉnh sửa và bắt đầu phát sóng
problems · 2
problems:readĐọc các cụm và cài đặt vấn đề của khách hàng
problems:writeThay đổi cài đặt và trạng thái cụm: mới, đang tiến hành, đã giải quyết, định kỳ
invitations · 2
invitations:readĐọc quy tắc mời, biến thể A/B, mẫu và kênh
invitations:writeTạo, chỉnh sửa, bật hoặc xóa các quy tắc và mẫu
04

Điểm cuối

Toàn bộ bề mặt công khai trong một danh sách. Lọc theo tài nguyên, tìm kiếm theo đường dẫn, nhấp vào một hàng để sao chép một lọn tóc đã sẵn sàng.

Đang hiển thị 245 trong số 245
GETPOSTPUTPATCHDELETE

ai Trợ lý, người vận hành, chìa khóa, học tập, thị trường54

chats Hộp thoại, tin nhắn, chuyển giao, xếp hạng18

kb Cơ sở kiến thức: quy tắc, trình thu thập thông tin, tệp, tìm kiếm16

agents Đại lý, lời mời, số liệu14

messengers Sứ giả, mạng xã hội và kênh thị trường13

billing Số dư, đăng ký, hóa đơn, thực thể12

support Đại lý hỗ trợ: vé và trò chuyện12

widget Cài đặt, ngôn ngữ, bản dịch, giao diện, bộ đệm12

channels Kênh tùy chỉnh8

external‑operators Bot của bạn với tư cách là người điều hành8

webhook‑subscriptions đăng ký webhook8

broadcasts Chương trình phát sóng trên Messenger7

departments Các khoa và lịch trình7

invitations Lời mời thông minh7

marketing Chiến dịch tiếp thị7

partner Chương trình đối tác7

wishes Lời chúc dành cho AI7

contacts Danh bạ và thẻ5

problems Phân tích vấn đề của khách hàng4

quick‑phrases Cụm từ nhanh4

compat Khả năng tương thích di chuyển3

stats Thống kê3

account Tài khoản2

files Tập tin2

ratings Xếp hạng1

tags Thẻ1

v1 1

webhook‑events Danh mục sự kiện1

Các đường dẫn có liên quan đến https://smartbtn.me/api. Viết cần có Content‑Type: application/json và X‑Smartbtn‑Idempotency‑Key. Nhóm compat là lớp tương thích dành cho các nhóm chuyển từ nền tảng trò chuyện khác.

05

Webhook

JSON POST đã ký vào URL của bạn bất cứ khi nào xảy ra sự kiện đã đăng ký. Quản lý đăng ký qua /v1/webhook‑subscriptions hoặc trong trang tổng quan.

POST URL của bạn · X‑Smartbtn‑Event: ticket.created
{
  "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"
  }
}

lý do: human_request | thanh toán | ai_chưa được giải quyết | hành động_request | …; ưu tiên: cao | Bình thường; nguồn: trò chuyện | ứng dụng | địa điểm. Đọc vé và hộp thoại của nó bằng GET /v1/support/tickets/{number.

Tiêu đề phân phối

X‑Smartbtn‑EventLoại sự kiện, ví dụ: message.created.
X‑Smartbtn‑Signaturesha256=v1: của phần thân thô.
X‑Smartbtn‑Idempotency‑KeyMột giá trị cho mỗi sự kiện, ổn định trong nhiều lần thử lại. Khấu trừ nó.
X‑Smartbtn‑DeliveryMột giá trị cho mỗi lần gửi — cho nhật ký của bạn.
X‑Smartbtn‑TimestampThời gian gửi Unix. Thông tin, không có chữ ký.

Xác minh chữ ký

HMAC‑SHA256 của phần nội dung thô (byte đã nhận, trước khi phân tích cú pháp JSON) cùng với bí mật điểm cuối của bạn; so sánh trong thời gian không đổi. Bí mật được hiển thị một lần khi đăng ký được tạo; xoay nó bằng POST /v1/webhook‑subscriptions/{id}/rotate‑secret.

// Node.js · ví dụ, bí mật là một phần giữ chỗ
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; }

Thử lại và đặt hàng

  • Tối đa 4 lần thử (lần gửi đầu tiên cộng với 3 lần thử lại), thời gian chờ min(60, 2^attempt × 5) s — khoảng 10, 20, 40 giây.
  • Không phải 2xx hoặc thời gian chờ được tính là một lần thử không thành công. Việc gửi không thành công có thể được gửi lại bằng POST /v1/webhook‑subscriptions/{id}/redeliver — cùng một khóa tạm thời, id gửi mới.
  • Việc giao hàng được thực hiện ít nhất một lần và không được đặt hàng. Tải trọng tối thiểu - id, không phải bản ghi đầy đủ; tìm nạp thông tin chi tiết thông qua API REST.
06

JS API

Chuyển thẳng những gì bạn đã biết về khách truy cập tới đại lý. Cuộc gọi chỉ được chấp nhận từ miền được đặt trong cài đặt tiện ích.

smartbtn_widget_api.setContactInfo(info)

Đặt dữ liệu liên hệ của khách truy cập. Nhân viên coi như thể khách truy cập đã điền vào mẫu giới thiệu. Tên, số điện thoại và email đóng một vai trò đặc biệt trong Smartbtn — do đó có một phương thức riêng biệt.

TênLoạiMô tả
namestringTên khách
emailstringEmail của khách truy cập
phonestringĐiện thoại của khách
descriptionstringBất kỳ thông tin bổ sung nào về khách hàng
Smartbtn_api.setClientInfo({
  name: "Alex Morgan",
  email: "email@example.com",
  phone: "+17584987855",
  description: "Description text"
});

smartbtn_widget_api.setCustomData(fields)

Mọi dữ liệu bổ sung cho bảng thông tin ở bên phải ứng dụng tổng đài viên. Gọi nó bao nhiêu lần tùy thích — trong hộp thoại mở, bảng điều khiển sẽ cập nhật theo thời gian thực. Các trường được hiển thị theo thứ tự mảng.

TênLoạiMô tả
fieldsarrayDanh sách các trường dữ liệu
field.titlestringTiêu đề phía trên sân
field.contentstringNội dung trường; thẻ đã thoát
field.linkstringURL được mở khi nhấp chuột
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()

Chuyển đổi chủ đề tiện ích một cách nhanh chóng mà không cần tải lại trang (classic, minimal, capsule, liquid) hoặc điều khiển cửa sổ trò chuyện theo chương trình. Để tùy chỉnh vĩnh viễn cho mỗi dự án, hãy chuyển các trường tương tự tới PATCH /v1/widget/settings.

// JS API · chuyển đổi giao diện trên trang trong thời gian thực
smartbtn_widget_api.setSkin("minimal");
smartbtn_widget_api.setSkin("capsule", { capsuleTitle: "Smartbtn AI", capsuleSubtitle: "Trả lời sau ~1 giây" });

// REST API · PATCH /v1/widget/settings (phạm vi 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": "Trực tuyến 24/7"
}
Khi widget_api_contact_sync được bật, các lệnh gọi này cũng kích hoạt webhook contact.updated.
07

Support‑agent API

Một nhân viên hỗ trợ tự động xử lý hàng đợi yêu cầu và cuộc trò chuyện của khách hàng: thực hiện trò chuyện, trả lời với tư cách là nhà điều hành hỗ trợ con người của bạn, đóng yêu cầu. Tắt cho đến khi chủ sở hữu widget bật nó lên.

  1. Chủ sở hữu cho phép nóLiệt kê các mã thông báo được phép đóng vai trò là đại lý hỗ trợ và IP mà chúng có thể gọi từ đó.
  2. Đọc hàng đợiGET /v1/support/tickets · GET /v1/support/chats
  3. Thuê một cuộc trò chuyệnPOST …/chats/{id}/claim · …/release
  4. trả lờiVăn bản thuần túy, chỉ liên kết đến các máy chủ được phép của tiện ích. 201 chỉ khi tin nhắn được lưu trữ.
  5. Đóng hoặc mở lạiPOST …/tickets/{number}/close · …/reopen
Phạm viCho phép
support:readVé, cuộc trò chuyện đang hoạt động, tin nhắn được gắn nhãn client / ai / support / system, hành động được kiểm tra riêng
support:writeYêu cầu/hủy bỏ cuộc trò chuyện, đóng mà không trả lời, mở lại
support:replyTrả lời khách hàng với tư cách là người điều hành hỗ trợ (nhạy cảm)
support:tickets:closeChỉ đóng một yêu cầu - đối với nút «câu hỏi đã được giải quyết» trên phần phụ trợ của bạn
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">Xong, quyền truy cập đã được khôi phục."}'
Chủ sở hữu có thể cung cấp mã thông báo cho đại lý hỗ trợ giới hạn mỗi phút của riêng họ — hoặc không cung cấp gì cả. Mọi tuyến đường khác đều giữ nguyên giới hạn chung.
08

API AI

Mọi thứ mà phần AI của bảng điều khiển thực hiện: trợ lý, khóa nhà cung cấp của riêng bạn, cơ sở kiến ​​thức, tự học với khôi phục, mong muốn, vấn đề, tín hiệu nhu cầu và trợ lý bên trong ứng dụng của bạn.

Trợ lý và người vận hành AI

Một số trợ lý có vai trò và ngôn ngữ riêng, được kiểm tra trước khi đi vào hoạt động, các toán tử được đặt tên theo ngôn ngữ.

  • GET/v1/ai/assistants
  • POST/v1/ai/assistants/{id}/test
  • PATCH/v1/ai/operators/{id}
  • POST/v1/ai/handoff
Phạm vi: ai:read · ai:write
Mang theo chìa khóa riêng của bạn

Claude, ChatGPT, DeepSeek, Gemini, Mistral, LLM khu vực hoặc bất kỳ LLM nào tương thích với OpenAI. Các mô hình được liệt kê trên mỗi khóa.

  • GET/v1/ai/credentials
  • POST/v1/ai/credentials
  • GET/v1/ai/credentials/{id}/models
Phạm vi: ai:read · ai:credentials:write
Cơ sở tri thức

Trình thu thập thông tin cho trang web của bạn, tải lên PDF và DOCX, quy tắc, trạng thái tìm kiếm và lập chỉ mục.

  • PUT/v1/kb/crawler
  • POST/v1/kb/uploads
  • POST/v1/kb/rules
  • GET/v1/kb/search
Phạm vi: kb:read · kb:write · files:write
Tự học

Điều chỉnh các lần chạy, chu kỳ, lịch sử, phiên bản cá nhân bằng tính năng khôi phục và khóa chuyển đổi.

  • POST/v1/ai/learning/tune
  • GET/v1/ai/learning/cycles
  • POST/v1/ai/learning/persona‑versions/{version}/revert
  • GET/v1/ai/learning/kill‑switch
Phạm vi: ai:read · ai:write · ai:apply
Lời chúc dành cho AI

Một điều ước bằng lời nói đơn giản → bản xem trước không có tác dụng phụ → phê duyệt, từ chối hoặc hoàn nguyên.

  • POST/v1/wishes
  • GET/v1/wishes/{id}/preview
  • POST/v1/wishes/{id}/approve
  • POST/v1/wishes/{id}/revert
Phạm vi: ai:write · ai:apply
Vấn đề và tín hiệu nhu cầu

Các nhóm vấn đề có trạng thái và giới hạn chi tiêu hàng tháng; những gì khách hàng yêu cầu mà bạn không cung cấp.

  • GET/v1/problems
  • PATCH/v1/problems/settings
  • POST/v1/problems/{id}/status
  • GET/v1/ai/demand‑signals
Phạm vi: problems:read · problems:write · ai:read
Trạng thái khách hàng

Phần phụ trợ của bạn sẽ đẩy trạng thái khách hàng (đã đăng ký, đã thanh toán, khách hàng kể từ, trạng thái dịch vụ) trong yêu cầu do HMAC ký — AI sẽ cân nhắc trạng thái đó khi trả lời và chuyển lên cấp trên.

  • POST/v1/ai/customer‑status
  • POST/v1/ai/tickets
  • GET/v1/ai/alerts
Phạm vi: ai:write · ai:read
Trợ lý trong ứng dụng của bạn

Chuyển đổi hộp thoại, liên kết tài khoản, chuyển lời nói thành văn bản và chuyển văn bản thành giọng nói, phiếu ứng dụng — thông qua tích hợp đã ký.

  • 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
Phạm vi: chữ ký tích hợp (HMAC)
Thị trường giải pháp

Trợ lý sẵn sàng theo từng vị trí: quán cà phê, phòng khám, cửa hàng, dịch vụ xe hơi. Áp dụng trong một yêu cầu.

  • GET/v1/ai/marketplace/templates
  • POST/v1/ai/marketplace/templates/{slug}/apply
Phạm vi: ai:read · ai:write
Nhà điều hành AI bên ngoài

Bot của riêng bạn trả lời các cuộc trò chuyện: trả lời không đồng bộ, chuyển giao, kiểm tra và vòng đời.

  • POST/v1/ai/replies
  • POST/v1/external‑operators/{public_id}/tests
  • POST/v1/external‑operators/{public_id}/lifecycle
Phạm vi: responder:inject · responder:escalate
09

Giới hạn tỷ lệ

Mỗi mã thông báo có hai bộ đếm: số lần đọc và ghi được tính riêng biệt, vì vậy việc bỏ phiếu không bao giờ ngốn ngân sách ghi.

600 / phútđọc: NHẬN, ĐẦU
120 / phútviết: POST, PATCH, PUT, DELETE
429vượt quá giới hạn - đợi Thử lại sau
X‑RateLimit‑LimitKích thước của bộ đếm mà yêu cầu này được tính vào (600 hoặc 120)
X‑RateLimit‑RemainingYêu cầu còn lại trong cửa sổ hiện tại
X‑RateLimit‑ResetKhi cửa sổ đặt lại
Retry‑AfterTrên 429: giây chờ đợi
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 và /v1/ai/assistant/account‑link có bộ đếm riêng; API tác nhân hỗ trợ có thể ghi đè theo từng tiện ích.

10

Lỗi

Mọi lỗi đều là RFC‑7807 application/problem+json: trạng thái và lý do mà máy có thể đọc được, chi tiết mà con người có thể đọc được.

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"
}

Tên nội dung bắt buộc_scopes và nơi cấp chúng. Không cần phải cấp lại chìa khóa.

Trạng tháiÝ nghĩa
400Yêu cầu không đúng định dạng hoặc thiếu khóa tạm thời bắt buộc
401Không có mã thông báo, mã thông báo không hợp lệ hoặc bị thu hồi
403Mã thông báo thiếu phạm vi; phần nội dung thêm required_scopes và nơi cấp nó
404Không tìm thấy trong tiện ích này
405Phương pháp không được phép - dừng lại và báo cáo; đừng tìm cách viết thay thế
409Khóa bình thường được sử dụng lại trong vòng 24 giờ hoặc xung đột trạng thái
422Xác thực không thành công (ví dụ: trường chỉ đọc đã được gửi)
429Giới hạn tỷ lệ; tôn trọng Thử lại sau
11

sự bình thường

Mạng thất bại. Một khóa giúp việc ghi lại được an toàn: cùng một thao tác không bao giờ được áp dụng hai lần.

  • Gửi X‑Smartbtn‑Idempotency‑Key trên mỗi POST / PATCH / PUT / DELETE: một UUID mới cho một thao tác mới, cùng một khóa để thử lại cùng một thao tác.
  • Các hoạt động được đánh dấu x‑idempotency: bắt buộc trong OpenAPI: không có khóa → 400, khóa được sử dụng lại trong vòng 24 giờ → 409 (không phải là thành công được lưu vào bộ nhớ đệm).
  • Không chắc chắn nó đã đi qua? Đọc trạng thái đầu tiên. Không bao giờ tự động thay đổi chìa khóa; tôn trọng Thử lại sau.
  • Một 502 từ nhà cung cấp thượng nguồn sẽ giải phóng khóa — thử lại bằng chính khóa đó.
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"}'
# lỗi mạng à? lặp lại với cùng $KEY
12

Changelog

Những thay đổi đối với API công khai và webhooks vào năm 2026. Mọi thứ bên dưới đều mang tính bổ sung và vẫn ở v1.

MớiVé: webhook ticket.created, hàng đợi đọc với hỗ trợ:đọc, gợi ý 403

Vé sự kiện trực tiếp mới đã được tạo. GET /v1/support/tickets trả lời bất kỳ khóa nào với support:read cho đến khi tác nhân hỗ trợ được định cấu hình. Phạm vi chính có thể chỉnh sửa mà không cần phát hành lại. 403 mức tăng cần_scopes.

MớiTên nhà điều hành AI cho mỗi ngôn ngữ

POST/PATCH /v1/ai/operators chấp nhận name_i18n; tên mặc định được dịch sang ngôn ngữ widget; lựa chọn lời chào có thể dự đoán được.

Thay đổiGiới hạn tốc độ: đọc và ghi được tính riêng biệt

Đọc - 600 mỗi phút, viết - 120. Bỏ phiếu không còn ngốn ngân sách ghi nữa. X‑RateLimit-* mô tả bộ đếm đã được sử dụng.

MớiNHẬN /v1/chats: bộ lọc update_since

Trò chuyện có hoạt động ngay lập tức, cho dù chúng cũ đến mức nào. Giờ đây, mọi cuộc trò chuyện đều mang theo Last_message_at.

MớiAPI hỗ trợ: cuộc trò chuyện yêu cầu hộp thư

chat.account.email_requested - cuộc trò chuyện đang chờ địa chỉ; các đại lý không được bắt đầu một luồng mã khác.

MớiHỗ trợ phạm vi:vé:đóng

Đóng một yêu cầu và không làm gì khác - để có nút «đã giải quyết câu hỏi» trên phần phụ trợ của bạn.

MớiGET /v1/chats: tìm kiếm văn bản và tin nhắn của khách hàng

Bộ lọc has_client_messages=1 và q (2–100 ký tự).

MớiLiên kết tài khoản từ phụ trợ của bạn

POST /v1/ai/assistant/account‑link và /revoke. Tắt cho đến khi chủ sở hữu kích hoạt nó.

sửa chữaCơ sở kiến thức: viết bằng phím hỗ trợ

Các quy tắc được nhúng bằng phím tiện ích hoặc phím trợ lý được bật; một 502 giải phóng khóa bình thường.

Thay đổiAPI tác nhân hỗ trợ: thời gian tồn tại của tài khoản vé ứng dụng

Tài khoản sẽ hiển thị khi vé được mở và trong 7 ngày sau đó.

MớiAPI tác nhân hỗ trợ

Nhóm /v1/support mới: xếp hàng, trò chuyện, cho thuê, trả lời, đóng và mở lại vé. Tắt cho đến khi chủ sở hữu kích hoạt nó.

MớiAPI tác nhân hỗ trợ: cửa sổ mã e‑mail

Các trường code_pending, code_expires_at, Last_code_result và Last_code_at.

13

Plugin WordPress

Tiện ích trên trang web WordPress mà không cần chạm vào mã chủ đề.

  1. Tải xuốngkho lưu trữ plugin vào máy tính của bạn.
  2. cài đặtĐặt thư mục đã giải nén vào wp‑content/plugins/ — hoặc tải nó lên trong quản trị viên WordPress.
  3. Kích hoạtMục Smartbtn xuất hiện trong menu.
  4. Dán mã thông báoSao chép mã thông báo bảo mật từ cài đặt tiện ích trong trang tổng quan của bạn.
Thật tốt khi biết

Khi bạn thay đổi mật khẩu, mã thông báo bảo mật cũng thay đổi và mã cũ ngừng hoạt động — dán mã mới vào plugin.

14

Mẫu mã

Liệt kê mọi cuộc trò chuyện có hoạt động kể từ cuộc thăm dò cuối cùng của bạn — theo con trỏ đến cuối.

# trang đầu tiên
curl -G https://smartbtn.me/api/v1/chats \
  -H "Authorization: Bearer $SMARTBTN_TOKEN" \
  --data-urlencode "updated_since=2026-10-17T09:00:00+03:00"

# tiếp theo - với next_cursor từ phản hồi
curl -G https://smartbtn.me/api/v1/chats \
  -H "Authorization: Bearer $SMARTBTN_TOKEN" \
  --data-urlencode "cursor=eyJpZCI6NDgyMDd9"
Sẵn sàng

Phát hành mã thông báo - và nhấn Enter.