Coka AI COKA Docs

diamond Bắt đầu với Coka AI MCP Server

COKA AI MCP Server giúp bạn quản lý Lead, Deal, Khách hàng, Lịch hẹn... bằng ngôn ngữ tự nhiên thông qua các ứng dụng AI.

Bạn chỉ cần 2 bước để bắt đầu:

  • check_circle Lấy Token xác thực từ Coka AI
  • check_circle Dán cấu hình vào ứng dụng AI của bạn

Sau đó bạn có thể giao tiếp với AI để quản lý Lead, Deal, đặt lịch hẹn, tạo đơn hàng và nhiều hơn nữa.

diamond Lấy Token Xác Thực

Token là "chìa khóa" để AI truy cập dữ liệu Coka của bạn một cách an toàn.

Truy cập Coka AI

Mở trình duyệt, truy cập CoKađăng nhập bằng tài khoản của bạn.

Vào trang Cài đặt → Thông tin tài khoản

Trên thanh menu bên trái, chọn Cài đặt → chọn tab Cá nhân.

Tìm mục "Kết nối MCP"

Cuộn xuống cuối trang, bạn sẽ thấy mục link Kết nối MCP với nút Tạo Key MCP màu tím.

Tạo Key MCP

Nhấn nút "Tạo Key MCP" → hệ thống tạo token → Copy toàn bộ chuỗi token.

warning
Bảo mật: Token giống mật khẩu — KHÔNG chia sẻ cho người khác. Nếu nghi bị lộ, vào lại Cài đặt để tạo key mới.

diamond Cấu Hình Kết Nối

Chọn ứng dụng AI bạn đang sử dụng:

Claude Desktop

Mở file cấu hình:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

claude_desktop_config.json
{
    "mcpServers": {
        "coka_ai": {
            "command": "npx",
            "args": [
                "-y",
                "mcp-remote",
                "https://mcp.coka.ai/mcp/",
                "--header",
                "CokaToken: coka_token"
            ]
        }
    }
}

Cursor

Mở Settings settingsMCP ServersAdd new MCP Server

MCP Config
{
    "mcpServers": {
        "coka-api": {
            "url": "https://mcp.coka.ai/mcp",
            "headers": {
                "CokaToken": "coka_token"
            }
        }
    }
}

Antigravity (Google Gemini)

Tạo hoặc mở file .gemini/settings.json trong thư mục dự án

.gemini/settings.json
{
    "mcpServers": {
        "coka_server": {
            "serverUrl": "https://mcp.coka.ai/mcp",
            "headers": {
                "CokaToken": "coka_token"
            }
        }
    }
}

Windsurf / Cline / Roo Code

MCP Config
{
    "mcpServers": {
        "coka-api": {
            "url": "https://mcp.coka.ai/mcp",
            "headers": {
                "CokaToken": "coka_token"
            }
        }
    }
}

VS Code (GitHub Copilot)

Tạo file .vscode/mcp.json trong thư mục dự án

.vscode/mcp.json
{=
    "servers": {
        "coka-api": {
            "type": "sse",
            "url": "https://mcp.coka.ai/mcp",
            "headers": {
                "CokaToken": " coka_token"
            }
        }
    }
}
edit_note
VS Code dùng key "servers" thay vì "mcpServers"

N8N (Automation)

Mở N8N workflow

Thêm node MCP Client

Điền thông tin kết nối

  • SSE URL: https://mcp.coka.ai/mcp
  • Header Key: CokaToken
  • Header Value: coka_token

Manus

Manus sử dụng Streamable HTTP (protocol mới nhất).

MCP Config
{
    "mcpServers": {
        "coka": {
            "type": "streamableHttp",
            "url": "https://mcp.coka.ai/mcp/",
            "headers": {
                "CokaToken": "coka_token"
            }
        }
    }
}
lightbulb
Manus dùng streamableHttp. Token KHÔNG cần prefix .
check_circle
Sau khi lưu cấu hình → Khởi động lại ứng dụng AI để áp dụng thay đổi.

diamond Bắt Đầu Sử Dụng

Sau khi kết nối thành công, nói chuyện với AI bằng ngôn ngữ tự nhiên:

leaderboard Quản lý Lead

Bạn muốn... Nói với AI
Xem danh sách Lead "Cho tôi xem danh sách Lead"
Tạo Lead mới "Tạo Lead mới tên Nguyễn Văn A, SĐT 0901234567"
Gán người phụ trách "Gán Lead này cho anh Minh"

work Quản lý Deal

Bạn muốn... Nói với AI
Tạo Deal mới "Tạo deal mới cho khách hàng ABC"
Chuyển Lead → Deal "Chuyển Lead Nguyễn Văn A sang Deal"
Chuyển giai đoạn "Chuyển Deal ABC sang giai đoạn Đàm phán"

calendar_month Lịch hẹn & Đơn hàng

Bạn muốn... Nói với AI
Đặt lịch hẹn "Tạo lịch họp với KH vào 2h chiều mai"
Xem sản phẩm "Cho tôi xem danh sách sản phẩm"

diamond Câu Hỏi Thường Gặp

Token là gì? Tại sao cần token? expand_more
Token là chìa khóa xác thực giúp AI truy cập dữ liệu Coka an toàn.
Token có hết hạn không? expand_more
Có. Đăng nhập lại app2.coka.ai và lấy token mới.
Dữ liệu có an toàn không? expand_more
Token truyền qua HTTPS. Server không lưu trữ token vĩnh viễn.
AI có thể xóa dữ liệu không? expand_more
AI luôn hỏi xác nhận trước khi xóa. Bạn có quyền từ chối.

diamond Xử Lý Lỗi Thường Gặp

Lỗi Nguyên nhân Cách xử lý
Token không hợp lệ Token hết hạn / sai format Lấy token mới từ app2.coka.ai
Failed to connect Server bảo trì / mạng lỗi Thử lại sau vài phút
Session not found Phiên kết nối hết hạn Khởi động lại ứng dụng AI

diamond Tài Liệu API Kỹ Thuật

Coka AI MCP Server — Version 3.8.0 · Tổng số 44 Tools

language Base URLs

Tên Mô tả
BASE_URL API chính
CALENDAR_URL Calendar API
NOTE_URL Note/Journey API
PRODUCTS_URL Products/Deal/Order API

diamond Xác thực

Tất cả API đều yêu cầu header xác thực:

Headers
Authorization:  <COKA_TOKEN>
Organizationid: <organization_id>

diamond Tổ chức

Quản lý thông tin tổ chức, thành viên và phân loại nhãn. Đây là nhóm API nền tảng cần gọi trước khi thao tác với Lead hoặc Deal.

build
Component xử lý: BASE_URL — api.alpha.coka.ai · Modules: User, Organization, Category

Lấy thông tin cá nhân

Trả về họ tên, email, số điện thoại, avatar và profileId của người dùng đang đăng nhập.

GET{BASE_URL}/api/v1/user/profile/getdetail
download Response mẫu
{
  "id": "prof_abc123",
  "fullName": "Nguyễn Văn A",
  "phone": "0901234567",
  "email": "nguyenvana@mail.com",
  "avatar": "https://...",
  "gender": 0,
  "dob": "1990-01-15"
}

Danh sách tổ chức

Lấy tất cả tổ chức mà người dùng là thành viên. Trả về organizationId cần thiết cho mọi API khác.

GET{BASE_URL}/api/v2/organization/getlistpaging
download Response mẫu
{
  "data": [
    { "id": "org_abc123", "name": "Công ty ABC", "subscription": "BUSINESS", "role": "OWNER" },
    { "id": "org_def456", "name": "Team Sales", "subscription": "PERSONAL", "role": "MEMBER" }
  ]
}

Danh sách thành viên

Liệt kê tất cả thành viên trong tổ chức. Dùng để lấy profileId khi gán người phụ trách Lead/Deal.

GET{BASE_URL}/api/v1/organization/member/getlistpaging
download Response mẫu
{
  "data": [
    { "profileId": "prof_01", "fullName": "Nguyễn Văn A", "role": "ADMIN", "email": "a@mail.com" },
    { "profileId": "prof_02", "fullName": "Trần Thị B", "role": "MEMBER", "email": "b@mail.com" }
  ]
}

Danh sách nhãn

Lấy danh sách nhãn phân loại (tags) của tổ chức. Dùng khi gắn nhãn cho Lead.

GET{BASE_URL}/api/v2/category/tags/getlistpaging
download Response mẫu
{
  "data": [
    { "id": "tag_01", "name": "Mua bán", "color": "#FF5733" },
    { "id": "tag_02", "name": "Chuyển nhượng", "color": "#33FF57" },
    { "id": "tag_03", "name": "VIP", "color": "#3357FF" }
  ]
}

diamond Quản lý Lead

Lead là khách hàng tiềm năng. Nhóm API này cho phép tạo, xem, cập nhật, gán người phụ trách, gắn nhãn và theo dõi Lead trong hệ thống CRM.

build
Component xử lý: BASE_URL — api.alpha.coka.ai · Module: Lead v2

Danh sách Lead

Lọc và phân trang danh sách Lead theo thời gian, nguồn, người phụ trách. Hỗ trợ tìm kiếm nâng cao.

POST{BASE_URL}/api/v2/lead/getlistpagingv2
upload Payload
{
  "limit": 20,
  "offset": 0,
  "channels": [
    "LEAD"
  ],
  "startDate": "...",
  "endDate": "...",
  "assignees": []
}
download Response mẫu
{
  "data": [
    { "id": "lead_01", "fullName": "Nguyễn Văn A", "phone": "0901234567", "status": "NEW", "createdAt": "2026-03-15" },
    { "id": "lead_02", "fullName": "Trần Thị B", "phone": "0912345678", "status": "CONTACTED", "createdAt": "2026-03-14" }
  ],
  "totalCount": 25
}

Chi tiết Lead

Xem toàn bộ thông tin của một Lead: liên hệ, lịch sử chăm sóc, hoạt động, hội thoại đã liên kết.

GET{BASE_URL}/api/v2/lead/{leadId}
download Response mẫu
{
  "detail": { "id": "lead_01", "fullName": "Nguyễn Văn A", "phone": "0901234567", "email": "a@mail.com", "gender": 0, "tags": ["Mua bán"] },
  "journey": [{ "type": "NOTE", "content": "Đã gọi điện...", "createdAt": "..." }],
  "schedules": [{ "id": "sch_01", "title": "Gọi điện", "isDone": false }]
}

Gán người phụ trách Lead

Chỉ định một thành viên trong tổ chức làm người phụ trách chính cho Lead.

POST{BASE_URL}/api/v2/lead/{leadId}/assignto
upload Payload
{
  "teamId": null,
  "profileId": "<profileId>"
}
download Response mẫu
{
  "success": true
}

Đổi người theo dõi Lead

Thêm hoặc thay đổi danh sách người theo dõi (follower) của Lead. Hỗ trợ gán theo user hoặc đội sale.

POST{BASE_URL}/api/v2/lead/{leadId}/follow
upload Payload
{
  "teamId": null,
  "profileId": "<profileId_1>"
}, {
  "teamId": null,
  "profileId": "<profileId_2>"
}]
download Response mẫu
{
  "success": true
}

Gán nhãn cho Lead

Gắn nhãn phân loại cho Lead (ví dụ: "mua bán", "chuyển nhượng"). Hỗ trợ chế độ thêm hoặc thay thế.

POST{BASE_URL}/api/v2/lead/{leadId}/tags
upload Payload
{
  "tags": [
    "mua bán",
    "Chuyển nhượng"
  ]
}
download Response mẫu
{
  "success": true
}

Cập nhật thông tin Lead

Sửa một trường dữ liệu cụ thể (phone, email, gender...) mà không cần gửi toàn bộ payload.

PATCH{BASE_URL}/api/v2/lead/{leadId}/update-field
upload Payload
{
  "fieldName": "gender",
  "value": "0"
}
download Response mẫu
{
  "success": true
}

Tạo Lead mới

Tạo khách hàng tiềm năng mới với thông tin liên hệ, nguồn, nhãn và người phụ trách.

POST{BASE_URL}/api/v2/lead/create
upload Payload
{
  "fullName": "Nguyễn Văn A",
  "title": "Nguyễn Văn A",
  "phone": "",
  "email": "",
  "sourceId": "",
  "utmSource": "",
  "isBusiness": false,
  "tags": [],
  "assignees": [],
  "companyId": "",
  "customerId": "",
  "conversationId": ""
}
download Response mẫu
{
  "id": "lead_xyz789",
  "fullName": "Nguyễn Văn A",
  "status": "NEW"
}

diamond Lịch hẹn

Quản lý lịch hẹn, cuộc họp và hoạt động chăm sóc khách hàng trên Calendar. Hỗ trợ tạo, sửa, đánh dấu hoàn thành cho cả Lead và Deal.

build
Component xử lý: CALENDAR_URL — calendar.coka.ai · Module: Schedule

Danh sách lịch hẹn

Lấy tất cả hoạt động (cuộc họp, cuộc gọi, tài liệu) đã đặt cho một Lead hoặc Deal.

GET{CALENDAR_URL}/api/Schedule
download Response mẫu
{
  "Data": [
    { "Id": "sch_01", "Title": "Gọi điện KH", "SchedulesType": "call", "StartTime": "2026-03-20T09:00:00Z", "IsDone": false },
    { "Id": "sch_02", "Title": "Họp báo giá", "SchedulesType": "meeting", "StartTime": "2026-03-21T14:00:00Z", "IsDone": false }
  ],
  "StatusCode": 200,
  "Status": "Success"
}

Tạo lịch hẹn

Tạo hoạt động mới trên Calendar: cuộc họp, cuộc gọi, hoặc gửi tài liệu cho khách hàng.

POST{CALENDAR_URL}/api/Schedule
upload Payload
{
  "StartTime": "...",
  "EndTime": "...",
  "Title": "...",
  "SchedulesType": "meeting|call|document",
  "IsDone": false,
  "Priority": 1,
  "Contact": [
    {
      "id": "<leadId>",
      "fullName": "Tên Lead",
      "CustomFields": {
        "area": "lead"
      }
    }
  ]
}
download Response mẫu
{
  "Data": { "Id": "sch_03", "Title": "Gặp mặt KH", "SchedulesType": "meeting",
    "StartTime": "2026-03-22T10:00:00Z", "EndTime": "2026-03-22T11:00:00Z", "IsDone": false },
  "StatusCode": 200, "Status": "Success"
}

Sửa lịch hẹn

Cập nhật tiêu đề, thời gian, nội dung hoặc mức ưu tiên của hoạt động đã tạo.

PUT{CALENDAR_URL}/api/Schedule
upload Payload
{
  "Id": "<scheduleId>",
  "StartTime": "...",
  "EndTime": "...",
  "Title": "Tiêu đề mới",
  "Content": "Nội dung mới",
  "IsDone": false,
  "Priority": 1,
  "SchedulesType": "meeting",
  "Contact": [...]
}
download Response mẫu
{
  "Data": { "Id": "sch_03", "Title": "Tiêu đề mới" },
  "StatusCode": 200, "Status": "Success"
}

Đánh dấu hoàn thành

Đánh dấu hoạt động là đã hoàn thành hoặc bỏ đánh dấu nếu chưa xong.

PATCH{CALENDAR_URL}/api/Schedule/mark-as-done
upload Payload
{
  "ScheduleId": "<scheduleId>",
  "IsDone": true
}
download Response mẫu
{
  "StatusCode": 200,
  "Status": "Success"
}

diamond Ghi chú

Thêm, sửa, xóa ghi chú chăm sóc trong lịch sử (journey) của Lead. Mỗi ghi chú gắn liền với một Lead cụ thể qua leadId.

build
Component xử lý: NOTE_URL — api.app2.coka.ai · Module: Lead Journey

Tạo ghi chú Lead

Thêm ghi chú chăm sóc mới vào lịch sử (journey) của Lead để theo dõi tiến trình.

POST{NOTE_URL}/api/v2/lead/{leadId}/journey/note
upload Payload
{
  "note": "Nội dung ghi chú chăm sóc"
}
download Response mẫu
{
  "success": true
}

Sửa ghi chú Lead

Chỉnh sửa nội dung ghi chú đã tạo trước đó. Cần truyền noteId cụ thể.

PATCH{NOTE_URL}/api/v2/lead/{leadId}/journey/{noteId}/note
upload Payload
{
  "note": "Nội dung ghi chú mới"
}
download Response mẫu
{
  "success": true
}

Xóa ghi chú Lead

Xóa vĩnh viễn một ghi chú khỏi lịch sử chăm sóc. Hành động không thể hoàn tác.

DELETE{NOTE_URL}/api/v2/lead/{leadId}/journey/{noteId}/note
download Response mẫu
{
  "success": true
}

diamond Quản lý Deal

Deal là cơ hội kinh doanh trong quy trình bán hàng. Hỗ trợ tạo Deal từ Lead hoặc trực tiếp, quản lý trạng thái, giai đoạn, nhãn, người phụ trách và ghi chú Deal.

build
Component xử lý: PRODUCTS_URL — api.products.coka.ai · Modules: BusinessProcessTask, BusinessProcessTag, TaskTag · Lịch hẹn Deal dùng CALENDAR_URL

Chuyển Lead thành Deal

Chuyển đổi Lead đã có thành Deal trong quy trình bán hàng. Cần chọn Workspace và giai đoạn (stage) trước khi chuyển.

POST{PRODUCTS_URL}/api/v1/businessprocesstask
upload Payload
{
  "leadId": "...",
  "workspaceId": "...",
  "stageId": "...",
  "name": "Tên Deal",
  "provider": "lead",
  "assignedTo": [],
  "tagIds": [],
  "description": "",
  "notes": "",
  "buId": "",
  "assignToTeam": null
}
download Response mẫu
{
  "success": true,
  "data": { "id": "task_abc123", "name": "Deal - Nguyễn Văn A" }
}

Tạo Deal mới

Tạo Deal trực tiếp không cần Lead. Tự động tạo Order và liên kết trong 1 lần gọi. Cần chọn khách hàng, workspace.

POST{PRODUCTS_URL}/api/v1/businessprocesstask
upload Payload
{
  "name": "",
  "username": "Tên KH",
  "customerId": "<id>",
  "assignedTo": [...],
  "workspaceId": "...",
  "stageId": "",
  "leadId": ""
}
download Response mẫu
{
  "success": true,
  "data": { "id": "task_def456", "name": "Deal - Lê Văn C" }
}

Danh sách Deal

Lấy danh sách Deal theo giai đoạn (stage) trong Workspace. Tương đương hiển thị bảng Kanban trên giao diện web.

POST{PRODUCTS_URL}/api/v1/BusinessProcessTask/advanced
upload Payload
{
  "page": 1,
  "pageSize": 10,
  "workspaceId": "...",
  "stageId": "...",
  "statusList": [
    1
  ]
}
download Response mẫu
{
  "data": [
    { "id": "task_001", "name": "Deal A", "status": 1 },
    { "id": "task_002", "name": "Deal B", "status": 1 }
  ],
  "totalCount": 2
}

Chi tiết Deal

Xem toàn bộ thông tin Deal: khách hàng, người phụ trách, giai đoạn, đơn hàng, lịch sử di chuyển stage.

GET{PRODUCTS_URL}/api/v1/BusinessProcessTask/{taskId}
download Response mẫu
{
  "id": "task_001",
  "name": "Deal A",
  "stageId": "stg_02",
  "status": 1,
  "assignees": [{ "profileId": "prof_01", "fullName": "Nguyễn Văn A" }],
  "stageHistory": [
    { "stageId": "stg_01", "movedAt": "2026-03-10" },
    { "stageId": "stg_02", "movedAt": "2026-03-15" }
  ]
}

Chuyển giai đoạn Deal

Di chuyển Deal sang giai đoạn khác trong quy trình. Tương đương kéo thả thẻ trên bảng Kanban.

PUT{PRODUCTS_URL}/api/v1/BusinessProcessTask/{taskId}/move
upload Payload
{
  "newStageId": "<newStageId>"
}
download Response mẫu
{
  "success": true
}

Nhân bản Deal

Sao chép Deal thành bản mới với hậu tố "(Bản sao)". Giữ nguyên thông tin gốc.

POST{PRODUCTS_URL}/api/v1/BusinessProcessTask/{taskId}/duplicate
upload Payload
{}
download Response mẫu
{
  "success": true,
  "data": { "id": "task_003", "name": "Deal A (Bản sao)" }
}

Xóa Deal

Xóa vĩnh viễn một Deal khỏi hệ thống. AI luôn yêu cầu xác nhận trước khi thực hiện.

DELETE{PRODUCTS_URL}/api/v1/BusinessProcessTask/{taskId}
download Response mẫu
{
  "success": true
}

Cập nhật trạng thái Deal

Đánh dấu Deal là "Thành công" hoặc "Thất bại". Có thể kèm ghi chú giải thích lý do.

PUT{PRODUCTS_URL}/api/v1/BusinessProcessTask/{taskId}/status
upload Payload
{
  "isSuccess": true,
  "note": ""
}
download Response mẫu
{
  "success": true,
  "message": "Task marked as successful",
  "data": true,
  "pagination": null,
  "totalPrice": null
}

Tạo lịch hẹn cho Deal

Tạo hoạt động (cuộc họp, gọi điện) gắn liền với Deal. Dùng Calendar API với workspaceId + taskId.

POST{CALENDAR_URL}/api/Schedule
upload Payload
{
  "StartTime": "...",
  "EndTime": "...",
  "Title": "...",
  "SchedulesType": "meeting|call|document",
  "WorkspaceId": "<workspaceId>",
  "Priority": 2
}
download Response mẫu
{
  "Data": { "Id": "sch_deal_01", "Type": "NOREPEAT", "Title": "Gọi điện",
    "WorkspaceId": "<workspaceId>", "SchedulesType": "call", "IsDone": false, "Priority": 2 },
  "StatusCode": 200, "Status": "Success"
}

Tạo ghi chú Deal

Thêm ghi chú chăm sóc vào lịch sử (journey) của Deal để theo dõi tiến trình kinh doanh.

POST{PRODUCTS_URL}/api/v1/BusinessProcessTask/{taskId}/journeys
upload Payload
{
  "content": "Nội dung ghi chú"
}
download Response mẫu
{
  "success": true,
  "message": "Task journey created successfully",
  "data": {
    "id": "<journeyId>",
    "taskId": "<taskId>",
    "content": "Nội dung ghi chú",
    "journeyType": "NOTE",
    "createdBy": "<profileId>",
    "createdDate": "2026-03-11T09:44:08.157Z"
  }
}

Danh sách nhãn Deal

Lấy các nhãn màu sắc có sẵn trong Workspace. Dùng khi gắn nhãn quy trình cho Deal.

GET{PRODUCTS_URL}/api/v1/BusinessProcessTag
download Response mẫu
{
  "success": true,
  "data": [
    { "id": "<tagId>", "workspaceId": "<workspaceId>", "name": "lúa",
      "textColor": "#FFFFFF", "backgroundColor": "#EF4444" }
  ]
}

Gán nhãn cho Deal

Gắn nhãn quy trình cho Deal. Lưu ý: thao tác này thay thế toàn bộ nhãn hiện tại.

PUT{PRODUCTS_URL}/api/v1/TaskTag/{taskId}/tags
upload Payload
{
  "tagIds": [
    "<tagId1>",
    "<tagId2>"
  ]
}
download Response mẫu
{
  "success": true
}

Đổi người theo dõi Deal

Thay đổi danh sách người theo dõi hoặc người phụ trách Deal. Hỗ trợ gán theo user hoặc đội nhóm.

PUT{PRODUCTS_URL}/api/v1/BusinessProcessTask/{taskId}/assignee
upload Payload
{
  "assigneeType": "FOLLOWER|OWNER",
  "userIds": [
    "<profileId>"
  ],
  "teamIds": []
}
download Response mẫu
{
  "success": true
}

diamond Đơn hàng

Tạo đơn hàng (Order) với sản phẩm, liên kết đơn hàng vào Deal, và đánh dấu hoàn thành bước chăm sóc Lead sau khi chuyển đổi thành công.

build
Component xử lý: PRODUCTS_URL — api.products.coka.ai · Module: Order, BusinessProcessTask · Bước chăm sóc dùng BASE_URL

Tạo đơn hàng

Tạo đơn hàng mới với danh sách sản phẩm, số lượng và giá. Cần gọi sau khi tạo Deal thành công.

POST{PRODUCTS_URL}/api/v1/order
upload Payload
// Luồng 1 (Lead)
{
  "leadId": "...",
  "workspaceId": "...",
  "actor": "<profileId>",
  "totalPrice": 200000,
  "orderDetails": [
    {
      "productId": "...",
      "quantity": 2,
      "price": 100000
    }
  ]
}

// Luồng 2 (Deal)
{
  "customerId": "<taskId>",
  "workspaceId": "...",
  "actor": "...",
  "totalPrice": 200000,
  "orderDetails": [
    {
      "productId": "...",
      "quantity": 2,
      "unitPrice": 100000
    }
  ]
}
download Response mẫu
{
  "success": true,
  "data": { "id": "order_001" }
}

Liên kết đơn hàng với Deal

Gắn đơn hàng đã tạo vào Deal tương ứng. Gọi ngay sau khi tạo Order thành công.

POST{PRODUCTS_URL}/api/v1/businessprocesstask/{taskId}/link-order
upload Payload
{
  "orderId": "<orderId>"
}
download Response mẫu
{
  "success": true
}

Hoàn thành bước chăm sóc

Đánh dấu hoàn thành bước chăm sóc hiện tại của Lead trong flow. Thường gọi sau khi chuyển Lead thành Deal thành công.

POST{BASE_URL}/api/v2/lead/{leadId}/flow/step/update
upload Payload
{
  "isComplete": true
}
download Response mẫu
{
  "success": true
}

diamond Tổng Kết API Endpoints

# Chức năng Method Endpoint Host
1 Lấy thông tin cá nhân GET /api/v1/user/profile/getdetail BASE_URL
2 Danh sách tổ chức GET /api/v2/organization/getlistpaging BASE_URL
3 Danh sách Lead POST /api/v2/lead/getlistpagingv2 BASE_URL
4 Tạo Lead mới POST /api/v2/lead/create BASE_URL
5 Chuyển Lead thành Deal POST /api/v1/businessprocesstask PRODUCTS_URL
6 Danh sách Deal POST /api/v1/BusinessProcessTask/advanced PRODUCTS_URL
7 Tạo đơn hàng POST /api/v1/order PRODUCTS_URL
menu_book
Đây là bảng tóm tắt. Xem chi tiết payload tại từng mục API ở trên.

diamond Luồng Xử Lý Chức Năng

Mỗi tính năng được thực hiện bằng chuỗi API calls theo thứ tự. Click vào từng thẻ để xem chi tiết.

Bắt buộc
Tùy chọn (có thể bỏ qua)
leaderboard Tạo Lead mới 5 API calls expand_more

Tạo khách hàng tiềm năng mới. Gọi lần lượt các API để lấy dữ liệu phụ trợ (nguồn, nhãn, thành viên), sau đó POST tạo Lead.

GET /api/v2/organization/getlistpaging Lấy organizationId
Response mẫu
{ "data": [{ "id": "org_abc123", "name": "Công ty ABC", "subscription": "BUSINESS" }] }
GET /api/v2/category/sources/getlistpaging Lấy danh sách nguồn Lead
Response mẫu
{ "data": [{ "id": "src_001", "name": "Facebook" }, { "id": "src_002", "name": "Website" }] }
GET /api/v2/category/tags/getlistpaging Lấy danh sách nhãn
Response mẫu
{ "data": [{ "id": "tag_01", "name": "Mua bán" }, { "id": "tag_02", "name": "Chuyển nhượng" }] }
GET /api/v1/organization/member/getlistpaging Lấy danh sách thành viên (chọn assignee)
Response mẫu
{ "data": [{ "profileId": "prof_01", "fullName": "Nguyễn Văn A", "role": "ADMIN" }] }
POST /api/v2/lead/create Tạo Lead Body: fullName, phone, email, sourceId, tags, assignees
Response mẫu
{ "id": "lead_xyz789", "fullName": "Trần Thị B", "phone": "0901234567", "status": "NEW" }
sync Chuyển Lead thành Deal 6 API calls expand_more

Chuyển đổi Lead có sẵn thành Deal. Phải lấy workspace + giai đoạn trước, sau đó POST tạo Deal. Tùy chọn thêm sản phẩm vào đơn hàng.

GET {PRODUCTS_URL}/api/v1/workspace Lấy danh sách Workspace → chọn workspaceId
Response mẫu
{ "data": [{ "id": "ws_001", "name": "Kinh doanh BĐS" }, { "id": "ws_002", "name": "Bán hàng Online" }] }
GET {PRODUCTS_URL}/api/v1/businessprocessstage Lấy giai đoạn quy trình → chọn stageId
Response mẫu
{ "data": [{ "id": "stg_01", "name": "Tiếp nhận" }, { "id": "stg_02", "name": "Đang xử lý" }, { "id": "stg_03", "name": "Chốt deal" }] }
POST {PRODUCTS_URL}/api/v1/businessprocesstask Tạo Deal từ Lead Body: leadId, workspaceId, stageId, name, assignedTo
Response mẫu
{ "id": "task_abc123", "name": "Deal - Trần Thị B", "stageId": "stg_01", "status": 1 }
GET {PRODUCTS_URL}/api/v1/product Lấy danh sách sản phẩm
Response mẫu
{ "data": [{ "id": "prod_01", "name": "Căn hộ 2PN", "price": 2500000000 }, { "id": "prod_02", "name": "Căn hộ 3PN", "price": 3500000000 }] }
POST {PRODUCTS_URL}/api/v1/order Tạo đơn hàng Body: orderDetails[], totalPrice
Response mẫu
{ "id": "order_001", "totalPrice": 2500000000, "orderDetails": [{ "productId": "prod_01", "quantity": 1 }] }
POST {PRODUCTS_URL}/api/v1/businessprocesstask/{taskId}/link-order Liên kết đơn hàng với Deal
Response mẫu
{ "success": true, "message": "Order linked successfully" }
work Tạo Deal trực tiếp (không cần Lead) 7 API calls expand_more

Tạo Deal mới hoàn toàn từ khách hàng. Server tự động chạy 3 API liên tục: tạo Deal → tạo Order → link Order vào Deal.

GET {BASE_URL}/api/v2/customer/getlistpaging Tìm khách hàng Không thấy? → POST tạo khách hàng mới
Response mẫu
{ "data": [{ "id": "cust_01", "fullName": "Lê Văn C", "phone": "0912345678", "isBusiness": false }] }
GET {PRODUCTS_URL}/api/v1/workspace Chọn Workspace
Response mẫu
{ "data": [{ "id": "ws_001", "name": "Kinh doanh BĐS" }] }
GET {PRODUCTS_URL}/api/v1/businessprocessstage Chọn giai đoạn
Response mẫu
{ "data": [{ "id": "stg_01", "name": "Tiếp nhận" }, { "id": "stg_02", "name": "Đang xử lý" }] }
GET {BASE_URL}/api/v1/organization/member/getlistpaging Chọn người phụ trách
Response mẫu
{ "data": [{ "profileId": "prof_01", "fullName": "Nguyễn Văn A" }] }
GET {PRODUCTS_URL}/api/v1/BusinessProcessTag Lấy nhãn Deal
Response mẫu
{ "data": [{ "id": "dtag_01", "name": "Ưu tiên", "color": "#FF5733" }] }
GET {PRODUCTS_URL}/api/v1/product Chọn sản phẩm + số lượng
Response mẫu
{ "data": [{ "id": "prod_01", "name": "Căn hộ 2PN", "price": 2500000000 }] }
POST {PRODUCTS_URL}/api/v1/businessprocesstask Tạo Deal + Order + Link Body: customerId, workspaceId, stageId, orderDetails[], totalPrice
Response mẫu
{ "dealId": "task_def456", "orderId": "order_002", "name": "Deal - Lê Văn C", "status": 1 }
assignment Xem danh sách Deal (Kanban) 3 API calls expand_more

Hiển thị Deal theo giai đoạn giống bảng Kanban. Phải gọi 3 API lần lượt: workspace → stage → deals.

GET {PRODUCTS_URL}/api/v1/workspace Lấy danh sách Workspace
Response mẫu
{ "data": [{ "id": "ws_001", "name": "Kinh doanh BĐS" }] }
GET {PRODUCTS_URL}/api/v1/businessprocessstage Lấy giai đoạn → chọn stageId
Response mẫu
{ "data": [{ "id": "stg_01", "name": "Tiếp nhận" }, { "id": "stg_02", "name": "Đang xử lý" }] }
POST {PRODUCTS_URL}/api/v1/BusinessProcessTask/advanced Lấy danh sách Deal Body: workspaceId, stageId, statusList, page, pageSize
Response mẫu
{ "data": [{ "id": "task_001", "name": "Deal A", "status": 1 }, { "id": "task_002", "name": "Deal B", "status": 1 }], "totalCount": 2 }
group Quản lý Lead (xem, sửa, gán) 7 endpoints expand_more

Các API quản lý Lead hàng ngày. Mỗi endpoint có thể gọi độc lập tùy nhu cầu.

POST /api/v2/lead/getlistpagingv2 Lọc danh sách Lead Body: startDate, endDate, assignees, channels
Response mẫu
{ "data": [{ "id": "lead_01", "fullName": "Nguyễn A", "phone": "090xxx", "status": "NEW" }], "totalCount": 15 }
GET /api/v2/lead/{leadId} Chi tiết Lead (gọi 3 API song song)
Response mẫu
{ "id": "lead_01", "fullName": "Nguyễn A", "phone": "090xxx", "email": "a@mail.com", "gender": 0, "tags": ["Mua bán"] }
GET /api/v2/lead/{leadId}/journey Lịch sử chăm sóc (events, jsonSummary)
Response mẫu
{ "data": [{ "type": "NOTE", "content": "Đã gọi điện", "createdAt": "2026-03-15T10:00:00Z" }] }
PATCH /api/v2/lead/{leadId}/update-field Sửa 1 trường Body: fieldName, value
Response mẫu
{ "success": true, "fieldName": "phone", "value": "0987654321" }
POST /api/v2/lead/{leadId}/assignto Gán người phụ trách
Response mẫu
{ "success": true, "assignedTo": { "profileId": "prof_01", "fullName": "Nguyễn Văn A" } }
POST /api/v2/lead/{leadId}/follow Đổi người theo dõi
Response mẫu
{ "success": true, "followers": [{ "profileId": "prof_02", "fullName": "Trần B" }] }
POST /api/v2/lead/{leadId}/tags Gắn nhãn mode: "add" hoặc "replace"
Response mẫu
{ "success": true, "tags": ["Mua bán", "VIP"] }
settings Quản lý Deal (chuyển stage, trạng thái, nhãn) 8 endpoints expand_more

Các API thao tác trên Deal. Mỗi endpoint gọi độc lập. Host: PRODUCTS_URL trừ lịch hẹn dùng CALENDAR_URL.

GET /api/v1/BusinessProcessTask/{taskId} Chi tiết Deal + stageHistory
Response mẫu
{ "id": "task_001", "name": "Deal A", "stageId": "stg_01", "status": 1, "stageHistory": [{ "stageId": "stg_01", "movedAt": "2026-03-10" }] }
PUT /api/v1/BusinessProcessTask/{taskId}/move Chuyển giai đoạn Body: newStageId
Response mẫu
{ "success": true, "newStageId": "stg_02", "newStageName": "Đang xử lý" }
PUT /api/v1/BusinessProcessTask/{taskId}/status Đánh dấu Thành công / Thất bại Body: isSuccess, note
Response mẫu
{ "success": true, "status": 2, "note": "Khách đã ký hợp đồng" }
PATCH /api/v1/BusinessProcessTask/{taskId} Đổi tên Deal Body: name
Response mẫu
{ "success": true, "name": "Deal A - Cập nhật" }
POST /api/v1/BusinessProcessTask/{taskId}/duplicate Nhân bản Deal
Response mẫu
{ "id": "task_003", "name": "Deal A (Bản sao)", "status": 1 }
DELETE /api/v1/BusinessProcessTask/{taskId} Xóa Deal
Response mẫu
{ "success": true, "message": "Deal deleted" }
PUT /api/v1/TaskTag/{taskId}/tags Gán nhãn Body: tagIds[]
Response mẫu
{ "success": true, "tagIds": ["dtag_01", "dtag_02"] }
PUT /api/v1/BusinessProcessTask/{taskId}/assignee Đổi người phụ trách Body: userIds[], teamIds[]
Response mẫu
{ "success": true, "assignees": [{ "profileId": "prof_01" }] }
calendar_month Lịch hẹn & Hoạt động (Calendar) 4 endpoints expand_more

Quản lý cuộc họp, cuộc gọi, tài liệu cho Lead/Deal. Tất cả API dùng host calendar.coka.ai.

GET {CALENDAR_URL}/api/Schedule Lấy danh sách hoạt động Query: contactId, organizationId
Response mẫu
{ "data": [{ "id": "sch_01", "title": "Gọi điện", "schedulesType": "call", "startTime": "2026-03-20T09:00:00Z", "isDone": false }] }
POST {CALENDAR_URL}/api/Schedule Tạo hoạt động mới Body: title, schedulesType, startTime, endTime, contactId
Response mẫu
{ "id": "sch_02", "title": "Họp báo giá", "schedulesType": "meeting", "startTime": "2026-03-21T14:00:00Z" }
PUT {CALENDAR_URL}/api/Schedule Sửa hoạt động đã tạo Body: scheduleId + fields cần sửa
Response mẫu
{ "success": true, "id": "sch_02", "title": "Họp báo giá (cập nhật)" }
PATCH {CALENDAR_URL}/api/Schedule/mark-as-done Đánh dấu hoàn thành Body: scheduleId, isDone
Response mẫu
{ "success": true, "id": "sch_01", "isDone": true }
inventory_2 Tạo Đơn hàng & Liên kết Deal 4 API calls expand_more

Tạo đơn hàng với sản phẩm, gắn vào Deal. Thường gọi sau khi tạo Deal thành công. Gọi tuần tự: lấy sản phẩm → tạo order → liên kết → đánh dấu hoàn thành.

GET {PRODUCTS_URL}/api/v1/product Lấy danh sách sản phẩm Hỏi người dùng chọn sản phẩm + số lượng → tính totalPrice
Response mẫu
{ "data": [{ "id": "prod_01", "name": "Căn hộ 2PN", "price": 2500000000 }] }
POST {PRODUCTS_URL}/api/v1/order Tạo đơn hàng Body: orderDetails[{productId, quantity, unitPrice}], totalPrice, actor
Response mẫu
{ "id": "order_001", "totalPrice": 2500000000, "status": "CREATED" }
POST {PRODUCTS_URL}/api/v1/businessprocesstask/{taskId}/link-order Liên kết đơn hàng với Deal Body: orderId
Response mẫu
{ "success": true, "message": "Order linked successfully" }
POST {BASE_URL}/api/v2/lead/{leadId}/flow/step/update Hoàn thành bước chăm sóc Lead
Response mẫu
{ "success": true, "message": "Flow step updated" }