# レコード自動更新 詳細マニュアル | 設定リファレンス・トラブルシューティング - KINTAUROS

> kintoneプラグイン「レコード自動更新」の詳細マニュアル。全設定項目のリファレンス(意味・制約値)、動作条件・制限事項、エラーコード別のトラブルシューティングを掲載。対象バージョン: v1.0.1。

元ページ: https://kintauros.com/plugins/record-auto-update/manual/

レコード自動更新は、レコードの保存と同時に、条件に一致する更新先アプリ(自アプリまたは他アプリ)のレコードを自動で一括更新するプラグインです。更新する値にはフィールド値・固定値・関数(TODAY()など)のほか、テーブルの同期(上書き転記)やテーブルの文字列まとめも使えます。このマニュアルでは、設定項目のリファレンスと、動作仕様・制限事項・トラブルシューティングを説明します。

機能紹介・画面イメージ・導入手順は[プラグイン紹介ページ](https://kintauros.com/plugins/record-auto-update/)を、ダウンロードは[ダウンロードページ](https://kintauros.com/download/)をご覧ください。このマニュアルは[Markdown版](index.md)でも提供しており、全プラグインのメタ情報と設定スキーマは機械可読な[catalog.json](https://kintauros.com/catalog.json)から取得できます。

## 基本情報

- **プラグインID**: record-auto-update

- **対象バージョン**: v1.0.1(配布中の最新版)

- **カテゴリ**: AI・自動化

- **説明**: レコード保存時に、条件に一致する自アプリまたは他アプリのレコードを自動で一括更新します。テーブルの同期（上書き転記）や文字列まとめにも対応。

## 動作条件

- **対応環境**: kintone スタンダードコース(デスクトップ版UI)。最新版の Chrome / Edge / Safari / Firefox に対応。

- **動作タイミング**: レコードの新規作成・編集・一覧のインライン編集の保存成功時(デスクトップ版)。モバイルアプリからの保存では更新されません。

- **必要な権限**: 保存するユーザーに、更新先アプリの対象レコードの閲覧・編集権限が必要です。

## 設定項目リファレンス

プラグイン設定の全項目です。「項目」は設定データ(エクスポートファイルの config)のキーを表し、[] は配列の要素を意味します。設定画面での入力項目と1対1に対応します。この構造の正式な定義はJSON Schema([catalog.json](https://kintauros.com/catalog.json) の configSchema)として公開しています。

- **項目**: 型 / 必須 / 説明・制約

- **rules**: 配列 / 必須 / 更新ルール / 1件以上

- **rules[].triggerCondition**: オブジェクト / 任意 / 実行条件(保存したレコードの条件) / 保存したレコードがこの条件を満たすときだけ更新を実行する。省略時・mode が always のときは常に実行。

- **rules[].triggerCondition.mode**: 文字列 / 任意 / 値: always | conditions

- **rules[].triggerCondition.logic**: 文字列 / 任意 / 値: and | or

- **rules[].triggerCondition.rules**: 配列 / 任意 / -

- **rules[].triggerCondition.rules[].fieldCode**: 文字列 / 必須 / フィールドコード(このアプリ) / 1文字以上

- **rules[].triggerCondition.rules[].operator**: 文字列 / 必須 / 値: equals | not_equals | contains | not_contains | gt | gte | lt | lte | empty | not_empty

- **rules[].triggerCondition.rules[].valueType**: 文字列 / 任意 / const = 固定値 / func = 関数(TODAY() など) / 値: const | func

- **rules[].triggerCondition.rules[].value**: 文字列 / 任意 / valueType が func のときは LOGINUSER() / TODAY() / NOW() のいずれか

- **rules[].destAppId**: 文字列 / 必須 / 更新先アプリID(自アプリのIDも指定可) / 形式: ^[0-9]+$

- **rules[].destAppName**: 文字列 / 任意 / 更新先アプリ名 / 表示用の控え。保存時に自動で最新化される。

- **rules[].maxTargets**: 整数 / 任意 / 更新する件数の上限 / 条件に一致した件数がこの値を超えた場合は、更新を行わずエラーにする(意図しない一括更新の防止)。省略時は1。 / 1以上 / 1000以下

- **rules[].destCondition**: オブジェクト / 必須 / 更新先レコードの条件 / 更新先アプリでこの条件に一致するレコードを更新する(件数が maxTargets を超えたら更新しない)。

- **rules[].destCondition.logic**: 文字列 / 任意 / 値: and | or

- **rules[].destCondition.rules**: 配列 / 必須 / 1件以上

- **rules[].destCondition.rules[].fieldCode**: 文字列 / 必須 / フィールドコード(更新先アプリ) / 1文字以上

- **rules[].destCondition.rules[].operator**: 文字列 / 必須 / 値: equals | not_equals | contains | not_contains | gt | gte | lt | lte | empty | not_empty

- **rules[].destCondition.rules[].valueType**: 文字列 / 任意 / const = 固定値 / func = 関数(TODAY() など) / field = 保存したレコードのフィールド値 / 値: const | func | field

- **rules[].destCondition.rules[].value**: 文字列 / 任意 / valueType が field のときはこのアプリのフィールドコード

- **rules[].destCondition.rules[].fieldType**: 文字列 / 任意 / 更新先フィールドの型(保存時に自動算出)。クエリ生成の内部情報。手で編集しない。

- **rules[].updates**: 配列 / 必須 / 更新内容(更新先フィールドと値) / 1件以上

- **rules[].updates[].dest**: 文字列 / 必須 / 更新先フィールドコード / 1文字以上

- **rules[].updates[].destType**: 文字列 / 任意 / 更新先フィールドの型(保存時に自動算出)。値変換の内部情報。手で編集しない。

- **rules[].updates[].srcType**: 文字列 / 必須 / field = 保存したレコードのフィールド値 / const = 固定値 / func = 関数 / table = テーブルを文字列にまとめて転記 / table_copy = テーブルの行を更新先のテーブルへ上書き転記(同期) / 値: field | const | func | table | table_copy

- **rules[].updates[].value**: 文字列 / 任意 / srcType が field/table/table_copy のときはこのアプリのフィールドコード。func のときは TODAY() / NOW() / LOGINUSER()。const のときは固定値(空文字で更新先をクリア)。

- **rules[].updates[].table**: オブジェクト / 任意 / テーブル転記オプション(srcType が table のときのみ)

- **rules[].updates[].table.columns**: 配列 / 任意 / 出力する列(テーブル内フィールド) / 1件以上

- **rules[].updates[].table.columns[].code**: 文字列 / 必須 / 1文字以上

- **rules[].updates[].table.columns[].label**: 文字列 / 任意 / 見出しの表示名。保存時に自動で最新化される。

- **rules[].updates[].table.format**: 文字列 / 任意 / markdown = Markdown表 / csv = カンマ区切り。省略時は markdown。 / 値: markdown | csv

- **rules[].updates[].sync**: オブジェクト / 任意 / テーブル同期オプション(srcType が table_copy のときのみ)

- **rules[].updates[].sync.mappings**: 配列 / 必須 / フィールドの関連付け / 1件以上

- **rules[].updates[].sync.mappings[].src**: 文字列 / 必須 / 転記元(このアプリのテーブル内)フィールドコード / 1文字以上

- **rules[].updates[].sync.mappings[].dest**: 文字列 / 必須 / 転記先(更新先テーブル内)フィールドコード。型が一致している必要がある / 1文字以上

- **rules[].updates[].sync.emptyBehavior**: 文字列 / 任意 / テーブルが空のときの動作。skip = 同期しない(転記先を保護) / clear = 空で上書きする。省略時は skip。 / 値: skip | clear

- **rules[].updates[].sync.destLookups**: 配列 / 任意 / 転記先テーブル内のルックアップ情報(保存時に自動算出) / 実行時の送信制御に使う内部情報。手で編集しない(保存時に更新先アプリの定義から再計算される)。

- **rules[].updates[].sync.destLookups[].field**: 文字列 / 任意 / -

- **rules[].updates[].sync.destLookups[].copyTargets**: 配列(文字列) / 任意 / -

## 設定のポイント

- 更新先レコードは destCondition の条件で検索して特定します。「このアプリのフィールド値(valueType: field)」を使うと、保存したレコードの値と一致するレコード(例: 顧客コードが同じ)を絞り込めます。条件なしの全レコード更新は設定できません。

- maxTargets(更新する件数の上限)の既定は1件・最大1000件です。条件に一致した件数が上限を超えた場合は、1件も更新せずにエラーを表示します。複数レコードの一括更新を意図する場合のみ上限を引き上げてください。

- triggerCondition(実行条件)を指定すると、保存したレコードが条件を満たすときだけ更新を実行します(例: ステータス = 受注)。

- srcType: table(テーブルを文字列にまとめる)の書き込み先は文字列(複数行)フィールドのみです。出力する列と形式(Markdown表 / カンマ区切り)を選べます。

- srcType: table_copy(テーブルを同期)の sync.destLookups は保存時に更新先アプリの定義から自動算出される内部項目です。手で編集しないでください。

- 更新先の条件の fieldType、更新内容の destType も保存時に自動算出される内部項目です。

## 動作仕様

- 保存が成功したタイミングで、更新先アプリを条件で検索し、一致したレコードを一括更新します(100件ずつのバッチ更新)。

- 更新先が自アプリの場合、保存したレコード自身は更新対象から除外されます。

- 関数は実行時に評価されます: TODAY() = 今日の日付 / NOW() = 現在日時 / LOGINUSER() = ログインユーザー(ユーザー選択フィールドには選択値として、文字列フィールドには表示名として書き込み)。

- テーブルの同期は、更新先レコードのテーブル全体を編集後の内容で上書きします(行単位の差分反映ではなく全置換)。テーブル内の添付ファイルは、更新先レコードごとにファイルを自動で再アップロードしてコピーします。

- 同期先テーブル内のルックアップフィールドには取得が自動実行され、参照先からの自動コピーと衝突しないよう転記内容が調整されます。

- テーブルが空のときの動作は emptyBehavior で選べます。既定は skip(同期しない・転記先を保護)です。

- 条件に一致するレコードがない場合は何もしません。更新に失敗した場合、レコードの保存自体は完了しており、エラー内容がアラートで表示されます。

## 制限事項・既知の仕様

- モバイルアプリからの保存、REST API・CSV読み込みによる更新では実行されません(デスクトップ版の画面保存時のみ)。

- 作成者・更新者・作成日時・更新日時・レコード番号・ステータス・計算フィールド・ルックアップフィールドは更新先に指定できません。

- テーブル同期の転記元と転記先のフィールドは型が一致している必要があります。

- 条件に一致した件数が maxTargets を超えた場合は、1件も更新されません(部分的な更新は行いません)。

## 設定のインポート / エクスポート

プラグイン設定画面の上部にある「設定のインポート / エクスポート」から、現在の設定をJSONファイルとして書き出し(エクスポート)、別のアプリで読み込み(インポート)できます。検証用アプリから本番アプリへの設定コピーや、バックアップ・復元にご利用ください。

- インポートは取り込む内容の差分を確認してから「設定画面に反映」し、最後に「保存」を押して確定します(反映しただけでは保存されません)。

- 読み込んだファイルはブラウザ内で処理され、KINTAUROSのサーバーには送信されません。

- 別のアプリの設定を取り込んだ場合、このアプリに存在しないフィールドは警告として一覧表示されるので、反映後に該当箇所を選び直してください。

エクスポートファイルは次の形式(封筒形式)です。config の中身が設定本体で、その構造は上の設定項目リファレンスのとおりです。

```
{
  "kintauros": "config/v1",
  "plugin": "<プラグインID>",
  "pluginName": "<プラグイン名>",
  "pluginVersion": "<バージョン>",
  "exportedAt": "<書き出し日時(ISO 8601)>",
  "sourceApp": "<書き出し元アプリID>",
  "config": { ... 設定本体 ... }
}
```

### AIエージェント向け: ブラウザコンソールAPI

各プラグインは共通ランタイム window.KINTAUROS を搭載しており、ブラウザの開発者コンソールから設定の読み取り・検証・保存ができます。設定の保存(save: true)はkintoneの制約上、プラグイン設定画面でのみ成功します。

```
KINTAUROS.config.plugins()                   // このページのKINTAUROSプラグインID一覧
KINTAUROS.config.describeAll()               // 同居プラグインすべての設定サマリ
KINTAUROS.config.of('<プラグインID>').schema()    // 設定のJSON Schema
KINTAUROS.config.of('<プラグインID>').export()    // 現在の設定(封筒つき)
KINTAUROS.config.of('<プラグインID>').validate(x) // 保存せず検証
KINTAUROS.config.of('<プラグインID>').diff(x)     // 現在の設定との差分
await KINTAUROS.config.of('<プラグインID>').import(x, { save: true }) // 検証して保存(設定画面のみ)
```

登録が1件だけのページでは of(...) を省略できます(例: KINTAUROS.config.export())。

## トラブルシューティング

**保存しても更新先に反映されない**

(1)実行条件(triggerCondition)を満たしているか、(2)更新先レコードの条件に一致するレコードが存在するか、(3)保存したユーザーに更新先レコードの閲覧・編集権限があるか、(4)モバイルアプリから保存していないか、を確認してください。更新先が自アプリの場合、保存したレコード自身は更新されません。

**「条件に一致するレコードが上限を超えたため、更新を行いませんでした」と表示される**

更新先レコードの条件に一致した件数が「更新する件数の上限」(既定1件)を超えています。条件を見直して対象を絞り込むか、複数レコードの一括更新を意図している場合は設定画面で上限を引き上げてください。

**同期先のテーブルが空になってしまった**

emptyBehavior が clear(空で上書き)になっていないか確認してください。既定の skip では、テーブルが空のまま保存しても同期先には反映されません。

**更新時にエラーが表示される**

更新先フィールドが削除・型変更されていないか、固定値が更新先フィールドの型・選択肢に合っているか(ドロップダウンは選択肢に存在する値のみ)を確認してください。フォーム変更後は設定画面で「フィールドを読み込む」を実行し、選び直して保存してください。

## エラーコードと診断情報

レコード自動更新を含むKINTAUROSプラグインは、エラー発生時にブラウザのコンソールへ統一形式のログを出力します。人間向けの1行に続けて、機械可読なJSON(code / plugin / version / appId / message / doc)を出力し、doc には該当エラーの解説ページのURLが入ります。

```
[KINTAUROS <プラグインID>@<バージョン>] E001: 設定されたフィールドが見つかりません: ...
{"kintauros":{"code":"E001","plugin":"...","version":"...","appId":"...","message":"...","doc":"https://kintauros.com/docs/errors/E001"}}
```

各エラーコードの意味と対処は[エラーコード一覧](https://kintauros.com/docs/errors/)を参照してください。また、プラグイン設定画面の「サポート用情報をコピー」から、環境・バージョン・ライセンス状態・直近のエラーを含む診断情報をコピーできます(レコードの内容や個人情報は含まれません)。お問い合わせの際はこの情報を添えてください。

## ライセンスについて

- 初回利用時は、プラグイン設定画面の「利用開始」ボタンから60日間の無料トライアルを開始できます(カード登録不要)。

- トライアル・契約の期限が切れるとプラグインの動作は停止し、画面に案内が表示されます。[料金プラン](https://kintauros.com/#pricing)から契約すると同じ設定のまま再開できます。

- ライセンス確認のための外部通信で送信されるのは、kintoneドメイン名・プラグインID・バージョンのみです。レコードの内容や個人情報が外部に送信されることはありません。

- ライセンスサーバーに一時的に接続できない場合も、プラグインは一定期間動作を継続する設計です。

## サポート

解決しない場合は[お問い合わせ](https://kintauros.com/contact/)からご連絡ください。その際、プラグイン設定画面の「サポート用情報をコピー」でコピーした診断情報を添えていただくと、調査がスムーズです。

最終更新: 2026-09-12 / 対象バージョン: v1.0.1
