はじめに
問い合わせメールの対応は、どの企業でも欠かせない業務です。しかし、件数が増えると「どのメールから対応すべきか?」を判断するのが大きな負担になります。
そこで本記事では、Python × AI を活用し、問い合わせメールを自動仕分け&優先度判定する方法を解説します。ChatGPT APIなどの自然言語処理(NLP)技術を組み合わせれば、業務効率化が一気に進みます。
自動仕分け&優先度判定の流れ
システムの全体像は以下のようになります。
- メールサーバーから問い合わせメールを取得(IMAP/POP3)
- 件名・本文を抽出
- AIモデルで カテゴリ分類(例:請求、サポート、営業)
- AIモデルで 優先度スコアリング(高・中・低)
- データベースやExcelに保存、またはチャットツールに通知
必要なライブラリ
Pythonで実装する際に使う主なライブラリは以下です。
pip install openai imaplib2 pandas
- imaplib:メール取得
- pandas:結果の保存・集計
- openai:ChatGPT APIで分類・判定
サンプルコード:メールの自動分類
以下は、問い合わせメールをAIで自動仕分け&優先度判定するサンプルコードです。
import imaplib
import email
import openai
import pandas as pd
# OpenAI APIキー設定
openai.api_key = "YOUR_API_KEY"
# メールサーバーに接続
imap_host = "imap.example.com"
imap_user = "your_email@example.com"
imap_pass = "your_password"
mail = imaplib.IMAP4_SSL(imap_host)
mail.login(imap_user, imap_pass)
mail.select("inbox")
# 未読メールを取得
status, messages = mail.search(None, 'UNSEEN')
email_ids = messages[0].split()
results = []
for eid in email_ids[:10]: # サンプルとして10件
status, msg_data = mail.fetch(eid, "(RFC822)")
msg = email.message_from_bytes(msg_data[0][1])
subject = msg["subject"]
from_addr = msg["from"]
body = ""
if msg.is_multipart():
for part in msg.walk():
if part.get_content_type() == "text/plain":
body = part.get_payload(decode=True).decode("utf-8")
break
else:
body = msg.get_payload(decode=True).decode("utf-8")
# ChatGPT APIで分類と優先度判定
prompt = f"""
以下の問い合わせメールを分類して、優先度(高・中・低)を判定してください。
出力フォーマット: JSON {{ "category": "", "priority": "" }}
件名: {subject}
本文: {body}
"""
response = openai.ChatCompletion.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": prompt}]
)
result = response["choices"][0]["message"]["content"]
results.append({"from": from_addr, "subject": subject, "ai_result": result})
# pandasで保存
df = pd.DataFrame(results)
df.to_excel("classified_mails.xlsx", index=False)
print("仕分け結果を保存しました。")
活用例
- サポート担当 → 優先度「高」のメールのみSlack通知
- 経理部門 → 「請求」カテゴリをExcelに自動仕分け
- 営業部門 → 「新規相談」カテゴリをCRMに連携
メリット
- 処理のスピードアップ:メールを読む前に優先度を判定
- ヒューマンエラー防止:対応漏れや遅延を防ぐ
- スケーラブル:問い合わせ件数が増えても対応可能
まとめ
PythonとAIを組み合わせることで、問い合わせメールの自動仕分けと優先度判定が可能になります。業務効率化だけでなく、顧客対応の質向上にもつながります。
特にChatGPT APIを活用すると、従来の単純キーワード分類よりも精度の高い仕分けが実現できます。