Slackトリガーでワークフローを起動
この記事では、Slack投稿をトリガーに指定のワークフローを起動させる方法について紹介します。
【できるようになること】
- Slackの指定したチャンネルにて、特定ワードを受信したら指定のワークフローを起動
- ワークフローを起動後、メッセージを自動返信
Slackトリガーを実現
ワークフローの設定例
下記手順にてワークフローを設定します。
最初にGASの設定を行います。
GASではSlackからの情報を受信して、AUTOROのAPIを実行します。
- GASのプロジェクトページを開きます。(https://script.google.com/u/0/home/my)
- 新しいプロジェクトを作成します。
- 初めてGASのプロジェクトを作成する方は「APPS SCRIPTを作成」を押下
- 既存のプロジェクトがある方は左上の「新しいプロジェクト」を押下
「無題のプロジェクト」が作成されました。作成した本プロジェクトを外部と連携させるためにWeb公開設定を行います。
- デプロイ > 新しいデプロイ の順にクリックします。
- 歯車マーク > ウェブアプリ の順にクリックします。
- 「説明」に任意の説明文を入力します。
- 「次のユーザーとして実行」を自分とします。
- 「アクセスできるユーザー」を“全員”とします(必須)。
※各種設定を完了し、初めてSlackからワークフローを起動させることに成功するまでは、”全員”を指定する必要があります。初回稼働確認後は、デプロイ管理画面(手順12)より、公開範囲を変更いただくことが可能です。
- 発行されたウェブアプリ URLを確認します。
※後にコピペで使用します。あとからデプロイ画面にて確認可能です。 - 「完了」します
Slack Appの設定は基本的にこちらに従って設定を行います。任意のチャンネルに、アプリを追加してください。
上記ページとの変更点は以下2点となります。(いずれも3. OAuth&Permissionsの設定内の内容です)
- Redirect URLsは、先ほどコピー保存したGASのURLを設定します。
- Scopesは「chat:write」のみでOKです。
Slackのライブラリを導入します。これを導入することでこれから記載するスクリプトの中の一部関数を実行できるようになります。
- ライブラリの+ボタンをクリックします。
- スクリプトIDに以下を入力します。
1on93YOYfSmV92R5q59NpKmsyWIQD8qnoLYk-gkQBI92C58SPyA2x1-bq
- 「検索」をクリックします。
- 「バージョン」に22を指定します。
- 「追加」をクリックします。

次に、Slackからデータを受信するコードをコピペで設定します。
- function myFunction()と記述されているコード入力画面(コード.gs)のテキストを、全削除します。
- 削除できたら、以下のスクリプトをコピペします。
function doPost(e) {
roboticCrowdMain(); //ワークフロー起動する
var token = "";
var message = "WFを起動しました"; //ワークフロー起動後に自動返信するメッセージ
var slackApp = SlackApp.create(token);
slackApp.chatPostMessage(e.parameter.channel_id, message); //Slackにメッセージ送信
}
- コードのコピペ後、下記部分に「Slack Appの設定」の最後にコピー保存したトークンを入力します。

次に、AUTORO APIの設定を行います。
- ファイルの + ボタンをクリックします。
- 「スクリプト」をクリックします。
- 任意の名前を入力します。
- 作成されたファイルが表示されるため、表示されているテキスト(function myFunction~~)を全て削除します。
- 以下コードをコピペします。
function getToken(access_key_id,secret_access_key) {
var data = {
access_key_id: access_key_id,
secret_access_key: secret_access_key,
expires: 100000
};
var option = {
method : "post",
payload: JSON.stringify(data),
contentType: "application/json",
muteHttpExceptions: true
};
var req = UrlFetchApp.fetch("https://api.roboticcrowd.com/v1/token", option);
var token = req.getContentText();
return token;
}
function roboticCrowdMain(){
var key = "",secret=""; //AUTOROで作成したACCESS KEY IDとSECRET ACCESS KEY
var token = getToken(key,secret);
var header = {
Authorization: "Bearer "+ token
};
var body = {
workflow_id: "" //ワークフローID
};
var option = {
method: "POST",
headers: header,
payload: JSON.stringify(body),
contentType: "application/json",
muteHttpExceptions: true
};
var queue = UrlFetchApp.fetch("https://api.roboticcrowd.com/v1/session_queues", option);
Logger.log(queue.getContentText());
};
コピペしたコードに、AUTOROのAPIキー2種とワークフローIDを入力する必要があります。
- こちらの記事をに従い、APIキーを発行します
- スクリプトの下記部分に、発行したAPIキーを入力します。
次に、実行したいワークフローIDを指定します。
- 実行したいワークフローを開きます。
- 取得したワークフローIDをスクリプトの下記部分に入力します。



最後に、デプロイを更新します。
- 画面右上のデプロイ > デプロイを管理 をクリックします。
- 編集ボタン(ペンのアイコン)をクリックします。
- 「新バージョン」を選択します。
- 「デプロイ」をクリックします。
- 初回のみ、アクセス承認を行う必要があります。
- 画面の指示に従って、承認します。
※GASにて何かしらの変更があった場合は(上書き保存含む)都度上記のようにバージョンアップをする必要があります。
これにて設定は終了です。長い間、お疲れ様でした!
ワークフローを実行
最後に、Slackにメッセージを送信し、ワークフローを実行させてみましょう。
- 設定したチャンネルに、引き金となる言葉を送信します。
登録したBotによりワークフローが起動され、「WFを起動しました」と返されます。
※ Botからのメッセージ内容は、9. Google Apps Scriptコードを設定 〜Slackデータの受信〜のコード内に記述されています。
実際にワークフローが起動されています。