
Slack は、Slack 社が開発・運営するビジネス向けのチャットツールです。話題やチームなどに応じて複数のチャンネルを使い分けることができるほか、様々なアプリとの連携ができたり、API を使用して Bot を作成することもできます。
Questetra では、Slack の API と連携するビルトイン自動工程が用意されています。今回は、Slack のチャンネルに自動でメッセージを投稿する Questetra BPM Suite の 自動工程、[Slack: メッセージ送信 (Block Kit 対応)]を紹介します。
Slack について,詳しくは Slack の公式ページをご覧ください。
Questetra の自動工程
Slack: メッセージ送信 (Block Kit 対応)
Slack のチャンネルにQuestetra からメッセージを投稿する自動工程です。Block Kit と呼ばれる、ブロックを組み合わせて UI を構築するための JSON オブジェクトを指定しての投稿も可能です。

この自動工程の使い方として、例えば以下のようなものが挙げられます。
- プロセスの終了を Slack で通知する
- エラー発生時にその旨を Slack で通知する
- 担当者以外にも報告されるべき事柄を自動的に Slack で報告する
「プロセス終了の通知」や「エラー発生の通知」など、投稿先となる Slack チャンネルや投稿文が毎回変わらない場合は、自動工程の設定項目に固定値で登録します。
プロセスごとに投稿内容が変わる場合は、文字型データ項目への参照を指定しておき、入力タスクにてデータ項目に投稿内容を入力します。
Questetra と Slack の連携設定
Questetra と Slack の連携設定を行います。
Questetra のワークフローアプリの編集画面にて上記の自動工程を設置後、プロパティ画面を開きます。設定項目「C1-a: HTTP 認証設定 (Questetra が登録済みの Bot を使用する場合) 」の下部にある[設定はこちらから]をクリックすると「HTTP 認証設定 Slack: Post Chat」という設定画面が開きます。
[ユーザに紐づく設定]欄に、あなたのユーザ名が表示されています。

[トークンの取得]をクリックすると Slack の認証画面へと移ります。まず、連携するワークスペースを指定します。(使用しているブラウザですでに Slack にサインインしている場合はこの画面はスキップされます。)

サインインします。(サインイン済の場合スキップされます。)

接続を許可すれば設定は完了です。なお、この手順で同時にワークスペースに Questetra BPM Suite アプリがインストールされます。

これで Slack との OAuth2 認証のトークンが取得されました。([トークンの取得]ボタンの隣に[トークンの削除]が表示されます。)
Bot のチャンネルへの招待
この自動工程からは Bot として Slack のチャンネルに投稿します。Bot はメンバーと同様にチャンネルに招待されてなければそのチャンネルにアクセスできません。
「questetra_bot」をチャンネルに招待するには、招待したいチャンネルで「/invite @questetra_bot」と投稿すると Bot が招待されます。何らかの理由で Bot をチャンネルから除きたい場合は、「/remove @questetra_bot」で除くことができます。
なお、Bot を招待するには Slack のワークスペースに Questetra BPM Suite がインストールされている必要がありますが、インストールは Questetra と Slack の連携設定をすることにより自動的に行われます。
サンプルアプリ

[Slack: メッセージ送信 (Block Kit 対応)]工程の動作を確認するためだけのアプリです。実際の使用時には用途に合わせて、他のアプリに組み込むなどして使用してください。
データ項目の設定
データ項目は以下のようになっています。
| データ項目名 | タイプ | フィールド名 | 必須 | 「投稿セット」工程 | 説明 |
| 件名 | – | – | 編集可 | プロセスの件名です。 | |
| メッセージ | 文字列型 ( 複数行 ) | q_Message | ✓ | 編集可 | 投稿メッセージです。 |
[Slack: メッセージ送信 (Block Kit 対応)]の設定
「Slack 投稿」工程の設定は以下のとおりです。
| 項目名 | 必須 | 説明 |
| C1-a: HTTP 認証設定 (Questetra が登録済みの Bot を使用する場合) | ✓ | Slack への接続に使用する HTTP 認証設定名を指定します。「Questetra と Slack の連携設定」の手順で[トークンを取得]した[ユーザに紐づく設定:あなたのユーザ名]を指定します。 |
| C1-b: HTTP 認証設定 | – | 今回は使用しません。 |
| C2: チャンネル ID (名前も可) | – | 投稿先となるチャンネルの名前を入力します。# の有無は問われません。 |
| C3: スレッド ID | – | 今回は使用しません。 |
| C4: 返信をチャンネル全体にブロードキャストする | – | 今回は使用しません。 |
| C5: メッセージ(Block Kit) | – | 今回は使用しません。 |
| C6: メッセージ(Markdowm) | ✓ | 投稿する文章を設定します。[参照を挿入する…]から「メッセージ」を選択し #{#q_Message} 指定します。 |
[C6: メッセージ(Markdowm)]では EL式を記述することにより、データ項目の値やシステム変数などを挿入できます。また Slack では Markdown 記法の一部に対応しており、太字や打ち消し線などの装飾もできます。
Slack API ドキュメント (英語)
動作確認
アプリを[リリース]した後、実行します。(デバッグ実行でもよい)
「投稿セット」工程で、「メッセージ」に以下のように入力してください。下記の例文は Markdown により太字の装飾が施されています。「*」 は半角英数で、前後に半角スペースが必要です。
この投稿は *テスト* です。
タスクを終了した後、Slack にログインして投稿を確認します。

