はじめに
株式会社ピーアールオー(あったらいいな!を作ります) Advent Calendar 2022 の9日目になります。
今回はQiitaに記事の少ないSalesforceで、最初にやることが多い「Web-to-リード」を題材とします。
前提
利用が多いと思われるWordPressで作成されたLPページ等の問い合わせページに対して
Web-to-リードのフォームを追加していく流れを紹介します。
素直に作ろうとすると
Salesforceの「web-to-リード」機能で発行したHTMLを利用します。
以下のようになります。
媒体 | 処理の流れ | 対応すること |
---|---|---|
LPページ | SalesforceにPOSTする | Salesforceで発行したHTMLを埋め込む、JSで入力チェック |
Salesforce | reCAPTHAキーペアチェック、リード登録、メール送信 | リード・メール設定 |
Thanksページ | 設定登録しているURLへリダイレクト | Thanksページの作成 |
ここで考えたいこと
・web-to-リードのメールは商談(行動履歴)のように残したいものでない、Salesforceに寄せる必要がない
・Thanksページを余計に作る必要がない
・SalesforceのWeb-to-リード要求は制限数(500/日)がある
・HTMLから直接SalesforceへPOSTは避けたい(JSの入力チェック作成やHTMLに載せたくない項目(組織ID)がある)
・PHP等でサーバーサイド処理を1から作成するのも大変
解決はプラグイン
なるべく楽な解決として、WordPressのプラグインを選択します。
プラグインの選定基準は「無料・更新日(サポート)が新しい・分かり易い」の3点
以下のプラグインを利用させて貰いました。
プラグイン名 | プラグインの内容 |
---|---|
ContractForm7 | メジャー、確認画面なし、reCAPTCHA(v3)あり、日本語がうれしいです |
Code Snippets | codeの差し込みが可能。(PHP、スタイル) |
※最近はWordPressで子テーマを利用したノーコード・ローコードの記事を目にしますが
子テーマのことを考えるのが手間なので、コードを差し込むSnippetsプラグインを選択
だいたいはこのようになります。
媒体 | 処理の流れ | 対応すること |
---|---|---|
LPページ | 自サーバーにPOSTする | ContractForm設定(フォーム、チェック、メール) |
自サーバー | ContractFormの処理+Snippetsの処理 | Snippetsでコード追加(SalesforceAPIアクセス、その他追加可能) |
LPページ | 送信完了メッセージを表示 | ContractForm設定のもの |
設定手順とポイント
1. reCAPTCHA発行
- Google v3 Admin Consoleで発行します。
2. Salesforceの設定
- 設定>マーケティングにある「Web-to-リード」の設定をする
有効化とフォームの払い出し - 設定>マーケティングにある「リードの設定」の設定をする
デフォルト作成者やレコードタイプ設定等を必要に応じて
3. WordPressプラグインインストール
- ContractForm7、Code Snippetsをインストール
4. ContractFormの設定
- インテグレーションにあるreCAPTCHAのセットアップをする
Googleで発行したキーを設定する - 問い合わせフォームを作成する
Salesforceで払い出したHTMLの項目(nameなど)に併せて作成する
hiddenのoidはSnippets側で設定するので含めない - メールのテンプレートを設定する
5. Snippetsの設定
- reCAPTCHAの制御追加
WordPressのプラグインでreCAPTCHAは見かけますが「更新が古い、有料」など見つける手間の方が高く付くのでコード追加としてます。
対象画面を絞る(除外する)サンプルコード
add_action( 'wp_enqueue_scripts', function() {
if(is_page(array('LPページ1','LPページ2'))) return;
wp_deregister_script( 'google-recaptcha' );
}, 100, 0);
- Salesforceへの登録
こちらは参考サイトさまのリンクを載せさせて頂き、ポイントの記載とさせていただきます。
APIエラーによる機会減少を考える場合は、フックするアクションの選択を「wpcf7_mail_sent」にする、非同期処理にするといった対応を検討されるとよいかもしれません。
HTML(問い合わせForm)にSalesforceの組織IDを載せず、追加するアクション内に記載することをオススメします。
チェック処理の追加用途だけではなく、HTTPClientの処理でslack通知を入れるといったカスタマイズを入れることもよいと思います。
参考サイトさま
纏め
ケースにより確認画面が必要な場合はMW WPFormを使用など対応の選択は様々と思われます。
組織IDをhiddenで設定するのは避けた方がよいと思われます。(ごくまれに見かけます)
Salesforceの考え同様に、出来るだけ在るものを利用していきましょう。
という記事でした。
参考になれば幸いです。