diff --git a/.agents/skills/inkreach-teable/api-reference/trigger-types.md b/.agents/skills/inkreach-teable/api-reference/trigger-types.md index 3c6c116..5d98501 100644 --- a/.agents/skills/inkreach-teable/api-reference/trigger-types.md +++ b/.agents/skills/inkreach-teable/api-reference/trigger-types.md @@ -61,10 +61,11 @@ inkreach-teable trigger set --type recordUpdated --table-id tblXXX \ - ⚠️ **Key is `fieldIds`, NOT `watchFieldIds`.** - ⚠️ recordUpdated **ignores `conditions`** — use `recordCondition` if you need filtering. -**Output:** `record.id`, `record.fields.*` (post-update values), `record.oldFields.*` (pre-update values, field-ID keys), `user`, `tableId`, `changedFieldIds` (array of field IDs whose value changed). +**Output:** `record.id`, `record.fields.*` (post-update values), `oldFields.*` (pre-update values, field-ID keys), `user`, `tableId`, `changedFieldIds` (array of field IDs whose value changed). **changedFieldIds / oldFields semantics** (delivered on both v1 and v2 API update paths): - `oldFields` = full pre-update field snapshot keyed by field ID; `changedFieldIds` = deep-equal diff of before/after snapshots. +- ⚠️ **`oldFields` is TOP-LEVEL** (`triggerInput.oldFields.fldXXX`), a sibling of `record` — NOT nested inside `record`. Script access: `triggerInput.oldFields?.['fldXXX']`; variable reference: `{{n0.oldFields.fldXXX}}`. - `fieldIds` watch-filter matches against `changedFieldIds`. - On batch mode (`_batch`), each `records[]` entry carries its own `changedFieldIds` + `oldFields`. - ⚠️ **Fires on REST API record updates only** (`PATCH /api/table/{tableId}/record[/{recordId}]`, including programmatic/automation writes). Browser grid cell edits go through ShareDB ops and do **not** fire this trigger. @@ -103,7 +104,7 @@ inkreach-teable trigger set --type recordCondition --table-id tblXXX \ ``` Common operators: `is`, `isNot`, `isEmpty`, `isNotEmpty`, `isAnyOf`, `isNoneOf`, `contains`, `isGreater`, `isLess`, `isAfter`, `isBefore`. -**Output:** `record.id`, `record.fields.*`, `user`, `tableId`; on update events also `record.oldFields.*` + `changedFieldIds` (see §2 semantics). +**Output:** `record.id`, `record.fields.*`, `user`, `tableId`; on update events also top-level `oldFields.*` + `changedFieldIds` (see §2 semantics). --- @@ -122,7 +123,7 @@ inkreach-teable trigger set --type recordCreatedOrUpdated --table-id tblX - Ignores `fieldIds` (watches all fields). - `conditions` optional. -**Output:** same as recordCreated; on update events also `record.oldFields.*` + `changedFieldIds` (see §2 semantics). +**Output:** same as recordCreated; on update events also top-level `oldFields.*` + `changedFieldIds` (see §2 semantics). ---