Automation で Webhook を使って複数レコードを一括追加する方法

AppSheet
AppSheetAutomation

はじめに

AppSheet の Bot(Automation)で、別テーブルへ関連レコードをまとめて追加したい場面はよくあります。しかし標準ステップだけでは「リストの各要素ごとに繰り返し」が設定できず、一度にまとめて追加できないことも。その際は「Call a webhook」ステップから AppSheet API を呼び出し、自前で JSON ボディを組み立てる手法が有効です。

この記事では、IF 文でカンマを制御する古典的手法を使わずに、よりシンプルに複数行を追加するテンプレートをご紹介します。


前提条件

  • 対象アプリ:App ID aaaabbbb-cc11-dd22-ee33-3f85b8f1d76e(例)
  • 呼び出し先テーブル生産計画工程テーブル
  • 親テーブル生産計画 テーブル(ループの起点)
  • 関連子テーブル生産工程順序マスタ テーブル
  • キー列生産計画id(必須)

1. アプリ側の設定:ApplicationAccessKey の有効化

  1. Manage > Integrations タブを開く
  2. IN: from cloud services セクションで「Enable Inbound API」をオン
  3. 表示された ApplicationAccessKey をコピー

Bot 側の Webhook ヘッダーにこのキーを設定することで、同一アプリ内外から API 呼び出しが可能になります。


2. Bot の設定:Call a webhook ステップ追加

Automation → 該当 Bot → Process 編集 → + StepCall a webhook を選択。

  • Preset:AppSheet API
  • HTTP Verb:POST
  • HTTP Content Type:application/json
  • Custom headersApplicationAccessKey: <コピーしたキー> を設定

3. JSON ボディ:Start/End + Separator で簡潔ループ

{
"Action": "Add",
"Properties": {
"Locale": "ja-JP",
"Timezone": "Asia/Tokyo"
},
"Rows": [
<<Start: [_THISROW].[生産工程id].[Related 生産工程順序マスタs]>>
{
"生産計画id": "<<[_THISROW].[生産計画id]>>",
"工程Id": "<<[工程id]>>",
"設備Id": "<<[設備id]>>",
"工順": "<<[工程順序]>>",
"生産完了予定日": "<<[_THISROW].[生産完了予定日]>>"
}
<<End>>
]
}
  • <<Start: …>><<End>> で関連レコードをループ
  • 各オブジェクト内に必須キー列(生産計画id)を含める

4. 実行・テスト

  1. Bot の Process を保存し、Run test
  2. 生産計画 テーブルに新規行を追加または更新
  3. Webhook が正常終了し、生産計画工程テーブル に関連レコードが一括追加されることを確認

おわりに

AppSheet API の強力なバルク操作機能を活かし、自動化の幅を広げてみてください!

追加する前に既存のデータ削除をAutomationに組み込むとより実用的になります。