はじめに
こんにちは。CS 室で Customer Ops をやっています @morimai です。
わたしが所属する Customer Ops チームは、CS 室の業務に必要なデータ基盤の構築・運用や業務の自動化、データ活用の促進などをメインに活動しています。
今回は、CS(カスタマーサポート、カスタマーサクセス)の大前提である「問い合わせ対応の安定運営」を実現し、顧客体験向上に寄与するために、「問い合わせ対応の生産性」を計測・可視化したことについてご紹介します。
なぜ問い合わせ対応の生産性を計測・可視化するのか
ここで言う「生産性」は、1 時間あたりの問い合わせ対応件数のことを指します。
この指標は、「CS 室に所属するパートナーが 1 時間あたりに何件お客様からの問い合わせに対応できているか」「問い合わせ 1 件に対してリソースがどのくらいかかっているか」を計測するものです。
では、そもそもなぜこの指標を計測しているかと言うと、以下のようなことが挙げられます。
前提: ペパボの CS の取り組みは「問い合わせ対応」「問い合わせ対応以外(マニュアルや FAQ の整備、品質管理など顧客体験向上につながる施策)」の大きく 2 つに分かれます。
CS 室として
- 組織が目指す顧客体験向上のためには、「問い合わせ対応」を安定して運営し続けることが最初の段階(基礎となる部分)であり、顧客満足度を維持しつつ、より多くのお客様の対応を効率的に行いたい
- サービス利用者の増加 = 問い合わせ増加 = CS のリソース増加とならないよう、問い合わせ対応業務を効率化し、問い合わせ 1 件あたりのリソースを小さく運営したい
- 生産性を高めて問い合わせ対応以外の時間を確保し、継続的にサービスを改善できる体制かどうか確認したい
サービスを利用されるお客様への価値提供
- いつどのサービスに問い合わせても、安定して期待する速さ(または期待以上)で返答がある
- 「顧客体験向上のための問い合わせ対応以外の業務時間」が確保されることで、ヘルプページ改善などの活動が継続的に行われていて利用しやすい
これらを満たすため、1 時間あたりの問い合わせ対応件数および問い合わせ 1 件あたりにかかる時間を計測し、それらの推移を可視化することになりました。
どのように計測・可視化するか
1 時間あたりの問い合わせ対応件数を計測するためには、主に、以下の 2 つのデータが必要です。1 日の対応件数を 1 日の問い合わせ対応時間で割れば、1 時間あたりの対応件数がわかります。
- 問い合わせ対応をするパートナーごとの「問い合わせ対応件数」
- 問い合わせ対応をするパートナーごとの「問い合わせ対応時間」
「問い合わせ対応件数」と「問い合わせ対応時間」のデータをそれぞれパートナーごとに毎日収集し、前日までの 1 時間あたりの対応件数を自動で計算して、ダッシュボードに反映させることを考えました。
問い合わせ対応をするパートナーごとの「問い合わせ対応件数」の収集
ペパボの CS では、問い合わせ対応・管理ツールとして Zendesk を利用しています。
Zendesk Support と Chat のデータは、数時間おきに BigQuery に同期しており KPI 計測や分析などに利用できる状態になっているため、問い合わせ対応件数は BigQuery に同期された Zendesk のデータから収集しました。
問い合わせ対応をするパートナーごとの「問い合わせ対応時間」の収集
問い合わせ対応時間については、Slack 上で、1 日の業務をどの活動に何時間使っているかをパートナー 1 人 1 人に 「Slack Workflow」を使って登録してもらい、登録されたデータを Google Sheets に集めて Google App Script で BigQuery のテーブルに毎日同期されるようにして収集しました。
問い合わせ対応時間以外にも、品質管理のための時間やツールの管理のために使った時間なども記録するようにして、「問い合わせ対応以外の時間」がどのように使われて、高効率な状態にあるかが将来的に計測できるようにしています。
当初は、人の作業を発生させずに問い合わせ対応時間を収集するために、以下のようなことも試みましたが、いずれも精度が高くなく、今のやり方に落ち着きました。
過去に試した問い合わせ対応時間の収集方法
- 1 日の業務時間を 8 時間として、その内 Google Calendar 上で予定登録がない時間 = 「問い合わせ対応時間」として定義(ミーティングなどがあれば必ず予定登録されているのでその時間を除外する)
- 問い合わせ対応以外の作業が予定登録されていないなどで、実際の問い合わせ対応時間とは差が大きく出たため一時的な利用にとどまった
- Zendesk Support のタイムトラッキングアプリを使って、チケットごとに何分間作業をしていたかを追跡させて、アプリから取得したデータを集計して「問い合わせ対応時間」として利用
- チケットを開いたまま別タブで問い合わせに伴う調査などをしていても、チケットの対応をしているとは判断されず、実際の問い合わせ対応時間とは差が大きく出たため見送り
収集したデータをもとに 1 時間あたりの対応件数を自動で毎日計算・可視化
「問い合わせ対応件数」と「問い合わせ対応時間」のデータを BigQuery に集めることができたので、これらをもとに「1 時間あたりの対応件数」を SQL で計算して、BigQuery 内のテーブルに格納するワークフローを Cloud Composer で定義しました。
今回は、CS 室の運用に合わせて「問い合わせ対応件数」と「問い合わせ対応時間」の他に、以下のデータを用意しました。
- 「1 時間あたりの問い合わせ対応件数」の計算の対象にしたいパートナーの所属期間、担当サービスなどのデータ
- (複数サービスの問い合わせ対応をしているパートナーに限り)サービスごとの担当割合
- 1 日のうち、A のサービスに n %、B のサービスに 100-n % 費やした、などを Zendesk 上の対応済みチケットの返信数の割合をもとに算出
運用上必要なこれらのデータを CSV 化して、Cloud Strage へアップロードして BigQuery のテーブルへ同期させ、以下の用途の SQL を 1. から 4. まで同時に実行し、その結果をもとに問い合わせチャネルごとの 1 時間あたりの対応件数を計算する 5. から 7. までの SQL を実行後、BigQuery のテーブルに格納するワークフローを Cloud Composer で定義しました。
また、計測した結果は Google Data Studio で可視化し、推移を見ることができるようにしました。
用意した SQL
- メールチャネルの問い合わせ対応数・担当割合を計算する SQL
- 電話チャネルの問い合わせ対応数・担当割合を計算する SQL
- チャットチャネルの問い合わせ対応数・担当割合を計算する SQL
- 1 日の「問い合わせ対応時間」を問い合わせチャネルごとに集計する SQL
- 1, 4 をもとに、メールチャネルの 1 時間あたりの対応件数を計算する SQL
- 2, 4 をもとに、電話チャネルの 1 時間あたりの対応件数を計算する SQL
- 3, 4 をもとに、チャットチャネルの 1 時間あたりの対応件数を計算する SQL
ワークフロー
構成図
1 時間あたりの対応件数を自動で毎日計算する仕組みは、全体で見るとこのようになります。
Google Sheets と Slack を使った異常検知・改善アクション
この指標には、担当サービスごとに目標値を設けています。
1 時間あたりの対応件数が目標値未満になった場合、CS 室の品質管理を行っているパートナー間でふりかえりの機会を設けて、要因分析し改善施策が実行されます。
ふりかえりの機会は、Google Data Studio で可視化した結果を見に行く、という方法をとることもできましたが、品質管理を担当しているパートナーは日々多くの数値をもとに業務改善を行っているため、できるかぎり作業を減らしたく、目標値未満かどうかを毎週月曜日に自動で検知して、Slack へ通知するという方法を取り、未達の場合は必ずアクションが行われる状態になりました。
まとめ
今回は、BigQuery や Cloud Composer などを利用して、CS(カスタマーサポート、カスタマーサクセス)の問い合わせ対応における生産性を計測した事例をご紹介しました。
Customer Ops チームでは、ペパボのデータ駆動を支えるデータ基盤チームの力を借りながら、少しずつ Cloud Composer でのワークフローの構築やデータ分析にチャレンジし、ペパボの CS とペパボのサービスを利用するお客様を支える活動を進めています。
今後は、さらに顧客体験の向上へつなげることができる活動へコミットしていきたいと考えていますので、Customer Ops チームの活動に興味がある方はぜひ一緒に働きましょう!