こんにちは!MSPの岡本です。
今回は業務時短の味方SlackWFについてご紹介!
弊社で利用しているようなワークフロー(以下WFと記載)の作り方を解説いたします。
また後続シリーズでは設定の詳細を細かく解説予定!
それではれっつチャレンジ

SlackWFとは?

SlackWFとは読んで字の如くSlackで利用できるフロー機能。
コメント投稿や定期メッセージなどが利用できる機能です。
日々の業務で長文を長々書いたり定期タスクをいちいち投稿するという手間を省くのにお役立ちにツールとなっています。

SlackWFの基本的な作成の流れ

SlackWFの作り方は大きく2種類あります。

・テンプレートから作る
・カスタム作成

テンプレートから作る場合、すでに用意されたワークフローが存在します。
これを改変するもしくはそのまま使うことができることが特徴です!
デメリットとしては、自由度はあまり高くないところでしょうか?
カスタムで作成する場合、自分のニーズに確実に合致したものを作成していくことができます。ただし、作成のためにSlackWFの知識が必要になります。

SlackWFのお役立ち用語

ここでは今回のWFにて使われている用語集を記載いたします。
なお、今回登場するWFとは、ざっくりいうとアプリそのもの。
ステップはアプリを作るために必要な段階とご理解いただければOKです。

フォームで情報収集

「フォームで情報収集」とは選択肢や短い質問を通して情報を収集するステップ。
何か情報共有したいときに一から文章考えて投稿するのではなくある程度形式を作るフォーマットの役割をします。

スプレッドシートを更新する/スプレッドシートに追加する/スプレッドシートから削除する

WFがスプレッドシートに何かしら作業するためのステップ。
例えば「スプレッドシートに追加する」であればさ左記のステップが出る以前に選択されていなかったスプレッドシートを新規追加し、WFが収集した情報を転記してくれます。
追加要素は「スプレッドシートを更新する」で追加、「スプレッドシートから削除する」で削除可能です。
なおスプレッドシートではなくExcelでも同様のことが行えます。

メッセージを送信する

任意のチャンネルにメッセージを送信するためのステップ。
カスタムWFなら大体は「フォームで情報収集」とセットで使い、「フォームで情報収集」で集めた情報を投稿します。

条件分岐

複数の選択肢を分岐したいときに有用なステップ。ただし条件分岐の中に条件分岐という入れ子設定はできないので注意です。

インタラクティブなボタン

ボタンを押して次の指示を手助けするステップ。
ボタンを作成することができるのが特徴です。

メッセージにリアクションを追加する/削除する

投稿したメッセージにスタンプやコメントをWFに連動して付けられるステップ。
自動でスタンプを押すみたいなことができちゃいます。

SlackWFをLet作成

テンプレ的なのは大体揃ってますが今回がっつりカスタムWFのため、覚書に作り方記載します。
作り方については以下手順で。考え方のコツとしては「どこでどんな情報を得てどんな形で投稿、情報収集したいか?」
です!
今回は以下条件を持つWFをご紹介します!

・分岐つき
・分岐に応じてのチャンネルへメッセージする
・スプレッドシートに記録をする
・自動スタンプ

1.SlackWFを立ち上げる

今回の完成イメージはこちら

1-1.SlackWFを開始する

「新しいワークフロー」 を開始しタイトルを入れます。
「ワークフローを開始して…」で「Slack 内のリンクから」を選択します。

1-2.「情報をフォームで収集する」を選択しフォームで必要な質問を記載

ここではフォームを使って情報を収集します。
ここでは全容にてお伝えしました「# ちゃんねる1」に投稿する用の情報をとってくるものになります。
フォームで収集した情報をもとにSlack投稿を作るのでどういった質問が必要かカスタムする必要があります。
例えば、今回であればSlackの自動投稿文にPagerDutyのリンク情報と連携したい内容を含めています。

1-3.「情報をフォームで収集する」で収集された情報をもとに「メッセージを送信」を選択する。

「情報をフォームで収集する」で収集された情報をもとに「メッセージを送信」を選択する宛先のチャンネルを選べばフォームの内容をもとにフローが実行され投稿されます。
ここでは、「ちゃんねる1」へまずは投稿したいのでキャプチャ上部の#〜から始まる部分で「ちゃんねる1」を選びます。
ワークフロー編集画面

投稿画面

1-4.ステータス管理や投稿者管理をする

ステータス管理や投稿者管理ををスプレッドシートで管理します。
今回はスプレッドシートにしましたはExcelでも同じことができます。
SlackWFにて「スプレッドシートに追加する」を選択。
1-3でとってきた情報を記載したいスプレッドシートを選んで、スプレッドシートに取得したい情報を記載します。
この時、列には項目名、値は自動取得したいので基本的に変数にすると良いです。
キャプチャではスプレッドシートを選択する画面と、そのスプレッドシートのどのシートを選択するかの選択タブが表示されています。

※ポイント:複数段階でステータスを変更する場合、ステータスはキャプチャのように変数を使わずにいること、
また、参照キーを作ることで「Update a spreadsheet - スプレッドシートに検索条件と一致する行がありませんでした。」のエラーが起こりにくいです。

2.SlackWFの分岐を作成する

次は条件に合わせてブランチを設定します!
やり方は簡単。

まずは分岐の条件となるインタラクティブなボタンを作成。
「ブランチワークフロー」を立ち上げ、インタラクティブなボタンに紐付けするだけ。おしまいです。ここでがボタン1、2と作成してます。

2-1.「ボタン1」が押された場合、「#ちゃんねる2」への投稿。

まずは、「情報をフォームで収集する」を選択しフォームで必要な質問を記載します。
こちらは1-2で行った手順と全く同じ要領です。

2-2.「#ちゃんねる2」へ投稿されたことをきっかけにステータス変更する

次に#ちゃんねる2へ投稿されたことをきっかけにステータス変更を加えます。
「スプレッドシートを変更する」を選択します。
ここでは依頼中にしたいので検索要因に参照キーを使いました。また、変更後の値(変更したいもの)を入力します。
ここで手入力でステータス値を入れておくのは、関数で設定するよりも後々の変更が楽だからになります。

2-3.担当者ステータスを作るインタラクティブなボタンをセット。

「#ちゃんねる2」では担当者ステータスを作るインタラクティブなボタンをセットします。
まずは投稿用のメッセージを作成し、インタラクティブなボタンを設定します。
次に、スプレッドシートを変更する」をセット。
2-2で行った要領で参照キーで個別の行を認識させつつ、スプレッドシートに記載した「担当者」の文字列をWF上の更新後の値から探します。
担当者が割り当たったらステータスを「対応中」にしたいので「ステータス」の値を「対応中」に。

終わったらさらにフローを進めるためのメッセージを入れておきます。

2-4.「#ちゃんねる2」で全て終わったことをトリガーにスタンプ

一連の作業の終了を管理する際、最後までできるだけ自動化したいですよね?Slackも話を終わったことを示すためスタンプで完了したことを知らせましょう。
「#ちゃんねる2」で全て終わったことをトリガーにスタンプを押すため、「メッセージにリアクションを追加」を選択しどのメッセージにスタンプするか&スタンプを選択します。

2-5.スタンプが押されたことでをきっかけにステータス変更を加えます。

最後にスプレッドシート上でも「ステータス」を完了にしてタスクが終わったことを確認しましょう。
「スプレッドシートを変更する」を選択しステータスと完了日を取得します。

3.「ボタン2」が押された分岐を作成する

「ボタン2」が押された場合は「ステータス」を保留にするだけ。
そのため、まず「スレッドにメッセージを送信する」で終了メッセージを作成します。
次に、2-2と同じ要領で参照キーで行を特定させ、「ステータス」を保留にします。

4.完成

完成です!あとはお試しで触ってみつつ微調整してみてくださいね。

おわりに

いかがだったでしょうか?
SlackWFはSlackの有料契約している方ならどなたでも利用可能な機能です。
みなさんも日々の業務を時短しちゃいませんか?
最後に、弊社アイレットでは、cloudpackというサービスでGoogle Cloud、AWS、Oracle Cloudの移行、構築、設計、運用、請求代行などをサポートしております!最近リリースしたgaipackもお見逃しなく♪