なにこれ
社内slackで発生する、所謂 依頼 のような運用フローをある程度自動化し、依頼を投げる側も受ける側も楽にしようというものです。
※プログラミングそのものの記事ではないです。
例えば、以下のような仕組みになっていることを仮定します。
- 商談が成立した時にマスターデータを更新する必要がある
- マスターデータの更新は内部管理画面のようなもので管理している
- 内部管理画面にアクセス出来るのはエンジニアチーム、あるいは運用チームのみ
- マスターデータ更新は営業、あるいはディレクターからの依頼が起点
図にするとこんな感じ(いらすとやさん。いつもお世話になってます)
このような場合、更新依頼のフォーマットが人によってバラバラになりがちで困ります。
- 前置きが長くてどこが要点か不明
- 文章!しかも本文が長すぎて何が設定項目かわかりにくい!
- そもそも必須項目がない。どこを更新しろと・・・。
そういった事態を避けるため、設定項目を過不足ないように制限し自動でメンションが届くように出来たら便利ですよね。
それ、Slackで出来ますよ。
Workflowを設定する
今回は次のような依頼フローを自動化します。
樹脂粘土を使ったお手製マグネットの作成を依頼する
・・・え、営業とかの話は?って感じですが、ビジネス的なものを題材にしてると飽きちゃうので適当な題材にしました。
以下のようなフローを仮定します。
- 新しいお手製マグネットが欲しい人が依頼を投げる
- 趣味で粘土細工をやっている人で対応できる人が対応する
- 依頼内容は穴埋め的に指定できれば十分
- 対応開始のタイミングと完了のタイミングを共有する
Workflow BuilderでActionを設定
Slackメニューで Workflow Builder
を選択します。
新しいウィンドウが開いてworkflowの追加画面が出てくるのでCreate
ボタンをクリック
ワークフローの起点を設定できます。
今回はAction menu
に設定します。
こうするとslack画面右上に稲妻マークが追加され、任意のタイミングで実行できるようになります。
Which channel
は必須項目です。
ここで指定したチャンネルのみアクションが実行できます。
アクションを実行するにあたり、どんな機能があるのかをパッと見でわかるようにしたいので、アクションの詳細を追加します。
プレビューが大変便利。
しれっと変わっていますがアイコンが標準だと可愛くないので適当に変えます。
Settings
メニューから変更できます。
一旦ここまででこんな状態になっていると思います。
アクションは見れるけれど、実行する処理は何もないという状態ですね。
Stepを追加する
アクションができたら実際のステップを作っていきます。
今回は「マグネットが欲しい人」がポチポチ項目を埋めるだけで依頼が出せるようにしたいので、フォームの作成をしていきます。
なんか出てきます。
ここのQuestionsを追加することで設定項目を増やしていくことができます。
formの設定項目
設定できるquestionの項目には種類があり、Choose a question type
で細かく制御できます。
例えば依頼者が誰か
という場合はSelect a person
で指定すれば@メンションつきで処理してくれます。
また、この項目が必須かどうかも指定できます。
依頼の概要や簡単な説明はShort answer
で指定できます。
下にある Long answer
との違いは入力可能な文字数なので、詳細情報や備考などを利用したい時に入れてあげればいいかと思います。
select boxで選択的に項目を指定したい場合はSelect from a list
を指定します。
List items
を追加することで項目をどんどん増やしていけます。
今回は金額を入れていますが、管理項目として固定の値があればそれを指定してあげれば良いのかなと思います。
最終的にこんな感じになりました。
今回は邪魔なので外していますが、チェックボックスを入れると、action実行時にDMが飛んでくるように設定可能です。
設定項目ごとにアイコンが変わるので、どんな設定になっているのかがパッと見てわかるのがとても良いですね。
messageの設定
フォームができたら、フォームの記入を起点にメッセージが飛ぶようにします。
Add Step
を押してSend a message
を設定します。
フォームを実行したらどこに飛ぶかを指定します。
画面では隠れていますが、Specific people and channels
以下にchannelが並んでいるので、そこで送りたいチャンネルを指定します。
送り先を指定したらメッセージの内容を入れていきます。
Message text
の右下にInsert variable
というのがあるのでそこをクリックしてあげると、先のformで指定した変数の内容を取得することができます。
また、いつ対応開始したかがわかるようにしたいので、これから対応します
というボタンも用意しておきます。
実際に送られる内容なんかはpreviewを見ながら確認していきます。
対応作業をしていることを他のメンバーに伝えたいので、同じ要領で対応中です
というメッセージをことなるチャンネルに投げるようにしました。
いったんこれでStepは完成です。
※実在のチャンネル名を出したくないので個人向けのメンションにしていますが、それぞれでメッセージを送るチャンネルの指定が可能です
ここまで行くと次のような処理が走ることになります
- 稲妻マークを押して
マグネット作成依頼
を実行 - 依頼者がフォームをポチポチ → フォームの内容が担当者のいるチャンネルに飛ぶ
-
これから対応します
→ 対応中のメッセージが担当者チームのチャンネルに飛ぶ
Publishした段階でこんなメッセージが該当のチャンネルに飛んできます。
では、実際動かしてみましょう!
Workflowを動かす
これから対応します
を押すと、作業チームのチャンネルにメッセージが飛ぶ
依頼した結果
まとめ
今回はしょうもない依頼フローを主題に取り扱いましたが、現実的には運用⇆エンジニアのやりとりをスムーズにする上でとても便利に使えます。
何よりも既定のフォーマットになるというのが美味しすぎるので、どんどん自動化を進めていきましょう!