フォームの回答を CRM に追加する
お問い合わせやイベント申し込みなどの DECA Forms のフォームに回答があったら、回答者を DECA CRM に追加します。すでに登録されていれば、そのレコードを更新します。メールアドレスで照合するので、何度フォームに回答しても 1 人につき 1 件のレコードに保たれます。
準備するもの:
- 少なくともメールアドレスを尋ねる DECA Forms のフォーム。
- 人を管理する DECA CRM のオブジェクト(例: コンタクト)。メールアドレスのフィールドと、残したい回答ごとのフィールドを用意します。
1. 回答が届いたらフローを開始する
- フローを作成し、トリガーを追加 をクリックします。
- DECA Cloud を開き、フォーム を選んでから、イベント 回答作成 を選びます。
このトリガーは組織内の すべての フォームの新しい回答で発火します。フォームの回答をテーブルに保存する と同じように、対象のフォームだけ続行する パス を追加します。
2. レコードを追加または更新する
パスの分岐で ステップを追加 をクリックし、DECA Cloud を開いて CRM を選び、レコードを更新または作成 を選びます。
ワークスペースID と、コンタクトのオブジェクトの オブジェクトID を入力します。CRM でオブジェクトを開いたときの URL からコピーできます。
フィルター: 既存のレコードの探し方です。行を 1 つ追加し、メールアドレスのフィールドと、値にメールアドレスの回答を設定します。
$string($trigger.output.answers[question.label="メールアドレス"].response.flatAnswer)メールアドレスは、フォームの質問のラベルと完全に一致させてください。Data: 書き込むフィールドです。フィールドごとに行を追加し、同じ方法で対応する回答を設定します。メールアドレスのフィールドもここに入れてください。 CRM はフィルターの値を新しいレコードにコピーしないため、入れないと同じ人の次の回答で重複したレコードが作られます。
CRM の選択肢のフィールドには、メールマガジン のような選択肢のラベルを渡せます。CRM が一致する選択肢を探します。

更新または作成の動き
| フィルターに一致するレコード | 結果 |
|---|---|
| なし | Data から新しいレコードを作成します。 |
| 1〜10 件 | それらのレコードを Data で更新します。 |
| 11 件以上 | 何も書き込まず、ステップは失敗します。 |
どうなったかは出力でわかります。data.created は新しいレコードなら true、更新なら false で、data.records に書き込んだレコードが入ります。
3. 新しいコンタクトに対応する
出力で新規か既存かを区別できるので、扱いを変えられます。更新または作成のステップの後に、条件 data.created 真 のパスを追加し、その分岐で次のような処理をします。
- 営業チャンネルに投稿する。通知を送る を参照してください。
- メール › メール送信 でウェルカムメールを送る。
- CRM › アクティビティ作成 で流入元を記録する。
4. 公開してテストする
フォームの回答は 公開済み のフローを実行するため、公開 をクリックします。同じメールアドレスでフォームを 2 回送信し、実行履歴 を開きます。1 回目は created: true、2 回目は created: false になり、CRM のレコードは 1 件のはずです。
うまくいかないとき
| 症状 | 考えられる原因 |
|---|---|
| 回答のたびに重複したレコードができる | メールアドレスのフィールドが フィルター にあって Data にない。 |
| 一致が多すぎてステップが失敗する | メールアドレスの回答が空だったなどの理由で、フィルターが 11 件以上に一致した。ステップの前に、メールアドレスが 空でない ときだけ続行するパスを追加する。 |
| フィールドが空のまま | 式の質問ラベルがフォームと完全に一致していない。 |
| 既存のレコードと一致しない | CRM は値を完全一致で比べる。CRM のデータが小文字なら、$lowercase(...) で回答を小文字にする。 |