Slack のワークフロー機能を少し試したのでまとめた

Slack にワークフローという新機能が追加された。なんか自動化できるらしい?面白そうじゃないか、というわけで簡単に触ってみたのでまとめる。

ワークフロー機能とは?

指定したイベントが起きた時に、指定したアクションを実行させる新機能。

ワークフローをつくるには?

左上メニュー > ワークフロービルダー

イベントとして指定できるのは?

3 種類ある。

  • 誰かが指定チャンネルに参加した
  • 誰かが指定チャンネル内の「アクションメニュー」から指定項目を選んだ
  • 誰かが指定絵文字をリアクションで付けた

アクションとして指定できるのは?

2 種類ある。

  • 指定メンバーやチャンネルに指定メッセージを送る(変数あり)
  • 指定フォームをつくって入力させ、入力内容を指定メンバーやチャンネルに送る

ハマりどころ

チャンネル指定時はキーワード検索で絞る

デフォでは全チャンネルが表示されないが、明示的にキーワードを打てば(ヒットしたものが)表示させる。

たとえば #workflow-test というチャンネルをつくっていても、デフォでは選択肢に出てこない(ことがある)が、wo とか打てば表示される。

エラーの原因究明はしんどいかも

まだ作り込みが不十分なのか、エラーメッセージが 「問題が発生しました」しか言ってくれない(原因がわからない) ので原因究明がしんどいかもしんない。Slack さん、原因も出してくれるよう頼んます。

以下いくつか例を。

ワークフローのインポート中に問題が発生しました。

エクスポートした json を少し変えてインポートしてみたら起きた。id 被ってて重複扱いとか?

ワークフローの保存中に問題が発生しました。

#random にワークフローを追加しようとしたら起きた。原因はよくわからん。

こっそり仕込むことはできない

ワークフローを設置した先にチャンネルには「~~さんが~~をつくりました」など更新通知が飛ぶので、 「個人的な便宜のためにこっそりつくるか……」なんてことはできない

インポート、エクスポートもできる

エクスポートすると (ワークフロー名).json をダウンロードできる。中身は以下のような感じ。

{
  "source_id": "271548516294212359",
  "version": "1",
  "workflow": {
    "name": "(ワークフローの名前)",
    "blueprint": {
      "version": "1",
      "trigger": {
        "type": "reaction_added",
        "id": "...",
        "config": {
          "channel": {
            ...
          },
          "reactions": [
            {
              ...
            }
          ]
        }
      },
      "steps": [
        {
          "type": "message",
          "id": "...",
          "config": {
            ...
          }
        },
        ...
      ]
    }
  }
}

インポートはまだ試してない(上述したが微修正した json をインポートしても動かんかった)。追々試そうかな。

ワークフローの用途は?

パッと思いつかないけど、たとえば以下。

  • 絵文字がついた時に「~~さんが付けたよ」と通知する
  • アンケート
    • 募りたい時にアクションメニュー用意して「ここから入力してね」と告知するとか
  • 強制自己紹介
    • チャンネル入った時に自己紹介フォーム表示させて入れてもらう

他にもアイデア次第で色々できそう。まだ出たばかりで記事も少ないが、そのうち記事も増えてくるだろうから、改めて調べてみるとしよう。