値の取り出し
送信元のサービスごとに本文の形は違います。特定のサービスに合わせ込まず、 よくある入れ物を順に探して値を取り出します。
探す順番(webhook / API)
次の場所を上から順に見て、最初に見つかった空でないオブジェクトを 項目として使います。
entry.data contents.new.publishValue contents.new.draftValue contents.old.publishValue data record payload fields form (どれも無ければ)本文全体
つまり {"fields":{...}} でも {"data":{...}} でも、キーを直接並べた JSON でも、 そのまま送って構いません。
本文全体を使うとき
入れ物が見つからない場合は本文そのものを項目にします。このとき空の入れ物は除きます。{"fields":{}} のような中身の無い送信が、入れ物そのものを 1項目として記録してしまうのを防ぐためです。
{"data": {}, "お名前": "山田"} → { "お名前": "山田" }
{"fields": {}} → 値なし(422)値の整形
1階層だけ整形します。
| 送った値 | 扱い |
|---|---|
| 文字列・数値 | そのまま |
| 配列 | , で連結(複数選択のチェックボックスなど) |
| 入れ子のオブジェクト | JSON の文字列として保持 |
null | 項目ごと落とす |
| 空文字 | 「未入力の項目」として残す |
深い入れ子には強くありません。項目として扱いたい値は、なるべく1階層に 並べて送ってください。
キー名について
日本語のキーがそのまま使えます。取り出したキー名は通知メールの見出しになり、自動返信のテンプレートにも{{お名前}} の形で差し込めます。
種別(ラベル)
本文直下に event / type / action があれば、 受信ログの「種別」に表示します。どの操作で飛んできた webhook かを 見分けるのに使えます。
使えるキーを確かめる
テストで1件送るのが確実です。受信ログに取り出せた項目がそのまま残り、自動返信の本文を編集する画面には 実際に届いた項目がボタンで並びます(押すと差し込めます)。