🪆

Difyで始める「私たちの」AIボット。業務フローに組み込む自動化の第一歩

に公開

こんにちは!グロービスでDevEx(デベロッパーエクスペリエンス)チームに所属するemi084です。私は、弊社が提供する「GLOBIS 学び放題」のバックエンドエンジニアとして働きながら、社内業務の効率化プロジェクトにも参画しています。

弊社では、営業部門から私たち開発部門に対して、日々システムの操作方法やお申込のルールなどについての質問が寄せられます。

その背景には、いくつかの課題がありました。

  • 資料には情報が記載されているはずなのに、その資料にたどり着けない。
  • 営業部門は、お客様への返答のために今すぐ答えを必要としている。
  • 一方、私たち開発部門はリソースが逼迫しており、すぐに回答できない状況にある。

私たちはこの課題を解決するため、生成AIを活用した社内ボットを開発しました。

しかし、AIの導入には大きな懸念もありました。それは「AIが間違った情報を答えて、お客様にご迷惑をかけてしまったらどうしよう?」という点です。

そこで私たちは、AIに自由な回答をさせるのではなく、「正しい情報が載っているZendeskのFAQ記事のみを返信する」という、安全で堅実なアプローチを「はじめの一歩」として進めることにしました。

この記事では、私たちがどのようにしてその仕組みを構想したのか、その「はじめの一歩」をご紹介します。課題解決のアプローチとして、エンジニアでない方にもヒントになれば幸いです。

「個人の業務改善」から「組織のワークフロー改善」へ

生成AIを利用する上で私たちが意識しているのは、個人の業務効率アップはもちろんのこと、組織全体のスループット(処理能力)を向上させることです。そのためには、ワークフローにAIをいかに上手く組み込み、組織全体の業務の流れを最適化するかが重要になります。

単発的な業務改善ではなく、組織の仕組み自体をAIと連携させることで、持続的な効率化と生産性向上を実現できると考えています。

私たちのこだわり

  • まずは既存の業務フローを大きく変えない: 導入の心理的ハードルを低くすることを最優先しました。メンバーは今まで通り、Slackの特定チャンネルで質問を投稿するだけです。新しい作法を覚える必要はありません。
  • スモールスタートで始める: 最初から完璧なAIを目指すのではなく、まずは「正しい情報のありかを教えてくれる」という一点に絞りました。失敗のリスクを最小限に抑え、素早く価値を届けることを優先したためです。
  • 安全性を最優先する: AIに回答を「生成」させると、どうしても嘘の情報(ハルシネーション)が混じるリスクがあります。そこで今回はAIに「検索」だけをさせ、情報の出典が明確なZendeskの記事URLを返すことに徹しています。

AIボットの構成

それでは、私たちが作成したボットの仕組みをご紹介します。

登場するツールたち

  • Slack: みんなが普段使っているコミュニケーションの場。
  • Zendesk: 正しい情報が蓄積された「公式図書館」。
  • Dify: Zendeskの情報をすべて読み込み、最適な記事を見つけ出す「賢い司書」。
  • Zapier: SlackとDifyの間で伝言を運ぶ「メッセンジャー」。
  • Google Apps Script (GAS): Zendeskの最新情報をDifyに定期的に届け続ける「自動更新係」。

なぜこの構成なのか?

なぜ、このような複数のツールを組み合わせた構成を考えたのでしょうか。
まず第一に、FAQを管理しているZendeskの標準機能だけでは、私たちの要件を満たせなかったからです。私たちのナレッジは複数の製品ブランドにまたがって管理されており、Zendeskの標準ボットではブランドを横断した柔軟な検索が難しいという壁がありました。

そこで主役として選んだのが、生成AIアプリを開発できるプラットフォーム「Dify」です。

しかし、Dify単体でもまだ課題がありました。Difyの標準機能や既存のプラグインでは、「特定のSlackチャンネルへの投稿をすべて拾う」という動きを実現できなかったのです(ボットにメンションすれば反応するプラグインはありましたが、それを利用すると既存の業務フローを変える必要がありました)。

そこで「メッセンジャー」として白羽の矢が立ったのが「Zapier」です。Zapierを使うことで、Slackの投稿をトリガーに、Difyの機能を呼び出すという理想の連携が実現できます。

こうして、今回の仕組みを支えるツールが決まりました。

フロー1:質問にボットが応答する流れ

  1. Slackで質問: メンバーがチャンネルで質問を投稿します。
  2. Zapierが検知: 新しい投稿をZapierが検知し、その内容をDifyへ送ります。
  3. Difyが検索: Difyが、蓄積されたZendeskの記事の中から、質問内容に最も関連性の高い記事を探し出します。
  4. Zapierが返信: Difyが見つけた記事のURLを、ZapierがSlackのスレッドに自動で返信します。

実際にボットが応答している様子がこちらです。
AIアシスタント

フロー2:Zendeskの知識をDifyに同期する流れ

このボットの賢さの秘訣は、情報が常に最新であることです。そのための自動更新フローも用意します。ここで活躍するのがGoogle Apps Script(GAS)です。少し専門的に聞こえるかもしれませんが、このGASのコードはGeminiに「Zendeskの記事をCSVで取得したい」とお願いして作成してもらいました。AIをうまく活用することで、このような連携も比較的簡単に実現できます。

  1. GASが定期実行: Google Apps Scriptが、決まった時間にZendeskから記事データを取得します。
  2. CSVファイルを作成: 取得した記事をCSV形式のファイルにまとめます。
  3. Difyへアップロード: 作成したCSVファイルを、Difyのナレッジベースに自動でアップロードし、知識を更新します。

この「自動更新」の仕組みにより、一度作って終わりではなく、ボットが自動的に賢くなり続ける環境が実現できます。

まとめ:はじめの一歩を踏み出そう

今回は、私たちが計画している「はじめの一歩」としての社内ボット構想をご紹介しました。まだリリースしたばかりで、これからフィードバックループを回していく段階ですが、手応えを感じています。

本記事で提案した構想は、高度なプログラミング知識がなくても、DifyやZapierといったツールを組み合わせることで実現できます。

大切なのは、完璧なシステムをいきなり作ろうとしないことです。組織全体のスループットを上げることを意識しつつも、まずは小さく始めること。

この記事が、あなたの職場での取り組みの参考になれば嬉しいです。

GLOBIS Tech

Discussion