顧客情報、案件の進捗、対応履歴、タスク、コメントを一元管理できる、汎用の案件管理システムを開発しました。
顧客情報と案件情報を別々のExcelやスプレッドシートで管理していると、情報の更新漏れや二重入力が発生しやすくなります。
また、案件数や担当者が増えるにつれて、次のような課題も起こりやすくなります。
- 現在どの案件が進行中なのか分からない
- 顧客への最終対応日が分からない
- 担当者しか案件の状況を把握していない
- 対応期限やタスクの抜け漏れが発生する
- 金額情報を閲覧できるユーザーを制限したい
- 業種に合う項目が既存の案件管理ツールにない
- 削除や変更の履歴を確認できない
今回開発した顧客・案件進捗管理システムでは、顧客、案件、対応履歴、タスクを一つのシステム上で関連付けて管理できます。
カスタム項目、案件ステータス、マスター、権限などを設定から変更できるため、業種や会社ごとの運用に合わせたカスタマイズにも対応しやすい設計です。
案件管理システムのデモを公開しています
実際の画面や操作性を確認できるデモ環境を公開しています。
デモサイト
ログイン情報
- メールアドレス:
admin@example.com - パスワード:
password
デモ利用時の注意事項
デモ環境は一般公開されています。入力した内容は、ほかの利用者から閲覧、編集、削除される可能性があります。
氏名、住所、電話番号、メールアドレス、実在する顧客名、案件名、契約金額、その他の個人情報や機密情報は入力しないでください。
デモデータは、予告なく削除または初期化する場合があります。
顧客・案件進捗管理システムとは
今回開発したシステムは、顧客情報を起点に、案件、対応履歴、タスク、コメントを一気通貫で管理するWebシステムです。
単に案件の一覧を表示するだけではなく、顧客に対してどのような案件が進行しているか、誰が担当しているか、直近でどのような対応を行ったか、次に何をする必要があるかをまとめて確認できます。
主なデータの関係は次のとおりです。
顧客情報
↓
案件情報
↓
対応履歴
↓
タスク・期限
↓
コメント・進捗状況
営業案件、制作案件、工事案件、士業の相談案件、採用案件など、顧客や案件単位で業務が進行するさまざまな業種を想定しています。
開発した案件管理システムの主な機能
顧客情報の管理
顧客の一覧表示、登録、編集、詳細確認に対応しています。
顧客ごとに担当者や案件を関連付けられるため、顧客情報と案件情報を別々に管理する必要がありません。
主な機能は次のとおりです。
- 顧客一覧
- 顧客登録
- 顧客編集
- 顧客詳細
- 顧客担当者の管理
- 類似する顧客の重複警告
- 重複した顧客データの統合
- 顧客ごとの案件一覧
- 顧客ごとの対応履歴
顧客名の表記揺れや二重登録を防ぐため、重複警告と統合機能も用意しています。
案件情報の管理
案件ごとに担当者、ステータス、進捗率、金額、期限などを管理できます。
一覧画面だけでなく、案件の進行状況を視覚的に把握できるカンバン表示にも対応しています。
- 案件一覧
- 案件登録
- 案件編集
- 案件詳細
- 担当者設定
- 案件ステータス
- 進捗率
- 案件金額
- 開始日・期限
- タグ
- カンバン表示
案件ステータスは固定ではなく、管理画面から自由に設定できます。
例えば、営業案件であれば、次のようなステータスを設定できます。
問い合わせ
↓
初回ヒアリング
↓
提案中
↓
見積提出
↓
契約
↓
対応中
↓
完了
制作会社であれば、「要件確認」「デザイン中」「実装中」「確認待ち」など、自社の業務フローに合わせた設定が可能です。
対応履歴の管理
電話、メール、訪問、オンラインミーティングなど、顧客に対して行った対応を履歴として記録できます。
対応履歴を残しておくことで、担当者が不在の場合でも、ほかのメンバーがこれまでの経緯を確認できます。
- 対応日時
- 対応種別
- 対応内容
- 対応担当者
- 次回対応予定
- 関連する顧客・案件
顧客への対応内容を個人のメールやメモだけに残さず、社内で共有できる状態を作れます。
タスクと期限の管理
案件に関連する作業をタスクとして登録し、担当者と期限を設定できます。
- タスク名
- 担当者
- 期限
- 完了状態
- 関連案件
- コメント
- メンション
案件情報とタスク情報がつながっているため、タスク管理ツールを別に開いて案件名を探す必要がありません。
期限が近いタスクや未完了のタスクを確認することで、対応漏れを防ぎやすくなります。
コメントとメンション
顧客や案件に関する確認事項を、コメントとして残せます。
コメント内ではユーザーへのメンションにも対応しているため、案件に関する相談や確認をシステム上で行えます。
チャットツールだけでやり取りすると、後から案件の経緯を探すのが難しくなる場合があります。
案件に直接コメントを残すことで、情報とコミュニケーションを関連付けて保存できます。
ダッシュボードで案件の状況を見える化
ログイン後のダッシュボードでは、案件やタスクの状況をまとめて確認できます。
- 進行中の案件
- ステータス別の案件数
- 担当者別の案件
- 期限が近いタスク
- 未完了タスク
- 最近更新された案件
管理者や担当者が、現在どの案件を優先して確認すべきか判断しやすい画面を目指しています。
カンバンで案件の進捗を確認
案件は一覧形式だけでなく、ステータスごとに並べたカンバン形式でも確認できます。
案件が現在どの工程にあるかを視覚的に把握できるため、定例会議や進捗確認にも利用できます。
例えば、次のような確認が可能です。
- 提案中の案件が何件あるか
- 確認待ちの案件が滞留していないか
- 特定の担当者に案件が集中していないか
- 完了に近い案件はどれか
案件ステータスを自社の業務に合わせて設定できるため、一般的な営業案件だけでなく、制作進行や業務委託案件などにも対応できます。
カレンダーで予定と期限を管理
カレンダーは、月、週、日の表示に対応しています。
案件の期限やタスクの予定を日付ごとに確認できるため、一覧画面では見落としやすいスケジュールも把握できます。
- 月表示
- 週表示
- 日表示
- 案件期限の確認
- タスク期限の確認
- 日付から関連情報を確認
案件管理とスケジュール管理を一つのシステム内で完結させることで、複数ツールへの二重入力を減らせます。
横断検索と保存済み検索条件
顧客、案件、対応履歴などを横断して検索できます。
検索条件や絞り込み条件は、ユーザーごとに保存可能です。
例えば、次のような検索条件を保存できます。
- 自分が担当する進行中案件
- 今月中に期限を迎える案件
- 特定のステータスで停止している案件
- 特定のタグが付いた案件
- 未完了タスクがある案件
毎回同じ条件を入力する必要がないため、日常業務で繰り返し使用する一覧をすぐに表示できます。
実務を想定した権限管理
案件管理システムでは、ユーザーによって閲覧できる情報や操作できる機能を分ける必要があります。
今回のシステムでは、4種類のロールを用意しています。
- システム管理者
- 管理者
- 一般ユーザー
- 閲覧専用ユーザー
単純に管理者と一般ユーザーを分けるだけでなく、一般ユーザーが閲覧できる案件の範囲も設定できます。
- すべての案件
- 自分が担当する案件のみ
- 自分が所属する部署の案件のみ
さらに、案件金額などの金額情報について、ユーザーごとに閲覧可否を設定できます。
これにより、案件の進捗は共有しつつ、見積金額や契約金額は一部のメンバーだけに表示するといった運用が可能です。
業種に合わせて変更できるカスタム項目
業種や企業によって、顧客や案件で管理したい項目は異なります。
例えば、工事案件では施工場所や工事種別、制作案件では公開予定日や制作物の種類、士業では相談種別や手続期限などが必要になります。
すべての業種向けの項目をあらかじめ固定すると、不要な入力欄が増え、画面も複雑になります。
そのため、今回の案件管理システムでは、顧客と案件にカスタム項目を追加できる設計にしています。
- 顧客用カスタム項目
- 案件用カスタム項目
- タグ
- 各種マスター
- 案件ステータス
業種ごとの項目の違いを設定で吸収し、個別のソースコード修正を減らすことを意識しています。
CSVインポート・エクスポート
既存のExcelやスプレッドシートから移行しやすいように、CSVのインポートとエクスポートに対応しています。
- 顧客データの取り込み
- 案件データの取り込み
- 登録データのCSV出力
- データ移行
- バックアップや集計への利用
既存データの項目や形式によっては、取り込み前のデータ整形が必要になります。
現在使用しているExcelやCSVを確認したうえで、移行方法や項目の対応関係を整理することも可能です。
操作履歴を監査ログとして保存
顧客情報や案件情報を複数人で管理する場合、誰がいつ何を変更したか確認できることが重要です。
今回のシステムでは、ユーザーの操作を監査ログとして記録します。
- 登録
- 編集
- 削除
- 復元
- 完全削除
- その他の重要操作
誤った変更が行われた場合の確認や、社内での説明責任に対応しやすい設計です。
論理削除・ゴミ箱・復元に対応
業務データは、削除操作を行ってもすぐにデータベースから消去しない論理削除を原則としています。
削除したデータはゴミ箱に移動し、必要に応じて復元できます。
- 論理削除
- ゴミ箱
- データの復元
- 権限を持つユーザーによる完全削除
操作ミスで顧客情報や案件情報を削除してしまった場合でも、ゴミ箱から戻せます。
完全削除については通常の削除とは権限を分け、意図しないデータ消失を防ぐ設計にしています。
v1では現場で毎日使う機能に絞っています
最初のバージョンでは、案件管理の中心となる機能を優先して実装しています。
一方で、次の機能は現時点では搭載していません。
- ファイル添付
- メール送信
- 外部サービス連携
- AI機能
- 帳票出力
- 複数企業が同じ環境を共有するマルチテナント構成
機能を増やしすぎると、操作が複雑になり、開発期間や運用コストも大きくなります。
まずは、顧客、案件、対応履歴、タスク、権限、検索など、現場で日常的に使用するコア機能に絞りました。
必要な機能は、実際の業務内容や利用人数、管理方法を確認したうえで追加できます。
顧客ごとに専用のシステム環境を構築
本システムは、複数企業のデータを同じ環境で管理する一般的なSaaSではなく、原則として顧客ごとに専用のシステム環境とデータベースを構築する前提です。
デモ環境ではVercelとNeonを使用していますが、本番環境では要件に応じて構成を検討します。
顧客ごとに専用環境を構築することで、次のような対応がしやすくなります。
- 会社独自の項目追加
- 画面や機能のカスタマイズ
- 独自の権限設定
- 社内ルールに合わせた運用
- 外部サービスとの個別連携
- 顧客ごとのリリース管理
完成済みの案件管理システムをベースにすることで、すべてをゼロから開発する場合と比べて、要件整理や初期開発を進めやすくなります。
案件管理システムの技術構成
今回のデモシステムでは、次の技術を使用しています。
| 領域 | 使用技術 |
|---|---|
| 言語 | TypeScript |
| フレームワーク | Next.js(App Router) |
| デモ環境 | Vercel |
| データベース | Neon(PostgreSQL) |
| DBアクセス | postgres.js |
| スキーマ管理 | SQLマイグレーション |
| 認証 | NextAuth(Credentials) |
| UI | Tailwind CSS |
| テスト | Vitest |
| タイムゾーン | Asia/Tokyo |
デモ環境とローカル開発環境では、Neonのブランチを分離しています。
業務ルールをUIやデータベース処理から分離
案件管理システムでは、権限やステータス遷移などの業務ルールが複雑になりやすくなります。
そこで、業務ルールはsrc/domain/配下に集約し、画面から直接SQLを実行しない構成にしています。
仕様書はdocs/specs/にまとめ、実装する機能と対応する形で管理しています。
特に次のような重要な処理については、Vitestによる回帰テストを追加できる構成です。
- ロールごとの操作権限
- ユーザーごとの閲覧範囲
- 金額情報の表示制御
- 案件ステータスの変更
- 論理削除と完全削除
- データの復元
画面が正常に表示されるだけでなく、業務上の重要なルールが意図せず変更されないことを重視しています。
依存ライブラリを増やしすぎない構成
今回のシステムでは、PrismaなどのORMやUIコンポーネントライブラリを使用していません。
データベースアクセスはpostgres.jsとSQL、画面のスタイルはTailwind CSSを中心に構築しています。
採用する技術を限定することで、次の点を重視しています。
- 依存ライブラリの削減
- データベース構造の把握しやすさ
- SQLマイグレーションへの一本化
- ライブラリ更新による影響範囲の縮小
- 顧客ごとのカスタマイズのしやすさ
ORMやコンポーネントライブラリを使わないことが、すべてのシステムに適しているわけではありません。
今回のプロダクトでは、構成を薄く保ち、仕様とデータ構造を直接把握しやすくする方針を選択しています。
ドキュメントを基準に開発
システムの構成や実装方針は、docs/architecture.mdなどのドキュメントに記録しています。
仕様変更が発生した場合は、コードだけを変更するのではなく、先にドキュメントを更新するルールです。
これにより、開発者やAIエージェントが同じ前提で実装を進めやすくなります。
- システムの対象範囲
- 採用する技術
- 実装しない機能
- 権限の考え方
- データの管理方法
- ディレクトリごとの責務
開発を継続するなかで、当初の設計方針が曖昧になることを防いでいます。
この案件管理システムが向いているケース
次のような課題がある企業や事業者に向いています。
- Excelで顧客と案件を管理している
- 複数のExcelやスプレッドシートに情報が分散している
- 担当者によって案件の管理方法が違う
- 対応履歴や次回対応予定を共有したい
- 案件の進捗をカンバンで確認したい
- タスクと案件を関連付けたい
- 部署や担当者ごとに閲覧範囲を制限したい
- 金額情報を一部のユーザーだけに表示したい
- 自社独自の項目やステータスを設定したい
- 削除や変更の操作履歴を残したい
- 既製の案件管理システムでは業務に合わない
- 自社専用の案件管理システムを構築したい
業務に合わせたカスタマイズが可能です
今回開発したシステムをベースに、業種や業務フローに合わせたカスタマイズを行えます。
例えば、次のような追加が考えられます。
- 顧客・案件の入力項目追加
- 独自の案件ステータス設定
- 承認フロー
- 見積書や請求書の出力
- PDFや画像の添付
- メール通知
- SlackやMicrosoft Teamsへの通知
- Googleカレンダー連携
- Google Drive連携
- 案件データの自動集計
- 売上予測
- グラフやレポート
- AIによる対応履歴の要約
- AIによる次回対応案の作成
- 既存システムとのAPI連携
すべての機能を追加するのではなく、現場で本当に必要な機能を整理してから開発することが重要です。
現在の管理方法、利用人数、権限、業務フローを確認し、優先順位を付けながら構成を検討します。
Excelによる案件管理からの移行もご相談ください
現在使用しているExcelやスプレッドシートを確認し、Webシステム化する範囲を整理できます。
- 現在管理している項目
- 担当者ごとの運用方法
- 入力や更新のタイミング
- 必要な検索条件
- 必要な権限
- 移行するデータ
- システム化せず残す業務
Excelの運用をすべて置き換える必要はありません。
複数人で更新する情報や、履歴管理が必要な部分だけをシステム化し、集計や一時的な作業はExcelに残す方法もあります。
顧客・案件管理システムの開発をご相談いただけます
hiro-dev-labでは、顧客管理、案件管理、進捗管理、タスク管理などの業務システム開発に対応しています。
要件が明確に決まっていない段階でも、現在のExcel、スプレッドシート、業務フローを確認しながら、必要な機能を整理できます。
対応可能な範囲は次のとおりです。
- 業務ヒアリング
- 現在の業務フロー整理
- 要求整理
- 要件定義
- 機能一覧の作成
- 画面一覧の作成
- データベース設計
- 権限設計
- プロトタイプ作成
- フロントエンド開発
- バックエンド開発
- テスト
- データ移行
- 公開・導入支援
- 運用後の追加開発
「Excelでの案件管理に限界を感じている」「既製のCRMや案件管理ツールでは業務に合わない」「自社専用の案件管理システムを作りたい」といった段階からご相談いただけます。
まずは、現在どのように顧客や案件を管理しているか、お聞かせください。
関連する開発実績
在庫数、入出庫履歴、発注、棚卸などを管理できる在庫管理システムのデモも公開しています。