2018年のKinstaは、従業員数わずか50人ほどの小規模な会社でした。当時サポートエンジニアとして働き始めたJeff Paulは、カスタマーサポート用に構築された社内ドキュメントの質の高さに感銘を受けたと言います。Kinstaでは今日に至るまで、お客様に最高のサポートを提供するため、社内ドキュメントの質を維持しています。今回は、社内ドキュメントをより良いものにするためのプロジェクトを立ち上げた、Jeff Paulに話を聞きました。

社内ドキュメント

当時から社内ドキュメントの質は高かったものの、ツールや自動化はほとんど導入されていませんでした。RedisのインストールやIoncubeのセットアップを何度も繰り返した後、この問題を解決したいと考え始めました。

それまでの業務はすべて手動で行なっており、Confluenceにアクセスして、追加・変更が必要な特定の設定を調べ、コードブロックをコピー&ペーストし、特定の場所でデータをチェックし、別の場所で更新…と作業はいつも山積み。更新にも時間がかかり、プロセスの手順を見落として問題が生じ、ミスが発生する機会も増えていきました。

自動化プロジェクトの一環として、まずは各作業にBashスクリプトを書き、自分自身のワークフロー改善に役立てるとともに、細かな作業をミスなく繰り返せるようにすることから始めました。これを見た他のメンバーもスクリプトを使い始め、それまでは20分かかっていた作業が、ほんの数秒で済むように。さらに人為的ミスの発生も減りました。

このスクリプトをツール化して社内全体で使えるようにするべく、当時の最高顧客責任者兼カスタマーサポート部門のディレクターであったTom Sepperに相談して、プロジェクトが本格的に始動しました。

Kinsta Tool

Bashで書いたスクリプトをPHPに変換し、より汎用性のあるものに書き直して、「Kinsta Tool」を構築しました。Kinsta Toolは、現在もカスタマーサポート部門で使用されており、マルウェアスキャン、PHP拡張モジュールのインストール、Redisのセットアップなどのタスク用の無数の自動化機能が含まれます。

Kinsta Toolは、MyKinstaで操作できない作業を補うのに重宝します。例えば、「WordPressサイトをデフォルトの状態に戻す」というのは顧客からよく受ける依頼の1つです。MyKinstaで実行できないことはありませんが、サイトを削除して再び作成しなければなりません。

この作業を簡素化するため、WP-CLIとMySQLコマンドを使って、ボタンを押すだけでデータベースをパージ、ファイルを削除、そしてWordPressの最新バージョンを再インストールする機能をKinsta Toolに実装。これによって、手作業で行えば5〜10分程度かかる作業を5秒もかからず完了できるようになりました。

Chromeの拡張機能

このような自動化の試みは、以前にも行われていました。現在はKinstaのマーケティング技術部門で働く元サポートエンジニアのThoriq Firdausは、Chromeの拡張機能を開発しています。この拡張機能は、サイトのヘッダーを表示し、Kinstaでホストされているかどうかを検出するのに社内で使用していました。

この拡張機能は最近まで使われていましたが、メンテナンスが行き届いていませんでした。そのため、Chrome Manifestの最新バージョンを使用していることを確認するため、新たな拡張機能の開発にも着手。元のコンセプトを踏まえ、独自のツールや機能を追加することで、カスタマーサポート部門がより効率的かつ効果的に業務を行えるように。

良い例として挙げられるのが、サポートスタッフがIntercomで顧客への対応中、信頼できない(とみなされる)URLを自動で難読化する機能。これによって、悪意のあるリンクを送信するあらゆる可能性を排除し、セキュリティを強化することができます。

また、サイトがKinstaでホストされているかどうかも一目で確認可能です。この拡張機能をクリックするだけで、サイトが送信しているすべての関連ヘッダーをすばやくチェックでき、サイトの問題を追跡可能です。

さらに、一時的なメモ帳機能によって、メモやコードをコピー&ペーストすることもできます。これによって、IntercomからMyKinstaへのタブの切り替えがより簡単になり、生産性が高まります。

チャットルーティングシステム

また別の社内ツールとして、独自のチャットルーティングシステムを確立するため、IntercomのAPIを利用することにしました。Intercomは、複数のメンバーに同じ量の仕事を割り当てる「ラウンドロビン」と呼ばれる方式を採用しており、作業の効率化に有用でしたが、他のメンバーよりも多くの顧客を抱えるサポートエンジニアが出てきてしまい、全体のバランスが崩れることも多々ありました。

この課題を解消するため、IntercomのAPIやWebhooksと直接連携し、Intercom内から直接アクションを受信して応答する独自のルーティングコードをPHPで作成。その結果、顧客からのお問い合わせを均等にサポートエンジニアに割り当てられるようになりました。

顧客からのお問い合わせに対する返答の適時性と情報の豊かさを確保するため、各お問い合わせ内容の難易度と重要度を評価する独自のルーティングロジックも実装しています。

例えば、DNSに関連するお問い合わせは、一般にリバースプロキシに関するものよりも難易度が低いことから、リバースプロキシに関するお問い合わせに比べて重要度が下がります。

ルーティングロジックは、サポートエンジニアの可用性を評価し、進行中のお問い合わせ内容の累積重要度を計算した上で、最も負担の少ないエンジニアに新たな顧客を割り当てます。

社内ツール導入後

2022年7月を前に、この手のツールやシステムがカスタマーサポート全体の成功の鍵を握ることを認識し、Kinsta Toolプロジェクトの責任者として、他の業務に加えて、関与するプロジェクトで「技術的負債」を抱えるようになりました。

各システムには更新とメンテナンスが不可欠であることから、割り当てていた以上の時間の投入が必要に。その間、サポート部門代表、最終的にはテクニカルサポート部門のディレクターに就任しました。

こうして増え続ける仕事量と、カスタマーサポートにおける社内ツールの必要性を考慮し、プロジェクトを一任できる新たな人材が必要であると判断。質の高いツールの構築のために十分な時間を確保できる、知識と経験を兼ね揃えた素晴らしいメンバーを社内で選出しました。

社内ツールに専任の開発者を確保して以来、プロジェクトでより良い統計追跡を行えるようになりました。また、Chrome拡張機能の再構築や既存ツールの改善に取り組み続けています。

まとめ

2018年当時、まだ小さな会社だったKinstaで生まれたちょっとしたアイデアが、後にKinsta Toolという立派な社内ツールに成長を遂げました。生産性向上やツール化のアイデアを形にする方法として、このような「スタートアップ精神」は見落とされがちです。

Jeff Paulにとって、効率化と仕事のしやすさはKinstaでの最優先事項。Kinstaに限らず、独自のツールや自動化の開発・導入はあらゆる企業に多くの恩恵をもたらします。

この記事が生産性の向上や人為的ミスの軽減、チームでのパフォーマンスの最大化のヒントになれば幸いです。

Jeff Paul Kinsta

Jeff Paul joined Kinsta in October of 2018. He's worked as a Support Engineer, Support Lead, Head of Support, and Director of Technical Support. Jeff is responsible for the overall direction of four customer-facing teams: Support, Migrations, Malware & Abuse, and Internal Support.