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

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

https://cdn-ak.f.st-hatena.com/images/fotolife/s/serverworks/20200711/20200711165457.jpg

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

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

https://cdn-ak.f.st-hatena.com/images/fotolife/s/serverworks/20200711/20200711165446.jpg

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

https://cdn-ak.f.st-hatena.com/images/fotolife/s/serverworks/20200711/20200711165433.jpg

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

https://cdn-ak.f.st-hatena.com/images/fotolife/s/serverworks/20200711/20200711165429.jpg  

Trelloの準備

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

curl "https://trello.com/1/boards/[ボードID]]/labels?key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&fields=name"
ラベルID
[
    {
        "id": "YYYYYYYYYYYYYYYYYYYYYYYY", 
        "name": "Zendesk"
    }
]

 

Slackの準備

Slack Appをつくる

 次はSlackの準備です。Slackにログインした状態で以下のURLにアクセスし、右上の「Create New App」ボタンを押します。
 
https://api.slack.com/apps
 
 Appの名前を入れ、Slackチームを選択し、「Create App」ボタンを押します。  
https://cdn-ak.f.st-hatena.com/images/fotolife/s/serverworks/20200711/20200711165356.jpg

 最初の画面で「Incoming Webhooks」を選択します。  
https://cdn-ak.f.st-hatena.com/images/fotolife/s/serverworks/20200711/20200711165426.jpg

 「Active Incoming Webhooks」を「On」にします。  
https://cdn-ak.f.st-hatena.com/images/fotolife/s/serverworks/20200711/20200711165307.jpg

 同じ画面の下の方の「Webhook URLs for Team」項目で「Add New Webhook to Team」ボタンを押します。  
https://cdn-ak.f.st-hatena.com/images/fotolife/s/serverworks/20200711/20200711165311.jpg

 投稿したいチャンネルを設定して「Authorize」ボタンを押します。  
https://cdn-ak.f.st-hatena.com/images/fotolife/s/serverworks/20200711/20200711165317.jpg

 あとで使うので、作成された「Webhook URL」をコピーしてひかえておきます。  
https://cdn-ak.f.st-hatena.com/images/fotolife/s/serverworks/20200711/20200711165314.jpg  

Zendeskの設定

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

 最後にZendeskの設定をおこないます。左メニューの「設定マーク」から「機能拡張」を選択し、右画面にある「ターゲットを追加」リンクを押します。  
https://cdn-ak.f.st-hatena.com/images/fotolife/s/serverworks/20200711/20200711165439.jpg

次の画面で「HTTPターゲット」を選択します。  
https://cdn-ak.f.st-hatena.com/images/fotolife/s/serverworks/20200711/20200711165409.jpg

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

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

https://cdn-ak.f.st-hatena.com/images/fotolife/s/serverworks/20200711/20200711165417.jpg

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

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

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

https://cdn-ak.f.st-hatena.com/images/fotolife/s/serverworks/20200711/20200711165413.jpg

トリガを設定

 左メニューの「設定マーク」から「トリガ」を選択し、右画面にある「トリガを追加」ボタンを押します。  
https://cdn-ak.f.st-hatena.com/images/fotolife/s/serverworks/20200711/20200711165443.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形式で設定します。

{  
  "text": "Zendesk: Knowledge Request\n{{ticket.title}} → https://trello.com/b/Wvh8kTkl"  
}

 
https://cdn-ak.f.st-hatena.com/images/fotolife/s/serverworks/20200711/20200711165500.jpg

動作確認

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

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

 先程、Zendeskの「トリガ」の「x-www-form-urlencodedパラメータをリクエスト」の箇所で設定した、チケットのカード名やラベル、リンクURLが設定されています。  
https://cdn-ak.f.st-hatena.com/images/fotolife/s/serverworks/20200711/20200711165436.jpg

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

 先程、Zendeskの「トリガ」の「JSONボディ」の箇所で設定した文章で通知されています。  
https://cdn-ak.f.st-hatena.com/images/fotolife/s/serverworks/20200711/20200711165429.jpg

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

https://cdn-ak.f.st-hatena.com/images/fotolife/s/serverworks/20200711/20200711165449.jpg

https://cdn-ak.f.st-hatena.com/images/fotolife/s/serverworks/20200711/20200711165452.jpg

まとめ

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