Danh mục thao tác

Sửa giai đoạn pipeline

crm.stages.saveMCP:crm_stages_saveBộ công cụ: Khách hàng

Replace the ordered pipeline stages (ids keep existing ones).

Quản trị
Quyền: Khách hàng

Gọi bằng REST v2

curl -X POST https://zl.builera.app/api/public/v2/ops/crm.stages.save \
  -H "Authorization: Bearer za_live_…" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"stages":[{"name":"Nguyễn Văn A","color":"red","isWon":false,"isLost":false}]}'

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": "crm_stages_save",
    "arguments": {
      "stages": [
        {
          "name": "Nguyễn Văn A",
          "color": "red",
          "isWon": false,
          "isLost": false
        }
      ]
    }
  }
}

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 200
{ "status": "succeeded", "operationId": "…", "data": { … } }

Ví dụ đầu vào

{
  "stages": [
    {
      "name": "Nguyễn Văn A",
      "color": "red",
      "isWon": false,
      "isLost": false
    }
  ]
}

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": {
    "stages": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "maxLength": 40
          },
          "color": {
            "type": "string",
            "enum": [
              "red",
              "orange",
              "yellow",
              "green",
              "blue",
              "purple",
              "gray"
            ]
          },
          "isWon": {
            "type": "boolean"
          },
          "isLost": {
            "type": "boolean"
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 1,
            "description": "The `revision` you read; if it changed meanwhile the save answers conflict instead of overwriting."
          }
        },
        "required": [
          "name",
          "color",
          "isWon",
          "isLost"
        ],
        "additionalProperties": false
      },
      "minItems": 1,
      "maxItems": 20
    }
  },
  "required": [
    "stages"
  ],
  "additionalProperties": false
}

Cùng bộ công cụ