8
9

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 2023-01-20

Slackワークフロービルダーはとても便利だが、条件分岐が使えず痒い所に手が届かない。
せめて回答内容のカテゴリー別にメンション先を分けるとかやりたいなーと思っていたら、非エンジニアでも出来るスプシを使って比較的シンプルな実現方法が見つかったので書いておく。

【追記】
2023/05/19以降、メンションについてはSlack側の仕様変更によって出来なくなっています。条件分岐はこの方法で実現可能なので記事は残しておきます。

【追記2】
2023/08以降、レガシーワークフロー以外はスプシの行を取得する際にRow Indexしか取れなくなっています。これにより、条件分岐は出来なくなりました。レガシーワークフローではまだ出来るので一旦記事は残しておきます。


今回は、好きなお昼ご飯のジャンルを入力するとジャンルに応じて予約担当を決めるフォームを作ってみる

完成形

作り方

下記のようにワークフローを作る

image.png

ステップ説明

1. ショートカットで開始する
  • 下記のように設定
2. フォームを開く
  • 下記のように設定
3. Add a spreadsheet row
  • Google Spread Sheetに「回答内容」シート追加
    A1に「回答」、B1に「WF開始日時」と入力する
  • Slackは下記のように設定

    ワークフローが開始した時刻をスプシに残しておくのがポイント! これでこの後のステップで行が引き当てられる。
    (2023/03/23 追記)
    「ワークフローが開始した時刻」は最新だと変数の一覧から除外されている。
    {{スレッドID==current_timestamp}}のように手書きすればとりあえず入力可能(非公式なのでいつか利用できなくなる可能性はあり)。
4. ワークフローを開始したチャンネルにメッセージを送信する
  • 下記のように入力する (省略してもOK)
5. Select a spreadsheet row
  • Google Spread Sheetに「【マスタ】ジャンルx担当者」シート追加
    A1に「カテゴリー」、B1に「担当者」と入力。2行目以降には適当に各カテゴリーと担当者を指定する。
  • Google Spread Sheetに「【マスタ】担当者」シート追加
    A1に「担当者」、B1に「メンバーID」と入力。2行目以降に担当者名とSlackのメンバーIDを<@メンバーID>のフォーマットで入力

    ↑メンバーIDはSlackのプロフィールから取得可能

    実は、<@メンバーID> と指定することで メンションとしてSlackが扱ってくれる!!! →この方法は仕様変更により使えなくなりました。
  • Google Spread Sheetに「回答内容x担当者」シート追加
    • A1に、=INDEX('回答内容'!A:B) を入れる
    • C1に「担当者」と入力。
    • C2に=IFERROR(vlookup(A2,'【マスタ】ジャンルx担当者'!A:B,2,false)&vlookup(vlookup(A2,'【マスタ】ジャンルx担当者'!A:B,2,false),'【マスタ】担当者'!A:B,2,false),"")を入力。やっていることはジャンルをキーに担当者名とメンバーIDを引き当てている形。「山田<@メンバーID>」みたいに出力される。

      ↑A列、B列が回答内容のシートの情報+Cが回答から引き当てた担当者名
    • C2のセルをC列最下部までコピー。
  • Slackは下記のように設定

    ↑対象は、「回答内容x担当者」シート(担当者を引き当て済のシート)であるため注意(手順2で追加したシートじゃない)
6. スレッドにメッセージを送信する
  • 下記のように設定

    ↑手順5(Selected a Spreadsheetで取得したRowの「担当者」)

↓カテゴリーに応じた担当者にメンションがいく設定が完成!

おわりに

いかがだったろうか? この方法ならSlackワークフロービルダーにスプシの関数を利用することができるので、プログラムにそこまで明るくなくてもフォームの回答結果を割と簡単に分類分けが出来て汎用性が高いんじゃないかなと個人的には思っている。社内申請とかでうまく使えば、申請分類から申請に対応する部署や人を切り替えたりすることもできるかもしれない。単にユーザ名ではなく、メンションになる点がミソだと思っている。<@メンバーID>がメンションになることを発見したのはラッキーだった(ただし、この仕様は非公式なので今後使えなくなる可能性はあり)。 →案の定、仕様変更により使えなくなりました。
この記事が誰かに役立ったら嬉しい限り。

8
9
5

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
8
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?