object-info
Skill13 starsChanged 33 days agoMITView on GitHub
Xem Object Cogover cùng fields, options, metadata, related lists và nhận diện Object đặc biệt của Workspace; tạo, cập nhật, xoá mềm/khôi phục/xoá thực tế Object và field qua `/bapi/v1`, gồm options và Formula (kiểm tra cú pháp, chạy thử trên record trước khi lưu). Dùng khi cần Object/field ID, slug, schema hoặc metadata cho skill khác.
In this repository23 other files it gives its agents.
- agent-builderSkill
- app-menu-managerSkill
- build-cogover-appSkill
- cogover-api-authSkill
- cogover-custom-moduleSkill
- cogover-iconSkill
- cogover-overviewSkill
- create-cogover-objectsSkill
- dashboard-builderSkill
- document-templateSkill
- layout-scriptingSkill
- object-buttonSkill
- object-filterSkill
- object-formSkill
- object-history-trackingSkill
- object-layoutSkill
- object-path-componentSkill
- object-recordSkill
- object-transition-ruleSkill
- process-creatorSkill
- record-emailSkill
- report-builderSkill
- user-permissionSkill
The file
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 0 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 138
Delete/restore: báo delete_type, ID đã gửi, kết quả xác minh, thời hạn 14 ngày nếu soft delete và mọi dependency/cảnh báo còn lại.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Object Info
- Phiên bản:
1.1.0 - Ngày phát hành:
2026-10-06
Xem và quản lý cấu trúc Object Cogover qua /bapi/v1 (API Key Bearer): xem Object cùng fields, options, metadata, related lists; tạo, sửa, xoá mềm, khôi phục, xoá thực tế Object hoặc field; tạo/cập nhật options của field lựa chọn; viết và kiểm tra Formula. Skill khác gọi $object-info để lấy Object ID, field slug, fieldType, options, metadata hoặc quan hệ trước khi dựng payload nghiệp vụ. Object phổ biến: Lead, Quote, Order, Product, Personnel, Contact, Account, Opportunity, Task.
Chuẩn bị
- Credential, header và quy ước response/lỗi chung: theo $cogover-api-auth. Riêng kiểm tra cú pháp và chạy thử Formula dùng
/api/v1bằng phiên Web App đổi từ API Key, xem references/formula-validation.md. - Ngoại lệ riêng:
429tôn trọng rate limit;500, timeout hoặc lỗi mạng sau request ghi thì không lặp mù, chỉ thử lại có kiểm soát khi thao tác an toàn; create có kết quả không rõ phải tra lại Object và slug trước khi thử lại để tránh tạo trùng. - Tra Object và field thật (Phần 1) trước khi dùng ID hoặc slug; nhiều kết quả gần giống thì đưa danh sách ứng viên để làm rõ, không tự chọn.
Phần 1 — Xem Object và fields
POST /bapi/v1/objects/list. Đã xác định Object thì lọc chính xác bằng slugs hoặc ids và chỉ bật include* cần dùng:
{"slugs": ["{OBJECT_SLUG}"], "includeFields": true, "includeOptions": true, "includeMetaData": true}- Không đọc schema toàn Workspace (
pageSizelớn kèmincludeFields) trong một lời gọi: response rất nặng, đã gặp timeout phía client,504hoặc HTTP200thiếuitems. Cần nhiều Object thì chia lô nhỏ theoslugs; chỉ cần ID/slug thì tắtincludeFields. - HTTP
200không cóitems, hoặcitemsrỗng ngoài dự kiến, là đọc thất bại: chờ vài giây rồi thử lại có giới hạn số lần; không kết luận Object không tồn tại. Quy ước chung: $cogover-api-auth. - Phiên làm việc dài có thể dùng lại snapshot schema đã đọc, nhưng đọc lại ngay trước thao tác ghi.
Tham số:
| Tham số | Mặc định | Cách dùng |
pageSize | 2000 | Giới hạn số Object trả về |
keywords | [] | Tìm mờ, không phân biệt hoa thường theo name, slug, nameTranslations; dùng để khám phá |
slugs / ids | [] | Lọc chính xác theo Object slug / Object ID; ưu tiên khi đã xác định Object |
includeFields | false | Trả fields của mỗi Object |
includeRelatedLists | false | Trả relatedLists của mỗi Object |
includeOptions | true | Trả options khi includeFields=true |
includeMetaData | true | Trả metadata khi includeFields=true |
includeNonStandard | true | false để chỉ lấy Object tiêu chuẩn |
includeWorkflowObjects | false | true để gồm Workflow Object |
Từ items[] trích tối thiểu:
- Object:
id,name,slug,nameTranslations, mô tả nếu có. - Field:
id,name,slug,fieldType,nameTranslations,required,status,description,multiple,readOnly,manualModifyAllow,defaultValue, options, metadata.objects/listkhông trảcreatable/editable; cần xác minhcreatablethì xem trang cấu hình field (checkbox "Cho phép tạo thủ công") hoặc tạo thử một record có gửi field đó. - Option của field lựa chọn:
id,value,slug,isDefault, trạng thái, màu/icon, bản dịch. - Related list:
id,name,slug,status,sort,displayColumn,minRecord,maxRecord, Object/field nguồn, Object lookup,lookupType.
Field có trong response đọc chưa chắc ghi được: Object có thể chứa field hệ thống, field chuẩn, field read-only hoặc fieldType mà Object Fields API không hỗ trợ tạo mới.
Trả kết quả:
- Hỏi một Object: chỉ Object đó và field liên quan, bảng gọn nếu nhiều field. Hỏi nhiều Object: tóm tắt Object trước, mở rộng fields theo phạm vi yêu cầu.
- Skill khác gọi: trả dữ liệu có cấu trúc, giữ nguyên ID, slug,
fieldType, option slug/value và metadata cần thiết; không dịch hoặc tự sinh giá trị kỹ thuật. - Không tìm thấy: nêu bộ lọc đã dùng thay vì kết luận Object không tồn tại trong toàn workspace.
Object đặc biệt của Workspace cần nắm
Các Object nền tảng hoặc dùng chung sau không phải Object nghiệp vụ thông thường; không tạo bản sao khi Object tương ứng đã tồn tại.
| Object slug | Ý nghĩa | Lưu ý sử dụng |
Process_Debug_data | Dữ liệu debug khi chạy Process | Dữ liệu kỹ thuật, không dùng làm master data; giữ nguyên slug và cách viết hoa/thường đọc từ Workspace |
global_settings | Cấu hình dùng chung mức Workspace hoặc ứng dụng | Đọc schema và records thật trước khi dùng; không suy đoán cấu trúc cấu hình giữa các Workspace |
app_user | Danh tính người dùng ứng dụng | Khác account (doanh nghiệp, tổ chức hoặc khách hàng trong CRM) |
notification_channel | Kênh gửi thông báo | Kiểm tra Object/quan hệ thành viên kênh đang có trước khi tích hợp hoặc tạo dữ liệu |
activity | Hoạt động trên một bản ghi nghiệp vụ (hợp đồng, lead, cơ hội, công việc): ghi chú, email, cuộc gọi, task, cuộc họp, SMS hoặc chat | Muốn Object có khu vực thảo luận/ghi chú/hoạt động: tạo lookup từ activity tới Object đó rồi đưa Related List được sinh ra vào layout Xem/Sửa, theo mục dưới |
activity_comment | Bình luận gắn với một bản ghi activity | Dữ liệu con của Activity; không dùng thay quan hệ trực tiếp giữa activity và Object nghiệp vụ |
personnel | Hồ sơ nhân sự của người dùng Workspace | name là mã do hệ thống cấp, không phải họ tên; không in <lookup nhân sự>.name trong formula, template hay form. Hiển thị họ tên: chọn first_last_name hoặc last_first_name theo cách giao diện Workspace đang hiển thị nhân sự, đối chiếu một bản ghi thật. Lookup tới Personnel trên layout dùng showFieldName theo $object-layout; phòng ban, vị trí, quan hệ quản lý dùng $user-permission |
Bổ sung Activity cho một Object nghiệp vụ
Quy trình 5 bước (đọc hai Object thật, tạo lookup_normal trên activity, xác minh Related List sinh ra, đưa component related_list vào layout Xem/Sửa qua $object-layout, cấu hình timeline/loại hoạt động): references/activity-related-list.md.
Quy tắc chung cho thao tác ghi (Phần 2 và 3)
- Đọc contract trước khi dựng payload hoặc gọi endpoint: field theo references/api-object-fields.md (field types, schema, metadata, translations, giới hạn, mã lỗi, ví dụ cURL); Object theo references/api-objects.md (schema create/update,
delete_type, giới hạn standard Object, mã lỗi). - Dùng Phần 1 ngay trước thao tác: create kiểm tra trùng (field: tên tiếng Anh, tên được dịch,
slugdự kiến, kể cả tên của field ẩn hệ thống như_attachments; Object:name,plural_name,slug); update/delete/restore lấy ID thật cùng type, slug, trạng thái, metadata, standard/custom và quan hệ hiện tại.object_type_idlà Object ID thật, không dùng tên hoặc slug thay ID. - Đánh giá tác động trước khi đổi
slug,type,unique,multiple, trạng thái, quan hệ cha, composite key, xoá field/Object hoặc xoá options đã có dữ liệu/tham chiếu: records, fields, relationships, filters, workflows, formulas, layouts, related lists, Object relations, buttons, Object Picker và skill/cấu hình đang tham chiếu. - Kiểu dữ liệu: cờ số
0/1chorequired,multiple,unique,status,creatable,editable,viewable,read_only,is_standard,is_display,quickSearch(field) vàstatus,creatable,editable,viewable,quick_search(Object); Objecttypenhận0,1hoặc2. Boolean nghiêm ngặttrue/falsechỉ vớimanual_modify_allow(field) vàstandard_fields,standard_layout,standard_buttons,standard_filter(Object). Giữ nguyên cách viếtquickSearch; các key còn lại chủ yếusnake_case. meta_data(kể cảname_field.meta_data) là JSON string, không gửi JSON object. Khi sửa: parse metadata hiện tại, merge đúng key cần đổi, kiểm tra lại theo type rồi serialize toàn bộ; không gửi một phần vì server thay toàn bộ chuỗi đã lưu. Ngoại lệ: standard Object chỉ nhận các metadata key được reference cho phép và API tự merge.- Sau request ghi: mong đợi HTTP
201(create) hoặc200(update, delete, restore) cùngr: 0, rồi dùng Phần 1 đọc lại và so sánh trước/sau; không dựa riêng vào response rút gọn.
Ngôn ngữ gốc và bản dịch khi tạo
Áp dụng khi tạo field, tạo Object hoặc chuẩn bị tên/metadata cho luồng tạo khác:
- Dữ liệu gốc có thể dịch (
name, plural name,description,tool_tip,hint_text, optionvaluevà nhãn tương tự) dùng tiếng Anh; nội dung người dùng đưa bằng ngôn ngữ khác thì dịch sang tiếng Anh làm giá trị gốc.slugkỹ thuật tạo từ tên hoặc value tiếng Anh, ưu tiên ASCIIlower_snake_case;slugkhông có bản dịch. translations[]luôn cóen-USvới giá trị tiếng Anh tương ứng dữ liệu gốc; nội dung nguồn không phải tiếng Anh thì gửi thêm nguyên nội dung người dùng ở đúng locale nguồn (tiếng Việt:vi-VN). Field tối thiểu dịchnamevà giữ đủ mọi thuộc tính người dùng đã cung cấp (name,description,tooltip,placeholder); option chỉ dịchvalue. Không bịa nội dung còn thiếu chỉ để làm đầy bản dịch.- API không tự dịch: tự dựng giá trị gốc và
translations[], rồi xác minh field cùng từng option sau khi tạo. Không xác định chắc ngôn ngữ/locale thì hỏi trước khi ghi. - Người dùng chỉ định rõ tên hoặc slug kỹ thuật phải là giá trị gốc: tôn trọng, vẫn thêm bản dịch cho nội dung hiển thị không phải tiếng Anh nếu API hỗ trợ.
Ví dụ người dùng yêu cầu field Số tiền:
{"name": "Amount", "slug": "amount", "description": "", "manual_modify_allow": true,
"translations": [{"language": "en-US", "name": "Amount"}, {"language": "vi-VN", "name": "Số tiền"}]}Mặc định khi tạo field
Khi người dùng không chỉ định khác và type không có ràng buộc đặc thù, gửi tường minh thay vì để server tự áp dụng: manual_modify_allow: true (tôn trọng ngoại lệ của API, ví dụ auto_number luôn bị đặt false), creatable: 1, description: "" khi không có mô tả, translations[] có ít nhất en-US và locale nguồn nếu khác tiếng Anh.
Field chỉ backend ghi (bộ đếm, snapshot, trạng thái do Custom Backend Module hoặc Process cập nhật): gửi creatable: 0 và manual_modify_allow: false. Hai cờ độc lập, chỉ chặn request public (giao diện, /bapi/v1/records); ghi nội bộ như data.asSystem() không bị ảnh hưởng, nên không dùng security rule exclude thay cho hai cờ này. Chi tiết tại Cờ tạo và sửa thủ công.
Định dạng hiển thị số theo Workspace
- Yêu cầu “Theo cấu hình chung của Workspace”: không tự suy ra hoặc hardcode
meta_data.format.formattừ ví dụ API, field cũ khác type hay workspace khác; mã format là giá trị UI phụ thuộc cấu hình/phiên bản và có thể biểu diễn một kiểu phân nhóm số cụ thể. Đọc một fieldnumeric/decimalđã được người dùng xác nhận đúng trong chính workspace rồi sao chép nguyên objectmetaData.format; chưa có field mẫu đáng tin cậy thì yêu cầu người dùng xác nhận, không đoán mã (mẫu ẩn danh chỉ để tham khảo, xem ghi chú tại api-object-fields.md). - Xoá field
currencyđể tạo lại thànhdecimal: lấy lại field nguồn ngay trước khi xoá để giữ tên, slug, mô tả, bản dịch, cờ, default và giới hạn âm/dương;formatchỉ lấy từ field mẫudecimalđã xác nhận, không kế thừa mã format củacurrency. - Sau khi tạo, đọc lại field và đối chiếu cả
metaData.format,integral_length,fractional_length,display_type,display_as_currency;r: 0của create chưa đủ để coi hoàn tất.
Xoá hoặc khôi phục field và Object
- Resolve và hiển thị định danh trước thao tác: field gồm Object, tên, ID, slug, type, trạng thái; Object gồm tên, ID, slug, trạng thái, standard/custom và các dependency đã phát hiện.
- Yêu cầu người dùng xác nhận rõ mục tiêu và
delete_typetrước khi gọi endpoint; người dùng chỉ nói “xoá” thì khuyến nghịdelete_type: 1. Gọi
POST /bapi/v1/object-fields/delete(field) hoặcPOST /bapi/v1/objects/delete(Object) với{"data": [{"id": "{FIELD_ID hoặc OBJECT_ID}", "delete_type": 1}]}.delete_typeÝ nghĩa 1Soft delete: chuyển sang pending delete và đặt lịch xoá thực tế sau 14 ngày 2Khôi phục bản đã soft delete về trạng thái trước đó và huỷ lịch xoá 3Actual delete: field bị dọn quan hệ/cấu hình liên quan và xoá dữ liệu khỏi records; Object bị xoá cấu hình liên quan và dữ liệu records. Chỉ dùng sau khi người dùng xác nhận rõ xoá thực tế và đã được cảnh báo không thể khôi phục - Mong đợi HTTP
200,r: 0, rồi tra lại bằng ID/slug (Phần 1) để xác minh trạng thái sau soft delete/restore hoặc không còn tồn tại sau actual delete. Object vắng mặt trong một list mặc định chưa đủ làm bằng chứng nếu bộ lọc có thể loại pending-delete Object. - Riêng field: API trả
r: 524thì trình bày đầy đủ cảnh báo về nơi field đang được sử dụng và không coi thao tác thành công. Riêng Object: không xoá standard Object; Object đang được Object Picker, field, relationship, filter, workflow hoặc thực thể khác tham chiếu thì báo dependency và không tuyên bố thao tác thành công.
Xử lý lỗi và báo cáo
r != 0: dùng bảng mã lỗi trong reference tương ứng để chỉ rõ field hoặc ràng buộc gây lỗi (với Object đặc biệt là trùng tên/slug, Object pending delete, standard Object, Object Picker dependency, giới hạn gói thuê bao); không chỉ báo “HTTP 400”.- Backend chặn do dependency hoặc validation của options: nói rõ phần đã làm, phần chưa làm và mã lỗi; không tuyên bố hoàn tất khi danh sách options sau ghi không khớp trạng thái đích.
- Create/update: báo ID, name (Object thêm plural name), slug, type và Object chứa field (với field), trạng thái đã được API đọc xác minh; có options thì báo số lượng tạo/cập nhật/xoá và kết quả đối chiếu danh sách cuối.
- Delete/restore: báo
delete_type, ID đã gửi, kết quả xác minh, thời hạn 14 ngày nếu soft delete và mọi dependency/cảnh báo còn lại.
Phần 2 — Tạo, sửa, xoá fields của Object
Options (create và update): chỉ gửi options ở top-level cho single_choice, radio_button, multi_choices, checkbox hoặc cascading; request có options bắt buộc kèm type hiện tại hoặc type đích hợp lệ; không đặt options trong meta_data, không gọi URI riêng cho options. Không có key options thì giữ nguyên danh sách; có key thì mảng thay thế toàn bộ (option vắng mặt bị xoá); options: [] xoá toàn bộ, chỉ gửi khi người dùng yêu cầu rõ và đã xác nhận tác động dữ liệu. Sửa một phần: đọc danh sách hiện tại ngay trước thao tác, giữ nguyên ID option cần bảo toàn, tạo UUID cho option mới, merge rồi gửi lại toàn bộ mảng; không dùng ID mới để biểu diễn việc sửa một option hiện có.
Tạo field
- Chuẩn hoá tên gốc, slug và bản dịch theo mục Ngôn ngữ; chọn
typeđược API hỗ trợ và đọc cấu hình riêng của type đó trong reference, không suy metadata của type này từ type khác. - Gửi
type,object_type_id,nametiếng Anh và các giá trị ở mục Mặc định. Có thể để server sinhslugtừ tên tiếng Anh và tự tínhsort; chỉ gửi slug kỹ thuật hoặc cấu hình tuỳ chọn khi cần, nhưng không dựa vào server cho các mặc định đã quy định. - Field lựa chọn: gửi đủ options ở top-level; mỗi option mới có UUID riêng và
value; tối đa 200 options, không trùng ID/value,sort > 0nếu gửi, cờ số hợp lệ, slug duy nhất;cascadingflatten cây vàparent_idtrỏ đúng option cha. Không tự bịa options khi người dùng chưa cung cấp. lookup_normal/reference: resolve Object đích, gửirelated_list_name, xác minh metadata quan hệ trước khi tạo.rollup_summarychỉ chạy quareference, xem điều kiện tiên quyết.formula: viếtmeta_data.scripttheo Cogover Scripting API Reference, đọc mục 1–4 (nền tảng cú pháp) và mục 14 (giới hạn, an toàn) rồi đọc đầy đủ các mục hàm/kiểu dữ liệu cùng recipe liên quan tới công thức (định vị qua Mục lục đầu file); tuân thủ các quy tắc dựngscriptở api-object-fields.md (slug thật của field tham chiếu, mọi nhánhreturnkhớpreturn_type, chỉ dùng API trong reference, kiểm tra tĩnh null, phép chia số nguyên, timezone, giới hạn sandbox, escaping khi serializemeta_data). Trước khi lưu, thực hiện đủ Kiểm tra Formula trước khi lưu: phiên Web App qua$cogover-api-auth, kiểm tra cú pháp rồi chạy thử trên một record thật của Object; chỉ tiếp tục khi cả hai bước thành công và kết quả đúng kỳ vọng, nếu không (kể cả không tạo được phiên hoặc không có record thử) thì dừng, báo người dùng và không gọi API tạo field. Tránh bẫy thường gặp khi viết Formula; chọncalculation_modetheo Formula tính khi đọc và khi lưu.- Gọi
POST /bapi/v1/object-fields(alias/bapi/v1/object-fields/createchỉ khi có lý do tương thích cụ thể). Mong đợi201,r: 0; lấy field ID/slug và option IDs từdata, rồi đọc lại đối chiếu tên tiếng Anh, slug, bản dịch cóen-US,description,manualModifyAllow, type, cờ và metadata.formula: parse metadata đọc lại, đối chiếu nguyên vănscript,return_typevà tuỳ chọn liên quan. Options: đối chiếu ID, value, slug, sort, trạng thái, mặc định, màu/icon, quan hệ cha và bản dịch.
Cập nhật field
- Lấy trạng thái mới nhất (Phần 1) và chỉ thay đổi phần người dùng yêu cầu. Gọi
PUT /bapi/v1/object-fields/{fieldId};fieldIdtrên URL là nguồn tin cậy, không gửi body có ID khác. - Gửi
typehiện tại khi thay đổi cấu hình riêng theo type; chỉ đổi type trong các cặp API hỗ trợ và sau khi kiểm tra dữ liệu hiện có. Không đổislugkhi Object đã có records hoặc chưa đánh giá tham chiếu từ filter/workflow/layout; không đổimultiplenếu dữ liệu hiện tại không tương thích. translations[]: mỗi phần tử gửi lên là trạng thái đầy đủ của ngôn ngữ đó, thuộc tính bị thiếu có thể bị xoá bản dịch và fallback về giá trị gốc (khác Object, xem Phần 3); áp dụng tương tự chotranslations[]của từng option với thuộc tínhvalue.formula: áp dụng bước 5 của Tạo field (đọc reference, resolve lại slug đang được script tham chiếu, kiểm tra tĩnh). Chỉ sửascriptvẫn giữ toàn bộ metadata Formula hiện có sau khi merge; đổireturn_typephải đánh giá lại mọi nhánhreturnvà tuỳ chọn hiển thị phụ thuộc kiểu kết quả. Mọi thay đổiscript,return_typehoặc metadata Formula phải qua quy trình kiểm tra Formula trướcPUT; không kiểm tra cú pháp và chạy thử thành công trên record thật thì dừng và báo.- Mong đợi
200,r: 0; đọc lại so sánh field và toàn bộ options trước/sau;formulađối chiếu nguyên văn metadata.
Phần 3 — Tạo, cập nhật, xoá hoặc khôi phục Object
Tạo Object
- Chỉ tạo custom Object qua public API; không gửi
is_standard: 1. Tên gốcname,plural_name,description, slug kỹ thuật vàtranslations[]theo mục Ngôn ngữ. - Gửi
name_fieldvì public API yêu cầu trường tên chính. Cogover luôn tạo field record-name chuẩn với slugname:name_field.namelà nhãn hiển thị, không phải slug kỹ thuật. Không gửiname_field.slug; nếu compiler/client bắt buộc biểu diễn slug thì chỉ chấp nhận giá trịnamevà dừng nếu nhận giá trị khác. Không tạo record-name bằng custom field slug nhưmembership_code,title,subject,order_number; các nhãn này chỉ dùng làmname_field.name. name_field.typechỉshort_texthoặcauto_number, schema và metadata theo api-object-fields.md. Object con/phụ thuộc, junction, dòng chi tiết, bản ghi kỹ thuật, chứng từ/giao dịch hoặc mã do hệ thống cấp:auto_number; Object nhận diện bằng tên/tiêu đề người dùng nhập:short_text.- Public API luôn tạo các field chuẩn: giữ
standard_fieldsở mặc định; chỉ đổistandard_layout,standard_buttons,standard_filterkhi người dùng yêu cầu rõ. Gửiparent_fieldthì Object thành child Object (type: 1); chỉ gửicomposite_keyssau khi resolve chính xác các field tham gia và kiểm tra ràng buộc unique mong muốn. - Gọi
POST /bapi/v1/objects(alias/bapi/v1/objects/createchỉ khi có lý do tương thích cụ thể). Mong đợi201,r: 0; lấy Object ID, slug vàstandard_fieldstừdata, rồi đọc lại đúng ID/slug (Phần 1) xác minh tên gốc, bản dịch, trạng thái, fields và thành phần chuẩn. Read-back phải chứng minh có đúng một field active slugname, là record-name, đúng nhãn/bản dịch/type/metadata và type thuộcshort_text/auto_number; không khớp thì không tạo custom field thay thế và không tuyên bố hoàn tất. - Trước khi bàn giao Object mới cho người dùng nghiệp vụ, thực hiện Checklist hoàn thiện Object mới.
Cập nhật Object
- Lấy trạng thái mới nhất (Phần 1). API là partial update: chỉ gửi thuộc tính, nội dung gốc hoặc locale cần thay đổi; key vắng mặt được giữ nguyên. Gọi
PUT /bapi/v1/objects/{objectId};objectIdtrên URL là nguồn tin cậy, không gửi body có ID khác. - Không cập nhật
slug(public API không hỗ trợ đổi slug sau khi tạo); không cập nhật Object đang pending delete (status: 2). name_field: giữ slug chuẩnname, chỉ đổi nhãn, bản dịch, type hoặc metadata được API hỗ trợ; không đổi record-name sang custom slug, không tạo fieldnamethứ hai; đọc lại xác minh vẫn có đúng một field active slugnamevới typeshort_texthoặcauto_number.translations[]: mỗi phần tử chỉ upsert thuộc tínhnamehoặcplural_nameđược gửi; ngôn ngữ và thuộc tính không xuất hiện giữ nguyên; giá trị bản dịch rỗng fallback về giá trị gốc (khác field, xem Phần 2).- Standard Object: chỉ sửa
name,plural_name,description,translationsvà các metadata key được hỗ trợ; không gửi thuộc tính khác. - Mong đợi
200,r: 0; đọc lại so sánh trạng thái trước/sau.
Checklist hoàn thiện Object mới
Object vừa tạo (qua API hoặc import workbook) chưa dùng được cho người dùng nghiệp vụ. Trước khi báo hoàn tất, làm và xác minh từng mục bằng skill chuyên trách:
| # | Hạng mục | Việc cần làm | Skill |
| 1 | Quyền | Thêm Object vào Role của từng nhóm người dùng với đúng action record (create/view/edit/delete theo ma trận); rà cả Object chuẩn mà luồng nghiệp vụ đọc/ghi. Permission có id bị thay toàn bộ values: đọc Role, gộp, ghi, đọc lại. Role mẫu có permission functionCode: "object" thì bổ sung tương ứng (tác dụng riêng chưa kiểm chứng) | $user-permission |
| 2 | List view mặc định | Filter "Tất cả" tự sinh chỉ có cột hệ thống: cấu hình cột nghiệp vụ | $object-filter |
| 3 | Layout | Tạo layout Tạo/Xem/Sửa; không sửa content của layout tiêu chuẩn tự sinh | $object-layout |
| 4 | Bộ lọc theo persona | Việc persona tự làm có saved filter tương ứng, ví dụ "Của tôi" (created_by hoặc owner = $currentUser), "Chờ tôi xử lý" | $object-filter |
| 5 | Menu và báo cáo | Menu Item trỏ tới Object/filter trong đúng App; link record theo route runtime; report chia sẻ cho Role người dùng | $app-menu-manager, $report-builder |
| 6 | Kiểm chứng | Bằng phiên persona: tạo, xem, sửa record test; xác nhận giao diện theo quy ước chung | $user-permission, $object-layout |
Hạng mục người dùng chủ động loại khỏi phạm vi thì ghi rõ trong kết quả bàn giao, không bỏ qua im lặng.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

