フォームの回答をテーブルに保存する
DECA Forms でフォームが送信されるたびに、回答を DECA Tables の新しいレコードとして追加します。このガイドでは、ほかの DECA 製品からフローを開始し、そのデータを別の製品に渡す方法を説明します。
準備するもの:
- DECA Forms のフォーム。例: 質問 お名前、メールアドレス、お問い合わせ内容 を持つ「お問い合わせ」フォーム。
- 保存したい回答ごとに列を持つ DECA Tables のテーブル。
1. 回答が届いたらフローを開始する
- フローを作成し、トリガーを追加 をクリックします。
- トリガーを選択 で DECA Cloud を開き、フォーム を選んでから、イベント 回答作成 を選びます。

このトリガーには設定項目がありません。組織内のすべてのフォーム の新しい回答で発火するため、次のステップでどのフォームからの回答かを確認します。
2. 対象のフォームだけ続行する
- ステップを追加 をクリックし、組み込み を開いて パス を選びます。
- 最初の分岐の パスモード を 条件に基づく にし、次の条件を設定します。
- フィールド:
$を入力して Current Trigger を選び、form.nameを選びます。 - 演算子: 文字列: 等しい
- 値:
お問い合わせ
- フィールド:
- 以降のステップはこの分岐に追加します。ほかのフォームの回答はどの分岐にも一致しないため、そこで実行が終わります。
フォーム名が変わる可能性があるなら ID を使う
form.name の条件は、フォーム名が変更されると一致しなくなります。最初のテスト実行の後、実行のトリガー出力からフォームの ID をコピーし、代わりに form.id を比較してください。
3. レコードを作成する
- パスの分岐で ステップを追加 をクリックし、DECA Cloud を開いて テーブル を選び、レコード作成 を選びます。
- テーブルの ベース ID と テーブル ID を選びます。
- レコード でレコードを追加し、列ごとに項目を追加します。列を選び、フォームの回答から値を設定します。
フォームの回答は、質問ごとに 1 項目のリストで届きます。
json
{
"form": { "id": "…", "name": "お問い合わせ" },
"answers": [
{ "question": { "label": "お名前" }, "response": { "flatAnswer": "田中 愛子" } },
{ "question": { "label": "メールアドレス" }, "response": { "flatAnswer": "aiko@example.com" } }
]
}1 つの回答を取り出すには、質問のラベルで探します。列の値に次のように設定します。
$string($trigger.output.answers[question.label="メールアドレス"].response.flatAnswer)メールアドレス の部分は、質問のラベルと完全に一致させてください(大文字・小文字や空白も含む)。ほかの列も同じように設定します。
answers[1] ではいけないのですか?
$trigger.output.answers[1].response.flatAnswer でも動作し、$ の一覧から選ぶとこの形になります。ただし位置で回答を選ぶため、フォームに質問を追加したり並べ替えたりすると壊れます。ラベルで探す方法なら、その後も動き続けます。
4. 公開してテストする
フォームの回答は 公開済み のフローを実行するため、先に 公開 をクリックします。その後フォームを送信し、実行履歴 で実行を開きます。レコード作成 のステップを選ぶと作成されたレコードを確認でき、テーブルにも新しい行が追加されています。
うまくいかないとき
| 症状 | 考えられる原因 |
|---|---|
| 送信しても実行が表示されない | フローが公開されていない、または最新の変更が公開されていない。 |
| パスの後で実行が止まる | 条件のフォーム名が完全には一致していない。実行のトリガー出力で form.name を確認してください。 |
| 列が空になる | 式の質問ラベルがフォームと完全には一致していない。 |
列に $trigger.output… がそのまま入る | 式の前後にテキストがある。関数は項目全体のときだけ実行されます。 |