第15回 CMSの謎を解け ― その2
アバイア プロフェッショナルサービス シニアコンサルタント 長崎智洋
みなさま、こんにちは。前回に引き続き「CMSの謎を解け」というテーマで、かなりDeepに行きたいと思います。今回もヘビーユーザーさま向けの内容になってしまうかと思いますが、頑張って説明致します。
下の2つのスキルレポートを見て下さい。どちらのレポートとも1人のエージェントさんがログインしています。よく見ると同じエージェントさんです。しかしながら、上側での円グラフでは「後処理」、下側の円グラフは「その他」になっています。これは何故でしょうか?
そうですね。答えは簡単です。
今回のエージェントさんは、以下のように3つのスキルを持っているからです。
このエージェントさんは、問合せ・注文・入会の3つのスキルを持っています。今現在は、問合せスキル(スキル601)で後処理状態にあるからです。マルチスキル環境では、エージェントさんが持っているスキルがACD呼中や後処理中の状態のとき、他のスキルは「その他」の時間に統計されるのです。
マルチスキルのときのデータの持ち方は?
前に説明したエージェントさんは、3つのスキルを持っていました。そのときのデータベースの中身(エージェントテーブル)は実は以下のようになっています。
上は、ヒストリカルのインターバルのエージェントテーブル(hagent)の抜粋です。 ROW_DATEは日付、STARTTIMEはインターバルの開始時間、INTRVLはインターバル、SPLITはスキル、LOGIDはエージェントIDを表しています。したがって、上のデータは、2010/05/10の16:30から17:00で、エージェントID50601が、スキル601・602・603を持って1800秒(30分)間ログインしていたことがわかります。
このように、1人のエージェントさんが持つスキルの数に応じて、そのエージェントさんのデータ行数も変わります。一人のエージェントの1つのスキルであれば1行、スキルを3つ持っている場合は、3行になるわけです。20個スキルを持っている場合は、20行になります。
1つのスキルにつき1行ですので、各スキルでのACD呼や後処理等の情報は、そのスキルの行に統計されます。先ほどの後処理とその他のレポートで言えば、問合せスキル(601)で「後処理」となっており、注文スキル(602)、入会スキル(603)は「その他」の時間に統計されるのです。
データベース項目の「TI_時間」と「I_時間」について
レポートのヘルプを調べていて、色々と細かく見ていくと同じログイン時間を意味するのに、「I_STAFFTIME」と「TI_STAFFTIME」に遭遇したことはありませんか?
もちろん、意味があるから違うのです
同じようにテーブルを見ていると、以下のような違いがあります。
「I_STAFFTIME」は、エージェントがこのスキルにログインしていた時間です。したがって、3つのスキルを持っていた場合、このエージェントのスキルの変更がなければ3つともに同じ値が統計されます。「TI_STAFFTIME」は、ヘルプを見ると「。TI_時間は最も長くログインしていたスプリット/スキルの場合にのみ蓄積されます」となっています。“最も長くログインしていた”ですが、仕組み上、“エージェントが持っているスキルの中で1番上に登録されているスキル”と置き換えてよろしいかと思います。
さて、このような違いがありますので、“スキルという切り口”でレポートを見るときは、このエージェントさんがログインしていた時間は、「I_STAFFTIME」を見ればよい訳です。一方、エージェントがログインしていた時間を知るためには、「TI_STAFFTIME」を見る必要が出てきます。 「TI_AVAIAL」と「I_AVAIL」の関係、「TI_OTHER」と「I_OTHER」の関係なども同じことが言えます。
前回の宿題の答え
前回「I_ACWTIME」の説明のときに「数式にsum(集計関数)が使われる理由は、また次の機会にでもご紹介しましょう。」と書いたのですが、ようやく説明できるところまで来ました。まずは、おさらいですが、エージェントさんのレポートの(合計)後処理時間は、「sum(I_ACWTIME + I_DA_ACWTIME)」で求められていました。「I_DA_ACWTIME」は、ダイレクトエージェント呼を受けた後の後処理時間なので、ダイレクトエージェント呼を使っていなければ、「sum(I_ACWTIME)」と考えられます。では、なぜ集計関数のsumが付くのか考えてみたいと思います。
エージェントさんが3つスキルを持っていれば、スキルデータは3行となり、後処理時間は、各スキルの行に統計されます。
したがって、このインターバルにおいてこのエージェントさんの後処理時間の合計を考えた場合、エージェントさんが持つすべてのスキルを合算する必要があるため「sum(I_ACWTIME)」となるわけです。
また、マルチスキル環境でのデータの持ち方について知っておいて欲しい点があります。1つのインターバル内で、エージェントさんのスキル変更を行ったり再ログインをしたりすると、新たにスキル分の行が増えるのです。ログアウトをしたときに一旦データが書き込まれるため、このようになります。また、スキル変更は内部的には、一旦ログアウトしてすぐにログインするような動きをしているようです。
このインターバルのエージェントのログイン時間を集計する場合は「sum(TI_STAFFTIME)」として、sum関数を使って上のように分散しているログイン時間を合計する必要があるのです。 もちろん、標準のレポートはこのような点を考えて作られています。したがって、レポートをカスタマイズする場合は、標準のレポートが参照しているデータベース項目や計算式を参考にして頂ければ、変な値を求めるようなことはないかと思います。
おわりに
最後までお付き合い頂き、ありがとうございました。自分で後から読み直しても、かなりヘビーユーザーさま向けの内容になってしまったと思いました。ただ、CMSやレポートカスタマイズのトレーニング(ワークショップ)でもここまではDeepにできないと思いますので、どこかの機会で説明したいとは思っていたのです。 ですので、今まで疑問に思っていたことが少しでも解消されたのであれば幸いです。
うーん。やっぱり今回は難しすぎたかもしれませんので、次回は“Not so much Deep”に行きましょうか。
それでは、次回もご期待下さい。
第16回