はじめに
本記事は、M3 Advent Calendar 2025 20日目の記事です。
Unit3の星川 (@oboenikui) です。 Unit3では、主に医学書の電子書籍サービスや、医師の開業サポート、会員優待などのサービスを担当しています。
弊社ではチャットツールとしてSlackを使用しており、日々の業務で発生する申請や依頼といった定型作業は、Slackワークフローを使用することが多いです。
Slackワークフローをあまり触ったことがない方は、もしかすると「簡単なフォームを作って投稿を作成するツール」という認識で止まっているかもしれません。 しかし現在のワークフローは、簡易的なノーコードツールと言っても過言ではないほど、様々なパターンに対応した便利なツールへと進化しています。
この記事では、Slackワークフローの基本から、その真価を発揮する発展的な使い方まで、実用的な例を交えていくつか紹介します。
すでに基本的な使い方をご存知の方は、「4. Slackワークフローの発展的な利用方法」のセクションからお読みください。

- はじめに
- 1. Slackワークフローとは?
- 2. Slackワークフローを使うメリット
- 3. Slackワークフローの基本的な設定方法:フォーム入力をリストに格納する
- 4. Slackワークフローの発展的な利用方法
- 発展例4: Botメッセージ内のメンションを通知する
- その他の例
- 5. まとめ
- 6. WE ARE HIRING!!!
1. Slackワークフローとは?
Slackワークフローとは、Slackに組み込まれた、一連のタスクやプロセスを自動化するための機能です。Slackの有償プランで利用可能です。ワークフローは、主に次の3つの要素で構成されます。
- トリガー: ワークフローを開始するきっかけとなるアクションです(例: リンクのクリック、特定チャンネルへの参加)。
- ステップ: ワークフローが実行する具体的なアクションです(例: メッセージの送信、フォームの表示)。
- 変数: ステップ間で受け渡される情報です。これにより、前のステップの結果を後のステップで利用できます(例: フォームで入力された名前を、後のメッセージでメンションする)。
登場当初はシンプルな機能でしたが、現在のワークフローは大きく進化しています。特に、Slack内でデータベースのように使える「リスト」機能の登場により、これまでの一方通行の通知だけでなく、ワークフロー自体が『状態』を持つことが可能になり、単なる自動化から簡易的なアプリケーション構築へとその役割を広げました。リストの項目が更新されたことを検知する「リスト項目が更新された時」というトリガーが追加されたことで、データの状態を管理し、それをきっかけに次のアクションを起こす、といったステートフルで複雑なワークフローの構築が可能になり、その柔軟性は飛躍的に向上しました。
2. Slackワークフローを使うメリット
数ある自動化ツールの中で、あえてSlackワークフローを選ぶことには、どのような利点があるのでしょうか。ここでは3つの大きなメリットを紹介します。
メリット1: Slackから離れずに作業が完結する
最大のメリットは、あらゆるプロセスをSlack内で完結させられる点です。Slack内でフォームが作成され、対象者に通知が飛びます。 外部ツールを使うと、
- 既に様々なタブが開かれている中の1タブとして開かれる
- ときにはセッション切れで再認証させられる
- 完了もメールで通知されて気付くのが遅れる
など細かい苦痛が発生しがちです。Slack内ならその必要がないため、1つの作業に集中できます。
メリット2: そこそこ細かい権限設定
ワークフローは「誰がそのワークフローを見つけて使用できるか」といったアクセス権限を細かく設定できます。「ワークフローマネージャーのみ」「特定のメンバーのみ」「特定のチャンネル参加者のみ」といった制限が可能です。 さらに、ワークフローで収集したデータを保存するリストについても、書き込み権限と読み取り権限を細かく制限できるため、承認プロセスにも活用できます。
メリット3: Slack内リンク以外にも豊富なトリガー
ワークフローの開始方法は、リンククリックだけではありません。次のように、用途に応じた多彩なトリガーが用意されています。
- Webhook から: 外部のサービスやシステムからの通知をきっかけに、Slack内でワークフローを開始できます。
- キーワードを含むメッセージが投稿された時: 指定したチャンネル内で特定の条件に一致するメッセージが投稿されたときに開始できます。
- スケジュールに基づく: 毎日、毎週など、決まった日時に定期的なタスク(リマインダーなど)を自動実行します。
- リスト項目が更新された時: リストの項目の任意、もしくは特定の列のデータが変更されたことをきっかけに、ワークフローを開始できます。
- 絵文字リアクションが使用された時: 特定のメッセージに特定の絵文字リアクションがついたことをきっかけに、アクションを実行します。
- 誰かがチャンネルに参加した時: 新しいメンバーがチャンネルに参加した際に、オンボーディングメッセージを自動で送信する、といった用途に使えます。
3. Slackワークフローの基本的な設定方法:フォーム入力をリストに格納する
まずは基本として、「リンクをクリックするとフォームが開き、入力内容がリストに保存される」というワークフローを作成する手順を見ていきましょう。
1. ワークフロービルダーを開く
Slackのサイドバーから「ツール」>「ワークフロー」を選択し、右上の「新規」>「ワークフローを構築する」をクリックします。
2. トリガーを選択する
「ワークフローの開始方法」として「リンクから」を選択します。このリンクをSlackチャンネルに投稿することで、誰でもワークフローを開始できるようになります。
3. ステップを追加する
- まず「フォームを送信する」ステップを追加し、ユーザーに入力してほしい質問項目(例: タスク名、担当者、期限日)を設定します。
- 次に「リストに行を追加する」ステップを追加します。ここで新規にリストを作成し、フォームの各質問の回答(変数)を、リストの対応する列にマッピングします。
4. 公開する
ワークフローに名前をつけ、右上の 公開する ボタンをクリックすれば完了です。生成されたリンクをチャンネルに投稿して、動作を確認しましょう。
4. Slackワークフローの発展的な利用方法
基本を押さえたところで、ここからは、複数の機能を組み合わせることで、より高度なワークフローを構築する例を紹介します。
発展例1: タスク管理(例: 依頼フォーム)
リスト機能を使えば、Slack上で簡易的なタスク管理システムを構築できます。例えば、前章で作成した依頼フォームのタスク追跡は次のように実現できます。
- 前章で作成した依頼フォームのリストに「タスク追跡フィールド」を追加します。
- 前章で作成したワークフローとは別に、スケジュールに基づくトリガーで毎日定時に実行されるリマインド用のワークフローを作成します。
このリマインド用ワークフローは、「管理リスト」をチェックし、ステータスが「完了」になっていないタスクを抽出し、担当者にリマインダー通知を送信します。
この仕組みの利点は、依頼がSlackのタイムラインに埋もれてしまっても、あとからリストで確認できる点です。誰が何を担当し、何が未完了なのかが一目瞭然になります。
- さらに、「リスト項目が更新された時」トリガーを使えば、ステータスが「完了」に変更されたタイミングで、依頼者に完了通知を送ることも可能です。
- 平日には毎朝期限切れのチケット通知を行い、コードレビューのサイクル改善に役立てています。

発展例2: フォームの回答に応じたメッセージの出し分け
フォームの回答内容によって、通知先チャンネルやメンション相手、メッセージ内容を動的に変更したいケースはよくあります。これは、設定を管理するための「マスタリスト」を用意することで実現できます。例として、依頼フォームワークフローを改修し、依頼側が担当者ではなくサービスを選択すると、自動的に担当者が設定されるようにしてみます。
- まず、「サービス担当マスタ」のようなリストを作成します。このリストには、「サービス」(例: ポータルサイト, 認証基盤)、「通知先チャンネルID」「担当ユーザー」といった列を用意しておきます。
- ユーザーが起動するワークフローのフォームには、「サービス」を選択する選択式の質問を設置します。
- ワークフローは、ユーザーが選択した「サービス」をキーにして「担当サービス」リスト内を検索し、対応する行のデータを取得します。この検索処理は「リストから行を検索」というステップを利用して実現します。
- 取得した「通知先チャンネルID」や「メンション先ユーザー」を変数として使い、「メッセージを送信する」ステップで動的に宛先や内容を設定します。




発展例3: 特定の選択肢が選ばれた場合に追加アクションを実行する
フォームで「その他」が選ばれた場合のみ、追加で自由記述の質問をしたい、といった条件分岐も可能です。
1. 新しい方法(ブランチ):
現在のワークフロービルダーには、条件に応じて処理を分岐させる「分岐を追加」という機能があります。フォームの回答内容を条件に、処理の流れをAパターンとBパターンに分けるといったことが可能で、これが最もシンプルで理想的な方法です。
ただし、Slackのプランがビジネスプラス以上であり、かつ2025年8月以降に更新が行われたワークスペースにのみ展開されています。
弊社のSlackは後者の条件を満たしておらず、現在はまだブランチを使用できません。
2. 古い方法(別ワークフローを使うワークアラウンド):
契約更新前の場合など、分岐機能が使えない環境では、2つのワークフローを組み合わせることで、似たことを実現できます。
ワークフロー1:
ユーザーのフォーム入力をリストに保存します。このとき、条件判定用の列(例:サービス)は空にして一度リストに追加し、次のステップで上書きして更新します。一度空で作成し、直後に更新ステップを入れることで、意図的に『更新イベント』を発生させ、後続のワークフローを起動させます。
ワークフロー2:
「リスト項目が更新された時」をトリガーに設定します。条件判定用の列に特定の値(例:その他)が書き込まれたことを検知して起動し、追加のアクション(例: 追加質問のDM送信)を実行します。
この更新トリガー方式により、Slackワークフローで更に複雑なロジックを構築できるようになります。ただしその分処理の流れが読みにくくなるので、どうしても使わなければいけない場面のみ使用することをおすすめします。
発展例4: Botメッセージ内のメンションを通知する
例えば、外部サービスのSlack連携botのメッセージ内に自身のハンドルネームが含まれているとき、Slack上では通知が送られず困った経験はないでしょうか。指定したチャンネル内限定ですが、botの投稿メッセージ内にメンション文字列(例:Xのハンドル名、会社で使われるユーザー名など)を含むポストが行われたらワークフローで自身に通知を送るようにできます。
設定方法は至って単純で、通知用チャンネル内で自身のハンドル名(例:私の場合 @oboenikui など)をキーワードにした「メッセージが投稿された時」トリガーのワークフローを作成し、自身にDMを送るだけです。
その他の例
ここで紹介した以外にも、各種トリガー、ステップ、サードパーティサービスとのコネクタ、そして変数を組み合わせることで、ワークフローの可能性は大きく広がります。 ただし、例えば数値計算や乱数を使った処理などは、Slack公式の機能だけでは実現できません。ある程度制約がある中で構築するのも、個人的にはなかなか楽しいと思います。
5. まとめ
Slackワークフローは、単なる「フォーム作成ツール」ではないことはおわかりいただけたでしょうか? リスト機能や多彩なトリガー、外部サービスとの連携を組み合わせることで、これまで外部ツールで行っていたことをSlack内で完結でき、チーム全体の生産性を向上させることができます。
この記事が、あなたのチームの業務改善のヒントになれば幸いです。
6. WE ARE HIRING!!!
弊社では医療に関する様々な課題の解決に興味のあるエンジニアを募集しております。 お気軽にカジュアル面談からでも応募をお待ちしております!