Tổng quan hệ thống & Khả năng chịu tải
Bitrix Broker Platform là hệ thống Microservice Gateway đa cổng (Multi-Tenant Broker) được thiết kế đặc biệt cho việc gom đệm batch, khống chế tần suất REST API limit và xử lý các tác vụ khối lượng lớn (Heavy Tasks) giữa các hệ thống bên ngoài / Bitrix Workflows với Bitrix24 CRM.
Hệ số tối ưu REST Batch (50x Optimization)
Tự động gom tối đa 50 request lẻ thành đúng 1 HTTP REST `batch` call gửi tới Bitrix. Giảm 98% chi phí kết nối HTTP và giải phóng băng thông cho server.
Tốc độ xử lý tối đa / Portal Domain
Ở chế độ gom đệm accumulate, mỗi portal có thể xử lý tối đa lên tới 90 CRM items /
giây (tương đương 5.400 items / phút per domain) mà không dính lỗi
QUERY_LIMIT_EXCEEDED của Bitrix.
📊 Bảng thông số ước tính chịu tải theo cấu hình phần cứng Server:
| Cấu hình phần cứng | RAM tiêu thụ cơ bản | Throughput xử lý / Phút | Số Portal đáp ứng |
|---|---|---|---|
| Gói Tiêu Chuẩn (1 vCPU, 1 GB RAM) | ~45 MB - 80 MB RAM | 1.500 - 3.000 requests / phút | 1 - 3 Portals |
| Gói Khá (2 vCPU, 4 GB RAM) | ~120 MB - 250 MB RAM | 10.000 - 25.000 requests / phút | 5 - 15 Portals |
| Gói Cao Cấp (4 vCPU, 8 GB RAM) | ~300 MB - 600 MB RAM | 50.000+ requests / phút | 30+ Portals |
Memory Release Cleanup purges các
completed jobs sau 1 giờ (giới hạn tối đa 1.000 jobs history).
API Proxy hàng đợi chính của hệ thống. Tiếp nhận các message chứa target_url và đẩy lên Bitrix
REST API hoặc Webhook đối tác. Mặc định chế độ: async (xử lý nền bất đồng bộ).
Ngoài ra hỗ trợ accumulate (gom batch 50 items/delay window) và sync (chờ phản hồi
đồng bộ).
| Tham số (Field) | Kiểu dữ liệu | Bắt buộc | Mô tả chi tiết & Giá trị hợp lệ |
|---|---|---|---|
x-domain |
Header / String | Bắt buộc | Domain / Tenant đích đã đăng ký trên Broker (VD: demo.bitrix24.com). Hỗ trợ alias: x-target-domain, x-portal-domain, x-bitrix-domain. |
mode |
Body / String | Tùy chọn | Chế độ xử lý: "async" (Mặc định - xử lý nền), "accumulate" (gom batch 50
items/delay), "sync" (chờ đồng bộ). |
delay |
Body / Number | Tùy chọn | Thời gian chờ gom đệm (giây). Mặc định 30 (Chỉ có hiệu lực ở chế độ
accumulate). |
callback_url |
Body / String | Tùy chọn | URL Webhook tuyệt đối để nhận thông báo khi Job xử lý hoàn tất. |
messages / items |
Body / Array | Bắt buộc | Mảng danh sách các đối tượng message/request chuyển tiếp. |
messages[].target_url |
Item Field / String | Bắt buộc | Tên phương thức Bitrix REST API (VD: crm.deal.add, crm.lead.add) hoặc URL
Webhook đối tác tuyệt đối để Proxy đẩy dữ liệu tới. |
messages[].auth_mode |
Item Field / String | Tùy chọn | Phương thức xác thực chọn dùng (cookie, oauth2, webhook) khi target_url là phương thức Bitrix REST API. Nếu bỏ qua, hệ thống tự dùng Auth Mode cấu hình của Portal. |
messages[].body / payload |
Item Field / Object | Bắt buộc | Đối tượng dữ liệu JSON payload cần chuyển tiếp tới target_url. |
{
"mode": "async",
"delay": 30,
"callback_url": "https://your-webhook.com/callback",
"messages": [
{
"target_url": "crm.deal.add",
"auth_mode": "oauth2",
"body": {
"fields": {
"TITLE": "Cơ hội kinh doanh mới qua Proxy",
"OPPORTUNITY": 5000,
"CURRENCY_ID": "VND"
}
}
}
]
}
| Trường (Field) | Kiểu dữ liệu | Mô tả ý nghĩa thông tin |
|---|---|---|
success |
Boolean | Trạng thái thực thi request (true / false). |
mode |
String | Chế độ xử lý đã được hệ thống ghi nhận (VD: "async"). |
jobId |
String | Mã ID duy nhất của Job trong hàng đợi để tra cứu tiến độ. |
totalMessages |
Number | Tổng số lượng message/request đã được đưa vào hàng đợi thành công. |
message |
String | Thông điệp mô tả kết quả xử lý từ hệ thống Broker. |
{
"success": true,
"mode": "async",
"domain": "demo.bitrix24.com",
"jobId": "heavy_job_1786073800100",
"totalMessages": 1,
"totalChunks": 1,
"subJobIds": ["heavy_job_1786073800100"],
"message": "Job heavy_job_1786073800100 enqueued for background processing."
}
Endpoint tiếp nhận Outbound Webhooks tự động từ Bitrix24 theo mã Key duy nhất. Người dùng chỉ cần dán URL này vào Bitrix24 mà không cần cấu hình thêm tham số nào trong payload. Các thông số xử lý (Target Url, Chế độ async/sync/accumulate, Delay gom, Secret Token) đã được thiết lập và lưu trữ sẵn trong hệ thống Broker khi tạo Webhook Receiver.
| Thành phần | Vị trí | Bắt buộc | Mô tả chi tiết |
|---|---|---|---|
:key |
URL Path | Bắt buộc | Mã Hex định danh duy nhất của Webhook Receiver (VD: 083ac1f91fb8d4f9). Broker tự tra cứu Target Url và Chế độ đã lưu. |
Bitrix Payload |
HTTP Body | Tự động | Dữ liệu thô do Bitrix24 tự gửi sang (chứa event, data[FIELDS][ID], auth[domain]...). |
https://your-broker-domain.com/api/v1/webhooks/083ac1f91fb8d4f9
{
"success": true,
"mode": "async",
"domain": "demo.bitrix24.com",
"webhook": "Đồng bộ Deal mới",
"jobId": "job_1786073800100",
"message": "Raw Bitrix webhook received & enqueued for async processing."
}
Quản lý các Portal và Webhook Receiver Endpoints trong hệ thống Broker. Yêu cầu Authorization: Bearer <admin_token>.
| Method | Endpoint | Mô tả tính năng |
|---|---|---|
| GET | /api/v1/portals |
Lấy danh sách tất cả Portals đã đăng ký trong DB. |
| POST | /api/v1/portals/upsert |
Đăng ký mới hoặc Cập nhật thông tin Portal (hỗ trợ authMode, webhookUrl, errorNotifyUrl). |
| PATCH | /api/v1/portals/:domain/status |
Tạm khóa (HTTP 403 Forbidden) hoặc Mở khóa hoạt động của Portal (body: { "enabled": false }). |
| GET | /api/v1/portals/:domain/webhooks |
Lấy danh sách tất cả Webhook Receivers của Portal. |
| POST | /api/v1/portals/:domain/webhooks |
Tạo mới Webhook Receiver cho Portal. |
| PATCH | /api/v1/portals/:domain/webhooks/:webhookId/status |
Tạm khóa hoặc Mở khóa Webhook Receiver (body: { "enabled": false }). |
{
"success": true,
"portals": [
{
"domain": "eqvn.bitrix24.com",
"name": "EQVN Demo Portal",
"authMode": "oauth2",
"oauthConnected": true,
"errorNotifyUrl": "https://n8n.dtx.vn/webhook/bitrix-error-alert",
"enabled": true,
"webhooks": [
{
"id": "wh_6357b94ab19f",
"key": "6357b94ab19fc00b44a40fe9",
"name": "Nhận Webhook CRM Deal",
"targetUrl": "https://n8n.dtx.vn/webhook/deal-update",
"mode": "async",
"enabled": true
}
]
}
]
}
Mô-đun mở rộng hỗ trợ đăng ký Event Handlers tự động trong Bitrix24 (CRM Events, Chatbot/ImBot, Telephony/Calls, SMS/Message Services, Tasks) và đăng ký Automation Rules / Robots / BizProc Activities trong quy trình tự động hóa của Bitrix24.
| Method | Endpoint | Mô tả tính năng |
|---|---|---|
| POST | /api/v1/events/bind |
Đăng ký Event Handler mới trên Bitrix24 (body: domain, event, handlerUrl, authMode). |
| POST | /api/v1/events/unbind |
Hủy đăng ký Event Handler trên Bitrix24 server. |
| GET | /api/v1/events/list |
Lấy danh sách các Event đã được lưu trong DB local. |
| GET | /api/v1/events/remote-list |
Lấy danh sách System Events trực tiếp từ Bitrix24 server (query: domain, authMode). |
| POST | /api/v1/automation/robot/add |
Đăng ký Custom Automation Robot / BizProc Activity mới cho quy trình CRM Automation rules. |
| POST | /api/v1/automation/robot/unbind |
Hủy đăng ký Automation Robot khỏi Bitrix24 server. |
| GET | /api/v1/automation/robot/list |
Lấy danh sách Automation Robots đã được lưu trong DB local. |
| GET | /api/v1/automation/robot/remote-list |
Lấy danh sách Automation Robots trực tiếp từ Bitrix24 server (query: domain, authMode). |
{
"domain": "demo.bitrix24.com",
"event": "ONIMBOTMESSAGEADD",
"handlerUrl": "https://your-broker-domain.com/api/v1/webhooks/083ac1f91fb8d4f9"
}
{
"domain": "eqvn.bitrix24.com",
"code": "broker_deal_sync_robot",
"name": "Robot Đồng Bộ CRM & SPA Sang ERP",
"description": "Kích hoạt tự động trong CRM Stage Rules khi Deal/SPA đổi trạng thái",
"handlerUrl": "https://bx-sync.dtx.vn/api/v1/webhooks/6357b94ab19fc00b44a40fe9",
"authMode": "oauth2",
"authUserId": 1,
"filter": {
"INCLUDE": [
["crm", "CCrmDocumentDeal"],
["crm", "CCrmDocumentLead"],
["crm", "crm.dynamic_128"],
["crm", "Bitrix\\Crm\\Integration\\BizProc\\Document\\Dynamic", "DYNAMIC_128"]
]
},
"properties": {
"target_system": {
"Name": "Hệ thống nhận",
"Type": "string",
"Required": "Y",
"Default": "ERP System"
}
},
"returnProperties": {
"result_status": {
"Name": "Trạng thái xử lý",
"Type": "string"
}
}
}
API mở rộng chuyên dụng tạo đơn hàng cho **Bitrix CRM Deals**. Mặc định mode: "async".
| Tham số (Field) | Kiểu dữ liệu | Bắt buộc | Mô tả chi tiết |
|---|---|---|---|
workflow_id |
String | Bắt buộc | Mã quy trình Workflow Bitrix24 tạo đơn (VD: wf_deal_101). |
document_id[2] |
String | Bắt buộc | Mã ID Deal trong Bitrix CRM (VD: DEAL_1234 hoặc 1234). |
properties[orderTopic] |
String | Tùy chọn | Tiêu đề / Tên đơn hàng hiển thị trong Bitrix Store. |
properties[amount] |
Number | Bắt buộc | Tổng giá trị đơn hàng (VD: 1500). |
properties[createPayment] |
String | Tùy chọn | Tự động sinh chứng từ thanh toán Payment ("Y" / "N"). |
{
"mode": "accumulate",
"delay": 30,
"items": [
{
"workflow_id": "wf_deal_101",
"document_id[2]": "DEAL_1234",
"properties": {
"orderTopic": "Đơn hàng Deal #1234",
"amount": 1500,
"currency": "VND",
"createPayment": "Y"
}
}
]
}
{
"success": true,
"orderType": "deal",
"mode": "accumulate",
"domain": "demo.bitrix24.com",
"totalOrders": 1,
"delay": 30,
"message": "Enqueued 1 DEAL order(s) into batch accumulator (Flush window: 30s or max 50 items)."
}
API mở rộng chuyên dụng tạo đơn hàng cho **Bitrix Smart Process Automation (SPA)**. Mặc định
mode: "async".
| Tham số (Field) | Kiểu dữ liệu | Bắt buộc | Mô tả chi tiết |
|---|---|---|---|
workflow_id |
String | Bắt buộc | Mã quy trình Workflow Bitrix24 tạo đơn SPA. |
document_id[2] |
String | Bắt buộc | Mã Định danh SPA Entity (VD: DYNAMIC_1052_5001). |
properties[amount] |
Number | Bắt buộc | Tổng giá trị đơn hàng SPA (VD: 2500). |
{
"mode": "accumulate",
"delay": 30,
"items": [
{
"workflow_id": "wf_spa_202",
"document_id[2]": "DYNAMIC_1052_5001",
"properties": {
"orderTopic": "Đơn hàng SPA #5001",
"amount": 2500,
"createPayment": "Y"
}
}
]
}
{
"success": true,
"orderType": "spa",
"mode": "accumulate",
"domain": "demo.bitrix24.com",
"totalOrders": 1,
"delay": 30,
"message": "Enqueued 1 SPA order(s) into batch accumulator (Flush window: 30s or max 50 items)."
}