Zendeskのチケットを検索するための簡易的CLIを作ってみた

記事タイトルとURLをコピーする

Zendeskのチケットを検索してcsvフォーマットで返すだけのシンプルなツールを書いてみましたのでご紹介します。

ソースはこちら。 https://github.com/hassaku63/simple_zendesk_searcher

今のところはGitHubオンリーでの公開です。現時点でまともにテストできてないし、機能的にもまだまだpypiに登録するほどの出来ではないかなと。

以下のコマンドでご利用いただけます。

pip install git+https://github.com/hassaku63/simple_zendesk_searcher.git

モチベーション

当社のサービスである pieCeAWS運用代行ではサポートデスクのサービスを提供しており、デスクの機能を担うシステムとしてZendeskを採用しています。

AWSからの通知(例えばメンテナンス系の通知)への対応も、サービスメニューには含まれています。この手の通知は多数のAWSアカウントに対して一様にばらまかれるタイプの案内なので、当社としてはその通知内容に対する「当社見解」的なものを添えてお客様に一斉アナウンスを実施したかったりします。

AWSからの通知自体はZendeskのチケットとして生成させるようになっていますので、「当社見解」はそれら生成済みチケットに対するリプライの形式で送信したいです。となると、Zendesk上の複数チケットに対して一斉にコメントを送付するような作業が必要になります。

一斉起票/コメントの仕組み自体は既に確立されているのですが、「対象チケットの抽出」の部分はZendeskのWeb-UIくらいしか方法がなく、大量のチケットリストを抽出するには些か非効率でした。

で、それならCLIツールとして簡単に検索できる仕組みを作ればいいじゃないかと思い、さくっと製作してみました。

使い方 & ソース

usage: simple_zendesk_search [-h] --keyword KEYWORD [--subdomain SUBDOMAIN]
                             [--email EMAIL] [--token TOKEN] [--output OUTPUT]

Zendesk APIはsubdomain/email/token の3つを認証情報として要求します。 環境変数ZENDESK_SUBDOMAIN,
ZENDESK_EMAIL, ZENDESK_TOKENで定義するか、 コマンドライン引数で直接指定してください。
両方で指定した場合はコマンドライン引数を優先します。

optional arguments:
  -h, --help            show this help message and exit
  --keyword KEYWORD     keyword will serach from subject
  --subdomain SUBDOMAIN
                        zendesk subdomain
  --email EMAIL         zendesk email
  --token TOKEN         zendesk token
  --output OUTPUT       output file. default=output.csv

GitHubにも公開してるので、最新情報はそちらをご覧ください。

https://github.com/hassaku63/simple_zendesk_searcher

2019/10/24時点ではキーワードによる検索のみ対応してます。実際には日付の条件指定はほぼ必須で欲しい機能かなぁと思うので、そのへんはさっさと実装してしまおうと思います。出力のデフォルトがstdoutじゃないのもUnix Philosophy的にアンチパターンな実装なので、これも変更した方がよさそうですね。

なお、Zendeskの仕様上、スペースを含む文字列をひとかたまりで検索したい場合は、ダブルクォートで囲った文字列を投げる必要がありますので、お気をつけください。シェルから実行する場合はシングルクォートで外を囲うなりエスケープするなりして、然るべき措置が必要です。

まとめ

とりあえずの最低要件を満たすものは作ったので、あとは条件指定のバリエーションをいくつか追加するなどしつつドッグフーディングしていこうと思います