📖 約8分で読めます | 🆓 デモモード搭載 (APIキー不要)
朝7時、メーラーを開くと未読メールが100通溜まっている。
見積依頼か、納期確認か、クレームか、新規取引相談か。
1通ずつ件名と本文を読んで担当者に振り分ける作業に、毎日30分が消えていた。
今回作ったのは「問い合わせメールを6カテゴリに自動分類してくれるアプリ」。
1通ずつでも、CSV一括でもOK。緊急度と推奨担当まで判定して、結果はCSVで出力できる。
コードは Python 約200行、Claude Code に話しかけて 10分で作った。
📦 コード一式は GitHub で公開準備中 (MITライセンス予定)
この記事で得られること
- ✅ 問い合わせメールを6カテゴリに自動分類するアプリの実装手順
- ✅ Claude API で構造化出力 (JSON) を安定させるプロンプト設計
- ✅ Streamlit のタブUIで「単一処理」と「CSV一括」を1画面に
- ✅ デモモードでAPIキーなしで読者も試せる設計パターン
- ✅ 緊急度判定 + 推奨担当のロジック付与方法
Claude Code とは (30秒で説明)
ターミナルで claude と打つだけで起動する、Anthropic公式のAIコーディングアシスタント。
日本語で「○○のアプリ作って」と話しかけると、フォルダ構造の設計・ファイル生成・コード実装・README執筆まで一気通貫で処理する。
- 料金: Claude Pro ($20/月) または Max プラン
- 動作環境: ターミナル (Windows / Mac / Linux) + VS Code 拡張
- 強み: ローカルファイル操作権限を持つ「同僚」として動く
関連記事の発注メール→発注書AIと同じパイプラインで作っているので、メール処理AIの応用編として読んでもらえる。
問い合わせメール振り分け、何がそんなに大変なのか

製造業の事務作業で見落とされがちなのが、問い合わせメールの一次振り分け。
取引先からのメールはバリエーションが多い:
- 「部品Aの追加見積もりお願いします」 → 営業へ
- 「先日の納品分に変形があります」 → 品質保証へ (しかも緊急)
- 「5/30の納期確認」 → 製造管理へ
- 「新規取引のご相談」 → 営業の新規開拓担当へ
- 「前回の納期遅延について」 → 上長へエスカレ
- 「カタログ請求」 → 総務へ
これを件名と本文を読みながら振り分ける。問題は3つある:
- 件名だけでは判断できない ことが多い (「お問い合わせ」「ご相談」だけのタイトル)
- 緊急度の判定が個人差ある (不良品連絡を「通常」に分類してしまい翌日対応 → クレーム発展)
- 担当者のキャパで偏る (営業に集中すると見積が滞留)
朝の30分が消える上に、振り分けミスが後工程の遅延につながる。AIに任せられないか、というのが今回のテーマ。
完成したアプリ
streamlit run app.py で起動するWebアプリ。タブが2つある。
タブ1: 単一メール分類
┌──────────────────────────────────────┐
│ 📬 問い合わせメール仕分けAI │
├──────────────────────────────────────┤
│ [📝 単一メール] [📂 CSV一括] │
│ │
│ 📝 件名: [部品Aの追加見積依頼 ] │
│ ✉️ 本文: ┌──────────────────────┐ │
│ │ ○○工業の山田です... │ │
│ └──────────────────────┘ │
│ [🤖 分類する] │
│ │
│ ✅ 分類: 見積依頼 │
│ ✅ 緊急度: 通常 │
│ ✅ 推奨担当: 営業 │
│ 📝 要約: 部品Aの追加発注見積依頼 │
└──────────────────────────────────────┘
タブ2: CSV一括
数十〜数百件の問い合わせを一括処理して、結果をCSVダウンロード。
分類ごとの棒グラフと緊急件数アラートが付く。
Claude Code への指示文 (これだけ)

ターミナルで claude を起動して、こう打ち込んだだけ。
問い合わせメールを6カテゴリに自動分類するStreamlitアプリを作って。
カテゴリ: 見積依頼 / 納期確認 / クレーム / 新規取引相談 / 不良品連絡 / その他
機能:
- タブ1: 単一メール (件名+本文を貼り付け → 分類+緊急度+推奨担当+要約を返す)
- タブ2: CSV一括 (件名と本文の2列CSV → 一括分類 → 結果CSVダウンロード)
- 緊急度: 緊急/通常/低 を判定
- 推奨担当はカテゴリから自動マッピング
- デモモード搭載 (APIキーなしで動かせる)
LLM: Anthropic Claude (claude-sonnet-4-6)
.env でAPIキー管理
待ち時間2〜3分。
プロジェクトフォルダ・app.py・requirements.txt・README.md・サンプルCSV まで全部生成された。
生成されたコード (中核80行)
Claude Code が出してきたコードのキモ。
import os
import json
import anthropic
import pandas as pd
import streamlit as st
from dotenv import load_dotenv
load_dotenv(override=True)
client = anthropic.Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])
CATEGORIES = ["見積依頼", "納期確認", "クレーム",
"新規取引相談", "不良品連絡", "その他"]
ASSIGNEES = {
"見積依頼": "営業",
"納期確認": "製造管理",
"クレーム": "上長エスカレ",
"新規取引相談": "営業 + 新規開拓",
"不良品連絡": "品質保証 (緊急)",
"その他": "総務",
}
def classify_email(subject: str, body: str) -> dict:
prompt = f"""次の問い合わせメールを分類してください。
カテゴリ (必ずこの中から1つ): {' / '.join(CATEGORIES)}
緊急度 (必ずこの中から1つ): 緊急 / 通常 / 低
要約: 30〜50字で要点を抽出
メール件名:
{subject}
メール本文:
---
{body}
---
以下のJSONのみで返答してください:
{{"分類": "...", "緊急度": "...", "要約": "..."}}
"""
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=512,
messages=[{"role": "user", "content": prompt}],
)
result = json.loads(response.content[0].text.strip())
result["推奨担当"] = ASSIGNEES.get(result["分類"], "総務")
return result
ポイント:
– カテゴリと緊急度を必ずリストから選ばせることで、自由生成を抑止
– 要約は字数指定で長くなりすぎないよう制御
– JSONのみで返させ、コードブロック装飾を後処理で除去
– 推奨担当はマッピングで自動付与 (Claudeに判定させるとブレる)
200行ある全体コードは GitHub で公開している。
Claude を採用した理由

問い合わせメール分類タスクで一番難しいのは「緊急度の判定」。
言外のニュアンス (「先日納品」「お早めに」のような曖昧表現) を汲んで「緊急」と判定できるか。
ここで Claude の日本語文脈理解の強さが効いた。
実際テストすると、「先日納品の部品Bに変形あり」というメール本文に「至急」も「緊急」も書かれていないのに、Claude は 緊急 と判定する。「変形」「生産影響」というキーワードと文体のニュアンスから判断している。
構造化 JSON 出力の安定性も決め手のひとつ。指定したスキーマ通りのキー名で返ってくるので、後処理がほぼ不要だった。
そして何より、コーディング工程まるごと Claude Code に巻き取れるのが最大の利点。今回のアプリも、日本語で話しかけるだけで200行のコードと README が同時に生まれた。実装スピードがそのまま事業スピードになる。
💡 製造業向け AI ツール選定をもっと知りたい方へ
製造業現場のAI比較記事
実測: before / after

| 項目 | 手作業 (想定) | このアプリ |
|---|---|---|
| 100通の振り分け時間 | 約30分 | 約3分 (CSV一括) |
| 緊急案件の取りこぼし | 月1〜2件 (想定) | 0件 (緊急タグで即可視化) |
| 担当者の偏り | あり (営業に集中等) | カテゴリ分散で把握 |
| 開発工数 | — | 10分 (Claude Codeに指示) |
| 月額API費用 (想定) | — | 約 ¥1,000〜2,000 (1日100通×営業日) |
「30分→3分」が一番派手な数字だが、取りこぼし0 が現場には効く。
不良品連絡を「通常」と判定して翌日対応 → 顧客クレーム発展、というよくある事故が消える。
デモモード搭載: APIキーなしで試せる

第1号と同じく、コードには DEMO_MODE を組み込んでいる。
API_KEY = os.environ.get("ANTHROPIC_API_KEY", "")
DEMO_MODE = (not API_KEY) or ("dummy" in API_KEY.lower())
def classify_email(subject, body):
if DEMO_MODE:
return _keyword_classify(subject, body) # キーワード分類
# 通常モード: Claude API 呼び出し
...
デモモードでは「不良」「変形」が含まれていれば不良品連絡、「見積」が含まれれば見積依頼、と単純なキーワード分類で動く。
精度は低いが「UIの流れ」と「出力フォーマット」を確認できる。
APIキーを .env に入れた瞬間、本物の Claude 分類に切り替わる。
注意点 5つ
1. AI分類は補助、最終判断は人間
「緊急」と判定されたメールは必ず人間が再確認すること。誤判定で対応漏れになるより、誤検知で1秒確認する方がコストが低い。
2. 顧客データの送信に注意
メール本文を Anthropic API に送信する。
Anthropic はデフォルトで入力データを学習に使わないが、社内のセキュリティ規程・取引先との合意は別途確認すること。
3. APIキーは絶対に Git に上げない
.gitignore に .env を入れてあるが、念のため git status で確認してからコミット。漏れたら課金事故になる。
4. カテゴリは6つに絞ったほうがいい
「営業」を「新規」「既存」「代理店」と細分化すると分類精度が落ちる。6カテゴリくらいが Claude にも判定しやすく、運用上も覚えやすい。
5. 自社特有のカテゴリ追加は学習データ要
「装置メンテ依頼」のような自社固有の問い合わせを新カテゴリで追加するなら、5〜10件のサンプル例を prompt に含めて Few-shot にすると精度が上がる。
次の一歩

このアプリは「分類」までだが、ここから先は連携の世界。
- Gmail / Outlook API 連携: 受信メールを自動取得 → 分類 → 担当者にSlack通知
- CRM連携: 分類結果を Salesforce / HubSpot に自動記録
- RAG導入: 取引先ごとの過去履歴を参照して「いつもの○○さんからの問い合わせ」を識別
- 返信ドラフト生成: 分類後、カテゴリに応じた返信文を Claude に書かせる
- 音声入力: 電話問い合わせを Whisper でテキスト化 → 同じパイプライン
- ダッシュボード化: Streamlit に集計画面追加 → 月次レポート自動化
📚 AI導入を体系的に学びたい方へ
中小製造業のAI導入ロードマップ: 失敗しない始め方
FAQ
Q1. プログラミング未経験でも作れる?
A. Claude Code は日本語で話しかけるだけなので、コードを1行も書かずに完成する。本記事のコードはあくまで「Claude Code が生成したもの」を抜粋している。
Q2. 月間コストはどれくらい?
A. 1日100通 × 営業日20日 = 月2,000通の処理で、claude-sonnet-4-6 の場合 約 ¥1,000〜2,000/月 (想定)。デモモードは無料。
Q3. 既存のメーラー (Outlook/Gmail) に組み込める?
A. このアプリ単体ではテキスト貼付 or CSV だが、Gmail API / Outlook Graph API と組み合わせれば受信メールの自動取り込みも可能。
Q4. CSVが日本語で文字化けする
A. CSVは UTF-8 (BOM付き推奨) で保存。Excel で開く場合は「データ → テキストから」でUTF-8を指定する。
Q5. 商用利用は OK?
A. コードは MITライセンス で公開。商用利用・改変・再配布すべて自由。ただし AI 分類結果の責任は利用者にある (最終判断は人間が担う前提)。
まとめ
朝30分の振り分け作業
↓ Claude Codeに10分相談
仕分けAIアプリ (Python 200行)
↓ 1日100通を処理
作業時間 3分 / 緊急取りこぼし 0件 / 月額API ¥1,500
問い合わせメールの一次振り分けは、AIに任せて人間は判断業務に専念する時代。
まずはデモモードでUIを試して、感触がよければ自社の問い合わせメール5件で本物のClaudeを動かしてみてください。
📦 ソースコード
GitHub 公開準備中 (MITライセンス予定)。準備完了次第、本記事に URL を追記します。
関連記事
- 発注メールのアプリ、AIに相談したら5分で作れた
- 製造業AIツール3選: ChatGPT / Claude / Gemini の使い分けガイド
- 中小製造業のAI導入ロードマップ: 失敗しない始め方
- 中小製造業の現場で毎日30分削減できる自動化アイデア10選
免責事項
本記事の数値は想定値および実測値の混在です。導入効果は環境により異なります。
Claude API への送信内容はユーザー責任で管理してください。
更新情報
製造AIラボでは「中小製造業のためのAI活用事例」を不定期更新中。
ブックマークやRSSで定期的にチェックしてもらえれば嬉しい。
🎯 ChatGPT/Claude/Geminiを社内で使いこなすなら
ChatGPT・Claude・Gemini・Copilot・Difyを横断的に学べる「学び放題」が、現場での再現性が一番高いと感じています。月額¥14,800・縛り無し・合わなければ翌月解約OK。
期間限定:豪華7大特典つきキャンペーン中
▶ 月額16,280円で生成AIを好きなだけ学べる!「DMM 生成AI CAMP 学び放題」
![]()
※「合わない」と感じたらマイページから翌月解約OK・しつこい勧誘なし
🥷 Claude Code を本気で社内導入するなら
「自社の業務を Claude Code で自動化したいが何から手をつけるか分からない」中小製造業向けの伴走型トレーニング AI鬼管理。無料の業務効率化診断 (オンライン面談) で、自社のどこから自動化できるかが見える化される。
▶ AI鬼管理 | Claude Code活用の業務自動化トレーニング 無料診断を予約する
※公式LINE経由でも申込可・診断のみで無理な勧誘なし
🖥️ Claude Codeで作ったアプリを本格運用するなら
Streamlit/FastAPI/n8n/Difyなどを自由に立てて試したい開発・テスト用途には ConoHa VPSが最適。1.3円/時間〜でroot権限OK・最低利用期間なし・必要な間だけ起動して停止OK。
▶ VPSで色々なことを試したいなら【ConoHa VPS】がお薦め!
![]()
※時間課金プランなら検証だけで停止すれば数十円で完結


コメント