メインコンテンツにスキップ
株式会社ゼットリンカー - Next.js システム開発専門
AI開発

顧客・案件情報をNext.jsで一元管理する|Excel台帳・複数SaaSからの脱却設計【2026年版】

Conclusion

顧客・案件情報が複数のExcel・SaaSに分散し、担当者の記憶に頼った運用になっているなら、内製での一元管理を検討するタイミングです。顧客マスタの統合から始め、進行中の案件だけを先に移す段階的な進め方が現実的です。

結論、顧客・案件情報がExcelと複数SaaSに分散しているなら、顧客ID起点の一元管理設計に切り替えるタイミングです。既製CRM/SFAとの使い分け、Next.jsでのデータ設計、移行手順、既製ツールとの費用比較の考え方まで整理します。

顧客・案件情報をNext.jsの一つの管理画面で確認する経営者
10分で読めます
Next.jsNext.jsAI駆動開発中小企業CRMSaaS脱却

「顧客情報はExcel、案件の進捗はSaaS A、見積書はSaaS B」——気づけば、1件の商談を追いかけるだけで3つの画面を行き来している。そんな状態に心当たりがあれば、この記事が役に立つはずです。中小企業では、顧客管理・案件管理を「まずはExcelで」「とりあえず無料のSaaSで」と始めたものが、事業の成長とともに分散し、どれも中途半端に使われているケースが少なくありません。この記事では、顧客・案件情報をNext.jsで一元管理する設計と、既存のExcel台帳・複数SaaSからどう移行するかを整理します。

顧客・案件管理を内製すべきサインは何か?

「顧客の全体像を見るのに複数の画面を往復している」状態が続いているなら、内製を検討する価値があります。

以下のサインに複数当てはまる場合、情報の分散がコストになっている可能性が高いといえます。

  • 同じ顧客の情報が、Excel・SaaS・メール・チャットに分散している。 過去のやり取りを確認するために、担当者の記憶かメール検索に頼っている。
  • 案件の進捗が「担当者の頭の中」にしかない。 担当者が休むと、その案件の状況が誰にも分からなくなる。
  • 無料〜安価なSaaSを複数契約し、どれも帯に短し襷に長し。 顧客管理はSaaS A、案件管理はSaaS B、請求はExcel、といった具合に部分最適が積み重なっている。
  • SaaSの項目が自社の営業プロセスに合わない。 「初回接触」「見積提示」「社内稟議」「受注」という自社独自のステップをSaaS側のステータスに無理やり当てはめている。
  • 複数のSaaSを連携させるための手作業(転記・CSV突合)が発生している。 ノーコード連携ツールでは対応しきれない項目や条件分岐がある。

一方で、以下に該当する場合は既存SaaSを続ける方が合理的です。

  • 商談・案件の件数がまだ少なく、Excel1枚で十分に把握できている
  • 標準的な営業プロセス(BtoB向けCRMの一般的な項目)で業務が回っている
  • 社内にシステムを運用する担当者を置く余力がない

Excel台帳・複数SaaSに顧客情報が分散した状態と、Next.jsで顧客IDを軸に一元化した状態を左右に対比し、統合のきっかけとなる3つのサインを示す図解。

既製のCRM/SFAではなく内製にする理由は何か?

自社の営業プロセスに合わせて項目・ステータス・帳票を自由に設計でき、他の業務データ(見積・受発注・在庫)と同じ基盤に置けることが最大の理由です。

Salesforce・HubSpot・kintoneなど、既製のCRM/SFAは機能が豊富で、標準的な営業プロセスであれば十分に対応できます。それでも内製を検討する価値があるのは、以下のような場合です。

  • 自社独自の営業プロセスがある。 業界特有の商談ステップ、複数部署が関わる承認フロー、顧客ごとに異なる契約形態など、既製ツールのステータス設計に収まらない業務がある
  • 他の業務データと同じ基盤に置きたい。 見積書・受発注・在庫といった他の業務システムをすでにNext.jsで内製している(または内製を検討している)場合、顧客・案件データも同じ基盤に統合すると、部門をまたいだ検索や分析がしやすくなる
  • 既製ツールのカスタマイズ費用が積み上がっている。 SaaSの標準機能では足りず、追加開発(カスタムオブジェクト、API連携)のオプション費用が積み重なり、月額料金以上の負担になっている

反対に、既製CRM/SFAを使い続けるべきなのは、名刺管理・メール連携・営業支援AIといった周辺機能を含めた「エコシステム」を丸ごと使いたい場合です。これらを内製でゼロから再現するのは現実的ではありません。

この判断から次に進む

課題が整理できていなくても相談できます

困っている業務と、変えたいことだけでも大丈夫です。初回相談・モック・見積もりは無料です。

カジュアルに相談する

Next.jsでの顧客・案件データはどう設計するか?

顧客(companies/contacts)・案件(deals)・活動履歴(activities)の3テーブルを、顧客IDで紐付ける構成が基本です。

3つの主要テーブル

テーブル役割主な項目の例
顧客(companies / contacts)会社情報・担当者情報のマスタ会社名、業種、担当者名、連絡先、契約状況
案件(deals)進行中・完了した商談の単位案件名、フェーズ、金額、担当営業、想定受注日
活動履歴(activities)顧客・案件に紐づくやり取りの記録訪問・電話・メールの日時、内容メモ、次のアクション

顧客と案件は1対多(1社が複数の案件を持つ)、案件と活動履歴も1対多の関係になります。Firestoreであれば顧客IDをキーにサブコレクションとして案件・活動履歴を持たせる設計、PostgreSQL(Supabase)であれば外部キーで顧客・案件・活動履歴を紐付ける設計になります。

案件フェーズの設計は自社の営業プロセスに合わせる

既製CRMの多くは「リード→商談→受注→失注」のような汎用的なフェーズを用意していますが、内製の利点はここを自社の実態に合わせて自由に設計できることです。

例: 建設業の場合
問い合わせ → 現地調査 → 見積提示 → 社内稟議待ち → 契約 → 着工

例: 製造業の場合
引き合い → 仕様確認 → 試作 → 量産見積 → 受注 → 量産開始

フェーズごとに「次に誰が何をするか」を明確にしておくと、案件が停滞したときに気づきやすくなります。

他の業務データとの接続を見据える

顧客・案件データを内製する最大のメリットは、受発注・見積書・在庫といった他の業務データと同じ基盤に置けることです。たとえば、受発注管理をSaaSからNext.jsフルスクラッチに切り替える判断基準で扱った受発注データと顧客IDで紐付けておけば、「この顧客の累計取引額」や「この顧客が最後に発注したのはいつか」を案件画面から直接参照できます。SaaSを複数契約している状態では、こうした横断参照のたびに手作業のCSV突合が発生しがちです。

Excel台帳や既存SaaSからどう移行するか?

顧客マスタを先に統合し、案件・活動履歴は「今動いている案件」から段階的に移す進め方が現実的です。

一度にすべてのデータを移行しようとすると、データの重複や表記ゆれ(「株式会社」の有無、担当者名の旧字体など)の処理に時間がかかり、プロジェクトが止まりがちです。移行の手順は以下の順序が現実的です。

  1. 顧客マスタの統合と名寄せ。 Excel・SaaS・名刺管理ツールに分散した顧客情報を1つのリストにまとめ、重複を排除する。表記ゆれの名寄せはAIによる支援で工数を圧縮できる領域です(詳細はExcel台帳をNext.jsに移行する設計を参照)
  2. 進行中の案件だけを先に移す。 完了済み・失注済みの古い案件は過去データとして参照できればよく、無理に新システムのフェーズ設計に当てはめる必要はありません
  3. 並行運用期間を設ける。 旧SaaS・Excelと新システムを一定期間並行稼働させ、現場が新しい画面に慣れる猶予を作る
  4. 旧SaaSの契約終了タイミングを合わせる。 移行が安定してから解約することで、「移行したのに旧システムのデータが必要だった」という手戻りを防ぐ

なお、顧客との過去のやり取りを「意味で検索したい」というニーズがある場合は、活動履歴の蓄積とは別の設計が必要です。この点は顧客対応履歴をNext.js×AIで検索できる仕組みの設計で扱っている内容で、本記事の「情報を構造化して一元管理する」話とは目的が異なります。過去のやり取りを曖昧な言葉で探したいのか、案件の進捗を管理したいのかによって、優先すべき設計は変わります。

内製の費用感はどのくらいか?

当社の開発費用は1時間11,000円(税込)が基準です。対象データ量・既存システムとの連携範囲によって工数は変わるため、ヒアリング後に要件定義・開発・移行・テストの各工程を見積もり、概算をご案内します。

顧客・案件・活動履歴の3機能程度の最小構成であれば、既存の受発注・見積システムと同程度の規模感になることが多いですが、正確な工数はデータ移行の複雑さ(表記ゆれの多さ、連携先SaaSの数)に左右されます。お客様が開発工数をご自身で見積もる必要はありません。

判断材料として比較しやすいのは、以下の2つの費用を並べることです。

  • 既製CRM/SFAを使い続けた場合の年間コスト。 月額料金 + カスタマイズオプション費用 + 連携ツールの費用を年間換算する
  • 内製した場合の初期費用 + 保守費用。 保守費用の考え方はNext.js保守運用の費用と契約で扱った月額固定・チケット制の考え方がそのまま当てはまります

既製CRM/SFAの一般的な料金水準

自社が今どのくらいの料金帯にいるかを把握するために、主要ツールの公開されている料金体系(課金モデルの違い)を整理します。

ツール課金モデル目安の料金帯(公開情報)
kintoneユーザー数に応じたプラットフォーム課金月額1,000円台〜/ユーザー
HubSpot有償シート数に応じたシート課金無料プランあり、有償は月額2,000円台〜/シート
Zoho CRMユーザー課金月額1,000円台〜/ユーザー(上位プランはより高額)
Salesforceユーザー課金月額数千円〜/ユーザー(AI活用の上位プランはさらに高額)

これらは基本プランの目安であり、カスタマイズオプションや連携ツールを追加するとユーザー数×月額の何倍にも膨らむことがあります。基本料金は安いが、自社仕様に近づけるためのオプション費用が積み上がっている——その状態であれば、内製の初期費用と比較する価値があります。 逆に、基本プランの範囲で業務が回っているなら、内製に切り替えるメリットは小さくなります。

SaaS疲れの整理と判断軸は中小企業の「SaaS疲れ」を解消するでも扱っているので、複数のSaaSを見直すタイミングであればあわせて確認してください。

まとめ

顧客・案件情報が複数のExcel・SaaSに分散し、担当者の記憶に頼った運用になっているなら、内製での一元管理を検討するタイミングです。顧客・案件・活動履歴の3テーブルを軸に、自社の営業プロセスに合わせたフェーズ設計を行い、既存の受発注・見積データと同じ基盤に置くことで、部門をまたいだ参照がしやすくなります。移行は顧客マスタの統合から始め、進行中の案件だけを先に移す段階的な進め方が現実的です。

私たちは、Next.js × Firebase構成での業務システム開発を、中小企業の実際の営業プロセスに合わせて内製する形でお手伝いしています。顧客・案件管理に限らず、「既存SaaSの一部だけ内製したい」という部分的な相談も歓迎します。15分のカジュアルな相談も受け付けていますので、要件が固まっていない段階でもお気軽にご相談ください。

よくある質問

既製のCRM/SFAを使いながら、一部だけNext.jsで内製することはできますか?

可能です。たとえば「顧客マスタと活動履歴は既製CRMのまま使い、案件管理だけをNext.jsで内製してAPI連携する」といった部分的な構成も選べます。ただし連携の複雑さが増えるため、どこまでを内製するかは業務上のボトルネックがどこにあるかで判断するのが現実的です。

顧客データの移行中に営業活動を止めずに進めることはできますか?

できます。旧SaaS・Excelと新システムを並行稼働させる期間を設け、進行中の案件から段階的に移すのが一般的な進め方です。全件を一度に切り替える必要はありません。

個人情報を含む顧客データを内製システムで扱う場合、注意点はありますか?

アクセス権限の設計(誰が全顧客を閲覧できるか、担当顧客のみに制限するか)と、退職者のアカウント無効化のフローを事前に決めておく必要があります。既製CRMが標準で備えている権限管理機能を、内製側でも最初から設計に含めておくことが重要です。

案件のフェーズ設計を後から変更することはできますか?

できます。ただし過去のデータに新しいフェーズをどう当てはめるかの移行ルールを決めておかないと、フェーズ別の集計が不正確になります。フェーズを変更する際は、変更前後のデータの扱いを最初に決めておくことをお勧めします。

データ移行の名寄せ作業はAIでどこまで自動化できますか?

表記ゆれ(会社名の法人格表記、担当者名の異体字など)の候補抽出はAIで大きく工数を圧縮できます。ただし最終的な「同一顧客かどうか」の判断は、業務知識を持つ担当者の確認を挟むのが安全です。全自動での名寄せは、誤って別会社を統合してしまうリスクがあります。

技術仕様・対象バージョンは本文と参照先をご確認ください。

最終更新:2026年9月11日

Share this article

要件整理から始める無料相談

ヒアリング後、ご希望に応じて当社で工数を算定し、概算と進め方をご案内します。

無料相談を申し込む

先に整理したい方は発注前の検討シート・AI相談プロンプトをご利用ください。未確認の項目は空欄のままご相談いただけます。

次に読む記事

ALL ARTICLES →

プライバシーポリシー

株式会社ゼットリンカー(以下、「当社」といいます。)は、お客様の個人情報の重要性を認識し、 その保護の徹底を図るため、以下のプライバシーポリシー(以下、「本ポリシー」といいます。)を定めます。

1. 個人情報の定義

本ポリシーにおいて「個人情報」とは、生存する個人に関する情報であって、 当該情報に含まれる氏名、生年月日その他の記述等により特定の個人を識別することができるもの、 及び他の情報と容易に照合することができ、それにより特定の個人を識別することができることとなるものを指します。

2. 個人情報の収集

当社は、お客様が当社のサービスをご利用になる際、お客様の個人情報を収集することがあります。収集する個人情報は以下の通りです:

  • 氏名
  • メールアドレス
  • 電話番号
  • 会社名・組織名
  • 住所
  • その他当社が定める入力フォームにお客様が入力する情報

3. 個人情報の利用目的

当社は、お客様からご提供いただいた個人情報を、以下の目的で利用します:

  • お客様への連絡やサービスの提供
  • お客様からのお問い合わせへの対応
  • 当社サービスの改善や新サービスの開発
  • メールマガジンの配信(お客様の同意がある場合)
  • 契約や法令等に基づく権利の行使や義務の履行
  • その他、上記利用目的に付随する目的

4. 個人情報の第三者提供

当社は、以下の場合を除き、お客様の同意なく個人情報を第三者に提供することはありません:

  • 法令に基づく場合
  • 人の生命、身体または財産の保護のために必要がある場合であって、本人の同意を得ることが困難である場合
  • 公衆衛生の向上または児童の健全な育成の推進のために特に必要がある場合
  • 国の機関もしくは地方公共団体またはその委託を受けた者が法令の定める事務を遂行することに対して協力する必要がある場合

5. 個人情報の管理

当社は、お客様の個人情報を正確かつ最新の状態に保ち、個人情報への不正アクセス、 個人情報の紛失、破損、改ざん及び漏洩などを防止するため、 セキュリティシステムの維持・管理体制の整備等の必要な措置を講じ、安全対策を実施し個人情報の厳重な管理を行います。

6. 個人情報の開示・訂正・削除

お客様は、当社に対してご自身の個人情報の開示を求めることができます。 また、開示の結果、個人情報の内容が事実でないことが判明した場合には、 速やかに訂正または削除に応じます。

7. 導入事例の公開について

当社は、お客様から依頼いただいたプロジェクトを導入事例として記事にさせていただく場合があります。導入事例として公開する場合は、以下の点に配慮いたします:

  • 機密情報や個人情報は公開いたしません
  • 社名を公開する場合は、公開内容について事前にお客様に確認いただきます
  • 社名を非公開とする場合でも、お客様のご要望に応じて公開内容を確認いただくことが可能です

8. Cookie(クッキー)の使用について

当社のウェブサイトでは、お客様により良いサービスを提供するため、Cookie を使用することがあります。 Cookie により個人を識別できる情報を収集することはありません。 お客様はブラウザの設定により Cookie の受信を拒否することができます。

9. SSL(Secure Socket Layer)について

当社のウェブサイトはSSLに対応しており、ウェブブラウザとウェブサーバーとの通信を暗号化しています。 お客様が入力する個人情報は自動的に暗号化されて送受信されるため、 万が一、第三者が傍受した場合でも内容を解読することは困難です。

10. プライバシーポリシーの変更

当社は、必要に応じて、本ポリシーの内容を変更することがあります。 変更後のプライバシーポリシーについては、当社ウェブサイトに掲載したときから効力を生じるものとします。

11. お問い合わせ

本ポリシーに関するお問い合わせは、以下の窓口までお願いいたします。

株式会社ゼットリンカー

〒160-0023

東京都新宿区西新宿3丁目3番13号西新宿水間ビル2F

代表取締役: 金原隆利

お問い合わせ先: info@zetlinker.com

制定日:2024年1月1日

最終改訂日:2026/9/11

利用規約

この利用規約(以下、「本規約」といいます。)は、株式会社ゼットリンカー(以下、「当社」といいます。)が 提供するウェブサイトおよびサービス(以下、「本サービス」といいます。)の利用条件を定めるものです。 お客様は、本規約に同意した上で、本サービスをご利用ください。

第1条(適用)

1. 本規約は、お客様と当社との間の本サービスの利用に関わる一切の関係に適用されるものとします。

2. 当社は本サービスに関し、本規約のほか、ご利用にあたってのルール等、各種の定め(以下、「個別規定」といいます。)を することがあります。これら個別規定はその名称のいかんに関わらず、本規約の一部を構成するものとします。

3. 本規約の規定と個別規定の規定が異なる場合は、個別規定において特段の定めなき限り、個別規定の規定が優先されるものとします。

第2条(定義)

本規約において使用する以下の用語は、各々以下に定める意味を有するものとします。

  • 「利用契約」とは、本規約を契約条件として当社とお客様との間で締結される、本サービスの利用契約
  • 「知的財産権」とは、著作権、特許権、実用新案権、意匠権、商標権その他の知的財産権(それらの権利を取得し、またはそれらの権利につき登録等を出願する権利を含みます。)
  • 「投稿データ」とは、お客様が本サービスを利用して投稿その他送信するコンテンツ(文章、画像、動画その他のデータを含みますがこれらに限りません。)

第3条(本サービスの提供)

1. お客様は、本規約に同意の上、当社の定める方法によって利用登録を申請し、当社がこれを承認することによって、本サービスを利用することができるようになります。

2. 当社は、お客様に以下のいずれかの事由があると判断した場合、利用登録の申請を承認しないことがあり、その理由については一切の開示義務を負わないものとします。

  • 利用登録の申請に際して虚偽の事項を届け出た場合
  • 本規約に違反したことがある者からの申請である場合
  • その他、当社が利用登録を相当でないと判断した場合

第4条(ユーザーIDおよびパスワードの管理)

1. お客様は、自己の責任において、本サービスのユーザーIDおよびパスワードを適切に管理するものとします。

2. お客様は、いかなる場合にも、ユーザーIDおよびパスワードを第三者に譲渡または貸与し、もしくは第三者と共用することはできません。

3. 当社は、ユーザーIDとパスワードの組み合わせが登録情報と一致してログインされた場合には、そのユーザーIDを登録しているお客様自身による利用とみなします。

第5条(禁止事項)

お客様は、本サービスの利用にあたり、以下の行為をしてはなりません。

  • 法令または公序良俗に違反する行為
  • 犯罪行為に関連する行為
  • 本サービスの内容等、本サービスに含まれる著作権、商標権ほか知的財産権を侵害する行為
  • 当社、ほかのお客様、またはその他第三者のサーバーまたはネットワークの機能を破壊したり、妨害したりする行為
  • 本サービスによって得られた情報を商業的に利用する行為
  • 当社のサービスの運営を妨害するおそれのある行為
  • 不正アクセスをし、またはこれを試みる行為
  • 他のお客様に関する個人情報等を収集または蓄積する行為
  • 不正な目的を持って本サービスを利用する行為
  • 本サービスの他のお客様またはその他の第三者に不利益、損害、不快感を与える行為
  • 他のお客様に成りすます行為
  • 当社が許諾しない本サービス上での宣伝、広告、勧誘、または営業行為
  • 面識のない異性との出会いを目的とした行為
  • 当社のサービスに関連して、反社会的勢力に対して直接または間接に利益を供与する行為
  • その他、当社が不適切と判断する行為

制定日:2024年1月1日

最終改訂日:2026/9/11