当社ではSlackの利活用が進んでおり、メンバー数も増えています。一方でSlack管理者の作業も増える傾向があり、プロフィールの管理には以下の悩みがありました。
- 組織変更があるたびにプロフィールのメンテナンスが必要
- 各自にプロフィール更新をお願いしても対応してくれない
- 1件ずつ対応するには時間がかかる
Slackの標準機能ではプロフィールを一括で更新する機能がありません。そのため、組織変更で所属が変わったときのメンテナンスに苦労していました。
そこで、当社ではオリジナルアプリを開発し管理者の負荷を削減することにしました。
今回の記事はプロフィールの一括更新とチャンネルへの自動参加するアプリを作った開発記録です。Slackのメンバー管理など、管理者に参考となる記事となっていますので、ぜひお読みください。
もくじ
要望と課題:プロフィール編集の手間を削減したい
Slack管理者にヒアリングしたところ、Slackを運用管理する上で以下の要望と課題があることが分かりました。
要望
- プロフィールに基礎情報を設定したい
- 部署チャンネルにメンバーを参加させたい
課題
- 組織変更が毎年あるため、メンテナンス負荷が高い
- SCIMを利用していないため、手動設定が必要
- 各自に更新を促す場合、未更新が多く見込まれる
メモ
Slackでプロフィールを編集するには、ユーザー毎に更新する必要があります。
![Slack画面でのプロフィール編集](https://pci-sol.com/business/service/product/wp-content/uploads/Slack画面でのプロフィール編集.png)
機能要件の定義:一括更新できる仕組み
要望と課題より、プロフィールの一括更新とチャンネルへの自動参加のアプリを作ることにしました。アプリの名称は「組織変更アプリ」とします。
Slack管理者とSlack開発メンバーで話し合い、アプリケーション化する上で必要な機能を整理しました。
機能 | 詳細 |
---|---|
ユーザープロフィール一括更新 | ・CSVで更新情報を作成し、プロフィールの一括更新とチャンネル自動参加を行う。 ・更新結果は、元のCSVに情報を追加して通知する |
ユーザープロフィール更新用フォーマット出力 | ・フォーマット(ヘッダー情報のみ)のみ出力する。※プロフィールの項目(カスタム要素)が変更になる可能性があるため |
組織マスタメンテナンス一覧出力 | ・マスタの一覧出力を行う。 |
組織マスタメンテナンス一覧更新 | ・マスタの一覧更新を行う。 |
今回、組織情報マスタ用のDBはHeroku Postgresを利用しています。
機能設計:処理フローの定義
機能要件が定義できたので、処理フローを設計します。
処理を開始するトリガーは2つ、「CSVファイル投稿」と「グローバルショートカット選択」があります。各機能とトリガーを以下のように結び付けました。
- CSVファイル投稿
- ユーザープロフィール一括更新
- 組織マスタメンテナンス一覧更新
- グローバルショートカット選択
- ユーザープロフィール更新用フォーマット出力
- 組織マスタメンテナンス一覧出力
トリガーごとに処理フローを設計します。
CSV投稿時の処理処理フロー
![ユーザープロフィール一括更新機能と組織マスタメンテナンス機能の処理フロー](https://pci-sol.com/business/service/product/wp-content/uploads/ユーザープロフィール一括更新機能と組織マスタメンテナンス機能の処理フロー-1.png)
グローバルショートカット選択時の処理フロー
![ユーザープロフィール更新用フォーマット出力機能と組織マスタメンテナンス機能の処理フロー](https://pci-sol.com/business/service/product/wp-content/uploads/ユーザープロフィール更新用フォーマット出力機能と組織マスタメンテナンス機能の処理フロー.png)
完成したアプリ:組織変更アプリ
本記事ではアプリケーション実装部分は割愛します。
完成版の動作を以下に説明します。
1. ユーザープロフィール一括更新
1.1 更新用のCSVファイルを準備
![【プロフィール一括更新機能】更新用のCSVファイルを準備](https://pci-sol.com/business/service/product/wp-content/uploads/【プロフィール一括更新機能】更新用のCSVファイルを準備.png)
1.2 SlackへCSVファイルを投稿
![【ユーザープロフィール一括更新機能】SlackへCSVファイルを投稿](https://pci-sol.com/business/service/product/wp-content/uploads/【ユーザープロフィール一括更新機能】SlackへCSVファイルを投稿.png)
1.3 実行確認メッセージ表示
![【プロフィール一括更新機能】実行確認メッセージ表示](https://pci-sol.com/business/service/product/wp-content/uploads/【プロフィール一括更新機能】実行確認メッセージ表示.png)
1.4 処理結果投稿
![【プロフィール一括更新機能】処理結果投稿-1](https://pci-sol.com/business/service/product/wp-content/uploads/【プロフィール一括更新機能】処理結果投稿-1.png)
以下の通り、氏名・所属・所属コードが変更されました。
Before
![【プロフィール一括更新機能】処理結果投稿_プロフィール_変更前](https://pci-sol.com/business/service/product/wp-content/uploads/【プロフィール一括更新機能】処理結果投稿_プロフィール_変更前.png)
After
![【プロフィール一括更新機能】処理結果投稿_プロフィール_変更後](https://pci-sol.com/business/service/product/wp-content/uploads/【プロフィール一括更新機能】処理結果投稿_プロフィール_変更後.png)
2. ユーザープロフィール更新用フォーマット出力
2.1 グローバルショートカットから”組織変更フォーマットダウンロード”を選択
![【ユーザープロフィール更新用フォーマット出力機能】グローバルショートカットから組織変更フォーマットダウンロードを選択](https://pci-sol.com/business/service/product/wp-content/uploads/【ユーザープロフィール更新用フォーマット出力機能】グローバルショートカットから組織変更フォーマットダウンロードを選択.png)
2.2 フォーマット投稿
![【ユーザープロフィール更新用フォーマット出力機能】フォーマット投稿](https://pci-sol.com/business/service/product/wp-content/uploads/【ユーザープロフィール更新用フォーマット出力機能】フォーマット投稿.png)
3. 組織マスタメンテナンス一覧出力
3.1 グローバルショートカットから”所属一覧ダウンロード”を選択
![【組織マスタメンテナンス一覧出力機能】グローバルショートカットから”所属一覧ダウンロード”を選択](https://pci-sol.com/business/service/product/wp-content/uploads/【組織マスタメンテナンス一覧出力機能】グローバルショートカットから所属一覧ダウンロードを選択.png)
3.2 取得結果投稿
![【組織マスタメンテナンス一覧出力機能】取得結果投稿](https://pci-sol.com/business/service/product/wp-content/uploads/【組織マスタメンテナンス一覧出力機能】取得結果投稿.png)
4. 組織マスタメンテナンス一覧更新
4.1 登録用のCSVファイルを準備
![【組織マスタメンテナンス更新機能】登録用のCSVファイルを準備](https://pci-sol.com/business/service/product/wp-content/uploads/【組織マスタメンテナンス更新機能】登録用のCSVファイルを準備.png)
4.2 SlackへCSVファイルを投稿
![【組織マスタメンテナンス更新機能】SlackへCSVファイルを投稿](https://pci-sol.com/business/service/product/wp-content/uploads/【組織マスタメンテナンス更新機能】SlackへCSVファイルを投稿.png)
4.3 実行確認メッセージ表示
![【組織マスタメンテナンス更新機能】実行確認メッセージ表示](https://pci-sol.com/business/service/product/wp-content/uploads/【組織マスタメンテナンス更新機能】実行確認メッセージ表示.png)
4.4 処理結果投稿
![【組織マスタメンテナンス更新機能】処理結果投稿](https://pci-sol.com/business/service/product/wp-content/uploads/【組織マスタメンテナンス更新機能】処理結果投稿.png)
アプリ運用後の声
本アプリは当社内で運用しています。Slack管理者・利用者から以下の声をもらいました。
- 一括プロフィール更新で、作業負荷の軽減や作業漏れの防止になった
- 所属の異動時のコミュニケーションの円滑化にも貢献している
まとめ:Slack管理の負荷はオリジナルアプリで解決
この記事ではプロフィール更新の手間を削減し、Slack管理者の負荷を軽減するアプリの開発記について解説しました。
Slackの標準機能ではできないことも、オリジナルアプリを作ることで解決できることがあります。
当社ではSlackアプリの立案・開発を始め、より便利にSlackが使えるようなご提案やサービスの提供を行っています。Slackのご利用でお困りの際は、ぜひご相談ください。