2. Slack上で「備品の購入依頼フォーム」を送信するためのワークフローを作成する

Updated
2021/8/8 8:31
Author
Jumpei IkegamiJumpei Ikegami
Slack上で日々飛び交うメッセージの中には、ある程度フォーマットが決まっているものがあります。たとえば、備品の購入依頼、毎朝のやること宣言や終業前に書く日報、定期イベントの告知などです。こうしたメッセージは、毎回はじめから書くよりも、フォームなどで入力内容を定型化してしまった方が、書く側も見る側も効率がよくなることが多いです。
今回のチュートリアルでは、Slackワークフロービルダーを使って「備品の購入依頼」を投げるためのフォームを作成してみます。また、それを受ける総務メンバーへの通知についても実現方法を考えます。

前提知識

Slackを業務で使っていてSlack上の概念や簡単な操作に慣れていることを前提に説明します。
また、この記事は次のチュートリアルの続きとなっています。
 
1. Slackワークフロービルダーを使って毎朝自動で「今日やることスレ」を立てる2021/6/20 5:372021/8/8 8:30
 

作るもの

Slack上で完結する「備品の購入依頼フォーム」機能を作成します。
総務メンバーへの依頼を集約するチャンネルで入力フォーム左にある「ショートカット」からフォームを呼び出すことができます。
フォームでは予め入力フォーマットが決まっています。依頼者はそれにそって購入品の情報を入力します。入力した内容は、Slackのチャンネルに投稿されます。

体験すること

このチュートリアルによって、以下を体験します。
  • 「ショートカット」から開始できるSlackワークフローを作成する
  • Slackワークフローにフォーム送信を追加する
  • 作成したフォームの動作を確認する
  • フォーム送信があったことを関係者に通知する

チュートリアルスタート!

ここからは、実際に手を動かしながら読み進めていきましょう。ただ読むだけよりも、実際に体験した方が内容を深く理解することができます。

「ショートカット」から開始するSlackワークフローを新規作成する

Slackワークフローの概要や簡単な使い方については前回のチュートリアルで学んだので、そこら辺はすっ飛ばします。さっそくワークフローを作り始めましょう。
まずは前回同様、ワークフロービルダーの[作成]ボタンからワークフローを新規作成します。名前は、「備品の購入を依頼する」など適当につけておきます。
ワークフローを開始する方法は、ユーザーが任意のタイミングでワークフローを開始できるように、「ショートカット」を選択します。
ワークフローで設定できるショートカットは、現時点では特定のチャンネルでしか呼び出すことができません。ここでは、「総務への依頼事項を投稿するチャンネル」を想定したチャンネルを選択します。ただ試すだけであれば、適当にテスト用のチャンネルを選択してください。
ショートカットについても、名前を指定することができます。ワークフローの名前は管理上の名前、ショートカットの名前はSlackユーザーが実際にショートカット上で目にする名前になります。

ワークフローにフォームを追加する

ショートカットの設定が済んだら、ワークフローが呼び出されたときに実行するアクションを「ステップ」として登録します。[ステップを追加]ボタンを押してください。
前回のチュートリアルでは「メッセージを送信」を選択しましたが、今回はユーザーにフォームの入力を求める必要があるので、「フォームを作成する」を選択します。
すると、フォーム作成画面が開きます。ここで、フォームの表示や質問項目を設定していきます。
まず、タイトルを「備品の購入を依頼する」など適当に入力します。ここで設定したタイトルが、ユーザーがフォームを入力するときのモーダルに表示されます。
次に、実際の質問項目を設定していきます。ここでは、例として次のような情報を入力して欲しいとします。
  • 備品タイプ
  • 商品名
  • 商品URL
  • 購入が必要な理由
まずは、備品タイプを問う質問を設定します。予め設定された選択肢から1つを選ばせたいので、[質問のタイプを選択する]を「一覧から選択」に指定します。[リストアイテム]で選択肢を指定できるようになるので、次の画像の通りに入力します。
続いて、残りの質問項目を追加していきます。[質問の追加]ボタンを押し、それぞれ画像の通りに入力しましょう。「購入が必要な理由」だけ、質問のタイプが「長い回答」になっている点に注意してください。
最後に、[提出された回答をチャンネルまたはDMで他のメンバーに送信する]にチェックを入れます。今回はワークフローを呼び出したチャンネルにそのまま結果を投稿したいので、該当のチャンネルを選択します。設定次第では、ワークフローを呼び出すチャンネルと回答を蓄積するチャンネルを別々に設定することもできます。
全ての項目が入力できると、次の画像のようになります。ちなみに、質問の順番を入れ変えたい場合は各項目の右側にある矢印ボタンを使います。
これで、「備品の購入依頼フォーム」の最低限の機能が完成しました。最後に、右上の[公開する]ボタンを押して他のユーザーが使える状態にしましょう。

作成したフォームの動作を確認する

ワークフローが公開できたら、動作確認をしてみましょう。
まず、ショートカットを追加したチャンネルを開きます。テキスト入力フォームの左下にある稲妻マークが、ショートカット機能を呼び出すためのアイコンです。ここを開くと、先ほど登録したワークフローが呼び出せるようになっているはずです。
ショートカットをクリックすると、フォームがモーダルで開きます。試しに、適当な内容で入力してみましょう。
うまく設定されていれば、入力内容がチャンネルにメッセージとして投稿されます。

フォーム送信を関係者に通知する

ここまでで、フォームとしての機能は完成です。しかし、「備品の購入依頼」など作業依頼を含む内容だった場合、フォームが投稿されたことに関係者(たとえば総務のメンバー)がなるべく早く気付いて対応するのが望ましいです。そこで、「フォームが送信されたことを通知として受け取る」という要件を追加で考えてみます。
最も簡単な実現方法は、Slackの通知設定を変えることです。たとえば「備品の購入依頼フォーム」の投稿内容が「総務への依頼チャンネル」に投稿されるとします。「総務への依頼チャンネル」の「すべての新しいメッセージ」を通知する設定に変更することで、フォーム投稿時のメッセージ内に自分へのメンションが含まれなくても、通知を受け取れるようになります。
しかし、これには大きな問題があります。それは、フォーム送信とは関係無いメッセージについても通知が飛んでしまうということです。たとえばフォームの送信内容についてのやりとりがそのチャンネル上で発生すると、その度に通知が来てしまいます。
フォーム送信時のみ通知を受け取りたい場合は、「フォーム送信時に関係者にメッセージを送る」という風にワークフロー修正するのがいいでしょう。具体的には、作成したワークフローの最後に「メッセージを送信」のステップを追加します。[メッセージの送信先]を関係者である自分にすると、Slackbotから直接DMが来るようになります。
ちなみに、[メッセージのテキスト]の中身には、「変数」を挿入することができます。「変数」を使うことで、「フォームの入力内容」など変化する値をメッセージの中に埋め込めます。次の画像の例では、誰がフォームを提出したのかをメッセージに含めています。
メッセージ通知用のステップを追加したワークフローは、次の画像の通りになります。編集が終わったら、忘れずに右上の[変更内容を公開]ボタンを押して変更を反映させましょう。
これで、誰かがフォーム送信をすると、SlackbotからのDMでそのことを通知してもらえるようになりました。DM受信時には、デスクトップ通知やスマートフォンのPush通知も受け取ることができます。これで、「フォームが送信されたことを通知として受け取る」という要件を満たすことができました。
なお、関係者が複数人いる場合は、[メッセージの送信先]でチャンネルを指定し、[メッセージのテキスト]で該当するユーザーグループへのメンションを含めることでまとめて通知できます。
以上で、今回のチュートリアルは終了です。
今回は総務の仕事を少しだけ楽にするようなワークフローを考えましたが、他の職種や役割でもSlack上の「フォーム」を使って定型化できる業務はきっとあるはずです。実際の業務で使いそうなユースケースを考えて、ショートカットから呼び出せるワークフローを追加してみましょう。