AI時代には社内ツールもサクッと作るべし〜日程調整ツール編〜
0. はじめに
はじめまして、株式会社WOGOでインターンをしている原と申します。
AIの進化により、エンジニアリングのハードルは劇的に下がりました。これまで「実務経験の壁」に阻まれていた未経験者でも、適切な課題解決アプローチさえあれば、現場の負を解消するツールを爆速で生み出せる時代です。
本記事では、実務経験ゼロだった私が、社内の日程調整業務を自動化するChrome拡張機能をわずか2週間で開発した経験を通じ、なぜ今、既存サービスを待つのではなく、自分たちで『ワンポイントの最適解』を作るべきなのかについてお話しします。
1. 背景
現在、多くのSaaS(外部サービス)が存在しますが、高機能ゆえにコストが高かったり、自社のワークフローに完璧にフィットしなかったりすることも少なくありません。
AI時代の今、中途半端な外部サービスにお金を払うくらいなら、現場に最適化したベストなツールを自分たちでサクッと作るという選択が、最も合理的でスピード感のある経営判断になりつつあります。
弊社WOGOでも、事業拡大に伴う営業サイドの「細かい定型作業」がボトルネックとなっていました。そこで、外部ツールの導入を待つのではなく、インターンの開発リソース(私)を活用し、「今の自社に最も必要な機能だけ」を抽出した専用ツールの開発に着手しました。その第一弾として、日程調整ツールを開発することにしました。
2. 開発
なぜ「chrome拡張」を選んだか?
今回、日程調整ツールを開発するにあたり、WebアプリケーションやGoogle Apps Script (GAS) など様々な選択肢がありました。その中でChrome拡張機能を選択した理由は、以下の3点です。
-
低コストな開発環境
HTML/CSS/JavaScriptという基本的な技術スタックで開発でき、サーバーサイドの構築やインフラ管理が不要なため、インターン期間中の限られたリソースでも「サクッと」開発を完了できる見込みがありました。
-
カレンダーとシームレスな連携
目的がGoogle Calendarの操作であり、普段の業務環境であるChromeブラウザに組み込むことで、Google APIへのアクセスやUIの表示を最もスムーズに行えると判断しました。
-
社内配布の容易性
社内利用に限定すれば、Google Workspaceアカウントを利用してセキュリティを確保しつつ、簡単に配布・利用開始ができる点も魅力でした。
chrome拡張機能の最小構成
Chrome拡張機能の最小構成は非常にシンプルで、ごく基本的なWeb技術の知識があればすぐに始められるため、開発のハードルが非常に低く感じられました。これこそが、私が「サクッと」開発を始められた大きな理由です。
実際に、今回の拡張機能で必須となったファイルは以下の通りです。
| ファイル名 | 役割 |
|---|---|
manifest.json |
拡張機能の「設計図」や「設定ファイル」。機能名やアイコン、必要な権限(パーミッション)を定義します。 |
popup.html / popup.js
|
拡張機能アイコンをクリックした時に出てくる画面(UI)とそのロジックを担います。日程調整のパラメーター入力画面などはこちらです。 |
background.js |
拡張機能の「頭脳」。Google APIとの連携や、カレンダーの仮押さえ・自動削除といったバックグラウンド処理を管理します。 |
苦労した点
OAuth 2.0認証フローの複雑性
今回の拡張機能はGoogle Calendarのデータにアクセスするため、OAuth 2.0の認証処理が必須でした。しかし、この時点でOAuth 2.0に関する知識が断片的であったため、まず全体像の把握に苦労しました。
具体的には、認証における「登場人物(リソースオーナー、クライアント、認可サーバーなど)」や「認証フロー(認可コードグラントなど)」、そして利用すべき「認証の種類」について、基本的な理解を深める必要がありました。
Chrome拡張機能特有の認証設定
知識を習得した後も、Chrome拡張機能という環境特有の設定フローに手間取りました。
一般的なWebアプリと異なり、拡張機能では以下の手順で認証環境を構築する必要があります。
- Google Cloud PlatformでOAuthクライアントIDを作成し、使用するAPIを有効化する。
- Chrome拡張機能として利用するための
client_idを作成する。 - この
client_idと、拡張機能の固有ID(アイテムID)を連動させる設定を行う。 - 作成した
client_idを拡張機能のmanifest.jsonに適切に記録する。
特に、client_idと拡張機能のアイテムIDの連動は初めての経験であり、この一連の流れを正確に理解し、実装するのに最も時間を要しました。
3. 社内配布
作成したChrome拡張機能を社内メンバーが安全かつスムーズに利用できるようにするには、大きく分けて以下の2つの配布方法があります。
配布方法の比較(メリット・デメリット)
| 項目 | 1. Chrome Web Storeに限定公開 | 2. Zipファイルで直接配布 (非公開配布) |
|---|---|---|
| セキュリティ | Googleの審査で担保。安全性が高い。 | 自己責任。安全性が低い。 |
| 管理 | Google Workspace連携で容易にメンバー限定配布・管理が可能。 | 各自での展開・管理が必要。困難。 |
| 認証設定 | 開発者が設定すれば、ユーザー側での設定は不要。非常に容易。 | Google API連携の場合、ユーザーごとに認証情報の設定とソースコード書き換えが必要。複雑。 |
| 即時性 | 審査があるため、即時性には欠ける。 | 審査不要で、即座に配布可能。 |
| コスト | 初回開発者登録料 $5 が必要。 | コストゼロ。 |
| 推奨 | 今回のツール(API連携あり)では強く推奨。 | API連携のないツールや、テスト利用に限定。 |
今回の「日程調整ツール」のようにGoogle API連携が必須な拡張機能の場合、セキュリティと管理の容易さからWeb Storeでの限定公開(1.)を強く推奨します。
手順
- 開発者登録: Chrome Web Store Developer Dashboardに登録します。(初回登録料 $5 が必要です)
-
限定公開設定: 拡張機能をアップロードし、公開設定で「非公開」または「限定公開(Google Workspace/Google Group限定)」を選択します。
- 注意点: Google Workspace限定で公開する場合は、あらかじめ組織の管理アカウントで設定を有効にする必要があります。
- 審査と配布: Googleの審査を通過後、社内メンバーが各自Web Storeからアドオン(拡張機能)として追加できるようになります。
4. まとめ
AI時代に求められる業務改善
今回の開発を通じて、中途半端な外部サービスに業務を合わせる時代は終わったと確信しました。
これからのエンジニア(およびビジネスパーソン)に求められるのは、現場の小さな不便を見逃さず、AIという武器を使いこなして、瞬時に最適解をデプロイする力ではないでしょうか。
そんな自律的な改善の積み重ねこそが、AI時代の企業の競争力の源泉になります。
最後に
本記事が、皆さんの業務効率化や技術選定の参考になれば幸いです。
Discussion