PowerBIのZendeskコネクタでデータ取得する際にカスタムフィールドを表示するテクニック

2021.06.14

こんにちは、データアナリティクス事業本部ソリューション部プリセールススペシャリストの兼本です。

Microsoft Power BIには様々なサービスやデータベースにアクセスしてデータを取得するコネクタが用意されており、これを利用することでデータベース以外からもデータを取得して可視化することができます。 今回はこれらのコネクタからZendeskコネクタについてご紹介します。
なお、Zendeskコネクタは2021年6月12日現在ベータ版での提供となっておりますので、実業務で利用される場合はその点にご注意ください。

まずはZendesk コネクタを利用する

Power BIを起動したらファイルメニューから「データを取得」を選択します。

最下段にある「データを取得して開始する→」という項目をクリックするとコネクタの一覧が表示されます。

一覧から「Zendesk(ベータ)」を選択して接続を押下します。接続しようとしているZendeskにアクセスするためのURLを問い合わせてきますので、お使いのZendeskのサービスURLを指定してOKを押下します。

Zendeskサービスに接続できると参照可能なテーブルの一覧が表示されます。これらのテーブルは実際にはZendesk APIを使用して取得可能なデータの一覧となっています。今回はZendeskに登録されているチケットのデータを取得するため、「Tickets」にチェックをして「読み込み」を押下します。

正しくデータを取得できたら、Power BIの右サイドメニューに使用可能なフィールドの一覧としてTicketsテーブルのフィールドが表示されますので、項目を選択してデータの可視化を行います。例として以下では月ごとのチケット件数と各チケットのステータスを積み上げ棒グラフで表示しています。

なお、データ取得時に以下のようなエラーが発生する場合がありました。

私の場合、このエラーは指定条件でデータを取得する際に返されるレコード件数が多すぎてデータを取得できないために発生していたようなので、データの「読み込み」前に「データの変換」操作を行い、取得するデータの絞り込みをすることで回避しました。(エラーメッセージから原因を推測するのが難しいので、正式版では改善されることを期待します)

さて、読み込んだTicketsテーブルのフィールド一覧を確認してみると、Zendesk側で作成したカスタムフィールドを含むいくつかのフィールドが表示されていないことに気が付きます。

カスタムフィールドが表示されない!?

カスタムフィールドを含むいくつかのフィールドはList属性のフィールドとして階層化されているため、そのままでは利用することができないようです。対処方法を調べたところ、PowerBIコミュニティに以下のようなディスカッションが見つかりました。

どうやら、Ticketsテーブルを複製して、カスタムフィールドを分解することでカスタムフィールドを表示できそうです。

  1. データの読み込みを行い、「Tickets」テーブルのデータを取得する準備をします。(これまでの手順で実施済み)

  2. 「データの変換」を押下し、Power Queryエディタを起動します。

  3. 「Tickets」テーブルを選択して「右クリック>複製」を実行します。複製したテーブルは分かりやすいように「CustomFields」という名前に変更します。

  1. チケットの"ID"と"Custom fields"を除き、フィールドをすべて削除します。

  1. "Custom fields"のカラムを選択し、右肩のアイコンをクリックして「新しい行に展開する」を実行します。

  1. 同じフィールドの右肩の矢印ボタンを押下し、表示されるダイアログで"ID" と "Value" を選択した状態で「OK」を押下します。

  1. (必要に応じて)"Custom_fields.ID"のデータタイプを整数に"Custom_fields.Value"のデータタイプを文字列に変更します。

  2. "Custom_fields.ID"を選択した状態で、Power BI上部にある変換タブを表示して「列のピボット」を押下します。

  1. 値列として"Custom_fields.Value"を選択します。次にダイアログの詳細設定オプションを表示して、値の集計関数として「集計しない」を選択して「OK」を押下します。

  1. ピボットして作成したカスタムフィールドのタイトルを変更して分かりやすい名称を設定します。使用してない不要な項目があれば削除することもできます。

  1. クエリエディタを保存して終了します。

右サイドバーの使用可能なフィールドの一覧にカスタムフィールドが追加されていることが確認できます。このデータを利用して問い合わせの内容を製品カテゴリごとに分類したチャートを作成しました。

まとめ

今回のケースでは、カスタムフィールドの値を取得する方法についてご紹介しましたが、同様の手順でTicketsテーブルに含まれているTagsやFollowupIDsなどのList属性のデータを展開することも可能です。

ちなみに、弊社で取り扱いのあるFivetranというデータパイプラインサービスを使用するとカスタムフィールドやタグなどの項目を展開して宛先のデータソースに出力してくれます。(以下はFivetranの設定画面から一部の項目を抜粋したもの)

スキーマやデータの変更差分を検知してデータ同期ができ、APIによるデータ取得上限を考慮したスロットリング制御も自動で行うため、本来の目的であるデータ分析や可視化に時間を割くことができます。

お薦めしたいソリューションのひとつですので、Fivetranについてご興味があれば、ぜひ弊社までお問い合わせください。

以上、最後までお読みいただきありがとうございました。