はじめに
kintoneの見積管理アプリにChatGPTを組み込んで、ビジネスコンテキストを考慮した賢い異常値チェック機能を作る方法を紹介します。
従来の異常値検出は「値引き率30%以上なら警告」といった機械的なルールが中心でした。
しかし実際のビジネスでは、顧客との関係性や時期、業界の慣習などを総合的に判断する必要があります。
この機能では、ChatGPTがそうした複雑な要因を理解して、以下のように柔軟な判断をします。
- 顧客関係を考慮: 10年来の優良顧客なら大きめの値引きも戦略的に妥当と判断
- 時期を考慮: 決算期の在庫処分なら大きめの値引きも理解できると判断
- 業界知識を活用: IT業界では保守費用で回収するパターンもあると理解
警告
ChatGPT含むAIによる判定は、必ずしも正しいとは限らないので、最終的な判断は人間が行ってください。
ここでのサンプルはあくまで意思決定をサポートするためのものとお考えください。
完成イメージ
今回のカスタマイズを適用することで、kintoneの見積管理アプリにAI異常値チェック機能を追加できます。
見積内容を入力後、「異常値チェック実行」ボタンをクリックすると、ChatGPTがビジネスコンテキストを考慮して分析し、4段階のリスク評価と具体的な改善提案を表示します。
次のような判定結果が表示されます。
- 🚨 高リスク: 新規顧客への50%値引きなど、財務リスクが高い場合
- ⚠️ 要確認: 決算期の45%値引きなど、条件付きで妥当な場合
- 💡 低リスク: 軽微な懸念がある場合
- ✅ 正常: 問題のない適性な見積の場合
注意事項
- 今回の例はあくまでサンプルです。 AIの特徴として、必ずしも正しい答えを導き出せるとは限りません。
- OpenAI APIの利用には料金が発生します。
詳細は、以下のOpenAI公式サイトを参照してください。
公式サイト - 見積データがOpenAIのサーバーに送信されるため、機密性の高いデータの場合はデータマスキングを検討してください。
アプリの準備
見積管理アプリを次のように作成します。
| フィールドの種類 | フィールドコード | 備考 |
|---|---|---|
| 文字列(1行) | 顧客名 | 見積対象の顧客名です。 |
| ドロップダウン | 業界 | IT/製造業/小売/サービス/建設から選択します。 |
| 数値 | 従業員数 | 顧客企業の規模を表します。 |
| ドロップダウン | 顧客ランク | 新規/既存/優良から選択します。 |
| 文字列(1行) | 商品・サービス名 | 見積対象の商品・サービス名です。 |
| 数値 | 単価 | 商品・サービスの単価(円)です。 |
| 数値 | 数量 | 見積数量です。 |
| 計算 | 見積金額 | 単価×数量で自動計算されます。 |
| 数値 | 値引率 | 値引き率(%)です。 |
| 計算 | 最終金額 | 値引き後の最終金額で自動計算されます。 |
| 文字列(複数行) | 備考 | 追加情報や特記事項を記載します。 |
| 数値 | 過去取引回数 | 過去の取引実績回数です。 |
| スペース | ai_check_space | AI異常値チェック結果を表示する領域です。 要素IDに「ai_check_space」を設定してください。 |
サンプルコード
以下のJavaScriptとCSSファイルを設定画面より指定してください。
指定方法はヘルプの
JavaScriptやCSSでアプリをカスタマイズする
を参考してください。
- JavaScript:
kintone-estimate-ai-check.js - CSS:
kintone-estimate-ai-check.css(見た目のスタイルはCSSに分離しています)
kintone-estimate-ai-check.js
ChatGPTとの連携に必要なAPIキーの取得方法については後述します。
|
|
kintone-estimate-ai-check.css
スタイルシートにより、AIチェック結果を見やすくデザインします。
|
|
サンプルコードの解説
以下、コードを具体的に解説します。
ChatGPTを利用するための準備
カスタマイズでChatGPTを利用するために、まずはChatGPTのAPIキーを取得する必要があります。
OpenAI
にアクセスしてアカウントを作成し、そちらでAPIキーを生成できます。
この記事では取得方法の詳細の説明を割愛します。
ChatGPT APIのエンドポイントURLと上記で取得したAPIキーを次のように定義します。
|
|
APIの利用には所定の料金が発生しますのでご注意ください。
詳細は、以下のOpenAI公式サイトを参照してください。
公式サイト
警告
APIキーは秘密情報なので、絶対に公開しないでください。
APIキーの情報が漏洩するとAPIを自由に実行できてしまうため、kintoneのJavaScriptの開発においても慎重に扱ってください。
-
Usage Limit
をかけることで、万が一キーが漏れて多く利用されたり、APIを使いすぎたりすることは避けられるので、ぜひUsage Limitの設定を確認してみてください。
- cybozu develper networkでは、認証情報の秘匿にプラグインを利用する方法を推奨しています。
詳しくは以下の記事を確認してください。
異常値チェック機能ロジック
この異常値チェック機能処理では、ChatGPTにビジネスコンテキストを含む詳細な情報を送信し、構造化された判定結果を受け取ります。
|
|
重要なポイントは、単純な数値チェックではなく、ビジネスコンテキストを含めることです。
- 顧客属性: 新規/既存/優良の区別、過去取引回数
- 業界特性: IT業界と製造業では常識が相違
- 時期情報: 決算期などの季節要因
- 特記事項: 備考欄の追加情報
必要に応じてプロンプトを修正することで、判断を厳しくしたり、やさしくしたりできます。
JSON解析とエラーハンドリング
ChatGPTの応答は必ずしも純粋なJSONではなく、マークダウンのコードブロックで囲まれている場合があります。
そのため、以下のようにコードブロックにも対応した解析処理を実装しています。
|
|
この処理により、ChatGPTがコードブロックなどを含んだ応答でも、テキストに埋め込まれたJSONでも適切に解析できます。
リスクに応じたアイコン
検出結果はリスクレベルに応じたアイコンで表示され、直感的に判断できるようになっています。
|
|
各チェック項目には具体的な改善提案も含まれるため、何が問題でどうすればよさそうかがわかります。
実用的な活用例
ケース1: 新規顧客への高額すぎる値引き
入力内容
- 顧客: 新規顧客(従業員数200人)
- 商品: ITシステム導入
- 値引率: 45%
AI判定結果
高リスクと判断されます。
ケース2: 優良顧客への高額値引き
入力内容
- 顧客: 優良顧客(取引回数15回)
- 商品: 保守契約更新
- 値引率: 20%
- 備考: 複数年契約
AI判定結果
低リスクと判断されます。
おわりに
本記事では、kintoneとChatGPTを融合させた見積書の異常値チェック機能の手法について紹介しました。
kintoneとChatGPTを駆使し従来の単純なルールベースでは実現できない、ビジネスコンテキストを考慮した総合的な判断を可能にします。
見積管理だけでなく、契約書レビューや提案書の作成支援など、多岐にわたるシーンで利用できうると思います。
この記事がAIを使った業務効率化の一例としてご参考になると幸いです。
このTipsは、2025年08月版kintoneで動作を確認しています。
