問い合わせ整理AIアシスタントの設計手順を順番に解説

Dify

前回は、問い合わせ整理アシスタントをどう設計するかを整理しました。

問い合わせ整理AIアシスタントの設計と重要なポイント
問い合わせ整理AIアシスタントの設計についてと、各ツールの役割分担について紹介しています。今後の拡張性を容易にするために各ツールの役割に重きを置いて設計しています。

今回は、実際にどう作っていくかを順番にまとめます。
WordPressで問い合わせを受けて、整理し、一覧化し、通知までつなげる流れを解説していきます。

問い合わせ整理アシスタントの流れ

おさらいになりますが、下記の流れで進みます。

  1. WordPressで問い合わせを受ける
  2. 通知メールをGmailで受ける
  3. GASで問い合わせ内容を取り出す
  4. Difyで要約・分類・優先度整理をする
  5. Google Sheetsへ保存する
  6. Slackへ通知する
ここまでつながると、問い合わせ内容を受け取るだけでなく、その後の整理まで含めて扱いやすくなると思います。

Step1. WordPressに問い合わせフォームを用意する

まずは、WordPress側で問い合わせフォームを用意します。
今回は Contact Form 7 を前提にしています。

項目は、次の内容があれば問題ありません。

  • お名前
  • 会社名
  • メールアドレス
  • 電話番号
  • お問い合わせ種別
  • お問い合わせ内容

あとで整理に使える情報を受け取れることを優先します。

通知メールの件名を決める

問い合わせ整理アシスタントでは、通知メールの件名も重要です。
Gmail側で対象メールを見分けやすくするため、件名は一定の形にそろえておきます。

たとえば、次のような形です。

【問い合わせ整理】[inquiry-type] [your-name]

このようにしておくと、あとでGmailのフィルタやラベル設定に使いやすくなります。

件名でフィルタリングしてラベルを張れるので件名を一定の形にすると便利です!

通知メール本文を固定形式にする

次に、通知メール本文を整えます。
ここはGASで情報を取り出しやすくするため、自由文ではなく固定形式にしておくのがポイントです。

--INQUIRY-START--
name: [your-name]
company: [your-company]
email: [your-email]
tel: [your-tel]
inquiry_type: [inquiry-type]
subject:
message:
[your-message]
received_at: [_date] [_time]
site_name: [_site_title]
--INQUIRY-END--

この形にしておくと、あとでGASが

  • 名前
  • 会社名
  • メールアドレス
  • 問い合わせ種別
  • 本文

を取り出しやすくなります。

フォームから送られてくるメールの内容をこちらの意図した形にしておくということです!

Step2. Gmailで問い合わせ用ラベルを作る

次に、Gmail側で問い合わせ整理用のラベルを用意します。

たとえば次のようなラベルを使います。

  • 問い合わせ
  • 問い合わせ-処理済み

そして、件名に 【問い合わせ整理】 を含むメールに 問い合わせ ラベルが付くようにしておきます。

ここでやりたいのは、問い合わせメールだけをまとめて扱える状態にすることです。

ラベル名は必ずそろえる

ここで使うラベル名は、あとでApps Script側で指定する名前と一致している必要があります。
少しの違いでも見つからなくなるので、ここは最初に統一しておくと安心です。

Step3. Google Sheetsを保存先として用意する

次に、整理結果を保存するGoogle Sheetsを用意します。
シート名は inquiries にしておくと分かりやすいです。

1行目には、たとえば次のようなヘッダーを入れておきます。

inquiry_id,gmail_message_id,received_at,source,source_detail,name,company,email,tel,inquiry_type,subject,message,summary,category,priority,priority_reason,recommended_action,reply_needed,reply_draft,raw_mail_subject,processed_at,processing_status,slack_notified,error_message

まず保存先があることが大切です。
問い合わせ情報と整理結果を1行で見られる形にしておくと、後でかなり扱いやすくなります。

Step4. DifyでWorkflowを作る

次に、Difyで問い合わせ整理用のWorkflowを作ります。

ここでは、問い合わせ内容を受け取って整理結果を返す部分を作ります。

今回Difyにやってもらうこと

Difyには、主に次のことを担当させます。

  • 要約
  • カテゴリ分類
  • 優先度整理
  • 優先度の理由
  • 推奨対応
  • 返信要否
  • 返信文のたたき台

メール本文そのものから情報を抜き出すのではなく、整理と判断を担当させる形にしています。

Workflowの構成

ノード構成はとてもシンプルです。

  • User Input
  • Code
  • LLM
  • Code
  • Output

この流れにしておくと、入力整形と出力補正を分けて確認しやすくなります。

OutputはGASへ返すための出口

ここは少し誤解しやすい部分です。
Difyは Output で終わっていますが、それで処理が完全に終わるわけではありません。

今回の構成では、GASがDify Workflow APIを呼び出し、DifyのOutputでまとめた結果をGASが受け取る形にしています。

流れとしては、

  1. GASが問い合わせデータを整える
  2. GASがDify Workflow APIを呼ぶ
  3. Difyが要約・分類・優先度整理を行う
  4. DifyのOutputに整理結果をまとめる
  5. その結果がAPIレスポンスとしてGASへ返る
  6. GASがGoogle Sheets保存とSlack通知を行う

という形です。

つまり、DifyのOutputは「Difyの中だけの終点」ではなく、GASへ整理結果を返すための出口として使っています。

User Inputで受ける項目

Difyへ渡す入力は、以下になります。

  • inquiry_id
  • source
  • source_detail
  • name
  • company
  • email
  • tel
  • inquiry_type
  • subject
  • message
  • received_at
  • raw_mail_subject
  • raw_mail_body

ここは、あとから別の入口へ広げるときにも使いやすいように共通の形にそろえておきます。

Step5. Apps Scriptで下準備をする

次に、Apps Script側を用意します。
ここで行うのは、Gmail、Dify、Google Sheets、Slackをつなぐための準備です。

Script Propertiesを設定する

Apps Scriptでは、IDやAPIキーなどをスクリプトプロパティへ入れておくと管理しやすくなります。

今回使う主な項目は次の通りです。

  • SPREADSHEET_ID
  • SHEET_NAME
  • GMAIL_LABEL_NAME
  • PROCESSED_LABEL_NAME
  • DIFY_API_URL
  • DIFY_API_KEY
  • DIFY_USER
  • SLACK_WEBHOOK_URL

↑d/ この間だけ /edit↑

ここで注意したいのは、SPREADSHEET_ID にはURL全体ではなく、スプレッドシートIDだけを入れることです。

Apps Scriptでやる処理

  1. 問い合わせラベル付きメールを取得する
  2. 本文から問い合わせ情報を取り出す
  3. Difyへ渡す形に整える
  4. Dify Workflow APIを呼ぶ
  5. 結果をGoogle Sheetsへ保存する
  6. Slackへ通知する
  7. 処理済みラベルを付ける

このGASが今回の仕組みの中継役であり、司令塔になります。

Step6. GASでGmailから問い合わせ内容を取得する

Script Propertiesの準備ができたら、次にGmailから問い合わせメールを読み取る処理を動かします。

ここでまず確認したいのは、

  • 対象ラベルが正しく取れているか
  • 対象メールを読めているか
  • 本文が想定通り取得できているか

の3点です。

この段階では、まだDifyまでつながなくても大丈夫です。
まずはメールを安定して取得できることを確認してください。

Step7. GASで問い合わせ情報を整える

次に、通知メール本文から必要な情報を抜き出します。

ここでは、

  • name
  • company
  • email
  • tel
  • inquiry_type
  • message
  • received_at

などを取り出し、Difyへ渡す共通の形に整えます。

この処理を入れておくことで、Difyは「整理すること」に集中でき役割を明確に分けるメリットになります。

Step8. GASからDify Workflow APIを呼ぶ

問い合わせ情報を整えたら、そのデータをGASからDifyへ送ります。

この構成では、DifyはGASからAPIで起動させます。
つまり、Difyが勝手に待ち受けるというより、GASがDifyを動かすイメージです。

そして、Dify側で整理した内容はOutputにまとめられ、APIレスポンスとしてGASへ返ってきます。
GASはその戻り値を受けて、保存や通知を行います。

入力値の名前がUser Inputの項目と合っているかを特に確認しておくとよいでしょう。

Step9. Difyの結果をSheetsへ保存する

Difyから整理結果が返ってきたら、それをGoogle Sheetsへ書き込みます。

  • 元の問い合わせ情報
  • 要約
  • カテゴリ
  • 優先度
  • 優先度の理由
  • 推奨対応
  • 返信要否

を一緒に保存しておくと、後で見返しやすくなります。

まずは、1件流したときに1行追加されるところまで確認してみてください。

Step10. Slack通知をつなぐ

最後に、Slackへ通知する処理を加えます。

通知文は、最初は要点が見えれば十分だと思います。
たとえば、次のような項目があると見やすくなります。

  • 優先度
  • 分類
  • 問い合わせ種別
  • 氏名
  • 要約
  • 推奨対応
  • 返信要否

この通知があることで、漏れ防止や優先度の高い内容への対応を行うことができます。

確認するときの順番

実装時は、一気に最後まで確認しようとするより、次の順で見ると対応しやすいかと思います。

  1. フォーム送信で通知メールが届くか
  2. Gmailラベルが付くか
  3. Apps Scriptでメールを読めるか
  4. 本文から情報を取り出せるか
  5. Difyへ送れているか
  6. Difyの整理結果を受け取れているか
  7. Google Sheetsへ保存できるか
  8. Slackへ通知できるか

この順で見ていくと、どこで止まっているか切り分けしやすくなります。

最初は毎朝1回でも十分

まずは、

  • 毎朝1回
  • 平日朝1回

のような運用でも十分な導入効果を感じることができると思います。

業務として慣れてきたら1時間毎や15分毎の巡回にして対応力を高めてもいいかと思います。

まとめ

内容としてはシンプルなツールになりますが、AI導入の効果を早期に実感できる構成かと思います。
また、今ある業務の流れを大きく変更せず導入できる点もAI導入の入り口として最適に近いのではないでしょうか。

  • フォームを用意する
  • 通知メールの形を整える
  • Gmailで対象メールを受ける
  • Apps Scriptで内容を取り出す
  • Difyで整理する
  • Google Sheetsへ保存する
  • Slackへ通知する

問い合わせ対応を少し整理しやすくしたいとき、「問い合わせ整理AIアシスタント」を利用してみてください。

WordPress×Dify×GASで問い合わせ整理アシスタント実装概要
WordPress×Dify×GASで問い合わせ整理アシスタントツールの概要を紹介しています。問い合わせを自動で要約、優先度、その理由、返信たたき台などを自動で用意してくれる仕組みになります。
問い合わせ整理AIアシスタントの設計と重要なポイント
問い合わせ整理AIアシスタントの設計についてと、各ツールの役割分担について紹介しています。今後の拡張性を容易にするために各ツールの役割に重きを置いて設計しています。
  • 問い合わせ業務を改善したい
  • 抜け漏れを減らしたい
  • 自社の運用に合う形で仕組みを考えたい

という方がいれば、無料相談・お問い合わせからお気軽にご連絡ください。
今の運用に合わせて、どこまで自動化するのがちょうど良いか、一緒に整理できればと思います。

問い合わせフォームはこちら

コメント

タイトルとURLをコピーしました