Loading
システム管理者に対するフィッシング耐性MFA・全従業員ユーザーMFAの適用のお知らせ 続きを読む
ただいま大変多くのお問い合わせをいただいており、ご連絡までにお時間を頂戴しております続きを読む
Marketing Cloud Next
フォームハンドラへの外部フォームの接続

フォームハンドラへの外部フォームの接続

フォームハンドラーを作成して公開したら、データを Salesforce に送信するように外部フォームを設定します。

必要なエディション

サポートされているエディションを表示する。

必要なユーザー権限
フォームハンドラーを作成する

「Marketing Cloud マネージャー」権限セット

および

任意の CMS ワークスペース寄稿者ロール

フォームハンドラーを公開する

「Marketing Cloud マネージャー」権限セット

および

コンテンツ管理者またはコンテンツマネージャーの CMS ワークスペース寄稿者ロール

CORS 許可リストを設定する 「すべてのデータの編集」

この手順を完了する前に、フォームハンドラを作成して公開します。

フォームから Salesforce にデータを送信する方法は 2 つあります。サイトの構造と機能に最も適した接続種別を選択します。

  JavaScript スニペット (クライアント側)

直接 POST URL (サーバー側)

しくみ 訪問者がフォームを送信すると、ページのスクリプトによってフォームデータが Salesforce に送信されます。 フォームは、ページにスクリプトなしでデータを Salesforce URL に直接投稿します。
サイトに追加 ページの HTML に貼り付ける <script> タグとフォーム属性。 フォームまたは Web フック送信先のアクションとして設定する URL。
最適な用途 HTML を制御し、スクリプトを追加できるページ。 カスタムスクリプト、厳格なコンテンツセキュリティポリシー (CSP) ルールを使用するページ、およびバックエンドサーバーから投稿するフォームを許可しないサードパーティフォームビルダー。
Web 追跡をサポート あり 不可
ID 解決をサポート あり 不可
CORS 許可リストエントリが必要 はい はい

どちらの方法も同じフォームハンドラーにデータを送信し、同じフローをトリガーします。どちらの方法でも、CORS 許可リストでドメインを承認する必要があります。

どちらの接続種別でも、フォームの各項目で HTML name 属性がフォームハンドラの対応する外部項目名と完全に一致するようにします。名前が一致しない場合、フォームハンドラーは値を取得しません。たとえば、外部項目名email_addressEmail項目に対応付けた場合、フォームの対応する項目の name 属性も email_address である必要があります。

オプション 1: クライアント側の接続を使用するようにフォームを設定する

この方法は、ページの HTML を制御し、ページにスクリプトを追加できる場合に使用します。スクリプトは訪問者のブラウザーで実行されるため、この方法では Web 追跡と ID 解決がサポートされます。そのため、この方法ではフォーム送信を訪問者の Web 活動に接続できます。

  1. フォームハンドラーを公開します。
  2. [コードスニペット] タブの [クライアント側フォームハンドラー] で、追跡スクリプトをコピーします。スクリプトは次の例に似ています。
    <script async src="https://YOUR_DOMAIN/lp/assets/scripts/external-form-handler-host.min.js" onload="SFDCFormHandler.init('https://YOUR_DOMAIN/lp')"></script>
  3. サイトの HTML コードで、閉じ</body>タグの前にスクリプトを貼り付けます。
  4. [コードスニペット] タブで、フォーム属性をコピーします。属性は次の例に似ています。
    <form id="CONTENT_KEY" data-uma-forms="true"></form>
  5. HTML で、 id 属性と data-uma-forms 属性を <form> タグに追加します。
  6. 各フォームフィールドの HTML name 属性が、対応付けられた外部フィールド名と一致することを確認します。
  7. フォームをホストするドメインを CORS 許可リストに追加します。このステップでは、ドメインが送信を Salesforce に送信することを承認します。
  8. ユーザーエンゲージメントを監視するには、Web 追跡を有効にします。

訪問者がフォームを送信すると、スクリプトによってデータが Salesforce に送信され、フォームハンドラーによって送信が処理されてフローがトリガーされます。次に、フォームハンドラーは、設定した成功またはエラーの URL にリダイレクトします。

オプション 2: サーバー側接続を使用するようにフォームを設定する

ページにコードを追加できない、またはコードにカスタム設定ができないときは、サーバー側接続を使用します。この方法では、フォームハンドラーが送信先 URL を指定し、その URL にデータを送信するようにフォームを設定します。スクリプトを埋め込まないため、この方法はカスタム JavaScript を許可しないフォームツールで機能します。この方法は、厳格なコンテンツセキュリティポリシー (CSP) ルールがあるページや、バックエンドサーバーから送信するフォームでも役立ちます。

  1. フォームハンドラーの [コードスニペット] タブの [サーバー側フォームハンドラー] で、フォームアクション URL をコピーします。URL は次の例のようになります。
    https://YOUR_DOMAIN/lp/cms/form/submit/v1/CONTENT_KEY
  2. データを Salesforce に送信するようにフォームを設定します。実装手順は、フォームの実装方法によって異なります。
    サードパーティのフォームビルダーまたはプラグインを使用している場合 サードパーティツールの設定で、フォームのアクション、投稿先 URL、または Web フック送信先を設定する項目を見つけます。その項目に Salesforce URL を入力します。
    HTML を変更できるが、スクリプトを追加できない場合 <form> タグの action 属性を Salesforce URL に設定し、method 属性を POST に設定します。
    フォームでバックエンドプロセスを使用している場合 POST 要求をフォームデータと共に application/x-www-form-urlencoded エンコードを使用して Salesforce URL に送信します。
  3. 各項目の名前が、対応付けられた外部項目名と完全に一致することを確認します。
    フォームハンドラーは、項目が完全に一致する場合にのみ項目を取得します。
  4. フォームをホストするドメインを CORS 許可リストに追加します。このステップでは、ドメインが送信を Salesforce に送信することを承認します。

CORS 許可リストの設定

どちらの接続方法でも、Salesforce でフォーム送信を受け入れる前にドメインを承認する必要があります。ドメインを承認しない場合、Salesforce は処理する前に申請をブロックします。ドメインを承認するには、CORS 許可リストに追加します。

  1. フォームをホストするドメイン (https://www.example.com など) を特定します。すべてのサブドメインを承認するには、https://*.example.com などのワイルドカードを使用します。
  2. ドメインを CORS 許可リストに追加します。

フォームのテスト

フォームをフォームハンドラーに接続したら、フォームをテストして期待どおりに動作することを確認します。

  1. フォームで、テストエントリを送信し、成功 URL に送信されることを確認します。
  2. Salesforce で、テストエントリに対応するレコードが作成または更新されたかどうかを確認します。
    ヒント
    ヒント テストエントリを送信した後にレコードが作成または更新されない場合は、各フォーム項目の name 属性が外部項目名と一致することを確認します。フォームハンドラーがフローに接続されている場合は、フローがエラーなしで完了することを確認します。
 
読み込み中
Salesforce Help | Article