ブログ
Blog

AIに任せてHubSpotサイトつくってみた【構築チャレンジ】〜AIを活用したBtoBサイト制作の可能性と限界〜

AIに任せてHubSpotサイトつくってみた【構築チャレンジ】〜AIを活用したBtoBサイト制作の可能性と限界〜

デジタルマーケティングの世界は、AI(人工知能)の目覚ましい発展により、大きな変革期を迎えています。Webサイト制作の現場でも、「もし、その多くをAIに任せられたらどうなるだろう?」という疑問が出てきました。

AIを活用してHubSpot上でのBtoBサイト構築に挑戦しました。企画からデザイン、そしてコーディングまで、可能な限りAIにプロセスを任せることで、Webサイト制作の自動化の可能性と限界を検証します。

果たしてAIは、どこまでWebサイト制作を自動化できるのか?そして、その精度は?この「AIに任せてHubSpotサイト構築チャレンジ」を通して見えてきた、AI時代のWeb制作のリアルな可能性と課題を、検証結果とともにご紹介します。

今回、企画から検証まで全体のディレクションを担当しています100のタジマです。
これまで15年ほど、さまざまな業種のWebサイト制作やデジタルマーケティングの現場に携わってきました。その経験から、AIが制作プロセスを効率化できると感じている一方で、「どこまで使えるのか?」「何ができるのか?」という疑問も抱いています。今回の検証では、ディレクター経験の視点から、AIの能力を見ていきたいと思います。

AIでWeb制作はどこまで自動化できるか

AIは、人間のように思考し、判断し、新たなコンテンツを生み出す技術として、今や私たちの生活やビジネスのあらゆる場面に浸透しています。文章生成、画像・動画の作成、音声認識、そして複雑な意思決定の支援まで、その応用範囲は多岐に渡ります。

Web制作の分野でも、AIの活用は日々広がっていますが、現時点で「人間の判断がまったく不要になる」わけではありません。AIが生成したコンテンツの最終的な調整や、複雑なCMSへの実装には、やはり人間の繊細な手と目が不可欠な場面が数多く存在します。では、AIは具体的にWeb制作のどの部分を担い、人間はどこに注力すべきなのでしょうか?本記事では、このAIと人間の役割分担の現在地を探ることを目的としています。

Web制作におけるAIの役割

Web制作の現場では、AIは単なる自動化ツールにとどまらず、以下のような役割を担うことが期待されています。

  • 企画・構成案の提案: 大量のデータからトレンドを分析し、サイトマップやコンテンツ構成案を提案する。また、企業サイトで必要な自社製品やサービス情報の整理や、顧客分析に基づく施策提案をする。
  • デザイン案の生成: 制作者の意図を汲み取り、多様なデザインテンプレートや画像素材を生成する。
  • コーディングの自動化: デザインデータや指示に基づいて、HTML、CSS、JavaScriptなどのコードを迅速に生成する。
  • コンテンツ作成の支援: SEOを意識した文章やキャッチコピーの生成、翻訳など。

これらの業務をAIに任せることで、Web制作のスピード向上工数削減が期待できます。

なぜAI×HubSpotでサイト構築に挑戦するのか?

HubSpotは、顧客管理からWebサイト制作まで対応できる多機能なツールです。マーケティング、営業、カスタマーサービスといった機能を備えており、ビジネスプロセス全体を一元管理できます。お問い合わせページやランディングページの作成機能も充実しており、マーケティング施策にも幅広く活用できます。

しかし、HubSpotの多彩な機能を最大限に活用し、質の高いデザインやHTML、そして独自の言語HubLを使ってサイトを構築するには、専門知識と相応の時間が必要となります。

私たちHubSpotの公式パートナーは、こうした導入のハードルを下げ、より多くの企業に活用してもらうための効率的な方法を常に模索しています。

そんな中、私たちは「もしAIに、人がディレクションするだけで、HubSpotサイト構築を任せられたら、どれくらい効率が上がるだろうか?」という問いに挑戦しました。

今回は、第一歩として、専門知識が求められるHubSpotのサイト構築において、AIでどこまで実際に形にできるのか、を検証します。

  • BtoBサイト制作の効率化: 複雑なBtoBサイト構築において、AIが担える作業領域と効果を検証する。
  • HubSpotユーザーへの示唆: HubSpotを活用している企業やWeb担当者に向け、AI導入のヒントやステップを提示する。
  • AIと人間の最適な協業モデルの探求: AIが担う部分と、人が担うべき部分。そのバランスを見極め、Web制作の新しい形を模索する。

単に「人が作業しているものをAIで作業できるか」という視点だけでなく、「AIが人間にしかできないより高度な判断や戦略立案に時間を割くためのアシスト役になれるか」という視点も持ち、このプロジェクトに取り組みました。

一般的なWebサイト構築と今回の検証プロセス

今回は、Webサイト構築の本来の手順を確認し、そのうえで可能な限りAIによる一括生成を試みた構築方法について具体的に解説します。

一般的なWebサイト構築手順

Webサイトを構築する際には、一般的に以下の7つのステップを踏みます。それぞれのフェーズで専門的な知識と作業が求められ、品質の高いサイトを制作するためには欠かせない工程です。

  1. サイトマップ設計:Webサイトの目的やターゲット、提供サービスなどを深く掘り下げ、コンバージョンやユーザー体験、SEOを考慮したサイト全体の構成図(サイトマップ)を設計します。あわせて、各ページのコンテンツ要素を企画・立案するフェーズです。
  2. ワイヤーフレーム作成:サイトマップに基づき、各ページのレイアウトや主要な要素の配置を決定する工程です。視覚的なデザインを伴わない骨組みで、UI/UXの設計図となります。
  3. デザイン制作:ワイヤーフレームやブランドトーンに沿って、具体的なビジュアルデザインを作成するフェーズです。色使い、フォント、画像、アイコンなどの選定を行い、サイトの印象を形作ります。
  4. 構築(コーディング):確定したデザインとコンテンツを元に、HTML、CSS、JavaScriptなどのコードを記述する工程です。レスポンシブ対応やアクセシビリティを考慮し、Webブラウザで正しく表示されるように実装します。
  5. CMSテンプレートへの組み込み:生成したコードをCMS(コンテンツ管理システム)に組み込むフェーズです。HubSpotの場合、カスタムモジュールやテーマファイルとしてコードを適用し、CMS上でコンテンツの更新や管理ができるように設定します。
  6. 動作検証:サイト公開前に、機能、表示、動作を細かく確認する重要な工程です。SEO、パフォーマンス(表示速度)、UI/UX、スマートフォンなどの各デバイスでの表示崩れ、リンク切れ、フォームの動作などをテストし、品質を担保します。
  7. 校正・最終確認:サイトに掲載される全てのテキストの誤字脱字、表記揺れ、情報の一貫性などを最終的に確認し、修正する工程です。ユーザーに正確な情報を伝えるために不可欠な作業です。

AIを活用したWebサイト構築の進め方と検証プロセス

AIによるHubSpotサイトの「一括構築」と検証は、以下のステップで進行しました。このプロセスでは、AIが私たちの意図をどこまで理解し、形にしてくれるのか、試行錯誤しながら進行。AIに指示を出し、その出力結果を調整していきました。

  1. AIで一括プロンプト作成(サイトマップからコーディングまで)

    HubSpotで構築したいBtoBサイトの目的、ターゲット、サービス概要、希望するデザインテイスト、コンテンツの種類といった詳細な要件を整理し、「こんなサイトを作ってほしい」という願望を入れられるプロンプトを作成してもらいます。このプロンプトには、サイトマップ作成、ワイヤーフレーム設計、デザイン案、HTML/CSS/JSコード生成までを「一括で」行うよう指示ができるように考えます。

  2. 対象箇所を入力して、AIで一括生成

    作成したプロンプトをGemini 2.5 Proに入力し、サイト全体を構成する要素(サイトマップ、デザイン、コード)を一度に出力させます。このステップは、まさにAIが指示をどこまで正確に解釈し、どれほどの網羅性と精度で生成されるかを検証します。

  3. 生成されたHTMLの確認と調整(AIとの対話)

    生成されたHTML、CSS、JavaScriptコードを確認します。一度の指示で完璧な出力が得られることは稀です。この工程では、レスポンシブ対応、構造の正確性、HubSpotへの適用のしやすさ、そしてバグの有無などをチェックし、不足している点や修正したい点があれば、再び具体的な指示を出し、対話形式で調整を重ねます。

  4. HubL(HubSpot Markup Language)への変換と適用

    HubL は、HubSpot Content HubでWebサイトやメールを構築するためのHubSpot専用の記述言語です。動的なコンテンツ表示やHubSpotのデータベース連携を可能にし、柔軟なサイト制作を実現できます。 生成された汎用的なHTML/CSS/JSコードを、HubLに変換し、適用する作業を行います。AIがHubLの特性をどこまで理解してコードを生成できたのかを検証します。

今回の使用ツール

使用したAIツールは、Googleの『Gemini』です。他にもChatGPTやClaudeといった選択肢がありましたが、社内導入済みで誰でも使える環境が整っていたため、Geminiを選びました。『一つのツールで一体どこまでできるのか』、その可能性を探っていきたいと思います。

  • 使用ツール:Google Gemini
    Geminiは、テキストだけでなく、画像、音声、動画など多様な情報を理解し、生成できるマルチモーダルAIとして設計されています。最新の「Gemini 2.5 Pro」は、非常に長いコンテキストを処理できる能力を持ち、複雑な指示に基づいた一括生成の可能性を探る上で最適なツールと考えました。

001_Gemini

引用:Gemini

サイト制作前に「目的」の整理

Webサイトを成功させるには、まず「何のために作るのか」という目的を明確にすることが何よりも大切です。

業界情報の収集や整理といった作業はAIの助けを借りてもいいですが、サイトの根本的な目的を決めるのは、やはり私たち人間が担うべき部分です。

たとえば、企業向けにクラウド会計ソフトの導入を促すサイトなら、「業務効率化やコスト削減といった課題解決を訴求し、問い合わせや無料トライアルにつなげる」ことが目的になります。一方、一般消費者向けに最新アパレルを販売するサイトなら「商品の魅力を視覚的に伝え、購買意欲を高め、リピート購入につなげる」ことが目的になるでしょう。

このように、サイトの種類によって目的は変わり、必要なページ構成やデザイン、機能も大きく異なります。だからこそ、制作に取りかかる前に、目的を整理することが、Webサイトを作るための第一歩となります。

サイト制作時に検討・決定すること

  1. サイトの目的とゴールを明確にする
    サイトの目的、具体的なゴール(KGI/KPI)を決定

  2. ターゲットを明確にする
    ターゲット層のデモグラフィック情報やサイコグラフィック情報を整理し、ペルソナ(理想の顧客像)を設定

  3. サイトの基本情報を決める
    サイト名、サイトのトーン&マナー(ブランドボイス)、言葉遣いを決める

  4. コンテンツと機能の洗い出す
    必須コンテンツや検討コンテンツ(必要なページ)、必要な機能(フォーム・決済・多言語)などの決定

  5. 参考サイトやデザインイメージを整理する
    参考となるウェブサイト、テーマカラーや好きな色やフォント、写真の雰囲気をまとめる。

今回のサイトについて整理

今回作成するのはHubSpotの販売パートナーとしてのBtoBサイトです。HubSpotを利用中、または導入を検討している企業のマーケティング担当者や経営層を主な対象としています。そのため、以下の要素を盛り込みました。

  • Webサイトの名称:BtoB Demo Site
  • Webサイトのタイプ:コーポレートサイト
  • Webサイトの目的(複数可): 新規顧客の獲得
  • メインターゲットユーザー:性別は問わない、マーケティング担当者・責任者・経営層、HubSpotに興味があるマーケターやシステム担当者など
  • サイトを通じてユーザーに提供したい価値・体験:HubSpotの魅力・価値を伝える、情報提供
  • 参考サイト: https://www.dynatrek.co.jp/、https://corp.drenty.jp/  (見た目をベースに画像が大きく、必要要素が入っているシンプルなサイトを選びました)
  • その他、特に重視したい要件:スマートフォンでの見やすさを最優先(モバイルファースト)、SEOを意識した構造、ブログ機能を追加できるような拡張性、アクセシビリティへの配慮

AIに構築をしてもらう

実際の構築指示

1.Geminiへの一括プロンプト作成指示

前の項目の「今回のサイトについて整理」をもとに、いかに工程を簡略化して構築できるかを考え、「一括構築用」のプロンプト作成に取り組みました。そのプロンプトには、必要な要素を過不足なく含められるよう工夫しています。

以下のプロンプトを入れました

Gemini2.5Proを使用して、サンプルのWebサイトの構造提案からデザインからコーディングまでお願いしたいです。 一括で依頼できるようなプロンプトを考えてもらえますか?

その結果、Geminiが提示したプロンプトがこちらです

Geminiが提示したプロンプト

詳細のプロンプト
# 命令書:Webサイト制作プロジェクト(企画・デザイン・コーディング)

## 1. あなたへの役割定義
あなたは、以下の専門知識を統合した、最高レベルのAI Webデベロッパーです。
* **Webディレクター**: プロジェクト全体を俯瞰し、ビジネス要件をWebサイトの構造と機能に落とし込みます。
* **UI/UXデザイナー**: ユーザー中心設計に基づき、直感的で美しいインターフェースと優れたユーザー体験をデザインします。
* **フロントエンドエンジニア**: 最新のWeb標準に準拠した、クリーンで効率的、かつレスポンシブなコードを記述します。

## 2. プロジェクトの概要
これから私が依頼するWebサイトのプロジェクト概要は以下の通りです。内容を正確に理解し、最高の提案をしてください。

* **Webサイトの名称**:
    【 例:オーガニックカフェ「Green Leaf」 】

* **Webサイトの目的(複数可)**:
    【 例:新規顧客の獲得、オンライン予約の受付、ブランドイメージの向上 】

* **メインターゲットユーザー**:
    【 例:20代〜40代の健康志向の女性、近隣に住むファミリー層、オーガニック製品に関心が高い人々 】

* **サイトを通じてユーザーに提供したい価値・体験**:
    【 例:産地直送の新鮮な食材を使ったメニューの魅力を伝える。都会の喧騒を忘れさせるような、落ち着いた店内の雰囲気を伝える。Webサイトから手軽に席の予約ができる利便性を提供する。 】

* **参考サイト(3つまで)**:
    * 参考サイト1: 【 URLを記入 】
        * 気に入っている点: 【 例:写真の使い方が美しく、世界観が伝わる点 】
    * 参考サイト2: 【 URLを記入 】
        * 気に入っている点: 【 例:予約フォームがシンプルで使いやすい点 】
    * 参考サイト3: 【 URLを記入 】
        * 気に入っている点: 【 例:全体的なデザインのトーン&マナー、色使い 】

* **その他、特に重視したい要件**:
    【 例:スマートフォンでの見やすさを最優先(モバイルファースト)、SEOを意識した構造、将来的にブログ機能を追加できるような拡張性、アクセシビリティへの配慮 】


## 3. 制作の進め方とアウトプット形式
このプロジェクトは、以下の3つのフェーズで進行します。**必ずフェーズごとに提案を行い、私の承認を得てから次のフェーズに進んでください。**

---

### **【フェーズ1】 サイト構造の提案(Webディレクターの視点)**

**▼ あなたへの依頼:**
上記`## 2. プロジェクトの概要`に基づいて、以下の3項目を提案してください。

1.  **サイトコンセプトの言語化**:
    サイトの目的とターゲットユーザーの心に響く、魅力的で分かりやすいコンセプトを3案提案してください。

2.  **サイトマップ**:
    Webサイトに必要なページとその階層構造を、ツリー形式(Markdown記法)で網羅的に示してください。

3.  **主要ページのワイヤーフレーム(構成案)**:
    「トップページ」と、このサイトで最も重要だと考えられるページ(あなたが選定)の2ページについて、どのような情報ブロック(ヘッダー、メインビジュアル、コンセプト紹介、メニューハイライト、店舗情報、フッターなど)をどのような順番で配置するか、シンプルなテキストベースで記述してください。

**それでは、まずフェーズ1の提案から開始してください。**

---
**(フェーズ1の提案を受け、あなたが承認した後に、以下の指示をGeminiに与えます)**

### **【フェーズ2】 デザインの提案(UI/UXデザイナーの視点)**

**▼ あなたへの依頼:**
フェーズ1で確定したサイト構造に基づき、具体的なデザインの方向性を提案してください。

1.  **デザインコンセプト**:
    サイト全体の雰囲気や世界観を表現するキーワード(例:ナチュラル、モダン、温かみのある、クリーン)を5つ提案し、その中から最も推奨する組み合わせを1つ選んで理由を説明してください。

2.  **カラーパレット**:
    サイトの印象を決定づけるカラーパレットを提案してください。メインカラー、サブカラー、アクセントカラー、ベースカラー、テキストカラーを、具体的なカラーコード(HEX: `#FFFFFF`形式)と共に提示してください。

3.  **タイポグラフィ(フォント)**:
    見出しと本文に使用するフォントの組み合わせを提案してください。読みやすさ、デザインコンセプトとの整合性を考慮し、Google Fontsから選定してください。選定理由と、適切なフォントウェイト(太さ)も合わせて提案してください。

4.  **UIコンポーネントのスタイル**:
    ボタン、フォーム、ナビゲーションメニューなどの主要なUI要素について、デザインスタイル(形状、色、マウスオーバーした時の変化など)を言語で具体的に記述してください。

**それでは、フェーズ2の提案を開始してください。**

---
**(フェーズ2の提案を受け、あなたが承認した後に、以下の指示をGeminiに与えます)**

### **【フェーズ3】 コーディング(フロントエンドエンジニアの視点)**

**▼ あなたへの依頼:**
フェーズ1、2で確定した仕様に基づき、Webサイトのコーディングを行ってください。

1.  **使用技術**:
    * HTML5
    * CSS3
    * JavaScript (DOM操作によるシンプルなインタラクション)

2.  **コーディングの基本方針**:
    * **レスポンシブ対応**: PCとスマートフォンの両方で最適に表示されるように、メディアクエリを用いて実装してください。
    * **セマンティックHTML**: `header`, `main`, `footer`, `nav`, `section`, `article` などのHTMLタグを適切に使い分け、構造的に意味のあるマークアップを行ってください。
    * **CSS設計**: クラス名が衝突しにくく、メンテナンス性の高いCSSを意識してください(例:BEMの考え方など)。
    * **アクセシビリティ**: `img`タグには必ず`alt`属性を付与し、ボタンやリンクの役割が明確にわかるようにするなど、基本的なアクセシビリティ(a11y)に配慮してください。
    * **コメント**: コードの各セクションが何を表しているか分かるように、適切なコメントを加えてください。

3.  **アウトプット形式**:
    以下のファイル構成で、各ファイルの内容を個別のコードブロックで提示してください。
    * `index.html` (トップページ)
    * `style.css` (全ページ共通のCSS。リセットCSSの内容も含めてください)
    * `script.js` (全ページ共通のJavaScript)
    * その他、フェーズ1で提案された主要ページのHTMLファイル (例:`menu.html`, `access.html` など)

**それでは、フェーズ3のコーディングを開始してください。**

2.対象箇所を入力して、Gemini 2.5 Proで一括生成

1で出力されたプロンプトをもとに設定したい情報を入力します。

プロンプトには【】で囲まれた部分があり、その中に「例」が書かれています。このを参考にしながら、サイト整理で考えた情報を【】の中に入れます。

例えば、Webサイトの名称:【 例:オーガニックカフェ「Green Leaf」 】では、【BtoB Demo Site 】のように、サイト名として使用する内容を入力していきます。

参考サイトのURLをプロンプトに入れると、色合いや雰囲気を参考にしたデザイン案を出してくれます。

次のフェーズ1〜3は、AIから提案された内容をフェーズで区切って、人間が承認した後で進めます。そのため、フェーズ1では、サイト構造の確認が出てきました。

【フェーズ1】 サイト構造の提案

【フェーズ1】 サイト構造の提案の詳細内容

1. サイトコンセプトの言語化
ターゲットであるマーケティング担当者・経営層の課題解決意欲と、HubSpotへの興味関心を刺激するコンセプトを3案提案します。

  • 案1:論理的・信頼性重視

ビジネスの成長を、データで加速する。 感覚的なマーケティングから脱却し、HubSpotを基盤としたデータドリブンな意思決定で、再現性の高い成長を実現する。貴社のビジネスに、確かな手応えと未来への展望を提供するパートナーとなることを目指すサイト。


  • 案2:変革・パートナーシップ重視

    マーケティングの常識をアップデートせよ。 HubSpotは単なるツールではありません。顧客との関係を根底から見直し、組織全体を変革する「新しい成長のOS」です。私たちはその導入から活用までを伴走し、貴社の挑戦を成功へと導きます。

  • 案3:シンプル・成果重視(推奨)

    複雑な課題を、シンプルに解決。成果につながるHubSpot活用術。 煩雑な顧客管理、非効率なマーケティング活動。そんな課題をHubSpotでシンプルに解決しませんか?本質的な活動に集中できる環境を構築し、最短距離でビジネスの成果を最大化するためのノウハウを提供します。 (推奨理由) 参考サイトの「わかりやすさ」「シンプルな問い合わせ」という点を踏まえ、多忙な担当者や経営層に対し、端的に「解決策」と「成果」を提示するこのコンセプトが最も心に響くと考えられます。

2. サイトマップ

BtoBコーポレートサイトとしての信頼性と、HubSpotの価値を伝える情報提供、そして将来的な拡張性(ブログ機能)を考慮したサイトマップを提案します。

  • ホーム
  • HubSpotとは(ソリューション) - HubSpotでできること(機能一覧) - 導入のメリット - 料金プラン
  • 導入事例 - 導入事例一覧 - [事例詳細ページ] (テンプレート)
  • 私たちの強み(サービス) - 導入支援サービス - 運用サポート - 選ばれる理由
  • お役立ち資料(ブログ・ホワイトペーパー) - 記事一覧 - [記事詳細ページ] (テンプレート) - 資料ダウンロード一覧
  • 会社情報 - 代表挨拶・ビジョン - 会社概要 - ニュースリリース
  • お問い合わせ - お問い合わせフォーム - 資料請求フォーム
  • その他 - プライバシーポリシー - サイトマップ

3. 主要ページのワイヤーフレーム(構成案)

サイトの顔である「トップページ」と、ユーザーの関心が最も高く、コンバージョンにつながりやすい「導入事例一覧ページ」の構成案を提案します。

  • 【構成案1】 トップページ
No. ブロック名 内容
1 グローバルヘッダー ロゴ / グローバルナビゲーション / CTAボタン(「資料請求」「お問い合わせ」)
2 メインビジュアル ターゲットの課題を射抜くキャッチコピー(例:「その顧客管理、ムダが多くないですか?」)と、解決策を示唆するサブコピー。背景には信頼感と先進性を感じる抽象的な動画または画像。
3 課題提起 ターゲットが共感する具体的な課題を3〜4点提示(例:「見込み客の育成が属人化」「データが分散し分析できない」など)。
4 ソリューション 上記の課題をHubSpotでどう解決できるのかを、アイコンと短いテキストで分かりやすく紹介。「HubSpotとは」ページへの導線。
5 導入事例ハイライト 最も成果が出た代表的な事例を1〜2件抜粋して紹介。お客様のロゴ、課題、成果を簡潔に表示。「導入事例一覧」への導線。
6 私たちの強み なぜ当社が選ばれるのかを3つのポイントで訴求(例:「BtoB特化のノウハウ」「認定資格者によるサポート」など)。「私たちの強み」ページへの導線。
7 お役立ち資料 CTA HubSpot活用やマーケティングに関するお役立ち資料(ホワイトペーパー)のダウンロードを促すセクション。
8 お知らせ 最新のニュースリリースやブログ記事を3件ほど表示。「お知らせ一覧」への導線。
9 フッター サイトマップ / 会社情報 / プライバシーポリシー / コピーライト

 

  • 【構成案2】 導入事例一覧ページ
No. ブロック名 内容
1 グローバルヘッダー (トップページと共通)
2 ページタイトル 「導入事例」というタイトルと、導入企業数や成功実績などを簡潔に示すサブタイトルを配置。
3 絞り込み機能 ユーザーが自身の状況に近い事例を探せるように、「業界別」「課題別」「企業規模別」などの絞り込み検索機能を設置。
4 事例カードリスト 各事例をカード形式で一覧表示。カードには「企業ロゴ」「導入前の課題(1行)」「導入後の成果(1行)」「#業界」「#課題」といったタグ情報を掲載し、クリックすると事例詳細ページへ遷移。
5 CTA(Call To Action) 「あなたの課題も解決できます」「まずは無料で相談しませんか?」といったメッセージと共に、「お問い合わせ」「資料請求」への導線ボタンを大きく配置。
6 フッター (トップページと共通)

以上が、フェーズ1の提案となります。 内容をご確認いただき、修正点やご要望がございましたらお申し付けください。 こちらの内容でよろしければ、承認の旨をお伝えください。承認をいただき次第、【フェーズ2】デザインの提案に進ませていただきます。

案が複数出てくるためその中から最も目的に合ったものを選択します。

また、サイトマップは以下のように提案されます。

001_ブログ用画像02

テキストで入れてしまいましたが、表示は上記のようにわかりやすく出してくれます。

他に必要な構造やページなどがある場合はこの時点で伝えると調整できます。

案としては、以下の3案で出てきました。

  • 案1:論理的・信頼性重視
  • 案2:変革・パートナーシップ重視
  • 案3:シンプル・成果重視(推奨)

今回は、推奨された「案3:シンプル・成果重視」が良いと考え、「『案3:シンプル・成果重視』で進めてください」と入力しました。

これでフェーズ1の内容は承認になるため、フェーズ2へと進みます。

 

【フェーズ2】 デザインの提案

全体のイメージなどを記載してくれます。

001_ブログ用画像05

【フェーズ2】 デザインの提案の詳細内容

1. デザインコンセプト(キーワード)

サイト全体の雰囲気と世界観を表現するキーワードとして、以下の5つを提案します。

  1. 信頼性 (Trustworthy)
    BtoB取引の基盤となる、揺るぎない信頼感と安定感を表現します。
  2. 先進性 (Innovative)
    HubSpotという最先端ツールの価値を反映し、モダンで洗練された印象を与えます。
  3. 明快さ (Clarity)
    複雑な情報を整理し、ユーザーが直感的に理解できる、シンプルで分かりやすい構成を目指します。
  4. 専門性 (Professional)
    ターゲットであるマーケティング担当者や経営層に響く、専門知識と高い品質を感じさせます。
  5. 論理的 (Logical)
     データに基づいた成果を約束する姿勢を、整然としたレイアウトや情報設計で表現します。

【推奨する組み合わせ】 上記の中から、特に「信頼性」「先進性」「明快さ」の3つをデザインのコアコンセプトとして推奨します。

  • 理由: BtoBサイトとしての「信頼性」を土台としながら、HubSpotがもたらす「先進性」を視覚的に表現します。そして、それらの情報を「明快さ」をもって伝えることで、多忙なターゲットユーザーがストレスなく、最短距離で求める情報にたどり着き、「シンプルに解決。成果につながる」というサイトコンセプトを最も効果的に体現できると考えるためです。

2. カラーパレット

上記のデザインコンセプトに基づき、信頼感と先進性を両立させるカラーパレットを提案します。

役割 カラーコード (HEX) 説明
メインカラー $#0A2463$ 深い紺色。サイト全体に落ち着きと信頼感を与え、知的な印象を醸成します。
サブカラー $#F5F7FA$ 明るいクールグレー。背景色などに使用し、コンテンツエリアに清潔感と柔らかさを与えます。
アクセントカラー $#FF7A59$ HubSpotのブランドカラーに近い、鮮やかなオレンジ。CTAボタンや重要な要素に使用し、ユーザーの注目と行動を喚起します。
ベースカラー $#FFFFFF$ ホワイト。十分な余白(ネガティブスペース)を確保し、明快さと洗練された印象を与えます。
テキストカラー $#333333$ ダークグレー。真っ黒(#000000)よりもコントラストが柔らかく、長文でも目が疲れにくい可読性の高い色です。

3. タイポグラフィ(フォント)

サイト全体の可読性とデザイン性を高めるため、Google Fontsから以下のフォントを選定しました。

  • 使用フォント: Noto Sans JP
  • 選定理由: あらゆるデバイスで美しく表示される、非常に可読性の高いスタンダードなフォントです。クセがなく誠実な印象を与えるため、BtoBサイトの「信頼性」と「明快さ」を表現するのに最適です。また、豊富なウェイト(太さ)が用意されているため、見出しと本文でメリハリをつけやすく、デザインの一貫性を保でます。
  • フォントウェイト(太さ)の指定:
    • 見出し (h1, h2, h3): Bold (700) - 力強く、情報を瞬時に認識させます。
    • 小見出し・強調テキスト: Medium (500) - 適度な強調で、階層構造を分かりやすくします。
    • 本文: Regular (400) - 最も読みやすい標準的な太さです。

4. UIコンポーネントのスタイル

主要なUI要素のデザインスタイルを定義します。

  • ボタン (Button)
    • 形状: 角を少しだけ丸めた(border-radius: 4px程度)四角形。信頼感を保ちつつ、堅すぎない印象を与えます。
    • メインのCTAボタン: 背景色はアクセントカラー (#FF7A59)、テキストは白。マウスオーバーすると、少し明るい色に変化し、ユーザーのアクションを促します。
    • サブボタン: 白背景にメインカラー (#0A2463) の枠線とテキスト。マウスオーバーすると、背景がメインカラーに、テキストが白に反転します。
  • フォーム (Form)
    • 入力欄: 背景は白、枠線は薄いグレー。ユーザーが入力欄をクリック(フォーカス)すると、枠線の色がメインカラー (#0A2463) に変わり、どこを編集中か明確に示します。
    • ラベル: 「お名前」「メールアドレス」といった項目名は、入力欄の中に薄く表示する(プレースホルダー)のではなく、常に入力欄の上に表示します。これにより、入力途中でも項目名が分かり、アクセシビリティも向上します。
  • ナビゲーションメニュー (Navigation)
    • スタイル: ヘッダーに配置された、シンプルなテキストリンク。
    • 現在地の表示: ユーザーが現在閲覧しているページのメニュー項目は、テキストの色がメインカラー (#0A2463) になり、下に細いアクセントカラー (#FF7A59) の線が表示されます。
    • マウスオーバー: メニュー項目にカーソルを合わせると、テキストの色がメインカラー (#0A2463) に変化します。

デザインの出力も可能ですが時間がかかるため、イメージのみで進め、HTMLが完成してからブラウザで確認するという方法も取れます。 色についてはイメージと合わせてカラーコードが提示されます。カラーコードを参照できるサイトを使用することで、細かな色味もすぐにチェックできます。

001_ブログ用画像03

参考サイト:色検索 https://www.colordic.org/search

変更したい場合は、対象箇所を指定し、指定のカラーやイメージしている色合いを伝えると変更してくれます。

ただ、ビジュアルは見ることができないので、次工程のソースコードが表示された後で確認をすることになります。

問題がなければ、「承認します」と入力し、そのまま進めます。

 

【フェーズ3】コーディング

001_ブログ用画像04

【フェーズ3】コーディングの詳細内容
  1. index.html (トップページ)
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>BtoB Demo Site - 成果につながるHubSpot活用術</title>
<meta name="description" content="複雑なビジネス課題をシンプルに解決。データドリブンな意思決定で、貴社のビジネス成長を加速させるHubSpot活用法をご提案します。">

<link rel="preconnect" href="<https://fonts.googleapis.com>">
<link rel="preconnect" href="<https://fonts.gstatic.com>" crossorigin>
<link href="<https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&display=swap>" rel="stylesheet">

<link rel="stylesheet" href="style.css">
</head>
<body>

<header class="header">
<div class="header__inner container">
<a href="index.html" class="header__logo">BtoB Demo Site</a>
<nav class="header__nav">
<ul>
<li><a href="#solution">HubSpotとは</a></li>
<li><a href="showcases.html">導入事例</a></li>
<li><a href="#strength">私たちの強み</a></li>
<li><a href="#company">会社情報</a></li>
</ul>
</nav>
<div class="header__cta">
<a href="#contact" class="btn btn--secondary">資料請求</a>
<a href="#contact" class="btn btn--primary">お問い合わせ</a>
</div>
<button class="header__hamburger" id="js-hamburger">
<span></span>
<span></span>
<span></span>
</button>
</div>
</header>

<main>
<section class="mv">
<div class="mv__inner container">
<div class="mv__text">
<h1 class="mv__title">その顧客管理、<br>ムダが多くないですか?</h1>
<p class="mv__subtitle">複雑な課題を、シンプルに解決。<br>成果につながるHubSpot活用術をご提案します。</p>
<div class="mv__cta">
<a href="#contact" class="btn btn--primary btn--large">まずは無料で相談する</a>
</div>
</div>
</div>
</section>

<section class="problem section-padding" id="problem">
<div class="problem__inner container anim-fade-in">
<h2 class="section-title">こんな課題を抱えていませんか?</h2>
<div class="problem__grid">
<div class="problem-card">
<h3 class="problem-card__title">見込み客の育成が属人化している</h3>
<p class="problem-card__text">営業担当者の経験や勘に頼ったアプローチになっており、組織としての成果が安定しない。</p>
</div>
<div class="problem-card">
<h3 class="problem-card__title">データが分散し分析できない</h3>
<p class="problem-card__text">顧客情報、商談履歴、Webアクセスなどがバラバラのツールで管理され、有効な分析ができていない。</p>
</div>
<div class="problem-card">
<h3 class="problem-card__title">マーケティング施策が非効率</h3>
<p class="problem-card__text">手作業でのメール配信やSNS投稿に時間がかかり、本来注力すべき戦略立案が疎かになっている。</p>
</div>
</div>
</div>
</section>

<section class="solution section-padding bg-light" id="solution">
<div class="solution__inner container anim-fade-in">
<h2 class="section-title">HubSpotがその課題を<span class="text-accent">シンプルに解決</span>します</h2>
<div class="solution__content">
<p class="section-text">HubSpotは、マーケティング、セールス、カスタマーサービスの各部門が必要とする機能を一つに統合したプラットフォームです。顧客情報を一元管理し、データに基づいた最適なアプローチを自動化することで、ビジネスの成長を強力に後押しします。</p>
<a href="#contact" class="btn btn--primary">機能の詳細を見る</a>
</div>
</div>
</section>

<section class="showcases section-padding" id="showcases">
<div class="showcases__inner container anim-fade-in">
<h2 class="section-title">導入事例</h2>
<div class="showcases__grid">
<a href="showcases.html" class="case-card">
<div class="case-card__img">
<img src="<https://via.placeholder.com/400x250?text=Case+Study+1>" alt="株式会社A様の導入事例">
</div>
<div class="case-card__body">
<p class="case-card__client">株式会社A様</p>
<h3 class="case-card__title">顧客データの一元化で、商談化率が150%に向上</h3>
</div>
</a>
<a href="showcases.html" class="case-card">
<div class="case-card__img">
<img src="<https://via.placeholder.com/400x250?text=Case+Study+2>" alt="BtoBサービスB社の導入事例">
</div>
<div class="case-card__body">
<p class="case-card__client">BtoBサービスB社様</p>
<h3 class="case-card__title">マーケティングオートメーションで、問い合わせ数が2倍に</h3>
</div>
</a>
</div>
<div class="section-cta">
<a href="showcases.html" class="btn btn--secondary">すべての導入事例を見る</a>
</div>
</div>
</section>

</main>

<footer class="footer">
<div class="footer__inner container">
<div class="footer__info">
<a href="index.html" class="footer__logo">BtoB Demo Site</a>
<p>〒100-0000 東京都千代田区丸の内1-2-3</p>
</div>
<div class="footer__nav">
<ul>
<li><a href="#solution">HubSpotとは</a></li>
<li><a href="showcases.html">導入事例</a></li>
<li><a href="#strength">私たちの強み</a></li>
<li><a href="#company">会社情報</a></li>
<li><a href="#contact">お問い合わせ</a></li>
<li><a href="#privacy">プライバシーポリシー</a></li>
</ul>
</div>
</div>
<div class="footer__copyright">
<p>&copy; 2025 BtoB Demo Site. All Rights Reserved.</p>
</div>
</footer>

<script src="script.js"></script>
</body>
</html>
  1. showcases.html (導入事例一覧ページ)
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>導入事例 - BtoB Demo Site</title>
<meta name="description" content="当社が支援させていただいたお客様のHubSpot導入事例をご紹介します。">

<link rel="preconnect" href="<https://fonts.googleapis.com>">
<link rel="preconnect" href="<https://fonts.gstatic.com>" crossorigin>
<link href="<https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&display=swap>" rel="stylesheet">

<link rel="stylesheet" href="style.css">
</head>
<body>

<header class="header">
</header>

<main>
<div class="page-header">
<div class="container">
<h1 class="page-header__title">導入事例</h1>
<p>当社が支援させていただいたお客様の成功事例をご紹介します。</p>
</div>
</div>

<section class="showcases-list section-padding">
<div class="container anim-fade-in">
<div class="showcases-list__filter">
<button class="btn btn--secondary is-active">すべて</button>
<button class="btn btn--secondary">業界別</button>
<button class="btn btn--secondary">課題別</button>
</div>

<div class="showcases__grid">
<a href="#" class="case-card">
<div class="case-card__img">
<img src="<https://via.placeholder.com/400x250?text=Case+Study+1>" alt="株式会社A様の導入事例">
</div>
<div class="case-card__body">
<p class="case-card__client">株式会社A様</p>
<h3 class="case-card__title">顧客データの一元化で、商談化率が150%に向上</h3>
<div class="case-card__tags">
<span class="tag">#IT業界</span>
<span class="tag">#顧客管理</span>
</div>
</div>
</a>
<a href="#" class="case-card">
<div class="case-card__img">
<img src="<https://via.placeholder.com/400x250?text=Case+Study+2>" alt="BtoBサービスB社の導入事例">
</div>
<div class="case-card__body">
<p class="case-card__client">BtoBサービスB社様</p>
<h3 class="case-card__title">マーケティングオートメーションで、問い合わせ数が2倍に</h3>
<div class="case-card__tags">
<span class="tag">#製造業</span>
<span class="tag">#リード獲得</span>
</div>
</div>
</a>
<a href="#" class="case-card">
<div class="case-card__img">
<img src="<https://via.placeholder.com/400x250?text=Case+Study+3>" alt="C株式会社の導入事例">
</div>
<div class="case-card__body">
<p class="case-card__client">C株式会社様</p>
<h3 class="case-card__title">営業プロセスの可視化で、チーム全体の売上が30%アップ</h3>
<div class="case-card__tags">
<span class="tag">#人材サービス</span>
<span class="tag">#営業効率化</span>
</div>
</div>
</a>
</div>
</div>
</section>

<section class="cta section-padding bg-light">
<div class="cta__inner container anim-fade-in">
<h2 class="section-title">あなたの課題も解決できます</h2>
<p class="section-text">まずは、貴社の状況や課題を私たちにお聞かせください。<br>最適な解決策をご提案します。</p>
<a href="#contact" class="btn btn--primary btn--large">無料で相談する</a>
</div>
</section>
</main>

<footer class="footer">
</footer>

<script src="script.js"></script>
</body>
</html>
  1. style.css (全ページ共通のCSS)
/* ====================
Reset & Basic
==================== */
:root {
--main-color: #0A2463;
--sub-color: #F5F7FA;
--accent-color: #FF7A59;
--base-color: #FFFFFF;
--text-color: #333333;
--header-height: 80px;
}

*, *::before, *::after {
box-sizing: border-box;
margin: 0;
padding: 0;
}

body {
font-family: 'Noto Sans JP', sans-serif;
color: var(--text-color);
background-color: var(--base-color);
line-height: 1.8;
}

a {
color: inherit;
text-decoration: none;
transition: opacity 0.3s;
}

a:hover {
opacity: 0.7;
}

img {
max-width: 100%;
height: auto;
vertical-align: middle;
}

ul {
list-style: none;
}

.container {
width: 100%;
max-width: 1120px;
margin: 0 auto;
padding: 0 20px;
}

.section-padding {
padding: 80px 0;
}

.bg-light {
background-color: var(--sub-color);
}

.section-title {
font-size: 2.25rem;
font-weight: 700;
text-align: center;
margin-bottom: 40px;
}

.section-text {
font-size: 1rem;
max-width: 600px;
margin: 0 auto 30px;
text-align: center;
}

.section-cta {
text-align: center;
margin-top: 40px;
}
.text-accent {
color: var(--accent-color);
}

/* ====================
Button
==================== */
.btn {
display: inline-block;
padding: 12px 32px;
border-radius: 4px;
font-weight: 700;
text-align: center;
border: 2px solid transparent;
transition: all 0.3s;
}
.btn--primary {
background-color: var(--accent-color);
color: var(--base-color);
border-color: var(--accent-color);
}
.btn--primary:hover {
background-color: var(--base-color);
color: var(--accent-color);
opacity: 1;
}
.btn--secondary {
background-color: var(--base-color);
color: var(--main-color);
border-color: var(--main-color);
}
.btn--secondary:hover {
background-color: var(--main-color);
color: var(--base-color);
opacity: 1;
}
.btn--large {
padding: 16px 48px;
font-size: 1.125rem;
}

/* ====================
Header
==================== */
.header {
height: var(--header-height);
background-color: var(--base-color);
border-bottom: 1px solid #eee;
position: fixed;
width: 100%;
top: 0;
left: 0;
z-index: 1000;
}
.header__inner {
display: flex;
align-items: center;
justify-content: space-between;
height: 100%;
}
.header__logo {
font-size: 1.5rem;
font-weight: 700;
color: var(--main-color);
}
.header__nav ul {
display: flex;
gap: 30px;
}
.header__nav a {
font-weight: 500;
}
.header__cta {
display: flex;
gap: 10px;
}
.header__hamburger {
display: none; /* Hide by default */
}

/* ====================
Main Visual (MV)
==================== */
.mv {
height: 600px;
display: flex;
align-items: center;
background-color: var(--main-color);
color: var(--base-color);
margin-top: var(--header-height);
}
.mv__title {
font-size: 3rem;
line-height: 1.4;
margin-bottom: 20px;
}
.mv__subtitle {
font-size: 1.25rem;
margin-bottom: 40px;
}

/* ====================
Problem Section
==================== */
.problem__grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 30px;
}
.problem-card {
background-color: var(--sub-color);
padding: 30px;
border-radius: 8px;
}
.problem-card__title {
font-size: 1.25rem;
margin-bottom: 15px;
color: var(--main-color);
}

/* ====================
Showcases Section
==================== */
.showcases__grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 30px;
}
.case-card {
border-radius: 8px;
overflow: hidden;
box-shadow: 0 4px 15px rgba(0,0,0,0.05);
background-color: var(--base-color);
transition: all 0.3s;
}
.case-card:hover {
transform: translateY(-5px);
box-shadow: 0 8px 25px rgba(0,0,0,0.1);
opacity: 1;
}
.case-card__img img {
width: 100%;
height: 200px;
object-fit: cover;
}
.case-card__body {
padding: 20px;
}
.case-card__client {
font-size: 0.875rem;
margin-bottom: 5px;
}
.case-card__title {
font-size: 1.125rem;
font-weight: 700;
line-height: 1.5;
}
.case-card__tags {
margin-top: 15px;
display: flex;
gap: 8px;
}
.tag {
font-size: 0.75rem;
background-color: var(--sub-color);
padding: 4px 8px;
border-radius: 4px;
}

/* ====================
Page Header (for subpages)
==================== */
.page-header {
padding: 60px 0;
text-align: center;
background-color: var(--main-color);
color: var(--base-color);
margin-top: var(--header-height);
}
.page-header__title {
font-size: 2.5rem;
}

/* ====================
Footer
==================== */
.footer {
background-color: var(--main-color);
color: var(--base-color);
padding-top: 60px;
}
.footer__inner {
display: flex;
justify-content: space-between;
padding-bottom: 40px;
border-bottom: 1px solid rgba(255,255,255,0.2);
}
.footer__logo {
font-size: 1.5rem;
font-weight: 700;
margin-bottom: 15px;
display: block;
}
.footer__nav ul {
display: flex;
flex-wrap: wrap;
gap: 15px 30px;
}
.footer__copyright {
text-align: center;
padding: 20px 0;
font-size: 0.875rem;
}

/* ====================
Animation
==================== */
.anim-fade-in {
opacity: 0;
transform: translateY(20px);
transition: opacity 0.8s, transform 0.8s;
}
.anim-fade-in.is-visible {
opacity: 1;
transform: translateY(0);
}

/* ====================
Responsive (for Smartphone)
==================== */
@media (max-width: 768px) {
.section-padding { padding: 60px 0; }
.section-title { font-size: 1.75rem; }

.header__nav, .header__cta { display: none; }
.header__hamburger {
display: block;
width: 30px;
height: 20px;
position: relative;
cursor: pointer;
border: none;
background: transparent;
}
.header__hamburger span {
display: block;
width: 100%;
height: 2px;
background-color: var(--main-color);
position: absolute;
left: 0;
transition: all 0.3s;
}
.header__hamburger span:nth-child(1) { top: 0; }
.header__hamburger span:nth-child(2) { top: 50%; transform: translateY(-50%); }
.header__hamburger span:nth-child(3) { bottom: 0; }

/* Active state for hamburger menu */
.header.is-open .header__hamburger span:nth-child(1) {
top: 50%;
transform: translateY(-50%) rotate(45deg);
}
.header.is-open .header__hamburger span:nth-child(2) {
opacity: 0;
}
.header.is-open .header__hamburger span:nth-child(3) {
bottom: 50%;
transform: translateY(50%) rotate(-45deg);
}
/* Mobile nav appears */
.header.is-open .header__nav {
display: block;
position: absolute;
top: var(--header-height);
left: 0;
width: 100%;
background-color: var(--base-color);
padding: 20px;
}
.header.is-open .header__nav ul {
flex-direction: column;
gap: 0;
}
.header.is-open .header__nav li {
border-bottom: 1px solid #eee;
}
.header.is-open .header__nav a {
display: block;
padding: 15px 0;
}

.mv { height: auto; padding: 60px 0; }
.mv__title { font-size: 2rem; }
.mv__subtitle { font-size: 1rem; }

.problem__grid { grid-template-columns: 1fr; }

.footer__inner { flex-direction: column; gap: 40px; }
}
  1. script.js (全ページ共通のJavaScript)
document.addEventListener('DOMContentLoaded', function() {

// 1. Hamburger Menu for Mobile
const hamburger = document.getElementById('js-hamburger');
const header = document.querySelector('.header');

if (hamburger) {
hamburger.addEventListener('click', function() {
header.classList.toggle('is-open');
});
}

// 2. Scroll Animation (Fade In)
const fadeinTargets = document.querySelectorAll('.anim-fade-in');

const observer = new IntersectionObserver((entries, observer) => {
entries.forEach(entry => {
// isIntersecting is true when the element is in the viewport
if (entry.isIntersecting) {
entry.target.classList.add('is-visible');
// Stop observing the element once it's visible
observer.unobserve(entry.target);
}
});
}, {
rootMargin: '0px', // margin around the root
threshold: 0.2 // 20% of the item must be visible
});

fadeinTargets.forEach(target => {
observer.observe(target);
});

});

上記のように、ソースが生成されたので、PCのローカル環境で確認をするか、サーバにアップロードして表示を確認します。

通常のWebサイトであれば、こちらで修正の指示をしながら完成させられます。また、データをサーバにアップロードすることで公開可能になります。

CMSなどのシステムを使用する場合、そのCMSに対応した記述を追加する必要があります。

今回はHubSpotを使用しますので、HubLの記述に変換します。

筆者はHubLに詳しくないため、Geminiで変換をしていきます。

HTMLの確認とHubLへの変換・適用

1. 以下のプロンプトを入力

HubSpotでテキストと画像を編集できるようなテンプレートの構成にしてもらえますか? ヘッダーとフッターは全ページ共通で変更があった場合は編集できるようにして欲しいです。

このプロンプトでは、HubSpotのテンプレートで使用できるHubLという記述に変換する作業をAIに依頼しています。

また、ヘッダーとフッターは全ページで共通化した方が、運用上の使い勝手が良いため記載しております。

2. HubSpotで確認できるよう、テンプレートを作成

今回は簡易的な方法で進めました。

HubSpotのデザインマネージャー(※CMS構築用の開発ツール)を使い、専用フォルダを作成しテンプレートを作成します。

今回はCSSとJavaScriptは別フォルダに分け、必要なファイルを作成します。

基本的に、コピー&ペーストで反映作業を行います。

※HubSpotのデザインマネージャーとは Webサイトのデザインや構築を詳細に制御するツールで、CMS HubのProfessionalおよびEnterpriseプランで利用できます。Marketing Hubの同等プランでも利用可能。HTML/CSS/JavaScriptやHubSpot専用のテンプレート言語であるHubLを使い、高度なカスタマイズやオリジナルモジュールの開発が可能です。本格的なサイト構築に不可欠なツールです。

3. HubSpotでページを作成し表示
HubSpotの「ウェブサイトページ」から新規ページを作成し、今回作成したテンプレートを選択するとページを表示することができます。

今回Geminiで作成したサンプルページ
demopage

AIを活用したWebサイト構築

AI構築でできたこと

  • 専門知識がなくても基本的な構築が可能: HTMLやCSSといったプログラミング言語の知識がなくても、AIの指示によってWebサイトの骨組みを作成できます。
  • 設計プロセスの効率化: サイトに必要な情報や要件を伝えるだけで、AIが構成案やページ設計を提案してくれるため、初期の設計プロセスを効率的に進められます。
  • 情報が揃っていれば作成可能: サイトに必要なテキストや画像といった素材が事前に準備されていれば、AIが整理し、迅速にサイトを構築できます。

AI構築で課題を感じたこと

  • 明確なビジョンと情報整理が不可欠: AIに的確な指示を出すためには、「何を作りたいか」というビジョンを明確にし、サイトに必要な情報を事前に整理しておく必要があります。
  • 最終的な成果物の確認は必須: AIが生成したデザイン、文章、コードが、意図した通りの品質や見た目になっているかを、人間が必ず確認・修正する必要があります。
  • 細部の調整やブラッシュアップに人間の手が必要: AIは全体的な骨組みは作れますが、UXやブランドイメージに合わせた細かな調整、デザインの最終的なブラッシュアップやエラーの調整は、人間の判断と感性で行う必要があります。

冒頭で記載していた「HTMLの確認とHubLへの変換と適用」の結果は記載していません。今回作業をした上で一番ネックだった箇所は、HubLに変換する作業でした。

Hubに不慣れな人が作業すると、エラーが多く、Geminiと相談しても解消されないことが多くありました。機能と記述を正しく理解して指示をしなければ解決しないという状況に陥り、そのままHubSpotに組み込んでも参考にならないことがありました。

今回は、1ページのWebサイトを制作いたしました。ページ作成後も煩雑なコードを触らなくてもテキストデータを簡単に修正できるよう、HubSpotテンプレートとして作成し、以下のように直接編集できるようにしています。

001_テキスト変更箇所

AIを活用したHubSpotでのWebサイト構築は、非エンジニアにとって有効です。AIで生成したテキストや画像を、HubLで作成したテンプレートに流し込むことで、専門知識なしに迅速なサイト立ち上げを可能にします。

しかし、HubSpot本来の強みは、エンジニアがHTML、CSS、JavaScript、HubLを駆使して作成するモジュールにあります。モジュールはWebサイトの各部品の再利用を可能にし、コンテンツ担当者がドラッグ&ドロップでページを構築・更新できる操作性の高い環境を提供します。今回はAIによる迅速な構築を前提に進めましたが、より柔軟で拡張性の高いサイト運用にはモジュールを活用した方法が理想的です。

細かく指示をすることで、AIによるモジュール作成は可能ですが、HTML、CSS、JavaScript、HubLの知識やテンプレートの構成、モジュールの構成を適切に考慮した設計をする必要性があります。

001_growthモジュール操作

引用参考: HubSpot既定テーマのgrowthを適用したページ

上記は既存テーマの一例です。左側の「Main Section」にはページを構成するモジュールが表示され、各モジュールの設定項目からテキストや画像などの内容を変更できます。

モジュールの構成や編集範囲は、設計によって異なります。固定位置のテキストを変更するタイプ、要素を入れ替えられるタイプ、複数ページで共通化できるタイプなど、必要な条件や仕様に応じて設計されます。

構築の感想

001_Gemini_Generated_Image_5tvoba5tvoba5tvo

全てGeminiに指示すれば構築は可能ではありました。

前述で記載した他にも、実際にAIとやり取した中で感じたことを箇条書きにします。

  • 指示を出すのは人間であり、指示の出し方で生成結果の精度が変わる
  • AIは以前の指示を忘れることがあるため、都度確認するか、もしくは最後に全体確認が必要
  • 使用するAIの特性でコードの記述や作りが変わることがある
  • 細かい指示をしなければ、AIが独自にフレームワークを提案し、それを使用することが多い
  • HubLは設計後、細かく指示をしなければエラーが出てしまい、動作しないことが多い
  • AIは1カ月で進化するため、同じ指示でも時期によって生成結果が変わる可能性がある

今回紹介したAIはGeminiでしたが、実はChatGPTも試しており、他のAIと組み合わせ検証する場面もありました。

ChatGPTもGeminiも同じようなことができるため、どちらを使用しても基本的には同様の構築が可能です。

デザイン特化のAI、例えばfigmaのMusho.aiなどを使用するとよりデザイン性の高いものができますが、複数のAIを使用することになるため、AI間を移動する必要があることから、今回はツールをGemini一つに絞って構築しました。

構築に関わる言語やフレームワークは日々進化しており、多岐に渡るため指示者があらかじめ技術を指定するか、もしくはAIの提案を確認しながら判断する必要があります。

複雑なことをGeminiやChatGPTに依頼することは少なくありませんが、どのAIを使用すると何ができるかという判断は、人間側が考えて進めることが必要になります。

結果的に、今回はモジュールを使用せず、簡易的に表示し、編集ができる程度にとどまりました。

また、どの工程でも思った形にならない、表示が崩れることや想定通りに動かないといった場面が出てきますので、適宜調整や対応が必要になってきます。“どこをどう確認すべきか”という知見があるとスムーズに進めることができます。

サイト制作では、「何のためのページか」を見据えた設計思想が重要です。AIを導入することで、先を見越した設計を効率的に進められるようになり、心強い相談相手となります。

今回はそのまま使用できるとは言い難い結果になってしまいました。

次々と増えるAIですが、また異なるLLMや工程を変えたパターン、クオリティを上げたパターンなども試したいと思います。

まとめ

企画からデザイン、そしてコーディングまで、可能な限りAIにプロセスを任せることで、Webサイト制作の自動化がどこまで可能か、その可能性と限界を検証しました。

この「AIに任せてHubSpotサイト構築チャレンジ」を通して見えてきたのは、AIがWeb制作の多くの工程を効率化できるという確かな可能性です。特に、サイトマップやワイヤーフレームの提案、デザインコンセプトの生成、基本的なコーディングといった初期段階において、AIはその能力を最大限に発揮し、工数削減に大きく貢献することが分かりました。

しかし、AIが生成したコンテンツの最終調整や、HubSpotのような複雑なCMSへの最適化、そして何よりもサイトの目的達成に向けた「指示の精度」においては、人間の専門的な知識と判断が不可欠であることも明らかになりました。AIはあくまで強力なアシスト役であり、人間の思考や戦略を代替するものではありません。

今回の挑戦は、AIが単なる自動化ツールを超え、人間がより高度な戦略立案や創造的な作業に集中するための「共創パートナー」となり得ることを示唆しています。AIの急速な進化を考慮すれば、Web制作の未来は、AIと人間がそれぞれの強みを活かし、最適に協業する新しいワークフローへと移行していくでしょう。

AIを賢く活用することで、私たちはより効率的で、より高品質なWebサイト制作を実現できるはずです。

指示方法の変更や、始めから設計を加味した指示を与える、複数のAIを使用することで今後AIのみを使用し、HubSpotで使用できるテンプレートやモジュール作成までをご紹介したいです。

次回以降はWebサイト制作で使用できそうなAIの紹介の記事を書き、AIを元にテンプレートとモジュールが使用できるページを作成したいと考えています。

田嶋 知世

株式会社100(ハンドレッド)のRevOpsチームに所属。キャリアのスタートは紙媒体のDTPオペレーター。時代の変化と共にデジタルでの顧客接点の重要性を感じ、Web制作の世界へ。ECサイトの運用やコーポレートサイト制作、BtoCのLP制作などを通じ、ユーザーに直接届けるコミュニケーションの面白さと難しさを学ぶ。現在はその経験を活かし、RevOpsとしてビジネス全体の最適化を探求中。

We are HubSpot LOVERS

ビジネスの成長プラットフォームとしての魅力はもちろん、
HubSpotのインバウンドマーケティングという考え方、
顧客に対する心の寄せ方、ゆるぎなく、そしてやわらかい哲学。
そのすべてに惹かれて、HubSpotのパートナー、
エキスパートとして取り組んでいます。
HubSpotのこと、マーケティング設計・運用、
組織の構築など、どんなことでもお問い合わせください。

HubSpotのことならお任せください

お問い合わせフォーム