MicroAd Developers Blog

マイクロアドのエンジニアブログです。インフラ、開発、分析について発信していきます。

外部サービスと従業員データの整理とそれらの利活用による業務改善

マイクロアドのIT戦略グループの米田(まいた)です。 私は2022年1月末にマイクロアドを退職して他社に転職したのですが、業務委託(副業)を経て2023年10月に正社員としてマイクロアド復帰させていただき、改めてIT戦略グループで働いています。

今回は復帰してから進めている「社内で利用している外部サービスのデータ整理・管理」と「従業員データの整備」、そしてそれらのデータを利活用した業務改善を紹介させていただきたいと思います。

外部サービスのデータ整理・管理


社内で利用しているIT戦略グループ管理のサービスに関して、情報の確認や設定変更などを各サービスの画面で行っていましたが、単純作業の自動化・一括処理化を進め、必要なデータをリスト化して管理するようにしました。

Google Workspace

Google Apps Script(GAS)とGoogleスプレッドシートを使用し、ユーザーアカウントやグループ情報を取得・リスト化したり、作成・更新・削除などの作業をスプレッドシートのリストデータに基づいて一括処理するツールを実装しました。

  • Googleグループ管理
    • グループのリスト化
    • グループの追加・設定更新・削除
    • グループメンバーの追加・削除
  • Googleユーザーアカウントの管理
    • ユーザーアカウントのリスト化
    • Google管理コンソールの「組織部門」のリスト化
    • ユーザーアカウントの追加・設定更新・削除

また、GASまたはPythonとGoogleスプレッドシートを使用し、Googleドライブの共有ドライブや権限・共有設定をリスト化して棚卸・監査に利用できるようにしました。

  • Googleドライブ管理
    • Googleドライブの共有ドライブとその設定のリスト化
    • 指定した共有ドライブ配下のアイテムとその設定のリスト化
    • 監査ログから公開設定に問題のありそうなアイテムの検出とSlack通知

Atlassian製品

マイクロアドではクラウド版のJira Software/Jira Service Management/ConfluenceをStandardプランで利用しています。

GASとGoogleスプレッドシートを使用し、ユーザーアカウントやグループ情報などを取得・リスト化したり、作成・更新・削除などの作業をスプレッドシートのリストデータに基づいて一括処理するツールを実装しました。

  • Atlassianグループ管理
    • グループのリスト化
    • グループメンバーの追加・削除
  • ユーザーアカウント管理
    • ユーザーアカウントのリスト化
    • 管理対象アカウントの設定更新(氏名/公開名など)
  • Jira Cloud関連情報管理
    • プロダクトのリスト化
    • 課題フィールドのリスト化
    • ライセンス付与状況のリスト化
  • Confluence関連情報管理
    • スペースのリスト化
    • ライセンス付与状況のリスト化

Atlassian CloudのREST APIを利用するためにOAuth2.0を利用しています。 OAuth2.0を利用した機能はGASライブラリとして社内の希望者に提供しており、各自のアカウントの権限に基づいた処理のみが実行可能になっています。

OAuth2.0によるAtlassian Cloud REST APIの利用例をMicroAd Advent Calendar 2023の記事で紹介していますので、ご興味のある方はご参照ください。 qiita.com

また、Atlassian Admin APIを利用する場合のみ admin.atlassian.com で発行できるAPIキーを利用しています。

Dialpad

マイクロアドではクラウドPBXとしてDialpadを利用しています。

GASとGoogleスプレッドシートを使用し、ユーザーアカウントを取得・リスト化したり、WebhookとGASアプリを利用して日々のコールログの取得・リスト化を自動化して社内向けレポートが自動更新されるようにしました。

  • ユーザーアカウント管理
    • ユーザーアカウントのリスト化
  • コールログ管理
    • コールログ取得用Webhookの構成・管理
    • コールログのリスト化

https://developers.dialpad.com/

Workplace

マイクロアドでは全社チャットとしてWorkplaceを利用しています。

GASとGoogleスプレッドシートを使用し、ユーザーアカウントを取得・リスト化したり、ユーザーやグループにBOTでチャット送信するGASライブラリを実装・提供しました。

  • ユーザーアカウント管理
    • ユーザーアカウントのリスト化
  • チャット送信機能
    • BOTによるチャット送信用GASライブラリの提供

developers.facebook.com

Slack

マイクロアドではSlackもチャットツールとして業務利用しています。

GASとGoogleスプレッドシートを使用し、ユーザーアカウントを取得・リスト化したり、ユーザーやチャンネルにアプリからメッセージ送信するGASライブラリを実装しました。(提供はこれからになります。)

  • ユーザーアカウント管理
    • ユーザーアカウントのリスト化
  • メッセージ送信機能
    • Slackカスタムアプリによるメッセージ送信用GASライブラリの実装

api.slack.com

従業員データの整理


IT戦略グループも含め、社内で利用しているサービスのアカウントやグループを最新の組織情報と同期させていく上で、従業員マスタは最も重要なデータです。ただし、必要な部署が必要なデータを(許可された上で)利活用できることが望ましいです。

私の復帰の時点では最新の従業員データ(社員番号、氏名、メールアドレス、雇用形態、入社日、勤務地、ステータス、所属組織など)がリストで提供されていなかったため、(現時点で可能な対応として)Googleスプレッドシートで「社員管理表」を提供してもらうように担当部署と調整しました。

また、このスプレッドシートを参照して最新の情報だけが自動的にインポートされるスプレッドシートを、IT戦略グループ用と他部署共有用の2パターンで用意しました。

データ利活用による業務改善


リスト化された最新の従業員データを利用できるようになったことで、先に紹介した外部サービスやそれ以外のサービスで業務を効率化したり、データを集約することができました。それらの一部を紹介します。

アカウント情報更新の効率化

SlackやAtlassian製品などの利用者が増え、メンションする際などに対象のユーザーを見つけられないという課題が発生していました。 アカウントの氏名などの命名ルールを定めるとともに、管理ツールに従業員データをインポートして、氏名や組織情報を一括設定するようにしました。

サービスの設定更新の効率化

マイクロアドでは組織変更が多いため、その都度、各部署のサービス管理者が管理画面を開いて設定変更していました。 手作業なので時間もかかりますし、入力ミスやコピペミス・入力漏れ・更新漏れも発生していました。

従業員リストを活用することで、更新情報をGoogleスプレッドシートで自動生成し、開発者向けAPIやアップロード用のCSVを生成して一括更新できるようになりました。

例えば、Uniposの場合、組織変更や異動・入退社が発生すると人事担当者はグループ・メンバー管理(追加・更新・削除)を手作業で対応していました。 現在は従業員リストをインポートしたGoogleスプレッドシートでグループやメンバーの最新構成を自動生成し、そのデータをGASとUnipos Provisioning APIを使ってUniposに一括設定しています。

Googleユーザーアカウントへのデータ集約

Googleユーザーアカウントのプロパティを利用し、従業員リストのデータや各管理ツールでリスト化したデータ(ユーザーIDをなど)をGoogleユーザーアカウントに集約し、従業員がGoogle Workspaceのアプリや、社内ポータルとして利用しているLumAppsで確認できるようにしました。

Googleユーザーアカウントに関するデータ仕様を用意していますので、今後許可された従業員はAPIでデータを取得することもできます。

developers.google.com

まとめ


復帰してから進めているデータ整備や管理ツール実装、データの利活用例を紹介させていただきました。

現在は従業員リストのデータをいろいろと加工して利用しているのですが、それらの中にはマスタが整備されていると不要な加工も多く存在しています。 従業員や組織のマスタ化は今後取り組むべき重要事項ですので、関係部署と連携の上進めていきたいと思っています。

最後まで読んでいただきありがとうございました!