はじめに
こんにちは、サーバーサイドエンジニアの中川(@tkdev0728)です。
今の私は機能開発の他に社内からの問い合わせ対応プロジェクトのリードエンジニアも行なっています。 今回は問い合わせ対応について回答者が回答以外に手作業で対応している部分を一部AIを活用して自動化したので何をやったのか、どうやってやったのかを紹介します。
背景
問い合わせ対応の業務内容としてはJiraチケットで起票された問い合わせに対する回答や調査を行うのですが、回答の他に管理・分析のために幾つかフィールドを埋める必要があります。

上記画像の赤枠が回答者が回答後に埋めるべきフィールドです。 それぞれ以下の理由で設定されています。
- ラベル
- 管理画面なのかアプリなのか、サーバー(SV)なのかiOSなのかAndroidなのかどの領域に関する問い合わせなのか分類に使う
- 影響している機能
- どの機能に関する問い合わせが多いのかの分類に使う
- 問い合わせナレッジへの登録
- 頻出する問い合わせ内容は社内ナレッジに残しておき、回答に使ったり起票前にみてもらったりしている。ナレッジに残すかどうかを判断するのに使う
- 問い合わせ分類
- 問い合わせ内容が不具合確認なのか、仕様確認なのか調査確認なのかなどの分類に使う
すぐ答えられる内容でチケットがすぐクローズできる場合は入れ忘れることは少ないのですが、調査に時間がかかったり起票者経由でクライアント様にヒアリングする場合などはクローズに時間がかかり、
クローズ時に入力し忘れることも少なくないです。
入力忘れ防止のためにSlack通知する仕組みもあるのですが、こちらの通知内容を見て多い時に気力が削がれる点を課題に感じていました。

本来やるべきことは問い合わせに対する回答で、それ以外の問い合わせ管理のための作業は極力考えなくていいようにしたい...!
というわけで、今回は以下の3つを自動化することにしました。
(ナレッジに追記する内容はまだ人間が目で見て判断した方がいいと思い、ナレッジ登録は今回の対象から外しています。)
- ラベル
- 管理画面なのかアプリなのか、サーバー(SV)なのかiOSなのかAndroidなのかどの領域に関する問い合わせなのか分類に使う
- 影響している機能
- どの機能に関する問い合わせが多いのかの分類に使う
- 問い合わせ分類
- 問い合わせ内容が不具合確認なのか、仕様確認なのか調査確認なのかなどの分類に使う
方法
Rovoエージェントの用意まで
Jiraを使っているので極力他のサービスと連携せずAtlassianのサービスで完結させたいと思っていたのでAtlassianのRovoエージェントを使ってみることにしました。
詳細な設定方法はここでは割愛させていただきます。
デフォルトで使えるRovoエージェントはいくつかあります。
ただ今回は「影響している機能」や「問い合わせ分類」といった弊社独自のルールや、「iOSの話をしているか、Androidの話をしているか」という文脈判断のルールを持っていないため自分でラベル付与、影響している機能、問い合わせ分類用のカスタムエージェントを作成することにしました。
それぞれのエージェントに設定するプロンプトはGeminiに相談して以下のように定義しました。
(※弊社ではGoogle Workspaceアカウントで利用する場合に限り機密情報をGeminiで利用できます)
ラベル自動付与プロンプト
あなたは熟練したトリアージ担当者です。 新しく作成されたJiraチケットの「説明」と「要約」を読み、以下の分類ルールに従って、最も適切なラベルを1つだけ特定してください。 【分類ルール】 iOS: 文章の文脈が「iOSアプリ」「iPhone/iPad」「iOS固有の挙動」に関するものである場合。 Android: 文章の文脈が「Androidアプリ」「Android端末」「Android固有の挙動」に関するものである場合。 SV: 文章の文脈が「管理画面」「APIエラー」「データベース」「サーバーサイド」「バッチ処理」に関するものである場合。 【注意事項】 「iOSでは起きないがAndroidで起きる」のように比較されている場合は、**不具合が発生している方(Android)**を優先してください。 上記3つのいずれにも明確に当てはまらない、または情報不足の場合は、ラベルを提案しないでください。 あなたの仕事はラベルを決定することです。余計な会話や挨拶は省略してください。
問い合わせ分類自動付与プロンプト
あなたは熟練したテクニカルサポートマネージャーです。 提供されるJiraチケットの「要約」「説明」および解決までの「コメント履歴」を深く読み込み、そのチケットの最終的な性質を以下の定義済みカテゴリリストから1つだけ特定してください。 【カテゴリ定義リスト】 仕様確認: ユーザーからの質問に対し、仕様を回答して終了したもの(システムの変更なし)。 調査確認: ログ調査やデータ確認など、エンジニアによる調査工数が発生したもの(バグではなかった場合)。 不具合確認: 製品のバグや障害であると認定され、修正対応が必要と判断されたもの。 作業依頼: データパッチ、設定変更、権限付与などの実作業を実施したもの。 その他: 上記のいずれにも明確に当てはまらないもの。 【出力ルール】 出力はカテゴリ名のみ(例: "仕様確認")を行ってください。 余計な挨拶、説明、引用符、Markdown装飾は一切不要です。 Jiraのフィールド入力に使用するため、上記のリストに含まれない言葉は絶対に出力しないでください。
影響している機能自動付与プロンプト
ここでは影響している機能の定義をしているconfluenceページをナレッジとして設定しています。
あなたは熟練したテクニカルサポートマネージャーです。 提供されるJiraチケットの「要約」「説明」および解決までの「コメント履歴」を深く読み込み、添付のconfluenceページの説明・備考をもとにどのconfluence設定区分に当てはまるか分類してください。 【出力ルール】 出力はconfluenceページに記載されている設定区分のみ(例: "スタンプカード")を行ってください。 余計な挨拶、説明、引用符、Markdown装飾は一切不要です。 Jiraのフィールド入力に使用するため、上記のリストに含まれない言葉は絶対に出力しないでください。
Jiraプロジェクトの自動化でRovoエージェントを呼び出す
Rovoエージェントを作成したのであとは呼び出すトリガーを設定する必要があります。
同じJiraの自動化設定でRovoエージェントの呼び出しもできるので今回は以下のように設定しました。



結果
この設定によってJira課題が「回答済み」もしくは「完了」になった際チケットの説明を確認して以下が実現できるようになりました。
- SV, iOS, Androidのいずれかの問い合わせであればそれぞれのラベルを付与し、どれにも当てはまらなければ何もしない
- プロンプトで定義した内容に沿って問い合わせ分類を自動付与する
- 別のconfluenceで定義した内容に沿って影響している機能を自動付与する
また、これのおかげでナレッジ化以外は起票者が気にする必要がなくなりました。
(厳密にはプロンプト調整中なのでまだ人の目での確認は必要ですが...)
最後に
今まではAtlassianのサービスだけでは実現できず、自分でエンドポイントを用意してwebhookで動作させる必要がありましたが今回はAtlassianだけで実現でき、サービス間の連携を考慮する必要がなかったのが特に楽でした。
今回はJira課題の編集が主でしたが、Slackと連携できたりまだまだRovoエージェントは可能性がありそうなので様々な課題解決にチャレンジしてみようと思います!
ヤプリでの他のAI活用術を知りたい方はぜひカジュアル面談にお越しください! open.talentio.com