📙 HubSpot CRM/MA ゼロから学ぶ実践教科書
Chapter 2

リード獲得
フォーム・LP・CTA の設計と CRM 連携

CMS構築者が最初に理解すべき核心テーマです。「サイトのフォームを送信したら何が起きるか」を完全に理解することで、CMSとCRMをひとつの有機的なシステムとして設計できるようになります。フォームの種類・フィールド設計・hidden フィールド・UTMパラメータ連携・CTA・A/Bテスト・計測まで網羅します。

🎯 対象レベル:入門〜中級
⏱ 読了目安:60〜90分
🔑 キーワード:CMS↔CRM連携の核心
Learning Materials

📚 この章の学習教材

🎧 音声教材(NotebookLM)
🗺️ マインドマップ
🗺️ マインドマップ
📊 図解・インフォグラフィック
📊 図解・インフォグラフィック

この章の内容

  1. フォーム送信からコンタクト作成までの完全フロー
  2. HubSpotフォームの種類と使い分け
  3. フォームフィールドの設計 — プロパティとの紐付け・プログレッシブプロファイリング
  4. hidden フィールドでコンテキストを渡す — UTMパラメータ・ページURL
  5. サンクスページ・サンクスメールの設定
  6. CTA の作成と CMS テンプレートへの組み込み
  7. ランディングページの A/B テスト
  8. リード獲得の計測 — コンバージョン数・フォーム送信数のトラッキング
Section 2-1

フォーム送信からコンタクト作成までの完全フロー

HubSpotフォームが送信されると、バックグラウンドで複数の処理が 自動的・連続的に実行されます。 この流れを正確に理解することが、CMS↔CRM連携の設計の出発点です。

フォーム送信 → コンタクト作成 → 自動化 の完全フロー

🌐
① ユーザーがCMSページのフォームを送信

HubSpot CMS または外部CMSに埋め込まれたフォームを送信。メールアドレスが必須。

HubL: {% form form_id="xxxx" %} / JS埋め込み: hbspt.forms.create()
🔍
② HubSpotがメールアドレスで既存コンタクトと照合

同じメールアドレスのコンタクトが存在する場合は既存レコードを更新。存在しない場合は新規コンタクトを作成。重複は自動で防がれる。

一意識別子:email プロパティ
📋
③ フォームフィールドの値がCRMプロパティに書き込まれる

フォームの各フィールドは対応するCRMプロパティと1対1で紐付いている。送信値がコンタクトのプロパティに自動でセットされる。hidden フィールドも同様に書き込まれる。

例:フォームの「氏名」フィールド → コンタクトの firstname / lastname プロパティ
📊
④ ライフサイクルステージが「Lead」に自動セット

フォームを送信したコンタクトは、ライフサイクルステージが自動的に「Lead」になる。すでにより進んだステージ(MQL・Customer等)の場合は上書きされない。

プロパティ:lifecyclestage = "lead"
⑤ フォームに紐づいたワークフローが自動起動

「このフォームを送信した」をトリガーとして設定されたワークフローが即座に起動。サンクスメールの送信・リードスコアの加算・担当者へのタスク通知等が自動実行される。

ワークフロー:Marketing Hub Professional 以上が必要
📧
⑥ サンクスページへリダイレクト or インラインメッセージを表示

フォーム設定で「サンクスページへリダイレクト」または「インラインサンクスメッセージを表示」を選択できる。サンクスページへのリダイレクトがコンバージョン計測に有利。

設定:フォームエディター → 「送信後オプション」

Cookie とコンタクト特定の仕組み

HubSpotトラッキングコードが設置されたページに訪問すると、 ブラウザに hubspotutk という Cookie が発行されます。 フォームを送信する際、このCookieの値もデータとして送られ、 フォーム送信前のページ閲覧履歴がコンタクトに紐付けられます。

Cookie名役割有効期間
hubspotutk 訪問者を識別するユニークID。フォーム送信時にコンタクトと紐付けられ、以後の行動履歴を追跡する。 13ヶ月
__hstc 訪問者のセッション情報(初回訪問・前回訪問・現在のセッション等)を記録する。 13ヶ月
__hssc 現在のセッション情報。同一セッション内のページビュー数をカウント。 30分
🔧 CMS構築者が知っておくべき重要事項

HubSpot CMS で構築したサイトはトラッキングが自動で有効です。
{{ standard_header_includes }} タグがトラッキングコードを自動挿入するため、 別途設置は不要です。

WordPress等の外部CMSを使う場合は、HubSpotのトラッキングコードを </body> 直前に手動で設置する必要があります。 設置場所:HubSpot管理画面 → ⚙️設定 → トラッキングとアナリティクス → トラッキングコード


Section 2-2

HubSpot フォームの種類と使い分け

HubSpotのフォームには複数の表示形式があります。 それぞれの特性を理解して適切な場面で使い分けることで、 コンバージョン率を最大化できます。

📄 埋め込みフォーム 全プラン

ページのコンテンツ内にフォームを直接埋め込む最も基本的な形式。LP・問い合わせページ・資料DLページ等に使用。HubSpot CMS では {% form %} タグで実装。
推奨場面:専用LP・問い合わせページ・フォームがメインコンテンツの場合

🪟 ポップアップフォーム 全プラン

特定の条件(スクロール率・滞在時間・ページ離脱の動き等)をトリガーにオーバーレイ表示するフォーム。トリガー条件・表示ページをCMS外から管理画面で制御できる。
推奨場面:ブログ記事下・コンテンツページでのリード獲得強化

🔗 収集フォーム(非HubSpotフォーム)全プラン

WordPress等の外部フォームプラグインのフォームデータをHubSpotに送る仕組み。トラッキングコードがフォーム送信を自動検知し、CRMにデータを送信する。
推奨場面:既存サイトにHubSpotを後付けする場合・外部CMSとの連携

🧩 CMSモジュール内フォーム CMS Hub

HubSpot CMS のカスタムモジュールに {% form %} タグを組み込む形式。フォームIDをフィールドで指定できるため、マーケターがコード変更なしでフォームを差し替えられる。
推奨場面:CTA セクション・サイドバー・フッターCTAモジュール

ポップアップフォームのトリガー設定

トリガー種別設定内容効果的な使い方
時間トリガー ページ表示後〇秒後に表示 コンテンツを読み始めた頃(30〜60秒後)に表示。読んでいる最中に邪魔しない。
スクロールトリガー ページを〇%スクロールした時に表示 ブログ記事の50〜70%まで読んだ読者に表示。エンゲージメントの高い読者に絞れる。
離脱トリガー マウスがブラウザ上部に移動した時に表示 「閉じようとしている」訪問者への最後のキャッチ。割引・特典の訴求に有効。
クリックトリガー 特定の要素クリック時に表示 「資料をダウンロード」ボタンをクリックしたらフォームをポップアップ。

Section 2-3

フォームフィールドの設計 — プロパティ紐付けとプログレッシブプロファイリング

フォームフィールドとCRMプロパティの紐付け

HubSpotフォームのすべてのフィールドはCRMのプロパティと1対1で紐付けられています。 フォームに追加できるフィールドは「HubSpotに存在するプロパティ」に限られます。 カスタムプロパティを追加したい場合は、先にCRM側でプロパティを作成してからフォームに追加します。

フォームフィールドの設定項目役割
ラベルフォーム上に表示されるテキスト。「会社名」等、ユーザーが見るテキストを日本語で設定。
プロパティ(内部紐付け先)送信値を書き込むCRMプロパティ。内部名は変更不可なので慎重に設定。
プレースホルダー未入力時に薄く表示されるガイドテキスト。例:「例:株式会社○○」
必須フラグON にすると未入力では送信できない。メールアドレスは必ず必須にする。
バリデーションメール形式・電話番号形式等の入力値の形式チェック。
非表示フィールド(hidden)ユーザーには見えないが値をCRMに送信するフィールド。UTM等に使用。

最低限取得すべきフィールドの設計指針

💡 フォームフィールドは少ないほどコンバージョン率が上がる

フォームのフィールド数とコンバージョン率は反比例の関係にあります。 初回接触(資料DL・セミナー申込)では3〜5フィールドが最適です。

最低限必須:メールアドレス / 氏名(姓・名)
BtoBでは追加推奨:会社名 / 電話番号
最初から聞かない:予算感・検討時期等の詳細情報(プログレッシブプロファイリングで後から取得)

プログレッシブプロファイリング(Professional以上)

プログレッシブプロファイリングは、同じコンタクトが2回目以降にフォームを送信する際、 すでに分かっている項目を非表示にして、まだ分かっていない情報を聞く機能です。 毎回同じ質問を繰り返すストレスを与えずに、段階的にリード情報を充実させられます。

🥇 1回目の送信
📧 メールアドレス
👤 氏名(姓・名)
🏢 会社名
📞 電話番号
🥈 2回目の送信
✅ メール(既知)
✅ 氏名(既知)
👔 役職
🏭 業種
🥉 3回目の送信
✅ メール(既知)
✅ 氏名(既知)
📅 検討時期
💰 予算感

設定方法:フォームエディター → フィールドを選択 → 「プログレッシブフィールドとして使用」をON。 代替フィールドとして表示したいフィールド(まだ値がない場合に聞く質問)を指定します。


Section 2-4

hidden フィールドでコンテキストを渡す — UTMパラメータ・ページURL

hidden フィールドはユーザーには見えないが、フォーム送信時にCRMへ値を送信できる 特殊なフィールドです。「どのページから」「どの広告から」「どのキャンペーンから」 コンバージョンしたかを記録するために不可欠です。 これを設定しないと、マーケティング施策の効果測定ができません。

UTMパラメータを hidden フィールドで取得する仕組み

https://example.com/service/?utm_source=google&utm_medium=cpc&utm_campaign=spring2025&utm_content=banner-a
utm_source=googleコンタクトの「最近の流入元」プロパティへ
utm_medium=cpcコンタクトの「最近のトラフィック元」へ
utm_campaign=spring2025コンタクトの「最近のキャンペーン」へ
utm_content=banner-aコンタクトの「最近の広告コンテンツ」へ
✅ HubSpotはUTMパラメータを標準で自動取得する

実は HubSpot はトラッキングコードが設置されているサイトで、 URLに UTM パラメータが含まれる場合、コンタクトの標準プロパティに自動で記録します。 HubSpot CMS を使っている場合は追加設定なしで機能します。

ただし、フォームに hidden フィールドを明示的に設定することで、 「そのフォームを送信した時点の」UTM値を確実に記録できます。 複数ページを回遊してからフォームを送信するケースで特に有効です。

hidden フィールドの設定方法と実装パターン

HubSpot CMS — フォームモジュールへの hidden フィールド実装
{# ===== 方法1:{% form %} タグの form_field_values_json で値を渡す =====
   ページのURLやHubLの変数を hidden フィールドに渡せる
===================================================== #}
{% form
  form_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  response_redirect_url="/thanks"
  form_field_values_json='[
    {
      "name"  : "hs_context",
      "value" : "download_page"
    },
    {
      "name"  : "landing_page_url",
      "value" : "{{ content.absolute_url }}"
    },
    {
      "name"  : "page_title",
      "value" : "{{ content.name|escape }}"
    }
  ]'
%}

{# ===== 方法2:JavaScriptでUTMパラメータをフォームに動的に注入 =====
   フォームのonFormReadyコールバックを使う
===================================================== #}
<script>
// URLのクエリパラメータを取得してフォームのhiddenフィールドに注入
hbspt.forms.create({
  portalId: "{{ hub_id }}",
  formId  : "xxxx-xxxx-xxxx-xxxx",
  target  : "#hs-form-target",
  onFormReady: function($form) {
    var params = new URLSearchParams(window.location.search);
    var utmFields = [
      'utm_source', 'utm_medium',
      'utm_campaign', 'utm_content', 'utm_term'
    ];
    utmFields.forEach(function(key) {
      var val = params.get(key);
      if (val) {
        // フォームのhiddenフィールドに値をセット
        $form.find('input[name="' + key + '"]').val(val);
      }
    });
  }
});
</script>

実案件でよく使う hidden フィールドのパターン

フィールド名取得する値用途
utm_source広告・流入元(google/facebook等)どのチャネルからのリードか計測
utm_mediumメディア種別(cpc/email/organic等)有料/無料の流入を区別
utm_campaignキャンペーン名施策別の効果測定
hs_landing_pageフォームのあるページURLどのページでコンバージョンしたか
conversion_page_typeページの種類(カスタム)資料DL/問い合わせ/セミナー等の種別
referrer_urldocument.referrer(前のページ)直前に見ていたページの記録

Section 2-5

サンクスページ・サンクスメールの設定

サンクスページの設計

フォーム送信後のサンクスページは「コンバージョン直後の最も温度の高い瞬間」です。 単なる「送信完了」で終わらせず、次のアクションへ誘導する設計が重要です。

サンクスページに含めるべき要素目的
送信完了メッセージ「お問い合わせを受け付けました」等、確認の安心感を与える
次のステップの案内「担当者から〇営業日以内にご連絡します」等の期待値設定
関連コンテンツへの誘導関連ブログ記事・事例・製品ページへのリンクでサイト回遊を促進
SNSシェアボタンセミナー申込・資料DL後のシェア促進。口コミ獲得
GTMのコンバージョンタグGoogle広告・Meta広告のコンバージョン計測タグをサンクスページに設置

サンクスページの設定方法(2種類)

方法設定場所メリット・デメリット
フォームエディターで設定 マーケティング → フォーム → フォームを選択 → 「オプション」タブ → 「送信後にページへリダイレクト」 ✅ 管理画面から設定。コード変更不要。
⚠️ フォームIDが同じなら全ての設置箇所で同じサンクスページに飛ぶ。
{% form %}タグで上書き HubL の {% form %} タグの response_redirect_url パラメータ ✅ ページごとに異なるサンクスページを指定できる。
✅ フォームIDを使い回しながらリダイレクト先だけ変えられる。

サンクスメール(自動返信メール)の設定

フォーム送信後の自動返信メールはワークフローで設定します。 フォームエディターに「送信後メール」という設定はありません。 ワークフローが必要なため Marketing Hub Professional 以上が必要です。

ワークフロー設定 — サンクスメールの自動送信手順
【ワークフロー設定手順】

1. マーケティング → 自動化 → ワークフロー → 「ワークフローを作成」

2. トリガーの設定:
   「コンタクトベースのワークフロー」を選択
   トリガー:「フォームの送信」→ 対象フォームを指定
   例:「資料DLフォームを送信した」

3. アクションの追加:
   「メールを送信」→ 事前に作成したサンクスメールを選択
   (送信遅延:0分 = 送信直後)

4. 追加アクション(任意):
   - コンタクトプロパティを更新(例:lifeyclestage = "lead")
   - 担当者にタスクを作成(例:「24時間以内にフォローアップ」)
   - Slackに通知(インテグレーション設定が必要)
   - リードスコアを加算

5. サンクスメールの内容:
   件名:【資料名】をお送りします(パーソナライズトークン使用)
   本文:氏名でパーソナライズ → 資料のダウンロードURL → 次のアクション案内
⚠️ Starter プランでのサンクスメールの代替手段

Marketing Hub Starter ではワークフローが使えません。 代替手段として以下が使えます:
① フォームの「送信後メール」機能(Starter可): フォームエディター → オプション → 「フォームを送信したコンタクトにメールを送信」。 ただし内容のカスタマイズが限定的です。
② HubSpotのシーケンス(Sales Hub Starter): 営業担当者が手動でシーケンスに登録する方法。完全自動化にはなりません。


Section 2-6

CTA の作成と CMS テンプレートへの組み込み

CTA(コール・トゥ・アクション)は「クリック数・コンバージョン数を計測できるボタン・画像」です。 通常のHTMLリンクと違い、HubSpotのCTAはクリック数・コンバージョン率が自動で計測され、 A/Bテストも可能です。

CTA の作成手順

HubSpot CMS テンプレートへの CTA 組み込み方法

HubL — CTA の組み込みパターン
{# ===== 方法1:HubL タグで直接埋め込む(最も推奨)=====
   CTA のIDを使って HubL タグで組み込む方法。
   管理画面でCTAの内容(テキスト・リンク先)を変更しても
   サイト側は自動で反映される。
===================================================== #}
{% cta "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" %}

{# ===== 方法2:カスタムモジュールのフィールドで CTA を選択できるようにする =====
   fields.json で hubspot_cta 型のフィールドを定義する
===================================================== #}

// fields.json
{
  "type"  : "hubspot_cta",
  "name"  : "cta",
  "label" : "CTA(コール・トゥ・アクション)"
}

// module.html
{% if module.cta %}
  {% cta module.cta %}
{% endif %}

{# ===== 方法3:ブログ記事テンプレートにCTAを固定配置する =====
   記事本文の下にCTA を常に表示するパターン
===================================================== #}
<div class="post__cta-block">
  <p>この記事を読んで興味を持った方へ</p>
  {% cta "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" %}
</div>

CTA vs 通常リンクの使い分け

HubSpot CTA通常のHTMLリンク
クリック計測✅ 自動で計測❌ 別途GTM等が必要
A/Bテスト✅ 管理画面から設定❌ 別途ツールが必要
スマートコンテンツ✅ ユーザー属性で出し分け
コンテンツ変更の反映✅ 管理画面から即時変更❌ コード変更が必要
実装の簡単さ✅ HubLタグ1行✅ シンプル

Section 2-7

ランディングページの A/B テスト(Professional以上)

A/Bテストは2つのバリアントを同時に表示し、どちらがより多くコンバージョンするかを統計的に検証する手法です。 HubSpot では LP・メール・CTAにA/Bテスト機能が組み込まれています。

✅ バリアントA(コントロール)

現行のLP
例:見出し「業務効率を2倍に」
CTA「資料をダウンロード」

VS
🔵 バリアントB(チャレンジャー)

変更後のLP
例:見出し「3ステップで導入完了」
CTA「無料で試す」

A/Bテストの設定手順(LP)

A/Bテストの設計ルール

ルール理由
一度に変える要素は1つだけ複数を変えると「どの変更が効いたか」がわからなくなる。見出し・CTAテキスト・画像等、1要素ずつテストする。
十分なサンプル数を確保各バリアント最低100〜200コンバージョンがないと統計的に有意な結論が出ない。アクセスが少ないページではテスト期間を長くする。
テスト期間は最低2週間曜日による変動(週末はアクセスが減る等)を均等化するために、少なくとも2週間は継続する。
勝者を決めたら次のテストへA/Bテストは「勝者が決まったら終わり」ではなく、継続的に改善仮説を立てて繰り返す。
💡 初心者がA/Bテストで試すべき優先順位

1位:見出し(ヘッドライン):訴求ポイントの言い換えが最もインパクトが大きい。
2位:CTAボタンのテキスト:「資料をダウンロード」vs「無料で試す」等。
3位:CTAボタンの色・サイズ:目立ちやすさの改善。
4位:フォームのフィールド数:フィールドを減らすとCVR向上が期待できる。


Section 2-8

リード獲得の計測 — コンバージョン数・フォーム送信数のトラッキング

リード獲得の施策が機能しているかどうかを判断するために、 正しい指標を正しい場所で確認することが必要です。 HubSpotは複数の計測ポイントを持っています。

フォームのパフォーマンスレポート

確認できる指標確認場所活用方法
フォーム表示回数 マーケティング → フォーム → 対象フォームを選択 → 「パフォーマンス」タブ フォームが表示されているかの確認。ページビューとの比較でフォームの視認性を確認。
送信数 / 送信率 同上 表示回数に対して何%が送信したか。10%以下なら改善の余地あり。
新規コンタクト数 同上 送信のうち新規リードになった数。既存コンタクトの再送信との区別。
フォーム別CV数の比較 レポート → 「フォーム送信数」カスタムレポート どのフォーム・どのページが最もリードを獲得しているか比較。

ランディングページのパフォーマンス確認

GA4 との役割分担

計測したい内容推奨ツール理由
フォーム送信数・リード数 HubSpot CRMと直結しているため、「誰がフォームを送信したか」まで追える
サイト全体のセッション・PV GA4 より詳細なユーザー行動分析・ファネル分析・デバイス分析が得意
広告のコンバージョン計測 GA4 + HubSpot両方 Google広告との連携はGA4、HubSpot側でリードの質(MQL化率)を追う
マーケ〜成約までの全ファネル HubSpot リード→MQL→SQL→成約の流れはHubSpotだけで計測できる
🔧 実装チェックリスト — リード獲得設定の確認ポイント

□ フォームのすべてのフィールドが正しいCRMプロパティに紐付いているか
□ サンクスページへのリダイレクトが設定されているか
□ サンクスメール用のワークフローが設定されているか(Pro以上)
□ UTM パラメータが hidden フィールドで取得されているか
□ HubSpotトラッキングコードがすべてのページに設置されているか
□ サンクスページに広告コンバージョンタグが設置されているか(GTM経由)
□ フォームのテスト送信を行い、CRMにコンタクトが正しく作成されることを確認したか


Section 2-9

第2章まとめ

📌 この章で押さえるべきポイント

フォーム送信の6ステップフローを覚える

送信 → メール照合 → プロパティ書き込み → ライフサイクルLeadに自動変更 → ワークフロー起動 → サンクスページへ。この流れがCMS↔CRM連携の核心。

フォームの種類と使い分け

埋め込み(LP・問い合わせ)/ ポップアップ(ブログ・コンテンツ)/ 収集フォーム(外部CMS)/ CMSモジュール(使い回し可能なCTAセクション)を場面で使い分ける。

hidden フィールドでUTMを記録する

どの広告・どのキャンペーンからコンバージョンしたかを記録するhidden フィールドは必須設定。設定しないとマーケティング施策の効果測定ができない。

サンクスメールはワークフローで実装

フォームエディターではなくワークフローでサンクスメールを設定する(Pro以上)。Starterではフォームの「送信後メール」機能で代替。

CTAは{% cta %}タグ1行で組み込む

HubSpot CTAは計測・A/Bテスト・スマートコンテンツが自動で使える。通常のHTMLリンクより優れており、CMS実装では {% cta "ID" %} タグで1行実装。

プログレッシブプロファイリングで段階的に情報収集

初回は最低限のフィールド(3〜5項目)で送信ハードルを下げ、2回目以降で追加情報を収集。同じコンタクトに同じ質問を繰り返さない設計がベストプラクティス(Pro以上)。

次章:第3章 ワークフロー自動化 — リードナーチャリングの設計

フォーム送信後に何を自動化するか。ワークフローのトリガー・アクション・条件分岐の完全ガイドと、実際のナーチャリングフローの設計パターンを解説します。

第3章へ →