Zendeskのチケットを検索してcsvフォーマットで返すだけのシンプルなツールを書いてみましたのでご紹介します。
ソースはこちら。 https://github.com/hassaku63/simple_zendesk_searcher
今のところはGitHubオンリーでの公開です。現時点でまともにテストできてないし、機能的にもまだまだpypiに登録するほどの出来ではないかなと。
以下のコマンドでご利用いただけます。
pip install git+https://github.com/hassaku63/simple_zendesk_searcher.git
モチベーション
当社のサービスである pieCeやAWS運用代行ではサポートデスクのサービスを提供しており、デスクの機能を担うシステムとして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の仕様上、スペースを含む文字列をひとかたまりで検索したい場合は、ダブルクォートで囲った文字列を投げる必要がありますので、お気をつけください。シェルから実行する場合はシングルクォートで外を囲うなりエスケープするなりして、然るべき措置が必要です。
まとめ
とりあえずの最低要件を満たすものは作ったので、あとは条件指定のバリエーションをいくつか追加するなどしつつドッグフーディングしていこうと思います