Bắt đầu nhập khách
contacts.import.startMCP:contacts_import_startBộ công cụ: Khách hàngStart an import (file name, row count, column mapping, options). Then send rows with contacts_import_chunk and close with contacts_import_finish.
Cần Idempotency-Key
Xếp hàng theo hạn mức của tài khoản
Quyền: Khách hàng
Gọi bằng REST v2
curl -X POST https://zl.builera.app/api/public/v2/ops/contacts.import.start \
-H "Authorization: Bearer za_live_…" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"fileName":"Nguyễn Văn A","total":1,"mapping":{},"options":{"mode":"update","labelIds":["3f2b8c1e-5d4a-4e6b-9c7d-1a2b3c4d5e6f"],"listId":"3f2b8c1e-5d4a-4e6b-9c7d-1a2b3c4d5e6f","source":"x","ownerId":"3f2b8c1e-5d4a-4e6b-9c7d-1a2b3c4d5e6f"}}'Mỗi khoá/kết nối tối đa 300 lệnh đọc và 60 lệnh ghi mỗi phút. Gọi lại cùng Idempotency-Key trả đúng kết quả cũ, không làm lại.
Gọi qua MCP
{
"method": "tools/call",
"params": {
"name": "contacts_import_start",
"arguments": {
"fileName": "Nguyễn Văn A",
"total": 1,
"mapping": {},
"options": {
"mode": "update",
"labelIds": [
"3f2b8c1e-5d4a-4e6b-9c7d-1a2b3c4d5e6f"
],
"listId": "3f2b8c1e-5d4a-4e6b-9c7d-1a2b3c4d5e6f",
"source": "x",
"ownerId": "3f2b8c1e-5d4a-4e6b-9c7d-1a2b3c4d5e6f"
}
}
}
}Thêm https://zl.builera.app/mcp vào ứng dụng AI rồi cho phép kết nối; AI chỉ thấy công cụ trong bộ bạn chọn.
Kết quả
HTTP 202
{ "status": "accepted", "operationId": "…", "jobId": "…", "data": { … } }
→ operations.wait (tối đa 20 giây) hoặc webhook để biết kết quả trên ZaloVí dụ đầu vào
{
"fileName": "Nguyễn Văn A",
"total": 1,
"mapping": {},
"options": {
"mode": "update",
"labelIds": [
"3f2b8c1e-5d4a-4e6b-9c7d-1a2b3c4d5e6f"
],
"listId": "3f2b8c1e-5d4a-4e6b-9c7d-1a2b3c4d5e6f",
"source": "x",
"ownerId": "3f2b8c1e-5d4a-4e6b-9c7d-1a2b3c4d5e6f"
}
}Thay mã (id) mẫu bằng mã thật lấy từ các thao tác liệt kê/tìm kiếm.
Lược đồ đầu vào (JSON Schema)
{
"type": "object",
"properties": {
"fileName": {
"type": "string",
"maxLength": 200
},
"total": {
"type": "integer",
"minimum": 1,
"maximum": 50000
},
"mapping": {
"type": "object",
"additionalProperties": {
"type": "string",
"maxLength": 60
}
},
"options": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"update",
"keep"
]
},
"labelIds": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
},
"maxItems": 20
},
"listId": {
"type": "string",
"format": "uuid",
"nullable": true
},
"source": {
"type": "string",
"maxLength": 40
},
"ownerId": {
"type": "string",
"format": "uuid",
"nullable": true
}
},
"required": [
"mode",
"labelIds",
"listId",
"source",
"ownerId"
],
"additionalProperties": false
}
},
"required": [
"fileName",
"total",
"mapping",
"options"
],
"additionalProperties": false
}