リストの登場でSlackでのタスク管理がしやすくなった

# はじめに
Slackに**リスト**というタスクを管理できる機能がリリースされました。
利用できるようになってから1週間程度なのでまだ使いこなすことはできてはいませんが、それでもSlackでのタスク管理がしやすくなったという実感があります。

# リストの概要
リストはSlack内でタスクやプロジェクトを管理する機能です。
有料プランの利用者は順次使えるようになっているそうです。

https://slack.com/intl/ja-jp/features/task-list

これまでSlackでタスクを管理する方法としては「後で」（ブックマーク）を使う方法や外部ツールと連携する方法をとっていましたが、それらと比較するとリストには以下の優位性があると感じています。
- 「後で」（ブックマーク）との比較
    - 表形式で確認できるため一覧性が高い
    - カテゴリごとにリストを分けられる
    - 設定次第でステータスを細かく管理できる
        - 「後で」には完了しかない
    - リストを他の人と共有できる
        - 自分専用のリストも作成できる
    - Slackのワークフローから登録できる
- 外部ツールとの比較
    - Slack内で完結する
        - 連携に必要な設定が不要
        - 追加料金がかからない

# リストの基本的な使い方
ここで掲載する内容は基本的な使い方だけですので詳細はSlackのマニュアルをご確認ください。

## リストの表示
ナビゲーションバーから表示できます。
初期状態だと「その他」の中に入っていると思います。

<img width="350px" alt="ナビゲーションバー.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206611/32dd04dc-67cb-2f3d-cb59-64721de2b5c1.png">

## リストの作成
リストは空のリストもしくは既存のテンプレートから作成することができます。
リストには任意のフィールドを追加できます。

![リスト新規作成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206611/ac5785c1-41ac-9b2e-3b84-f1f27c9cb1fe.png)

フィールドの型として指定できるフィールドタイプが豊富で例えば以下のような選択項目も設定できます。

<img width="250px" alt="選択項目.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206611/8549d8fa-e673-83f9-d0c7-92b80b79482e.png">

## アイテムの登録
ひとつひとつのタスクをアイテムと呼ぶのですがアイテムは以下の方法で登録できます。
- リストの「アイテムを追加する」から追加
- メッセージの「リストに追加」から追加
    ![リスト追加.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206611/197968f3-3d51-d84d-3fe7-3e88c0d733e7.png)

## リストの共有
リストの右上にある「共有」ボタンからリストを共有することができます。
共有の対象はユーザーまたはチャンネルです。
また、リストのURLを教えて共有することもできます。

<img width="400px" alt="リストの共有.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206611/f9929ca6-3a66-74e5-45e5-79ae0a8cd58e.png">

# ワークフローの使用
リストはワークフローで使用することもできます。
今回はワークフローを使用してコードレビュー依頼の登録ができるようにしました。

## 対象のリスト

![リスト.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206611/6de04776-c5db-fe9d-f3d1-98f3457c16d4.png)

| 項目 | 内容 |
|:--|:--|
| レビュー対象 | レビュー対象の概要およびリンク |
| ステータス | レビューの対応状況 |
| 依頼者 | レビューの依頼者。フィールドタイプを「作成者」とするとアイテムの作成者が自動的に入る |
| 依頼日時 | レビューの依頼日時。フィールドタイプを「作成時刻」とするとアイテムの作成時刻が自動的に入る |
| Slackメッセージ | レビュー依頼時のSlackメッセージへのリンク。フィールドタイプを「メッセージ」とするとその項目からメッセージに移動できる |

## ワークフローの作成
ワークフローはナビゲーションメニューの「自動化」から作成できます。

1. イベントとして「Slack内のリンクから」を選択
2. 1つ目のステップとして「情報をフォームで収集する」を作成
    <img width="400px" alt="レビュー依頼フォーム.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206611/fc012114-1e34-f9bc-60f5-0bc5bf0d2e13.png">

3. 2つ目のステップとして「チャンネルでメッセージを送信する」を作成
    <img width="400px" alt="メッセージ送信.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206611/f9525524-c1b5-35fa-5774-6cdaeb248914.png">
    - フォームのレビュワーがSlackユーザーなので`{} レビュワーへの回答`はメンションになる

4. 3つ目のステップとして「リストに項目を追加する」を作成
    <img width="400px" alt="ワークフロー項目追加.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206611/f176cdf6-424b-c46d-3089-68812b0525ba.png">
    - コードレビューは依頼して終わりではなくその後のコミュニケーションが発生するため、`{} メッセージのリンク`を入れることでレビュー依頼ごとにスレッドを分けてコミュニケーションできるようにしている
    - 上記の理由からここではメッセージの送信を挟んでいるが、それが不要であればフォームから直接リストに登録することもできる

できあがりは以下のような状態になります。
<img width="500px" alt="ワークフロー完成図.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206611/44ecac1b-b969-2450-c354-add95b07df8d.png">

このワークフローのリンクをSlackのメッセージに張り付けて実行するとフォームの入力内容を対象のチャンネルのメッセージを書き込んでその内容をリストに登録するという動作をします。
なお、初回はリンクから実行する必要がありますが2回目からはショートカットから選択できるようになります。

## リストを起点としたワークフロー
リストを起点としてワークフローを実行することもできます。
例えば、今回のリストの例だと以下のような設定をしてレビューに着手したタイミングでスレッドに通知するといったことができます。

1. イベントとして「リスト項目が更新された時」を選択
    <img width="400px" alt="リストイベント1.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206611/73689f1f-1794-7d17-9c5c-3098c0172663.png">

2. ステップとして「スレッドでメッセージに返信する」を作成
    <img width="400px" alt="リストイベント2.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206611/f70b5ff9-a13c-9989-b4c5-41a1777c61fb.png">
    - リストの項目を変数として使用できる
    - フィールドタイプが「メッセージ」の項目を返信先として指定できる

このワークフローを設定するとリストのステータスが「進行中」に変わったタイミングでコードレビューの依頼者にメッセージを送ることができます。

# まとめ
このようにリストの登場によりSlackにタスク管理の機能が提供されるようになりました。
使用方法で難しいところも特にないと思いますので、Slackでのタスク管理で悩んでいる人は使ってみることをおすすめします。
少なくとも私にとっては非常にありがたい機能でした。