28
23

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Slack ワークフロービルダーの新しいトリガー(日時/Webhook)を使ってみよう!

Last updated at Posted at 2020-02-12

##はじめに
ワークフロービルダーの新機能が2020/02/12に**リリースされました:smile:
追加機能の概要と、簡単な使い方をまとめておきます!
前回投稿したワークフロービルダーの基本的な解説は
こちら**

##追加機能(3点)
新しいトリガーが2点と、追加機能が1点リリースされました。

新しいトリガー(スケジュールされた日付と時間)
 特定の日または定期的なワークフローをスケジュール起動する機能

新しいトリガー(Webhook)
 外部システムまたはツールからSlackのワークフローを起動する機能

新しい機能(フォームデータをCSVとしてダウンロード)
 ワークフロービルダーのフォームから収集した回答をCSV形式でダウンロードできる

:warning: 注意事項:warning:
Webhookトリガーや、フォームデータをCSVとしてダウンロードするためには
事前にワークスペース管理者が権限設定を行う必要があります。

##新しいトリガー(スケジュールされた日付と時間)
もう1つ追加された新しいトリガーです。こちらは解説するまでもなく直観的に使える機能だと思います。
/remind などで繰り返しメッセージを設定するのもひとつですが、定期的なフォーム入力の催促などを
ワークフローとして実現したい場合には活用できそうな気がします。

今回フォーム入力データがCSVダウンロードできるようになったので相性もいいですね。
image.png

##新しいトリガー(Webhook)
サンプルとして、新しいトリガー(Webhook)を、GoogleAppsScriptから利用する場合の手順を書いていきます。
なお、今回追加されたWebhookは、従来から提供されているIncoming Webhookに相当する機能です。
Incoming Webhookの仕様はあわせて**公式リファレンス**をご確認ください。

(1) 適当な名前で新しいワークフローを作成します。
image.png

(2) トリガー設定に、今回追加されている機能が表示されています。Webhookを選択してください。
image.png

(3) Incoming Webhookで受け取る変数を追加します。変数を追加するを選択してください。
image.png

(4) 変数を追加します。今回はサンプルでtextを追加します。データタイプはテキストを選択してください。
image.png

データタイプにはテキスト以外にも、以下の中から選ぶことが可能です。
-テキスト
-Slackユーザーのメールアドレス
-SlackユーザーID

(5) Webhookが登録された状態です。この時点ではWebhookURLが発行されていません。
image.png

(6) ステップを追加しメッセージを送信を選択してください。
image.png

(7) メッセージの送信先を選択し、メッセージのテキストには変数を挿入するをクリックし、(4) で作成した変数textを指定します。
image.png

(8) ワークフロービルダーの準備はこれで完了です。右上の公開するをクリックします。
image.png

(9) Webhook用のURLが新規発行されます。
image.png

(10) GoogleAppsScriptで新規スクリプトを作成します。
サンプルコードのpayloadの部分に、**(4)**で設定したワークフロービルダーの変数の値を設定します。

sample.js
function sample(){

  //ワークフロービルダーで作成したWebhookURLを設定
  webhookurl = 'https://hooks.slack.com/workflows/XXXXXXXXX/XXXXXXXXX/000000000000000000/XXXXXXXXXXXXXXXXXXXXXXXX';

  //ワークフロービルダーで設定した変数の値を設定
  var payload = {
    'text' : 'Hello World!',
  };

  //HTTPリクエストを送信
  var params = {
    'method' : 'post',
    'payload' : JSON.stringify(payload)
  };
  var response = UrlFetchApp.fetch(webhookurl, params);

  var content = response.getContentText("UTF-8");
  
}

(11) サンプルコードを実行してメッセージが表示されれば完成です!🎉
image.png

##新しい機能(フォームデータをCSVとしてダウンロード)
ワークフロービルダーの編集画面右上にある「...」から、フォーム形式で回答をダウンロードするを押すだけです。
image.png

ファイルダウンロード準備が整うと、SlackBotからユーザー宛にダウンロードURLが通知されます。
image.png

##さいごに
今回Incoming Webhookに対応されたことで、GSuiteや他SaaSサービスとの連携がやりやすくなりました。
Slackを呼び出す側は、JSON形式で値を渡す必要があるため、多少プログラミングスキルは求められますが
ユーザーのSlackを活用したアイデアを形にしやすくなったと思いますし、非常に良いアップデートだと思います。
これからもワークフロービルダーには追加機能の実装が期待されるところですね。

以上

28
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
28
23

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?