> ## Documentation Index
> Fetch the complete documentation index at: https://help.teable.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# レコードを更新

> ワークフローの一部として既存レコードのフィールドを変更します

<Tip>
  自動化の構築には「スクリプトを実行」の使用を強くお勧めします。手動で構築する必要があるアクションも含め、あらゆるアクションの動作に対応できるためです。チャットでAIに要件を説明するだけで利用できます。

  注意：アクションを手動で追加した場合、AIは後からそのアクションを認識したり変更したりできません。
</Tip>

## AIで構築

テーブルの右サイドバーでAIチャットを開き、実現したいことを説明します。

適切なトリガーの選択、必要なアクションの選択、フィールドのマッピング、ワークフロー全体の設定まで、すべてAIが自動的に処理します。

目的を一度説明すればワークフローが完成し、手動設定は必要ありません。

既存レコードの1つ以上のフィールドを更新します。マッピングしたフィールドだけが変更され、それ以外はすべてそのまま保持されます。

## 設定

| 設定     | 必須 | 説明                                       |
| ------ | -- | ---------------------------------------- |
| テーブル   | はい | 更新するレコードを含むテーブル                          |
| レコードID | はい | 更新するレコード。動的変数に加え、複数レコード用のカンマ区切りIDにも対応します |
| フィールド  | はい | 各フィールドを新しい値（固定値または動的な値）にマッピングします         |

## 設定方法

1. ワークフローに**レコードを更新**アクションを追加します。
2. 変更するレコードが含まれる**テーブル**を選択します。
3. **レコードID**を設定します。\*\*+\*\*をクリックして動的変数を挿入します。
   * **レコードトリガー**（作成、更新、ボタンクリック）から：トリガーがレコードIDを直接提供します。
   * **レコードを取得**アクションから：取得した結果のレコードIDを参照します。
   * 固定のレコードIDを入力することも、カンマ区切りのリストを使用して複数のレコードを一度に更新することもできます（例：`rec123,rec456,rec789`）。
4. 変更するフィールドをマッピングします。各フィールドでは次の値を設定できます。
   * **固定値：** 新しい値を直接入力します。
   * **動的な値：** \*\*+\*\*をクリックし、前のステップの値を挿入します。
5. 変更しないフィールドはマッピングしないままにします。現在の値が保持されます。
6. アクションを保存します。

## レコードIDを取得する方法

レコードIDは、このアクションに必要な重要情報です。トリガーに応じた取得場所は次のとおりです。

| トリガー／前のステップ   | レコードIDの取得方法                                     |
| ------------- | ----------------------------------------------- |
| レコードが作成されたとき  | トリガーの出力変数として直接利用できます                            |
| レコードが更新されたとき  | トリガーの出力変数として直接利用できます                            |
| ボタンがクリックされたとき | 直接利用できます。ボタンがクリックされた行のIDです                      |
| フォームが送信されたとき  | 直接利用できます。送信によって作成されたレコードのIDです                   |
| レコードを取得アクション  | 結果内の各レコードにIDがあります。ループでは、現在の項目のIDを参照します          |
| Webhookを受信    | WebhookのペイロードにレコードIDを含めるか、「レコードを取得」で検索する必要があります |

<Tip>複数のレコードを一度に更新する必要がありますか？カンマ区切りのレコードIDを渡すか、「レコードを取得」の結果を[ループ（バッチ）](../logic/loop-run)で処理して、レコードを一括更新できます。</Tip>

## 部分更新

このアクションは部分更新を行います。つまり、次のように動作します。

* **マッピングしたフィールド**は、指定した新しい値で上書きされます。
* **マッピングしていないフィールド**は、現在の状態がそのまま保持されます。

すべてのフィールド値を再送信する必要はありません。変更する値だけを指定できるため、安全かつ効率的です。

## 警告：トリガーループ

<Warning>ワークフローが「レコードが更新されたとき」トリガーを使用し、後続のステップが同じテーブル内の監視対象フィールドを更新すると、ワークフローが再度実行され、無限ループが発生します。</Warning>

自動化が**レコードが更新されたとき**によってトリガーされ、「レコードを更新」アクションが**同じテーブル**へ書き戻す場合、次のような無限ループが発生する可能性があります。

1. レコードが変更される → トリガーが発火する → 自動化がレコードを更新する → トリガーが再び発火する → 以後繰り返す。

**ループを防ぐ方法：**

* トリガーでは**特定のフィールドを監視**し、更新するフィールドとは*異なる*フィールドを選びます。たとえば「ステータス」を監視し、「処理日」を更新します。
* トリガーに**フィルターを追加**します。たとえば、`処理済み`が`true`ではない場合にのみトリガーし、アクションで`処理済み`を`true`に設定します。
* 状態が遷移したときにだけ発火する[レコードが条件に一致したとき](/ja/basic/automation/trigger/records/record-matches-conditions)の使用も検討してください。

## 使用する場面

* **承認後にタスクを完了としてマークする。** ボタンがクリックされたら、ステータスを「承認済み」に設定し、承認日を入力します。
* **外部イベントに基づいてステータスフィールドを更新する。** Webhookで支払いが報告されたら、注文レコードを検索し、ステータスを「支払済み」に更新します。
* **変更時にタイムスタンプを書き込む。** レコードが更新されたら、「自動化による最終更新」日時フィールドを現在時刻に設定します。
* **外部システムからデータを書き戻す。** 外部APIを呼び出した後、レスポンスデータ（追跡番号など）をレコードへ書き戻します。
* **レコードを一括更新する。** 「レコードを取得」とループを組み合わせて、複数のレコードを一度に更新します。たとえば、期限切れのすべてのタスクを「エスカレーション済み」としてマークします。

## ヒント

* レコードの更新によって、同じテーブルを監視するほかの自動化がトリガーされる場合があります。連鎖的な影響に注意してください。
* カンマ区切りのIDで複数のレコードを更新すると、すべてのレコードに同じフィールド値が設定されます。レコードごとに異なる値を設定するには、代わりに[ループ](../logic/loop-run)ステップを使用します。
* フィールドをクリアする必要がある場合は、空の値をマッピングします。マッピングしないままにしても、フィールドはクリアされません。
* 別のベースにあるテーブルのレコードを更新するには、[クロスベースアクセス](/ja/basic/automation/actions/records/cross-base)を使用します。

## 関連項目

* [レコードを作成](/ja/basic/automation/actions/records/create-record) — 既存レコードを変更する代わりに新しいレコードを追加する
* [レコードを取得](/ja/basic/automation/actions/records/get-records) — 更新前にレコードを取得してIDを確認する
* [クロスベースアクセス](/ja/basic/automation/actions/records/cross-base) — 現在のベース以外のテーブルにあるレコードを更新する
* [ループ（バッチ）](../logic/loop-run) — 複数のレコードを異なる値で更新する
