【CREウィーク火曜日】Zendeskまもるくんという社内ツールをオープンソース化しました
※こちらの記事は過去のブログから転載したものです。
初めまして、XFLAG スタジオCRE(Customer Reliability Engineer)チームの橋本です。
昨日から「CREウィーク」と題しまして、CREチームのメンバーが毎日日替わりで日々取り組んでいる業務についてブログで発信しております。
2日目は、先日私たちがOSSとして初めて公開したプロダクト、 「zendesk-incident-protector(社内通称: Zendeskまもるくん)」 について紹介させていただこうと思います。
Zendeskまもるくんは昨年末、Qiitaの弊社アドベントカレンダーで取り上げたユーザースクリプトで、今回のOSS化はそれを公開可能な形でリメイクしたものです。
リポジトリは下記になります。
https://github.com/xflagstudio/zendesk-incident-protector
ZendeskまもるくんはZendeskと呼ばれるCRMのためのプロダクトで、ユーザーへの返信で意図していない単語(社内向けツールのURLや無関係のプロダクト内の用語など)が含まれている場合にアラート出来るツールです。Zendeskまもるくんは誤案内を未然に防ぎ、顧客信頼性の一段階向上に一役買ってくれます。
ユーザーサポート業務において、私たちCREチームは「不安を抱えるお客様に寄り添う」という観点を特に大切にしています。そしてそれはXFLAGスタジオだけでなく、CSに関わる全てのプロダクトにそうあってほしいと願っています。このOSS化を通じて、そうした世界へと少しでも近づけたらと私たちは考えています。
もちろん、機能要望や改善提案などはいつでも歓迎しております:)
主な機能と仕組み
今回公開したユーザースクリプトは、技術的には下記のような処理フローによって動作しています。

利用する際はまず初めに、
を定義したJSONファイルをインターネット上(AWS S3やGCP CloudStorageなど)に配置します。作動させるZendeskインスタンスは複数指定可能で、さらにNGワードについても各Zendeskインスタンス毎に個別に指定可能です。このため、複数のZendeskをホストしてサポート業務にあたっている場合でも、1つのJSONファイルで設定が可能です。
(詳細なJSONの構造についてはリポジトリのREADMEに記載しておりますので、この場では割愛させていただきます。)
NGワードのチェック機構を作動させたいZendeskの初回読み込み時には、上述のJSONファイルのURLをプロンプトから指定します。一度指定すればチケットフォームを表示するたび、パブリック返信(ユーザーへの返信)時にNGワードのチェック機構が動作し続ける状態となります。
Zendeskは一つの画面内で複数のチケット(問い合わせ等を起点としたやりとりを管理するスレッド)を表示することが出来るようになっており、各チケットはタブを通じて切り替えることが出来ます。この切り替えの際に、Zendeskの内部ではHTML5 History APIのpushStateを利用してURLを遷移させ、画面の表示を更新しています。この際に、返信フォームや送信ボタンのHTMLといった、ユーザースクリプトの監視やトリガーの対象となっている要素も書き換えられています。
このpushStateのイベントが発火されたタイミングで、必要であればNGワードのチェック機構をタブに対して追加する仕組みになっています。どのタブにチェック機構を追加したかはユーザースクリプト内で管理しているため、一度追加したタブへは再度追加されません。
おわりに
お問い合わせをいただいたユーザーとのコミュニケーションは、ユーザーからのメールとZendeskを介したサポートスタッフの返信からなるやりとりが全てです。そのため、返信を見たユーザーの心象でそのプロダクトの顧客信頼性が決まると言っても過言ではありません。
Zendeskまもるくんの導入前は、以下に挙げるような誤案内が累計で数十件ほど発生していました。
- インシデント送信
- 例: 社内用のツールのURLや内部用語、返信用のテンプレート
- 漢字の誤表記(繁体字)
- 例: ×幾率と○機率(「確率」を意味する漢字)
誤案内によってユーザーは不安を感じるかもしれない、それを技術の力で解決したい。そんな想いからZendeskまもるくんの開発は1年半ほど前から始まり、社内やパートナー企業のサポートスタッフに活用され続けてきました。誤った文面の送信をアラートを通じて防げるようになり、Zendeskまもるくんに設定されたNGワードを含む誤案内は、導入後1件も発生しなくなりました。
冒頭でも述べた「不安を抱えるお客様に寄り添う」ためには、ユーザーへの返信の中で未然に防げるリスクの芽は摘まないといけません。今回公開したOSSプロダクトには、そういった考え方に共感いただける個人や企業様にご活用いただき、更に発展させていければという想いがあります。
また、本ブログの記事が顧客信頼性という概念を知る切っかけになり、ひいてはCREコミュニティの活性化につながることを願ってやみません。
明日は同じくCREチームの上埜より「サブスクリプションのちょっと危険でディープな話」をお届けします。お楽しみに!