👨‍💻

Slackワークフロー活用術

2020/12/17に公開

この記事は、【初心者優先枠】corp-engr 情シスSlack(コーポレートエンジニア x 情シス)#2 Advent Calendar 2020 の17日目の記事です。

みなさんSlackのワークフローは使われていますか?
私自身、少し前までは多少利用したことがある程度でしたが、最近作ってみてそのポテンシャルの高さ・有用性を再確認したところです。

そこで、この記事では私がおすすめする活用方法をご紹介します。
なお、Slackワークフローの詳細は 公式ドキュメントを参照ください。

Slackワークフローとは

Slackワークフローは、SlackのUIを使って定型的な処理の自動化をノーコードで簡単に実現できる、Slackの標準機能です。
定形処理の自動化はバックオフィスやスタッフ部門のような、非エンジニアの方が多数を占める部門での需要が大きいかと思います。
また、Slackを導入されている企業であれば、業務時間中Slackに触れている時間がかなりの割合を占めていると思います。
使い慣れたSlackのインターフェースを使って、非エンジニアでも直感的に定形処理の自動化ができるという点がSlackワークフローの大きな特徴になっています。

前提として

現在私は転職して三ヶ月、以前の会社はオンプレ中心の社内システムでしたが、現在はオンプレゼロで多数のSaaSを日常業務で利用しています。
また、ドキュメント・ナレッジも比較的豊富にあるというとても恵まれた環境で働いています。
ただ、業務上点在する情報のトレースに課題を感じていました。

前職までの職場ではこの点、フルスクラッチまたはパッケージをカスタマイズして埋めていたことが多かったように記憶しています。しかし、現在の環境はしつこいようですがオンプレゼロの環境です。そこで、この点在情報のトレースをSlackワークフローで実現するというのが今回の主旨です。

モバイルデバイス購入の例

例えばモバイルデバイスを新たに調達するシーンでは、これまで以下の流れで進めていました(多少ぼかしています)。

  1. 調達希望者はサービスAを使って、購入をリクエスト。
  2. 依頼を受けた部署ではサービスBで予算状況を確認し、問題なければサービスCで端末を手配。
  3. 端末が届いたらサービスDで支払処理を実施。
  4. サービスEで端末をキッティングして調達希望者に配布。

こう書いてみるとなんか単純に見えますね。実際イレギュラーケースも少なく、それぞれの作業手順も整っているので、タスク自体はとてもスムーズにこなすことができています。
ただ問題は一つの業務タスクで登場するサービス数が多く、それぞれの関連性を確認・トレースするのが困難な点です。

「サービスAでのリクエストと紐づくサービスDの支払いはどれ?」
「サービスEでキッティングした端末はどの部門の依頼だっけ?」

SaaSの多くは機能に特化しており、上記の例以外でも複数のサービスを組み合わせて使うシーンが多々ありますが、そのサービス間でのトレーサビリティが課題となっていました。

Slackワークフロー化してみる

この課題を解決するために、前述のタスクをSlackワークフロー化してみましょう。
といってもコードをばりばり書いて各サービスのAPIを呼び出してワークフロー化する・・・ということではありません!

単純にタスクの流れをSlackワークフローに書き起こし、キーとなる情報を蓄積してくだけです。その際に押さえておきたい3つのポイントを実際のワークフロー定義と併せて解説してきます。

ポイント1 トリガー

まずは調達希望者はサービスAを使って、購入をリクエストこの部分からワークフロー化します。

Slackワークフローは外部からWebHookを使って起動させることもできます。ただ設定が面倒であれば、ショートカットからの手動起動で作成しても問題ありません。

続いてここでサービスAのID情報をフォームを使ってワークフローに保存しておきましょう。こうしておくことで、後からサービス間のトレースがしやすくなるという寸法ですね。JiraであればチケットのURLリンクを保存しておくとよいですね。
なお、WebHookでキックする場合にはフォームではなく、パラメタをSlackワークフロー変数に自動でマッピングすることもできます。詳しくは こちら を参照ください。

ポイント2 手順へのリンク

続いて依頼を受けた部署ではサービスBで予算状況を確認し、問題なければサービスCで端末を手配の部分をワークフロー化します。

ここでは以下の画面のようなステップを定義します。

前述の通り、弊社環境では個々の作業の手順はドキュメントとしてすでに用意されていますので、ここでは単純にその情報へのリンクを記します。もし、現在明確な手順がない場合には、同じように別途詳細手順をストックしておくことをおすすめします。間違ってもSlackワークフローを詳細な手順書としては使わないほうがよいでしょう。

これだけのことですが、参照すべき情報が明確になり、作業に慣れていない人でもスムーズにタスクが進められます。
また、ステップでの投稿先は全てスレッドにしておくことで、ワークフローメッセージがチャンネル上でノイズにならず、視認性が確保できます。

ポイント3 情報ストック

続いて端末が届いたらサービスDで支払処理を実施の部分を見ていきます。

Slackワークフローでは、ワークフローの途中でフォームを差し込んで情報を蓄積できます。
外部SaaSを利用しており、そのIDやリンクが判明したタイミングで、ワークフローに蓄積させておきます。

こうしておくことで、各SaaSのIDをSlack上で検索すれば、関連するSaaSのデータのトレースができるようになります。
SaaSによっては、拡張属性を持たせてサービス間の紐付けするという選択肢もありますが、対応していないSaaSがあったり、なによりサービス管轄部署が違ってカスタマイズの敷居が高い場合には、この方法が使えます。

ワークフロー化のメリット

実際に運用してみて感じているメリットは以下の点です。

  1. 簡単!
    SlackワークフローはGUIで簡単に作成できますし、作成したフローから複製もできます
    もちろん今回実現した内容は、ワークフローを専門とするサービスを使うことで実現できると思いますが、一定の学習コスト・メンテナンスのコストが必要なものが多い印象です。
    Slackワークフロービルダーであれば、作成後のメンテナンス含めてローコストに始められる点は大きいです。

  2. 情報鮮度!
    手順書はこまめにメンテされていても、ワークフローまでドキュメント化している現場は少ないのではないでしょうか(あるいは口伝だったり)。
    また、手順書はあっても記述が古くて実際の手順は異なる場合もありますよね。
    Slackワークフローは、広義では手順書でもあるため、常に実態に即した鮮度の高い状態を保てるという点は大きなメリットだと思います。

  3. 可視化!
    Slackワークフローは投稿先としてチャンネルを指定することで、チームメンバーとステータスを共有できますが、ワークフロー自体がアクティビティデータを持っています。
    タスクの状況を簡単に確認・共有することができる点も隠れたメリットでだと思っています。

まとめ

ワークフローというと一般的には複数関係者が、業務プロセスを進めていく場合に利用するケースを思い浮かべると思いますが、今回紹介した使い方は、一人で処理するようなタスクであっても十分に効果を発揮できると思います。
ぜひみなさん、Slackワークフローを活用して仕事の可視化・効率化につなげて行きましょう!

以上

Discussion