AIでサポート対応時間のレポートを作るときは、初回返信まで、最初の解決まで、再開後も含めた解決までを別の指標にします。返信したことを解決したことに変えたり、未返信を0分として平均へ入れたりすると、処理が速く見える表を作ってしまいます。
この記事では、架空の問い合わせ5件を、同じ集計時点で整理します。成果物は、指標ごとの対象ID・件数・時間と、未返信・未解決の残件です。実チケットの取得、AI生成、Zendesk操作、契約上のSLA判定は行っていません。
目次
受付のまとまりと、集計時点を固定する
今回の対象は、2026年10月20日9~12時に作成された架空の5件です。集計時点は同日15時、日本時間。すべて同じタイムゾーンで、営業時間や休日の除外、保留中の停止はせず、時刻間の実経過を分で数えます。
返信は、担当者が顧客へ最初に返した公開返信とします。自動受付通知や内部メモは、今回の返信イベントへ入れていません。また、記録は集計時点までそろっており、空欄はデータ取得漏れではなく、該当イベントがまだ起きていない設定です。実データなら、この区別から確かめます。
Zendeskの公式説明も、初回返信、最初の解決、直近の解決を異なる指標にしています。必要なイベントが起きるまで値がnullとなるネイティブ指標と、進行中のSLAカウンターも別です。以下はその区別を参考にした独自の集計例で、Zendeskの画面や全例外を再現するものではありません。Zendesk:時間指標(新しいタブで開く)
解決イベントと、現在の状態を両方残す
表は横にスクロールできます
| 問い合わせ | 作成 | 初回返信 | 最初の解決 | 直近の解決 | 15時の状態 |
|---|---|---|---|---|---|
| T01 | 09:00 | 09:10 | 10:00 | 10:00 | 解決済み |
| T02 | 09:00 | 09:30 | 10:00 | 14:00 | 解決済み。11時に再開後、14時に再解決 |
| T03 | 10:00 | 11:00 | なし | なし | 未解決 |
| T04 | 11:00 | なし | なし | なし | 未返信・未解決 |
| T05 | 12:00 | 12:20 | 13:00 | 13:00 | 14時に再開し、現在は未解決 |
T02は最初の解決まで60分ですが、作成から直近の解決までは300分です。この300分は、担当者が実作業した時間ではありません。途中の待ち時間や一度解決していた区間も含む、作成からの実経過です。
T05にも13時の解決イベントがありますが、現在は再開中です。「解決時刻がある」という条件だけで、現在も解決済みと数えません。現在の状態とイベント履歴を切り離さず持ちます。
初回返信は4件、未返信は1件として報告する
初回返信までの時間は、T01が10分、T02が30分、T03が60分、T05が20分です。合計120分を4件で割ると平均30分。並べると10・20・30・60なので、中央値は中央2値の平均で25分です。
T04を0分として加えると120 ÷ 5=24分になりますが、0分で返信した事実はありません。この24分を5件の平均返信時間として報告しません。
表は横にスクロールできます
| 指標 | 対象ID | 件数 | 今回の値 |
|---|---|---|---|
| 初回返信までの平均 | T01・T02・T03・T05 | 4件 | 30分 |
| 初回返信までの中央値 | 同上 | 4件 | 25分 |
| 未返信 | T04 | 1件 | 15時時点で残存 |
T04は11時作成から15時まで240分が経過しています。ただし、240分で初回返信が完了したわけではありません。「未返信で受付後240分経過」と、完了した返信時間とは別欄に置きます。
解決までの時間は、どの集団かを明記する
最初の解決イベントがあるのはT01・T02・T05で、それぞれ作成から60分です。この3件の平均は60分です。ただし、T05は現在再開中なので、この集計から「現在3件が解決済み」とは言えません。
現在の状態が解決済みのT01・T02だけを選び、作成から直近の解決までを比べるなら、60分と300分の2件、平均180分です。これは本稿で定めた「現在解決済みの完了分だけ」の集計方針です。Zendeskがネイティブ指標の値を持つ対象や、そのダッシュボード全体の既定集計と同じだとは主張しません。
表は横にスクロールできます
| 集計 | 対象ID | 件数・値 | 含めていないもの |
|---|---|---|---|
| 最初の解決までの平均 | T01・T02・T05 | 3件、60分 | 解決イベントのないT03・T04 |
| 現在解決済みの、作成から直近解決までの平均 | T01・T02 | 2件、180分 | 現在未解決のT03・T04・T05 |
| 現在未解決 | T03・T04・T05 | 3件 | 完了時間へ0として入れない |
完了分だけの平均には、長く残っている未解決が入りません。平均180分だけを提示して対応全体が順調と結論せず、未解決3件も併記します。今回の5件を、顧客全体の体験や担当者個人の能力へ一般化しません。
暦時間と営業時間、SLAは別に確認する
Zendeskの初回返信時間には暦時間と営業時間の区別があり、公式資料はチャネルごとの例外やSLAとの違いも説明しています。利用するシステムでは、どのイベントで開始・終了し、何を除外するかを確認してください。Zendesk:初回返信時間(新しいタブで開く)
今回、営業時間表、休日、停止条件、契約の目標時間は入力していません。「30分ならSLA達成」といった判定はできません。別の期間や別チャネルと比較するなら、同じ作成期間の案件を追ったのか、その期間に解決した案件を集めたのかもそろえます。
掲載例の対象件数と時間を検算する
次のPythonは、上の固定例を計算します。時刻文字列へ日本時間のオフセットを付け、同日の実経過分を数えます。
from datetime import datetime
from statistics import mean, median
def t(hm):
return datetime.fromisoformat("2026-10-20T" + hm + ":00+09:00")
def minutes(start, end):
return (t(end) - t(start)).total_seconds() / 60
rows = {
"T01": ("09:00", "09:10", "10:00", "10:00", "SOLVED"),
"T02": ("09:00", "09:30", "10:00", "14:00", "SOLVED"),
"T03": ("10:00", "11:00", None, None, "OPEN"),
"T04": ("11:00", None, None, None, "OPEN"),
"T05": ("12:00", "12:20", "13:00", "13:00", "OPEN"),
}
reply = {k: minutes(v[0], v[1]) for k, v in rows.items() if v[1] is not None}
first = {k: minutes(v[0], v[2]) for k, v in rows.items() if v[2] is not None}
completed = {k: minutes(v[0], v[3]) for k, v in rows.items() if v[4] == "SOLVED"}
assert reply == {"T01": 10, "T02": 30, "T03": 60, "T05": 20}
assert (mean(reply.values()), median(reply.values())) == (30, 25)
assert first == {"T01": 60, "T02": 60, "T05": 60}
assert mean(first.values()) == 60
assert completed == {"T01": 60, "T02": 300}
assert mean(completed.values()) == 180
assert {k for k, v in rows.items() if v[4] == "OPEN"} == {"T03", "T04", "T05"}
assert minutes("11:00", "15:00") == 240
print(reply, completed)
これは固定したデータの検算で、実チケットの取得や履歴からのイベント抽出は含みません。未来時刻、作成前のイベント、欠落した状態、ID重複を検出する汎用検査でもありません。実データでは、原イベントの時刻・種類・状態と集計定義を確認してから使います。
AIには分母と未完了を省かせない
架空の問い合わせT01~T05を、10月20日15時の状態で報告してください。
すべて日本時間、営業時間の除外や停止はせず実経過分を使います。
初回返信、最初の解決、現在解決済みの作成から直近解決までを分けてください。
各指標に対象ID・件数・平均、初回返信には中央値も示してください。
未返信や未解決を0分として平均へ入れないでください。
再開中のT05を現在解決済みとせず、過去の解決イベントとは別に扱ってください。
担当者の実作業時間、SLA達成、対応改善の因果は判断しないでください。
出力:集計範囲、指標別対象と値、未返信・未解決、定義と未確認事項。
この依頼と集計は手製例で、AIの正答率を測った結果ではありません。報告前は本文の数値を対象IDへ戻し、4件の平均を5件全体の値と説明していないか、未完了の残件が消えていないかを確認します。次回の集計では、同じ案件の状態が変わったことと、新しい対象群の結果を分けて記録してください。
参考資料
- Zendesk:About native Support time duration metrics(新しいタブで開く)
- Zendesk:Understanding ticket reply time(新しいタブで開く)
公式資料の確認日:2026年10月20日。問い合わせ、時刻、状態、集計は独自の架空例です。掲載Pythonと計算をローカルで検査しました。実チケット、イベント抽出、Zendesk設定、AI生成、営業時間計算、SLA、対応品質・効果、画面表示は未検証です。
