Zendesk と GitLab を連携させチケット収集作業を効率化してみた

2018.02.28

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

クラスメソッドオペレーションチームの下田です。 本記事では、Zendesk から GitLab API を叩いて Issue を作成するための設定手順を紹介しています。

普段は、オペレーションチームの一員としてクラスメソッドメンバーズへ加入されているお客様の運用をサポートすべく様々なご質問およびご依頼に対応させて頂いております。クラスメソッドメンバーズについてご興味ありましたら、以下のリンク先をご一読ください。

日々、カスタマーサポートとして様々なご質問に対応していると複数回同じ(似た)内容のご質問を頂くことが多々あります。俗に FAQ(Frequently Asked Questions - 頻繁に尋ねられる質問)と呼ばれており、「よくある質問」というページにいくつかの質問や回答が纏まっているのを見かけることがあるかと思います。

AWS サービスでも、ご多分に漏れず FAQ が纏められていることはご存知の通りです。

我々、クラスメソッドのオペレーションチームでも同様にメンバーズへ加入されているお客様へ有用なナレッジを提供すべくブログ記事とは別に FAQ 記事を日々執筆しております。今回は、この FAQ 記事(候補)の収集作業を効率化しましたというお話です。

目的

  • FAQ 記事(候補)の収集作業を効率化すること
  • 試験的に GitHub/GitLab のようなレビューシステムを活用して FAQ 記事の作成作業を効率化すること

今回は、試験的な導入ということもあり予算もないため無料かつ、プライベートリポジトリ利用可でユーザー数制限の無いサービスとして GitLab を利用してみました。 GitLab に関する詳細については、公式ページをご確認ください。

これまでは、FAQ 記事(候補)となる Zendesk のチケットをサポートメンバーとコミュニケーションしながら個別に収集(ヒアリング)していました。FAQ 記事(候補)となるチケットの件数が増加するに従い、収集作業に必要なコストも増えてくるため効率化したいなと思ったのが今回の作業背景となります。

やってみた

Zendesk チケットのタグとして、"faq" タグを追加する。

ZendeskTag-640x325

チケットが完了したタイミングで、GitLab の Issue が新規作成されます。

GitLabIssue1

GitLab Issue を確認すると、以下のとおりです。

GitLabIssue2-640x371

チケットのタイトルが Issue タイトルとして設定され、チケット URL が記載されていることが確認できます。 今回の設定により、Zendesk チケットに対して faq タグを付与するだけで効率的に候補チケットが収集できるようになりました。

設定手順

GitLab の設定について

GitLab 側では、以下の作業を行います。

  • Personal Access Tokens を発行
  • プロジェクトID を確認

まずは、Personal Access Tokens を発行するため自ユーザの Settings ページに移動します。

Personal_Access_Tokens1-640x231

Name にアクセストークン名として分かり易い名前を設定してください。あとは、Scopes の api にチェックを入れ、Create personal access token ボタンをクリックするだけです。

Personal_Access_Tokens2-640x153

発行されたアクセストークンを控えておきます。

Project_ID-640x225

プロジェクトID は、プロジェクトの設定ページから確認できますのでこちらも ID を控えておきましょう。

Zendesk の設定について

次は、Zendesk 側の設定を行います。

GitLab API を発行するための HTTP ターゲットを作成します。

ZendeskConfig

管理(歯車ボタン)を選択後、拡張機能を選択します。その後、「ターゲットを追加」リンクをクリックします。

6e4918d0903387d097e1d2c3b85bdc69

HTTP ターゲットを選択した後に、設定を行います。

Create_Issue-640x421

設定項目は、以下のとおりです。

項目 設定値
タイトル 例:GitLab Create Issue
URL https://gitlab.com/api/v4/projects/プロジェクトID/issues
方法 POST

GitLab Issues API については、以下の公式ドキュメントをご参照ください。

最後に、トリガを設定します。

f6169b28d73825a8e66dc45b2c4c251e

管理(歯車ボタン)を選択後、トリガを選択します。その後、「トリガを追加」リンクをクリックします。

PushToGitLab1-640x586

設定項目は、以下のとおりです。

項目 設定値
トリガ名 例:PushToGitLab
以下の条件をすべて満たす タグ、少なくとも次の1つを含む、faq
以下のいずれかの条件を満たす ステータス、=、解決済み

「以下のいずれかの条件を満たす」の設定項目は、「条件を追加」ボタンをクリックしてから設定してください。

PushToGitLab2-640x466

※上記のイメージ画像は、既に設定されているトリガの画像となります。

項目 設定値
ターゲットに通知 追加した HTTP ターゲット名を指定
private_token 発行済の Personal Access Tokens を指定
title {{ticket.title}}
description {{ticket.link}}

設定完了後、「作成」ボタンをクリックします。 これで、全ての設定が完了となります。

最後に

FAQ 記事候補チケットの収集作業が効率化されたことは言うまでもなく、GitLab を導入することによって FAQ 記事作成に関する情報(議論や変更差分)が集約されるため、トレーサビリティが向上するという利点がありました。また、記事の下書きレビューについても GitLab の機能により変更差分が見易く、オフラインレビューが捗っています。設定も難しくないため、Zendesk を利用されているのであれば一度試してみても良いのではないでしょうか。

ではでは

参考ドキュメント

当初は、以下のブログ記事を参考に(試験的に) FAQ 記事候補の情報を Trello で収集していました。

有用な記事を公開して頂き、ありがとうございました。