2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Slackワークフローを使ってみた

Last updated at Posted at 2021-12-09

この記事は、Wano Group Advent Calendar 2021 の記事です。

Slack ワークフローとは?

Slackが用意している機能で、メッセージに対するリアクション等をフックにして、特定のアクションを実行することができるものです。

アプリを作って、連携することもできますが、今回は、Slack Workflow Builderというのを使って、かんたんに済ましてみます。

やりたいこと

コードレビューの依頼をSlackでやっているのですが、いくつか問題がありました。

  • 依頼が流れていってしまう
  • GitLabで一覧できるけど、修正したあとの再レビューとかも必要なので、イマイチ。
    • 要はレビューする人のターンなのか、レビューされた人のターンなのかパット見わからない

どんなふうに実現するか

下記のリアクションを使います。

  • :eyes: でレビューする意思表示
  • :speech_balloon: … コメントあり。依頼者にDMで連絡がいく
  • :exclamation: … 要修正。依頼者にDMで連絡がいく
  • :tools: … 修正完了の意思表示
  • :thumbsup: で承認済み。依頼者にDMで連絡

のような感じです。

Workflow Builderでワークフローを作る

Slack のメッセージ欄で、/workflow と打つとworkflow builderの選択肢が出てくるので、クリックして、右上の、Create をクリックすると、下記が開きます。

image.png

レビューする意思表示のワークフローを作る

タイトルに適当に「レビュアーが意思表示」とか入れて、Nextします。

次のステップで、何をフックにするかを選びます。今回は、Emoji reaction を選びます。
image.png

チャンネルを選んで、リアクションをAdd Reaction で選びます。

image.png

こんな感じですね。

image.png

Next すると、画面が変わり、以降のステップを登録していきます。

image.png

Add Step をクリックすると、色々選べます。

image.png

今回は、Add a spreadsheet row を選ぶと、下記の画面になり、

image.png

Search by name で保存したいスプレッドシートを選ぶと、さらにスプレッドシートのシートの選択、カラムの選択というふうに進みます。

image.png

テキストエリアに文字を書くこともできますが、今回は、右下にある、insert a variable を使います。

ここで選べるのは、こんな感じです。

image.png

  • Channel reaction was used in ... リアクションされたチャンネル
  • Person who reacted ... リアクションした人
  • Reaction added ... 追加されたリアクション
  • Link to message reacted on ... リアクションをつけたメッセージ
  • Person who sent original message ... オリジナルのメッセージを書いた人
  • Time when workflow started ... ワークフローが始まった時間

という感じですね。今回のシートでは、以下のカラムを用意します。

  • Slack URL
  • 依頼者
  • 最初にリアクションした人
  • 最後にリアクションした人
  • ステータス
  • 依頼日
  • メモ

:eyes: されたタイミングでは、上記のカラムには、下記のように変数を当てます。

column variable
Slack URL Link to message reacted on
依頼者 Person who sent original message
最初にリアクションした人 Person who reacted
最後にリアクションした人 Person who reacted
ステータス レビューする意思表示がされました
依頼日 TIme when workflow started

レビュワーがついたよということを連絡するために、さらにAdd Stepし、Send a message を選びます。

image.png

これで、一つ目のワークフローが完了です。

最後に、Publish すると、ワークフローが使えるようになります。

レビューを承認したというワークフローを作る

また、最初の画面から、Create で別のワークフローを作ります。

「レビューを承認」とか適当な名前を入れ、Emoji reaction を選んで、リアクションをしていするところまでは同じです(いや、後もだいたい同じなんですが)。
image.png

次に、Add Step で、Update a spreadsheet row を選びます。

Choose a column to searchSlack URL を選び、Link to message reacted on を選びます。

image.png

そして、Update these columns に、更新するカラムと変数を設定していきます。

column variable
最後にリアクションした人 Person who reacted
ステータス 承認されました

みたいな感じですね。

同様に他のワークフローも作る

承認と同じ方法で、各ワークフローを作っていきます。

後は、スプレッドシートで自分用のフィルタを用意して、最初にリアクションした人が自分のものが、自分担当のレビューで、ステータスを見れば、修正が必要な状態なのかとか、修正が終わっている状態なのかとかが、わかるようになります。

問題点

:eyes: が2回リアクションされると、2行できてしまう...ので、これは、運用で回避しましょう(リアクションがすでについてたら、:eyes:リアクションはしないでね、とみんなに周知しておく)

で、そんなことより、もっと問題点としてあるのが、Slackのワークフローの機能とスプレッドシートの連携が若干バグっているところがありまして...。
Link to message reacted on が、たまに、リアクションしたメッセージではなくて、リアクションしたメッセージのスレッド内へのリンクになるときがあるので、:eyes: でリアクションしたときに入るSlack URLと、別のリアクションをしたときのSlack URLが異なってしまい、行を探せないので、更新に失敗する...ということがたまにあります。

バグ報告したのですが、すぐに治す気配はなさそうです。

多分、自分でアプリ書いたほうが速い、と思いつつまだ書いてません(時々手動でステータスを更新している...)。

終わり

というわけで、イマイチな結果になってしまいましたが、使える場面はあると思います。
ぜひ、使ってみてください。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?