特定のクライアントに向けて徹底的に最適化された「一品物」のシステムを、汎用的なSaaSプラットフォームへと昇華させる。これはプロダクトの成長過程において最もエキサイティングであり、同時にアーキテクチャの真価が問われる転換点です。
不動産チャットシステム『Wells』は、今まさにハードコードによる個別最適という「殻」を脱ぎ捨て、拡張性の高いマルチテナント・アーキテクチャへと進化を遂げようとしています。
「特定の企業のためだけに作り込んだシステムが、もし、エンジニアの手を介さず数分で新しい顧客に提供できるツールになったら?」
プロダクトマネージャー兼アーキテクトの視点から、この「仕組み化」への挑戦の舞台裏を詳解します。
--------------------------------------------------------------------------------
テイクアウト1:ロジックの非結合化。DB駆動型シナリオエンジンへの転換
従来の『Wells』では、質問項目や分岐ロジックの多くがフロントエンドのReactコード内にハードコードされていました。今回の「プランA(内部刷新)」における核心は、これらすべてのロジックをデータベース(contact_flow_stepsテーブル)へ移行し、バックエンドから動的に配信するアーキテクチャへの転換です。
質問文、入力タイプ、必須判定、そして複雑な条件分岐(condition_json)をDB側で管理することにより、フロントエンドは「ロジックの所有者」から、純粋な「レンダラー(描画器)」へと責務が分離(Separation of Concerns)されます。
分析/リフレクション ロジックをコードから引き剥がし、RDBMS内でのスキーマレスな設定(JSON)へと移行することは、単なる設定の外出しではありません。これにより、CI/CDサイクルを回すことなく、つまり「デプロイなし」でシステムの振る舞い(ステートマシン)を変更できる運用強度が手に入ります。
このエレガントな実装を支えるのが、我々が採用しているフレームワーク「Laravel」の哲学です。
"Laravelは、表現力豊かでエレガントな構文を備えたWebアプリケーションフレームワークです。私たちは、開発が真に充実したものになるためには、楽しく、創造的な経験でなければならないと考えています。"
Laravelの表現力豊かなORM(Eloquent)を活用することで、DBに格納された複雑なシナリオ定義を直感的に解釈し、フロントエンドへ受け渡す「表現力の高いバックエンド」が実現しています。
テイクアウト2:心理的摩擦を最小化する「3フェーズ」のUX設計思想
ユーザーを迷わせず、離脱を防ぐための対話設計には「段階的開示(Progressive Disclosure)」の原則を取り入れています。一度に大量の入力を迫るのではなく、以下の3フェーズで構成されています。
- フェーズ1:基本情報収集 名前、メール、電話番号、住所(郵便番号補完)など、全テナント共通の最小限の属性を1問1答で収集。
- フェーズ2:目的別シナリオ 「購入」「売却」「相続」といった目的に応じ、物件種別(一戸建て/マンション等)や予算、所在地など、
condition_jsonに基づいた動的な深掘り質問を実行。 - フェーズ3:確認・送信 収集した全回答を構造化してサマリー表示し、ユーザーの納得感を得た上で確定。
分析/リフレクション 不動産という高関与な商材において、ユーザーの心理的負荷をいかに下げるかは至上命題です。1問1答形式にすることで、ユーザーは「今、この瞬間の問い」だけに集中できます。このUX設計が、結果として正確なデータ収集と高いコンバージョン率を両立させるのです。
テイクアウト3:エンジニア不要のオンボーディング。マルチテナントの魔法
「プランB(商用スケール)」の目標は、エンジニアによるコード修正を「ゼロ」にすることです。新しい利用会社(テナント)を追加する手順は、以下の通り管理画面上の操作だけで完結するように設計されています。
- テナント一覧(
/admin/tenants)を開き、新規企業を登録。 - 企業固有の設定(
tenant_settings)でロゴや担当者名を指定。 - フォーム一覧(
/admin/contact-forms)から新しい問い合わせ窓口を作成。 - 質問追加(
/admin/contact-forms/{id}/steps/create)で、GUIを通じて独自の質問フローを構築。 - 認証の確立:マルチテナンシーの柱として、Laravel Breeze等を用いた管理画面認証(Step B-1)を適用し、セキュアな運用環境を担保。
- 即時プレビュー:生成されたURLで即座に稼働を確認。
分析/リフレクション 真のSaaSとは、ビジネスのスケールスピードにシステムが追随できるものを指します。現在進めている「フロー定義のGUI編集(Step B-3)」が完成すれば、導入リードタイムは「数日」から「数分」へと劇的に短縮されます。この圧倒的なタイム・ツー・マーケットこそが、ビジネス価値の源泉です。
テイクアウト4:信頼を支える「データ隔離」と「プラットフォーム・アグノスティック」
複数の企業が同一のインフラを共有するマルチテナント環境において、最も優先されるべきは「データの完全な隔離(Isolation)」です。
- テナント・アイソレーション:すべてのデータ取得において
tenant_idによるフィルタリングを物理層に近いレベルで強制。他社データへのクロスアクセスを構造的に排除し、エンタープライズ水準の信頼性を確保します。 - ホワイトラベル性と柔軟な提供形態:
- 専用URL:
https://aichat.iplusone.co.jp/wells/contact?tenant={tenant_code}の形式で個別の窓口を提供。 - iframe埋め込み:クライアントの既存サイト(WordPressや独自CMS)にコードを貼るだけで統合可能。プラットフォームを選ばない「アグノスティック」な設計により、導入障壁を極限まで下げています。
- 専用URL:
分析/リフレクション エンドユーザーには「その企業専用のツール」として映り、裏側では開発リソースを中央集約的に管理する。この相反する要素の両立が、技術的な工夫(ブランドカスタマイズ変数とデータ分離ロジック)によって支えられています。
--------------------------------------------------------------------------------
結び:未来への展望。構造化データが切り拓くAI対話の次の一手
『Wells』の進化は、単なるWebフォームの代替に留まりません。現在、大きなパラダイムシフトとして取り組んでいるのが、データの「構造化保存」への完全移行です。
これまでの「整形済みテキスト(contentカラム)」による保存から、設問ごとのキーと値を保持する「contact_answersテーブル」への移行により、データの可搬性と分析精度が飛躍的に向上します。
この構造化こそが、AI統合(OpenAI活用)のブースターとなります。シナリオの特定のステップを「ルールベース」から「AIによる自然対話」へとシームレスに切り替える(トグルする)柔軟な設計。これが我々の見据える次世代のアーキテクチャです。
最後に、あなたに問いかけます。
「あなたのシステムは、明日の新しい顧客を迎え入れる準備ができていますか?」
ハードコードされた制約を一つずつ解きほぐし、柔軟な「仕組み」へと変えていく。その技術的決断が、プロダクトを次のステージへと押し上げるのです。