システム連携ネタでよくブログを書いている日下です。
※ちなみにこれまでの記事はこちら

ビジネスチャット(社内 SNS)ツールはいろいろありますね。最近ですと以下の記事が話題になっていました。
 メールからSlackへ 企業導入が加速する「ビジネスチャット戦国時代」── 主要ツール6社の規模と機能を調査
また、Slack はさらに資金調達をした、という記事もありましたね。

これまでに Slack や ChatWork との連携について記事を書いてますが、今回は Office365 と Questetra の併用ということで Microsoft Teams との連携について紹介します。
 関連記事:社内チャット「Slack」で業務のダイジェストを確認する方法
 関連記事:ChatWork とクラウドワークフローとの連携方法

目次
1: Microsoft Teams と Questetra の連携の概要
2: Microsoft Teams 側の設定
3: Questetra 側の設定
3.1: Questetra 側の設定(アドオンを使う場合)
3.2: Questetra 側の設定(アドオンを使わない場合)
4: まとめ

1: Microsoft Teams と Questetra の連携の概要

処理の流れとしては、以下のような形となります。
社内 SNS との連携としてはよくある形で、Questetra 上での稟議の結果が出たら、その内容を詳細リンクを Microsoft Teams に投稿します。

2: Microsoft Teams 側の設定

投稿先のチャネルのコネクタとして「Incoming Webhook」をインストールします。

< < <

名前と画像を設定して、エンドポイントの URL を取得します。(エンドポイント URL は後で使うのでどこかにコピーしておいてください)

< < <

3: Questetra 側の設定

「アドオン(サービスタスク定義)」を使う場合と、使わない場合の2ケースを説明します。
アドオンとはインポートして活用できるファイルのことで、「アドオン(サービスタスク定義)」はフロー中に埋め込める部品のことです。カンタンに設定したい場合にはアドオンを使うことをおすすめします。逆に投稿の形式を拡張したい等、より高度に取り扱いたい場合にはアドオンを使わない方が柔軟に対応できます。

3.1: Questetra 側の設定(アドオンを使う場合)

まずアドオン(サービスタスク)をインポートします。

アドオンのファイルは以下からダウンロードして、こちらのページ(マニュアル M415)を参考にインポートしてください。

 Microsoft Teams メッセージ投稿

設定項目は以下の通り。

項目名必須形式
A: エンドポイント URL必須さきほど取得したエンドポイント URL を入力
B: 投稿タイトルが格納されている文字型データ項目(任意)投稿したいタイトルが入っている文字型データ(単一行)を指定
C: 投稿テキストが格納されている文字型データ項目必須投稿したいテキストが入っている文字型データ(複数行)を指定
X: ログが格納される文字型データ項目 (更新)(任意)ログを出力したい場合に文字型データを指定

※投稿テキストのデータの初期値として、以下のような指定をしておくと、自動的に文面が準備されます。
(「XXX.questetra.net」には環境ごと値を入れてください。ここでは後述の「${var[applicationRoot]}」という書式は使えません)

承認されました。[詳細リンク](https://XXX.questetra.net/OR/ProcessInstance/listView?processInstanceId=#{processInstanceId})

 もしくはアドオンの前に「データ更新」を置いて、文面作成する方法もあります。
  関連マニュアル M227: 業務データの結合や四則演算が自動実行されるように設定する

※今回のアドオンの内部では後述のフォーマットに沿って Microsoft Teams 向けに JSON データを送付するのですが、今回はシンプルな投稿となっています。アドオンを拡張することで、より高度な投稿も可能となります。

3.2: Questetra 側の設定(アドオンを使わない場合)

投稿部分について以下のようなフローとなります。

左の「データ更新」で Microsoft Teams に送付する JSON データを準備して、右の「メッセージ送信中間イベント(HTTP)」でエンドポイント URL に http リクエストを送付します。

JSON データを準備する「データ更新」については、以下のような設定をします。

{
“title”: “稟議:#{processInstanceTitle}”,
“text”: “承認されました。[詳細リンク](${var[applicationRoot]}OR/ProcessInstance/listView?processInstanceId=#{processInstanceId})”
}

この設定では、
 投稿タイトルは「稟議:」+「件名」に設定された文字
 投稿本文は「承認されまた。」+その案件の詳細ページにリンクされた「詳細リンク」という文字
が投稿されます。ここは実際にどういう投稿をしたいかによって変更してください。

※「データ更新」の詳細については、以下をご覧ください。
M227: 業務データの結合や四則演算が自動実行されるように設定する
「${var[applicationRoot]}」や「#{processInstanceId}」は環境や実行時の id にあわせて変換される書式です。

※投稿のための JSON データの詳細仕様は以下をご覧ください。
Post an actionable message card to an Office 365 group
このページは、コネクタ設定画面の「Office 365 コネクタ カードを使い始める」のリンク先で、内容からすると Outlook 向けの仕様をそのまま Microsoft Teams に適用していると推測されます。また、投稿本文にはマークダウン記法が使えます。「データ更新」の設定を改良することでより高度な投稿も可能です。

また、http リクエストを送付する「メッセージ送信中間イベント(HTTP)」については、以下を設定してください。

  • 通信設定タブ → アクセスURL:さきほどの Microsoft Teams の設定で取得したエンドポイント URL
  • 通信設定タブ → HTTP Method:「POST(リクエストボティを指定)」
  • リクエストボディタブ → リクエストボディとして送信するデータ項目:「データ更新」で準備した JSON データ項目
  • リクエストボディタブ → リクエストボディの Content-Type:「application/json」
※「メッセージ送信中間イベント(HTTP)」の詳細については、以下をご覧ください。
M225: 業務データを組み込んだHTTPリクエストが、自動的に送信されるように設定する

4: まとめ

動かしてみると、以下のような形で投稿されます。

このようにカンタンな設定だけで Microsoft Teams への投稿処理を業務フローの途中に埋め込むことができます。

もし、ご質問等がありましたら、お問い合わせフォームからお気軽にご連絡ください。

%d人のブロガーが「いいね」をつけました。