【スクリプト付き】問い合わせ内容を自動分類!GASとChatGPTで効率化する方法
はじめに
概要
Google Apps Script(GAS)とOpenAI APIを使って、会社への問い合わせメールを自動的に適切な部署へ振り分けるシステムを作ることができます。
このシステムのメリット
問い合わせ内容を読んで、自動的に担当部署(総務、人事、経理、営業、ITサポートなど)を判断します
手作業での仕分けが要らなくなるので、スピーディーに各部署へ連絡できます
管理者の仕事が楽になり、対応時間も短くなります
必要な技術
Google Apps Script:問い合わせを振り分けるためのプログラム
OpenAI API:問い合わせ内容を理解して、担当部署を判断するAI
実際の使い方
定義した関数を実行するだけでできます!
案件のご相談はこちらから
こちらの技術をカスタマイズして、さらに高度なものを開発したい方はぜひお気軽にご連絡ください。
X(Twitter)のDMでもお問い合わせいただけます。X(Twitter)での問い合わせはこちら
スプレッドシートの準備
新しいGoogleスプレッドシートを作成します。
シートの1行目に以下の列名を追加してください。
A列: 問い合わせ内容
B列: 分類結果(部署名)
GASスクリプトの作成
スプレッドシートのメニューから「拡張機能」→「Apps Script」を選択し、GASエディタを開きます。
エディタが開いたら、以下のコードを貼り付けてください。
const OpenAI_API_KEY = PropertiesService.getScriptProperties().getProperty('OPENAI_API_KEY');
const MODEL_NAME = "gpt-4o"; // モデル名を定義
// OpenAI APIを呼び出す関数
function callOpenAI(systemPrompt, userPrompt) {
const url = "https://api.openai.com/v1/chat/completions";
const payload = {
model: MODEL_NAME,
messages: [
{ role: 'system', content: systemPrompt },
{ role: 'user', content: userPrompt }
]
};
const options = {
method: "post",
contentType: "application/json",
headers: { Authorization: "Bearer " + OpenAI_API_KEY },
payload: JSON.stringify(payload),
muteHttpExceptions: true
};
try {
const response = UrlFetchApp.fetch(url, options);
const result = JSON.parse(response.getContentText());
if (response.getResponseCode() === 200) {
return result.choices[0].message.content.trim();
} else {
throw new Error(`エラーが発生しました: ${result.error.message}`);
}
} catch (error) {
Logger.log(error);
return "エラーが発生しました";
}
}
// 問い合わせ内容を部署ごとに分類する関数
function classifyDepartment(content) {
const systemPrompt = `次の問い合わせ内容に最も適した部署を選び、分類してください。問い合わせを理解し、最も関連する部署を選択してください。出力する内容は、以下のリストから選んだ部署名のみとしてください。
- 総務
- 人事
- 経理
- 営業
- ITサポート
- その他
# Steps
1. 読み手として、提供された問い合わせ内容を読んで、記載されている情報を分析してください。
2. 問い合わせの内容から、その内容がどの部署に関連しているかを判断してください。
3. 判断の結果、以下の部署のリストからひとつ選んでください(選べない場合は「その他」を選んでください)。
# Output Format
部署名のみを出力してください。`;
const validDepartments = ["総務", "人事", "経理", "営業", "ITサポート", "その他"];
const response = callOpenAI(systemPrompt, content);
const departmentsFound = validDepartments.filter(department => response.includes(department));
if (departmentsFound.length === 1) {
return departmentsFound[0]; // 1つだけ部署が見つかった場合、それを返す
} else {
return "不明"; // 複数あるか、1つも見つからない場合は不明
}
}
APIキーの設定
GASエディタの左側メニューから「⚙️設定」(プロジェクト設定)をクリック
「スクリプトのプロパティ」セクションを開く
「行を追加」ボタンをクリック
以下の内容を入力:
プロパティ名: OPENAI_API_KEY
値: あなたのOpenAI APIキー
終わりに
今回ご紹介した問い合わせ自動振分システムは、組織のニーズに合わせて様々なカスタマイズが可能です。
カスタマイズ例
振分先部署の追加・変更
問い合わせの緊急度判定機能の追加
社内チャットツールとの連携
部署ごとの担当者への自動メール通知
問い合わせ内容の統計分析機能
回答テンプレートの自動提案機能
発展的な活用方法
過去の問い合わせ履歴を学習データとして活用
AIの判断根拠を確認できる機能の追加
複数拠点での情報共有体制の構築
顧客管理システム(CRM)との連携
お困りの際は
システムの導入やカスタマイズについて、ご不明な点がございましたら、以下の連絡先までお気軽にご相談ください:
お仕事の依頼・相談について
提供できるサービス
私は、以下のようなシステム開発とコンテンツ作成を幅広くサポートしています。OpenAI API・ファインチューニングをはじめとするさまざまな技術を活用し、お客様のニーズに合わせたソリューションを提供します。
自動化システムの構築:AIを利用したカスタマーサポート、FAQシステム、チャットボットなど、業務効率化を図るためのシステムを構築します。ニーズに応じて最適なツールや技術を組み合わせて対応します。
GPTs/Dify開発:OpenAIの技術を活用し、カスタムGPTモデルやDifyを使用したシステム開発をサポートします。
コンテンツ作成:AIを活用したコンテンツ作成を支援します。ブログ記事、マーケティング資料、教育コンテンツなど、さまざまな分野でのコンテンツを作成します。
詳しくはこちら:
案件のご相談はこちらから
これらの技術やサービスに興味がある方、または具体的なプロジェクトのご相談がある方は、ぜひお気軽にご連絡ください。お客様のニーズに合った最適なソリューションを提供いたします。
X(Twitter)のDMでもお問い合わせいただけます。X(Twitter)での問い合わせはこちら