コーディング無し!ZendeskのチケットをAlteryxで集計してSlackに通知させてみた

2020.02.12

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

サポートチケットシステムを使ってサポート業務にあたっていると、「この一週間でどれくらいチケットが起票されたのかな」「誰からどれくらいの数のチケットが起票されたんだろう…」という粒度で集計したい方もいるかと思います。うちの部長です。

決して部長に媚びるわけではないのですが、部長のためにひと肌脱ぎたい!というわけでSlackチャンネルに以下のような通知を送信する仕組みを作りました。

本エントリではデータ分析&ブレンドツールであるAlteryxを使い、Zendeskのデータを取得・集計してSlackに通知させるワークフローの紹介をします。部長!見てますか!?

もくじ

前提条件

本エントリを書くにあたって使用した環境は以下の通りです。

  • Alteryx Designer 2019.4

ZendeskのデータをAlteryxで取得する

Zendesk APIを使用してチケットのデータを取得します。現時点でAlteryxにはZendeskとのコネクタが用意されていませんが、Download tool(日本語ツール名:ダウンロードツール)を使うことでコネクタとして提供されていない外部サービスにも接続が可能です。

Alteryx Communityにもカスタムコネクタの作り方がナレッジベースとして公開されています。

テキスト入力ツール(URLの指定)

今回チケットを取得するのに使用したZendesk APIはIncremental Exportsです。テキスト入力ツールに以下URLを入力します。

https://<サブドメイン>.zendesk.com/api/v2/incremental/tickets.json

ダウンロードツール(APIのコール)

基本設定

次に、ダウンロードツールでAPIをコールします。URLフィールドにはテキスト入力ツールに入力したURLを指定します。

ヘッダー

ヘッダータブでは、認証に必要な情報を入力します。追加ボタンからフィールドを作成して以下を入力します。

名前
Authorization Basic <Base64でエンコードされた認証情報>

ZendeskでAPIリクエストを認証する方法はいくつかありますが、今回の検証では管理者アカウントから発行したAPIトークンを使用しています。APIトークンの場合、<Eメールアドレス>/token:<APIトークン>の形でBase64エンコードさせたものを値フィールドに入力します。

AlteryxにはBase64にエンコードするためのツールが提供されていますので簡単にエンコード可能です。テキスト入力ツールに<Eメールアドレス>/token:<APIトークン>を入力し、Base64エンコーダーツールでフィールド選択するだけです。

ZendeskのAPIリクエスト認証の方法については以下をご確認ください。

ペイロード

Incremental Exports APIはチケットを取得する開始時間の指定が必須です。ペイロードタブのHTTPアクションにGETを指定し、作成クエリ/文字列のフィールドに以下を入力します。

名前
start_time 開始時間(UNIX時間で入力)

これでZendeskのチケット一覧を取得できるようになりました。実行するとJSON形式のデータが確認できます。

Alteryxでデータ整形する

Zendeskのチケット一覧がJSON形式で取得できたので、Alteryxで集計しやすい形に整形していきましょう。AlteryxでJSONときたらJSONパースツールです。JSONフィールドにDownloadDataを指定します。

JSON_NameにはチケットIDと属性情報を表す項目名が合わさって入っています。正規表現ツールを使ってこの2つを分離させます。正規表現は(tickets\.\d+)(.*)を、出力方法には解析を指定します。

実行結果は以下の通り。

正規表現で分離させたチケットIDをグループ化し、クロスタブツールでデータを横持ちに変えます。これによってチケットの属性ごとに格納されたデータを確認可能です。

実行後イメージは以下の通り。この後はチケットを集計する指標に従って適宜集計を行います。

なお、SlackへのポストするためにはデータをJSON形式にしておく必要があります。今回は{"text":"ポストする内容"}となるようにフォーミュラツールでデータを整形しています。太字にしたい部分は*で囲んだり、絵文字を付けたい場合は:で絵文字のエイリアスを囲んで指定する等の遊び心を加えることも可能です。

Slackに通知させる

今回はSlackへの通知にSlack botを使用しています。Slack botの作成とIncoming Webhookの有効化については以下をご参照ください。

AlteryxからSlackへのポストもダウンロードツールを使用します。ポスト方法については以下をご参照ください。

まとめ

Zendeskのチケットデータを集計してSlackへ通知するの巻でした。ワークフローをAlteryx Serverにアップロードしてスケジュール実行しておけば定期的に実行結果を通知可能です。Zendesk上でレポートを確認することはできますが、アカウントを持たないメンバーにも集計結果を共有したい時や、せっかくAlteryxもあるしノンコーディングでサクッと集計して通知させたい時などにお役立てください。

Alteryxの導入なら、クラスメソッドにおまかせください

日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。 alteryx_960x400