【Zendeskを使い倒せ!】ZendeskのチケットからTrelloのカードを自動生成! ついでにSlackでお知らせも!

AWS運用自動化サービス「Cloud Automator」
この記事は1年以上前に書かれたものです。
内容が古い可能性がありますのでご注意ください。

http://corporate-tech-blog-wp.s3-website-ap-northeast-1.amazonaws.com/tech/wp-content/uploads/2017/05/Zendesk_Trello_Slack_Collaboration_Blog.jpg

 こんにちは。サーバーワークス こけし部 部長でCS課の坂本(@t_sakam)です。
 わたしは最近、お客様からの「よくある質問や社内の業務をナレッジとして残す」ための活動をしています。
 
 サーバーワークスでは、お客様からのお問い合わせの受付にZendeskを使っているので、そのZendeskのチケットを元にナレッジ化をおこなっています。
 
 ナレッジとして残したいZendeskのチケットに「knowledge」タグを付けることで、自動でそのチケットを元にしたTrelloのカードを作成して、ナレッジの執筆をタスク化しています。同時にTrelloのカード作成時には、自動でSlackに通知もおこなっています。
 
 今回はそのZendeskとTrello、Slackの連携方法をブログに残しておきたいと思います。
 

例:Zendeskのチケットに「knowledge」タグを追加する

http://corporate-tech-blog-wp.s3-website-ap-northeast-1.amazonaws.com/tech/wp-content/uploads/2017/05/Zendesk_Tags.jpg

例:ZendeskからTrelloのカードが自動で作成されたところ

http://corporate-tech-blog-wp.s3-website-ap-northeast-1.amazonaws.com/tech/wp-content/uploads/2017/05/Trello_Add_Card.jpg

例:ZendeskからSlackへ自動で通知されたところ

http://corporate-tech-blog-wp.s3-website-ap-northeast-1.amazonaws.com/tech/wp-content/uploads/2017/05/Slack_Create_Knowledge.jpg
 

Trelloの準備

 それでは設定していきたいと思います。まずはTrelloの準備です。以下のブログを参考にして、KeyやToken、カードを作成するボードのリストIDを取得してください。
 
【30分で動かすシリーズ】TrelloにAPIを使ってカードの起票や取得をしてみる
 
 続いて、以下のコマンドでカードにつけるラベルIDも取得しておきます。今回はカードに「Zendesk」ラベルを付けます。

ラベルID

 

Slackの準備

Slack Appをつくる

 次はSlackの準備です。Slackにログインした状態で以下のURLにアクセスし、右上の「Create New App」ボタンを押します。
 
https://api.slack.com/apps
 
 Appの名前を入れ、Slackチームを選択し、「Create App」ボタンを押します。
 
http://corporate-tech-blog-wp.s3-website-ap-northeast-1.amazonaws.com/tech/wp-content/uploads/2017/05/Create_an_App.jpg

 最初の画面で「Incoming Webhooks」を選択します。
 
http://corporate-tech-blog-wp.s3-website-ap-northeast-1.amazonaws.com/tech/wp-content/uploads/2017/05/Incoming_Webhooks.jpg

 「Active Incoming Webhooks」を「On」にします。
 
http://corporate-tech-blog-wp.s3-website-ap-northeast-1.amazonaws.com/tech/wp-content/uploads/2017/05/Active_Incoming_Webhooks.jpg

 同じ画面の下の方の「Webhook URLs for Team」項目で「Add New Webhook to Team」ボタンを押します。
 
http://corporate-tech-blog-wp.s3-website-ap-northeast-1.amazonaws.com/tech/wp-content/uploads/2017/05/Active_Incoming_Webhooks_01.jpg

 投稿したいチャンネルを設定して「Authorize」ボタンを押します。
 
http://corporate-tech-blog-wp.s3-website-ap-northeast-1.amazonaws.com/tech/wp-content/uploads/2017/05/Authorize.jpg

 あとで使うので、作成された「Webhook URL」をコピーしてひかえておきます。
 
http://corporate-tech-blog-wp.s3-website-ap-northeast-1.amazonaws.com/tech/wp-content/uploads/2017/05/Active_Incoming_Webhooks_02.jpg
 

Zendeskの設定

Trello用のHTTPターゲットを作成

 最後にZendeskの設定をおこないます。左メニューの「設定マーク」から「機能拡張」を選択し、右画面にある「ターゲットを追加」リンクを押します。
 
http://corporate-tech-blog-wp.s3-website-ap-northeast-1.amazonaws.com/tech/wp-content/uploads/2017/05/Zendesk_00.jpg

次の画面で「HTTPターゲット」を選択します。
 
http://corporate-tech-blog-wp.s3-website-ap-northeast-1.amazonaws.com/tech/wp-content/uploads/2017/05/HTTP_Target.jpg

 次の画面で、以下のように入力/選択後、画面右下のプルダウンメニューで「ターゲットの作成」を選択し、「送信」ボタンを押します。
 

項目名
タイトル Trello Create Card
URL https://trello.com/1/cards
方法 POST
コンテンツタイプ Form encoded

http://corporate-tech-blog-wp.s3-website-ap-northeast-1.amazonaws.com/tech/wp-content/uploads/2017/05/HTTP_Target_Trello.jpg

Slack用のHTTPターゲットを作成

 先程のTrelloのときと同じ要領で「HTTPターゲット」作成画面を表示します。以下のように入力/選択後、画面右下のプルダウンメニューで「ターゲットの作成」を選択し、「送信」ボタンを押します。
 

項目名
タイトル Slack Post Message
URL 前の手順で作成してひかえておいたSlackの「Webhook URL」
方法 POST
コンテンツタイプ JSON

http://corporate-tech-blog-wp.s3-website-ap-northeast-1.amazonaws.com/tech/wp-content/uploads/2017/05/HTTP_Target_Slack.jpg

トリガを設定

 左メニューの「設定マーク」から「トリガ」を選択し、右画面にある「トリガを追加」ボタンを押します。
 
http://corporate-tech-blog-wp.s3-website-ap-northeast-1.amazonaws.com/tech/wp-content/uploads/2017/05/Zendesk_02.jpg

 次の画面で以下のように入力/選択し、右下の「トリガの作成」ボタンを押します。
 

項目名
トリガのタイトル Knowledge Request
次のすべての条件を満たす チケット:タグ 少なくとも次の1つを含む「knowledge」
次の任意の条件を満たす チケット:ステータス = 「解決済み」
これらのアクションを実行 チケット:タグを削除「knowledge」
  通知:ターゲットに通知「Trello Create Card」
※「x-www-form-urlencodedパラメータをリクエスト」については以下を確認
  通知:ターゲットに通知「Slack Post Message」
※「JSONボディ」については以下を確認
x-www-form-urlencodedパラメータをリクエスト

 ここには、先程「Trelloの準備」で準備したKeyやToken、リストやラベルのIDを入力します。Trelloのカード名の設定である「name」には「{{ticket.title}}」、カードに添付するリンクURLの設定である「urlSource」には「{{ticket.link}}」とそれぞれ入力します。
 

JSONボディ

 Slackで通知するときの文章をJSON形式で設定します。

 
http://corporate-tech-blog-wp.s3-website-ap-northeast-1.amazonaws.com/tech/wp-content/uploads/2017/05/Zendesk_Trigger.jpg

動作確認

 Zendeskのチケットに「knowledge」タグを追加したあと、ステータスを「解決済み」にします。
 
 Trelloにカードが作成され、Slackにも投稿されました。Zendeskのチケットのタグも削除されています。
 

ZendeskからTrelloのカードが自動で作成されたところ

 先程、Zendeskの「トリガ」の「x-www-form-urlencodedパラメータをリクエスト」の箇所で設定した、チケットのカード名やラベル、リンクURLが設定されています。
 
http://corporate-tech-blog-wp.s3-website-ap-northeast-1.amazonaws.com/tech/wp-content/uploads/2017/05/Trello_New_Card.jpg

ZendeskからSlackへ自動で通知されたところ

 先程、Zendeskの「トリガ」の「JSONボディ」の箇所で設定した文章で通知されています。
 
http://corporate-tech-blog-wp.s3-website-ap-northeast-1.amazonaws.com/tech/wp-content/uploads/2017/05/Slack_Create_Knowledge.jpg

Zendeskのチケットからタグが削除されたところ

http://corporate-tech-blog-wp.s3-website-ap-northeast-1.amazonaws.com/tech/wp-content/uploads/2017/05/Zendesk_Tags_None.jpg

http://corporate-tech-blog-wp.s3-website-ap-northeast-1.amazonaws.com/tech/wp-content/uploads/2017/05/Zendesk_Ticket.jpg

まとめ

 今回はZendeskのチケットから自動でTrelloのカードを作成しつつ、同時にSlackへの通知までおこないました。Zendeskの「トリガ」を使えば、TrelloやSlackとの連携も簡単にできて便利ですね!
 今後も引き続きZendeskの便利な使い方をブログにしていきたいと思います!
 
 いや〜、Zendeskって本当にいいものですね!
 

AWS運用自動化サービス「Cloud Automator」