0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

自己ホストで B2B 案件パイプラインを管理する — NeNe Deal を Docker で試す

0
Last updated at Posted at 2026-06-23

はじめに

小さな B2B チームでは、商談や見込み案件の管理がスプレッドシートやチャットに散らばりがちです。

一方で、いきなり大きな SFA / CRM を入れると、入力項目が多すぎたり、現場が更新しなくなったりします。見たいのはまず「誰の案件が、いくらで、どの段階にあり、今月どれくらい着地しそうか」だったりします。

NeNe Deal は、小さな B2B チーム向けの自己ホスト型案件パイプライン OSS(MIT)です。案件カード、ステージ、確度、簡易フォーキャストを扱い、受注した案件は NeNe Invoice に draft client / draft quote として引き渡せます。

基盤には、API-first / OpenAPI / MCP 対応を前提にした軽量 PHP フレームワーク NENE2 を使っています。

リリース状況(2026年6月時点) — NeNe Deal は MVP パイプライン機能がほぼ揃っています。バックエンド、Kanban UI、ログイン、RBAC、ステージカスタマイズ、Invoice handoff、MCP read tools は実装済みです。残作業は Suite catalog entry など周辺整理が中心です。この記事は Docker での試用・評価向けです。MIT ライセンスですが 無保証 です。

誰向けの記事か — スプレッドシート案件管理から抜けたい小規模 B2B チーム、または「軽量な営業管理 OSS を自社サーバーで持てるか」を検証したいエンジニア向けです。


NeNe Deal でできること(この記事の範囲)

項目 内容
案件管理 取引先名、金額、ステージ、確度、担当者、メモ
Kanban ステージ別に案件を並べて、営業状況を俯瞰
Forecast API / MCP で確認できる、確度を掛けた月次のざっくり着地見込み
ステージ設定 管理者がステージを作成・並べ替え・削除
Invoice handoff 受注案件を NeNe Invoice の draft client / draft quote に送る
MCP AI ツールから案件や forecast を read-only で確認

しないこと — 最終的な見積書・請求書の発行、消費税計算、適格請求書 PDF、入金消込、督促は扱いません。請求の正本は NeNe Invoice、入金消込は NeNe Clear の領域です。


1. Docker で起動する

Docker で API と MySQL を起動します。

git clone https://github.com/hideyukiMORI/nene-deal.git
cd nene-deal
docker compose build
docker compose up -d
docker compose exec app composer install
docker compose exec app composer migrations:migrate

ヘルスチェック:

curl -i http://localhost:8110/health

"status":"ok" と database check が返れば API 側は起動しています。

フロントエンドは Vite で起動します。

npm install --prefix frontend
npm run dev --prefix frontend

起動後:

用途 URL
API http://localhost:8110
フロントエンド http://localhost:5187

管理画面では、ログイン後に Kanban を中心に案件状況を確認します。

NeNe Deal のログイン画面


2. 案件カードを作る

NeNe Deal の入力項目は、最初から重くしすぎない方針です。

案件カードには、たとえば次のような情報を入れます。

  • 取引先名または案件名
  • 金額
  • ステージ
  • 確度
  • 担当者
  • メモ
  • クローズ予定日

営業管理では、入力項目を増やすほど「更新されない管理表」になりやすいです。NeNe Deal は、まず会議で使える最小情報に絞っています。

案件カードを作る


3. Kanban で案件の状態を見る

案件はステージ別の Kanban で確認できます。

たとえば:

  • Lead
  • Qualified
  • Proposal
  • Negotiation
  • Won
  • Lost

のようなステージを使い、案件を進行状況ごとに並べます。

月曜の営業会議で「今どの案件が詰まっているか」「どのステージに案件が偏っているか」を見るには、表計算シートより Kanban のほうが分かりやすいことがあります。

なお、ステージを Won に移動しただけでは NeNe Invoice への引き渡しは実行されません。請求側へ送る場合は、後述の Send to Invoice を明示的に実行します。

ステージ別に案件を確認できる Kanban ボード

スマートフォン幅でも確認できる Kanban ボード


4. Forecast を API / MCP で確認する

NeNe Deal は、金額と確度から簡易 forecast を出す API を持っています。

対象月を YYYY-MM で指定すると、その月にクローズ予定日(expected_close_date)がある open 案件を集計します。たとえば、100万円の案件が確度50%なら、weighted pipeline では 50万円として扱います。

厳密な売上予測ではなく、経営者や営業責任者が「指定月の着地感」を見るための rough forecast です。現時点の記事では専用の Forecast 画面を前提にせず、API / MCP から確認できる月次サマリーとして扱います。

GET /api/v1/forecast?month=2026-06

5. 受注したら NeNe Invoice に引き渡す

NeNe Deal の重要な境界は、Deal は案件の正本であって、請求の正本ではない ことです。

案件が won になったら、オペレーターが明示的に Send to Invoice を実行します。Deal から Invoice へは HTTP 経由で draft client / draft quote を作成し、最終的な見積書・請求書・税・PDF は NeNe Invoice 側で確定します。

この handoff には、NeNe Invoice 側の URL と bearer token の設定が必要です。Deal は Invoice のデータベースには直接書き込まず、HTTP API 経由で draft を作成し、成功後に link id だけを保持します。

つまり:

NeNe Deal    = 案件・ステージ・見込み
NeNe Invoice = 見積・請求・税・PDF

という分担です。

NeNe Invoice に引き渡す

この分離により、営業管理のために請求ロジックを重複実装しなくて済みます。データベースも共有せず、必要な連携は HTTP API に限定します。


6. MCP から案件を確認できる

NeNe Deal は MCP read-only tool catalog も用意しています。

AI アシスタントに、たとえば次のように聞ける構成です。

2026年6月クローズ予定の案件 forecast をステージ別にまとめて

MCP ツールは read-only です。案件の確認、Kanban board、forecast などは参照できますが、Deal の write 操作や Invoice handoff は人間の確認が必要です。営業・請求の境界を壊さないため、AI が勝手に請求側へ進める設計にはしていません。


7. NeNe ファミリーの中での位置づけ

NeNe Deal は、NeNe ファミリーの中では営業パイプラインを担当します。

Contact -> Deal -> Invoice -> Clear
                    |
                  Vault
  • Contact: 問い合わせを受ける
  • Deal: 見込み案件を管理する
  • Invoice: 受注後の見積・請求を管理する
  • Clear: 入金消込・督促を管理する
  • Vault: 受け取った証憑を保存する

1つの巨大な業務スイートにするのではなく、小さな責務ごとの OSS として分けています。


まとめ

NeNe Deal は、スプレッドシートと大きな SFA / CRM の間にある、小さな B2B 案件管理ツールです。

  • 案件を Kanban で見る
  • API / MCP で月次の rough forecast を確認する
  • ステージを自社向けに調整する
  • 受注後は NeNe Invoice に draft として引き渡す
  • 請求・税・入金消込には踏み込まない

まずは Docker で触って、自社の案件管理にちょうどよい軽さかどうかを試してみてください。


リンク

種類 URL
リポジトリ https://github.com/hideyukiMORI/nene-deal
NeNe Invoice https://github.com/hideyukiMORI/nene-invoice
NENE2 https://github.com/hideyukiMORI/NENE2
ポートフォリオ一覧 https://github.com/hideyukiMORI

フィードバックは GitHub Issues へ歓迎します。


── 筆者: 森 秀之(彩音インターナショナル)— 自己ホストの業務ツール群を実運用中。
中小企業向けの業務システムを料金公開・固定価格で開発しています。
🔗 ayane.co.jp

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?