Blog

Slackと Zapierでタスクを簡単に割り当てるツールを作ってみた

この記事は、ニフティグループ Advent Calendar 2024 6日目の記事です。

はじめに

こんにちは。ニフティ株式会社の並木です。

皆さんは、タスクの割り当てや順番決めに頭を悩ませたことはありませんか?

私はこれまで、オンラインのあみだくじやルーレットツールを利用していましたが、あみだくじの結果を目で追ったり、何度もルーレットを回したりと、意外と手間がかかっていました。

「もっと簡単に、一発で機械的にタスクを割り当ててくれるツールが欲しい!」という思いから、SlackのワークフローとZapierを使用して、タスクを簡単に割り当てるツールを作成しました。

今回は、その方法についてご紹介いたします。

Slackのワークフローを作成する

Slackでワークフローを新規作成します。

「Slack内のリンクから」を選択してください。

ステップを追加します。 「フォーム」を選択してください。

フォームの内容を設定します。

質問1でタスク名を入力するよう設定します。

質問2で人の名前を入力するよう設定します。

質問1、質問2で入力された内容を、slackにメッセージとして送信できるよう設定します。

「メッセージ」を選択してください。

「チャンネルへメッセージを送信する」を選択してください。

今回は「ワークフローが使用されたチャンネル」に、以下の内容のメッセージが送信されるよう設定します。

これでワークフローの作成は完了です!

Zapierを設定する

まずはトリガーの設定をします。

Appは「Slack」、Trigger eventは「New Mention」を選択します。

Slackに「タスク簡単割り当てワークフローを起動しました。」という文章が投稿されたらZapierが起動するよう設定したいので、Highlight Wordには「タスク簡単割り当てワークフローを起動しました。」を設定します。

Trigger for Bot Messages?は、Botによる投稿もトリガーの対象に含めるかを確認していますので、今回は「True」を選択してください。

タスクをランダムに割り当てる処理を書いていきます。

Appは「Code by Zapier」、Action eventは「Run Python」を選択します。

言語はPythonのほかにJavascriptを選択することもできます。

Input Dataの右側の入力ボックスにSlackで投稿された文章を設定し、左側の入力ボックスにキー名を入れます。

以下画像ではキー名を「original_text」としましたが、どんな名前をつけても良いです。

Codeの中でinput_data['original_text']と書くことで、Input Dataで設定したデータを取り出すことができます。

タスクを割り当てた結果を、Slackに投稿します。

Appは「Slack」、Trigger eventは「Send Channel Message」を選択します。

ChannelにSlack投稿するチャンネル名、Message textにSlack投稿するメッセージを入力します。

Codeの最後にoutput = [{'result':result, 'mention':mention}]と記載しておくことで、タスクを割り当てた結果とワークフローを使った人の名前を取り出して、メッセージに含めることができます。

これでZapierの設定は完了です!

実際に動かしてみる

ワークフローを実行し、タスク名と名前をカンマ区切りで入力します。

「送信する」を押下すると、ワークフローを実行したチャンネルに、以下のメッセージが投稿されます。

さらに数秒待つと、タスクを割り当てた結果が「#bot_タスク割り当て」チャンネルに投稿されます!

おわりに

以前の記事「ZapierでX投稿するAPIを呼び出して結果をSlackに通知してみた」では、Zapierから Slackへの連携を試しましたが、今回は逆に Slackの投稿をトリガーにして Zapierを起動させる方法を初めて実践しました。

今後も、SlackとZapierの連携を活用して、業務効率化や情報共有の改善に役立つツールを開発していきたいと思います。

明日は、jimmysharpさんの「CloudFront FunctionsでもTypeScript&テストしたい」です。 お楽しみに!

ニフティでは、
さまざまなプロダクトへ挑戦する
エンジニアを絶賛募集中です!
ご興味のある方は以下の採用サイトより
お気軽にご連絡ください!

ニフティに興味をお持ちの方は
キャリア登録をぜひお願いいたします!

connpassでニフティグループに
参加いただくと
イベントの
お知らせが届きます!