---
title: "Tạo / sửa luật tự động"
locale: vi
url: https://tlg.builera.app/docs/reference/rest/rules.save
verified: 2026-10-24
app_version: "2.0"
generated: true
---

# Tạo / sửa luật tự động

Khi <sự kiện kích hoạt> và <điều kiện: keywords / excludeKeywords (cả từ, phân biệt dấu), accountIds, accountTags, stageIds, personTagsAny, temperatures, hours> thì <hành động: tag_add, tag_remove, set_stage, set_temperature, assign, add_to_list, add_to_campaign, send_template (mẫu do người viết), alert, webhook (phát rule.fired), hold (giữ chat cho một người / agent)>. Kích hoạt tối đa một lần cho mỗi sự kiện trên mỗi người, tối đa 3 tầng luật gọi luật; tin gửi vẫn qua cửa an toàn và khoá hội thoại. Cập nhật cần expectedRevision.

Khi <sự kiện kích hoạt> và <điều kiện: keywords / excludeKeywords (cả từ, phân biệt dấu), accountIds, accountTags, stageIds, personTagsAny, temperatures, hours> thì <hành động: tag_add, tag_remove, set_stage, set_temperature, assign, add_to_list, add_to_campaign, send_template (mẫu do người viết), alert, webhook (phát rule.fired), hold (giữ chat cho một người / agent)>. Kích hoạt tối đa một lần cho mỗi sự kiện trên mỗi người, tối đa 3 tầng luật gọi luật; tin gửi vẫn qua cửa an toàn và khoá hội thoại. Cập nhật cần expectedRevision.

## Thông tin

| Tên | Giá trị |
| --- | --- |
| Mã | `rules.save` |
| Scope cần | `automation.write` |
| Mức | Ghi |
| Có thể cần xác nhận | Không |
| Kiểu chạy | Trả kết quả ngay |
| Cần `Idempotency-Key` | Không |
| Vai trò thành viên được phép | `owner`, `manager` |
| Trong app | Tự động hoá → Luật → Lưu |

## Trường vào

| Trường | Kiểu | Bắt buộc | Mô tả |
| --- | --- | --- | --- |
| `id` | `uuid` | Không |   |
| `name` | `chữ` | Có |   |
| `enabled` | `đúng/sai` | Không |   |
| `trigger` | `"message.received" \| "message.read" \| "campaign.replied" \| "campaign.person_done" \| "keyword.signal" \| "group.joined" \| "person.stage_changed" \| "conversation.assigned" \| "account.status_changed" \| "account.safety_changed"` | Có |   |
| `conditions` | `đối tượng` | Không |   |
| `actions` | `đối tượng[]` | Có |   |
| `expectedRevision` | `số nguyên` | Không |   |

## Ví dụ gọi

```bash
curl -X POST https://tlg.builera.app/api/public/v2/ops/rules.save \
  -H "Authorization: Bearer $TELEGRAM_AUTO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"…","trigger":"message.received","actions":[]}'
```

## Trường ra (`data`)

| Trường | Kiểu | Bắt buộc |
| --- | --- | --- |
| `ok` | `true` | Có |
| `id` | `chữ` | Có |
| `revision` | `null \| số` | Có |

## Ví dụ trả về

```json
{
  "data": {
    "ok": true,
    "id": "00000000-0000-4000-8000-000000000000",
    "revision": 1
  }
}
```

## Dùng qua MCP

Không có tên sẵn trong profile nào: gọi `tools_describe` rồi `tools_run` với `code: "rules.save"`. Tên tool khi được liệt kê: `rules_save`.
