Works
kintoneで粗利管理アプリを作った|赤字案件が開いてすぐ見える
現場が日報で原価を入れるだけで、案件を開くと原価合計・粗利・粗利率がカードで出る kintone のアプリ2本。粗利がマイナスの案件は赤いカードになります。架空の町工場のデータで作った構築記録です。
「この案件、結局いくら儲かった?」に、その場で答えられる仕組みを、AI(Claude)と組んで kintone(キントーン)で作りました。現場が日報で原価を入れるだけで、事務所で案件を開くと、原価合計・粗利・粗利率がカードで出ます。
作ったのはアプリ2本だけです。1本目に案件と受注額、2本目に原価(材料費・外注費・労務)を入れる。案件を開くと、2本目の原価を JavaScript が集めて、粗利と粗利率をカードにします。粗利がマイナスなら赤いカードに「赤字案件」の印が付く。kintone はスタンダードコース以上が要ります。
想定した困りごと
架空の町工場を1つ置いて、こういう困りごとがある前提で作りました。
- 案件ごとの粗利が見えてない。 会社全体の売上は分かるのに、「あの治具の仕事、儲かったんか?」には答えられん
- 原価の集計が月末の Excel 頼み。 材料費・外注費・手間をかき集めて数時間かかって、気づくのは納品のずっと後
- 前の案件が探せない。 「似た仕事をやったの、いつやっけ」で台帳や古いファイルをめくる
どれも元は、データが1か所に集まってないことです。なので、入れる場所を kintone の2本にまとめて、集計は人がやらん形にしました。
kintoneで作ったのはアプリ2本だけ


kintone はサイボウズのクラウドの仕組みで、プログラムを書かんでも業務のアプリを組み立てられます。
1本目は「案件管理」。案件名・顧客名・ステータス・受注日・納期・受注額を持っとって、下に「原価明細」として、その案件の原価の行が並びます。
2本目は「日報・原価入力」。現場が入れるのは、日付・案件・種別(材料費/外注費/労務)・金額の4つで、メモは空でもいい。案件は「取得」を押して1本目の一覧から選ぶ形(kintone のルックアップ)にしたので、案件名を打ち間違えることがありません。
粗利のカードの部分は JavaScript で、これは AI(Claude)に書かせました。案件の詳細の画面を開いた時に、2本目からその案件の原価を取ってきて、種別ごとに足して、受注額から引く。使ったのは kintone が公式に出しとる仕組み(画面を開いた時の合図、原価を取りにいく API、カードを置く場所)だけで、kintone の画面の作りに頼る書き方はしてません。月別の受注額やステータス別の件数のグラフは、kintone に元からある機能そのままです。
作る作業は、ほとんど AI に任せました。何を作るかは、AI が書き起こした設計のメモを見て私が決めて、私の手が要ったのは2か所だけです。空のアプリ2本を kintone の画面で作ったのと、AI が書いた JavaScript を kintone の設定の画面から入れたこと。どっちも、APIトークン(kintone を外から操作するための鍵)では通らん操作でした。欄の組み立てやサンプルのデータの投入は AI が進めたので、私のほうは詰まってません。
AI のほうは、その日に4つ引っかかっとります。1つ目は、1本目のステータスの欄に、フィールドコード(プログラムから欄を呼ぶ名前)として「ステータス」と付けたら保存できんかったこと。kintone ヘルプの「フィールドコードの設定上の注意」に、「ステータス」「作業者」「カテゴリー」などはフィールドコードに設定できんと書いてあります。「案件ステータス」に変えて通しました。残りの3つは、サンプルのデータを入れる時、ルックアップの確かめに1本目を見る権限が要って、2本の APIトークンをつないで渡す必要があったこと。JavaScript を入れる API が APIトークンでは呼べんかったこと(上の、私が画面から入れた所です)。CSV を kintone の画面から取り込めんで、API で入れたことです。
動作の確認用に、架空の町工場の案件12件と原価40行をサンプルとして入れてあります。社名も「〇〇サンプル」のような作り物です。手元のファイルの日時を見ると、設計のメモが2026年7月9日の13時55分、サンプルのデータと JavaScript が16時台、黒字と赤字の案件の画面の撮影が17時台(記事の画像はそれを18時10分に切り抜いた物)。組み立てから画面の撮影まで、その日のうちに終わっとります(kintone の画面でアプリを組んだ時刻は記録が無いので、この間のどこかです)。上の動画は、2026年8月15日に kintone の画面を録って作り直した物です。
赤字案件を開いたら、赤字が先に見えた

サンプルには、わざと赤字の案件を1件入れてあります。途中で寸法の変更が入って、追加工の外注費が膨らんだ、という設定です。
案件を開くと、赤いカードが先に目に入ります。「粗利 −36,000円/粗利率 −8.0%」。すぐ下の原価明細に「追加工(寸法変更対応)220,000円」が並んどるので、赤字の原因まで1画面で追えます。
受注は45万円、原価は48万6,000円。追加工の22万円が無ければ、原価は26万6,000円で、粗利は18万4,000円になるはずの案件でした。追加工1本で黒字が赤字にひっくり返っとる。数字が緑のカードのほうは別の案件で、受注35万円・原価26万円・粗利率25.7%です。どれもサンプルのデータから計算し直すと、画像の数字と合います。
前は題に「赤字案件が3秒で見える」、本文にも「案件を開いて3秒」と書いてましたが、言い過ぎでした。「3秒」は作る前の企画で付けた言い回しで、計った数字やないです。開いてから原価を取りにいく作りなので、カードは少し遅れて出ます(待ち時間は計ってません)。
この見本で置いた前提(原価は月末に Excel で集める)やと、こういう案件に気づくのは、早くても翌月に入ってからになります。その頃には、次の見積もりも同じ値付けで出しとるかもしれん。前の案件を探す時は、kintone の一覧で顧客名や期間で絞るだけで、台帳をめくらんで済みます。
自社で使うなら、ここを確かめてほしい
kintone のコース。 粗利のカードは JavaScript で出しとるので、ライトコースでは動きません。kintone の開発者向けの説明に「ライトコースをご契約の場合、JavaScriptやCSSを使用したカスタマイズを利用できません」とあります。公式の料金の頁では、スタンダードコースが1ユーザー月1,800円(税抜き)で、最小10ユーザー。なので月18,000円(税抜き)からです。まだ kintone を使ってへんなら、スタンダードコースを30日無料で試せます(どれも2026年10月22日に確認)。
スマホの画面。 今の JavaScript は、パソコンで詳細の画面を開いた時の合図(app.record.detail.show)にしか付けてへんので、スマホで案件を開いてもカードは出ません。出すなら、スマホの合図(mobile.app.record.detail.show)にも付けて、カードを置く場所の取り方もスマホ用(kintone.mobile.app.record.getSpaceElement)に変える必要があります。
本番で作り直す所。 この見本は見せるための形なので、使う会社の環境で作る時は次を変えます。
- 原価を案件の名前でひも付けとるので、同じ名前の案件が2つあると原価が混ざる。案件名を後から直すと、古い名前で入れた原価が拾えんようになる(kintone ヘルプの「ルックアップを設定する」に、参照先のレコードが変わっても、取得済みの値はそのまま維持される、とある)。本番は案件の番号でひも付ける
- 案件名に「"」が入ると、原価を取りにいく条件の文が崩れる。コードを読む限り、カードの所に「粗利の取得に失敗しました」と出るはず(ここは試してへん)
- 原価がまだ1行も無い案件(見積中など)は、粗利率が100%と出る。原価が0の時は「未計上」と出すように変える
- 1回に取りにいく原価は500行まで。1案件でそれを超えると、超えた分は足されず、粗利が実際より良く出る。なので、超えるなら取り方を分ける
見本を触ってもらえん理由。 このアプリは kintone の開発者ライセンスの環境で作りました。cybozu developer network の説明に、開発者ライセンスは本番の運用に使えず、ポートフォリオサイトやデモサイトとしての利用もできん、と書いてあります。なので、画面と動画で中身を見せる形にしています。作る時は、使う会社が契約した kintone に入らせてもらって、そこで組みます。頼まれた時も、まずは「案件ごとの粗利が見える」この1本から始めます。
Excel のままでいくか、kintone のようなクラウドに移すか、自前の Webアプリにするかで迷っとるなら、Excelの業務自動化はVBAかWebアプリかに比べ方を書いてます。売上の集計を自前の Webアプリで作った記録はCSVの売上集計アプリを1日で作った記録です。
案件ごとの粗利が見えんで困っとったら
今の Excel の台帳や、原価をどこに書いとるかを見せてもらえたら、kintone でどう組むか、どこまで自動で出せるかをこちらで書き起こします。