SlackとEmbeddingAPIを連携した、問い合わせ対応の担当部署自動アサインについて

SlackとEmbeddingAPIを連携した、問い合わせ対応の担当部署自動アサインについて

はじめに

こんにちは、ZOZOTOWNアプリのバックエンド開発を担当している佐藤です。弊社では、お客様からの問い合わせに対して、開発エンジニアも調査に関わります。この記事では、OpenAI社のEmbedding APIを活用し、お客様への返信プロセスを簡略化した事例をご紹介します。

目次

課題

開発部門が対応するお客様への返信プロセスについて、既存の対応フローは以下の通りでした。

CS改善-自動化前

問い合わせを調査する上で、「対応チームへのエスカレーション判断が属人化している」ことに課題感がありました。ZOZOTOWNの仕様全般に関する問い合わせは1つのSlackチャンネルで受け付けており、担当チームが多岐にわたるため、振り分け役が必要でした。この状況により以下の問題が発生していました。

  • 内容の精査と担当チームへの振り分けが特定メンバーに依存
  • 月100件程度の通知を捌くため、エンジニアの作業が中断される
  • 会議などでアサインが遅れると、リードタイムに影響する
  • 担当不明・アサイン漏れなどのヒューマンエラーが生じる

解決アプローチ

これらの課題をまとめて解消するため、エスカレーションの振り分けを自動化できないか検討しました。もともと問い合わせ対応のデータはGoogleスプレッドシートで個人情報を省いた状態で管理しており、類似判定に使える十分な事例データが揃っていました。そのため、対応データを元に担当チームを特定できるEmbedding APIを選定しました。主な技術構成は以下の通りですが、なるべくコストをかけない制約の中で、適切な対応チームをSlackで自動メンションする「問い合わせ自動振り分けBot」ができました。

CS改善-自動化後

主な技術構成

ツール・サービス 役割・用途
Slack 問い合わせ投稿(ワークフロー)と調査ログの管理
Zapier Slack投稿をトリガーに、Embedding APIを呼び出す。結果をスプレッドシートに登録する
Embedding API 問い合わせ文をベクトル形式に変換
GAS(Google Apps Script) ベクトル比較処理、Slack通知メッセージの生成
Googleスプレッドシート 問い合わせ内容、ベクトル、回答までのリードタイムなどの情報を一元管理

補足事項

  • 当初Zapierでは類似度計算ができなかったため、比較処理はGASで代替
  • Googleスプレッドシートには自動で振り分けられたチームと実際に対応したチームを記録し、精度改善に活用
  • Embedding APIの利用コストは月間約100件で1円未満に収まっており、ランニングコストも非常に低い

導入による効果

属人化の排除

  • 特定メンバーや時間帯に依存しない即時対応が可能になった
  • 月単位の正答率は約82%で、例外的な問い合わせだけを人が対応すれば良い状態になった

作業コストの削減

  • 通知処理の自動化により、他作業への割り込みが解消できた
  • 回答までの平均リードタイムが約0.4営業日短縮と、シームレスな返信が実現できるようになった

得られた学び

  • データ蓄積が属人化を解消に効果的であった
  • Slack・Zapier・GASの構成は小規模から導入しやすく、柔軟なスケーラビリティを持つ
  • Embedding APIの活用により、過去の問い合わせ知見を機械的に再利用する仕組みを作れた

まとめ

データを取ること自体が業務改善に繋がり、日々の「ちょっとした判断」や「仕分け作業」からでも無理なく始められることが分かりました。Slackを起点とした業務オーケストレーターは拡張性があり、Embedding APIを組み合わせることで、属人化や作業負荷といった課題は着実に解消されました。なにより、「一秒でも早くお客様に返答したい!」という想いを、届けられる体制を作れたことが最大の成果となりました。

さいごに

ZOZOでは、一緒にサービスを作り上げてくれる方を募集中です。ご興味のある方は、以下のリンクからぜひご応募ください。

corp.zozo.com

カテゴリー