結論
Zendeskのチケットを検索するための簡易的なCLI "simple-zendesk-searcher(仮称)" を作りました。ソースは以下。
今のところはGitHubオンリーでの公開です。現時点でちゃんとしたテストも書けてないし、機能的にもまだまだpypiに登録するほどのツールではないかなと思ったので。
日付検索、タグ検索、リクエスタ検索あたりの機能と、あといい感じのパッケージ名が欲しい。。あと ./output.csv
に出力する仕様、これデフォルトはstdoutが良さそうなので近々改変しようと思います。
なぜ作ったのか
自社のビジネスでサービスデスク的なサービスを提供しており、サポートデスクとしてZendeskを採用しています。
AWSのメンテナンス系通知とか、多数のアカウントに一様にばらまかれるタイプの通知が来たとき、とりあえずチケット管理システムには起票されるような実装をすると思います。
で、サポートサービスとしては、その通知に対する「当社見解」的なものを添えて顧客にアナウンスしたかったりします。通知のやり方としては、生成済みチケットに対するリプライの形式がベストでしょう。となると、Zendesk的には複数のチケットに対して一斉に「コメントを送付」するような処理が必要になります。
一斉起票の仕組み自体は自社で既に持っているのですが、対象チケットの抽出部分はZendeskのWeb-UIしか方法がなく、大量のチケットリストを抽出するには些か非効率でした。
で、それならCLIツールとして簡単にでも検索できる仕組みを作ればいいじゃないかと思い、simple-zendesk-searcherを製作しました。
※性質上、ZendeskのAPI-KEYを所持していることがツール利用の必要条件ですが、実際にはAPI-KEY持ってないし持ちたくもない、という立場の方もいるので業務にどう組み込むかの課題は残ってます。そのへんはまた別途考えたい。
使い方 & ソース
GitHubに公開してるので、そちらをご覧ください。
今はキーワード検索のみ対応してます。また、**Zendeskの仕様上、スペースを含む文字列で検索したい場合はダブルクォートで囲った文字列を投げる必要があります。**お気をつけください。シェルから実行する場合はシングルクォートで外を囲うなりエスケープするなりして、然るべき措置が必要です。
出力するカラムも、なんかこう、カスタマイズの余地を残せる仕様にしたいなぁとは思います。もしくは可能な限りのカラムを出力するような仕様にするか。
まとめ
とりあえずの最低要件を満たすツールは作れたので、あとは現場で使ってもらえるようにAPI-KEY所持してる人に共有していこうかと。とりあえず、日付の条件指定くらいはさくっと実装しよう...
あとこれ、記事の主題とは無関係なんですが。業務遂行の直接的な手段としてのツールを作ることと、それを業務フローに組み込むこと、この2つの間にはかなりの隔たりがあるんですよね。なので、個々のツールも大事とは思いつつも「業務フローに組み込む」ことに対する汎用的な回答をいい感じに作れないかなぁと感じました。
BPM(Business Process Management)システムとの統合を意識するならAPI Gatewayにロジック部分を載せて、実行権限の認可はBPM側に任せるとかが良さそうです。あとは、ツールの実装を変えずに無理なくAPI Gatewayにインテグレーションできるような設計とかできたら幸せになれそうだなと思います。