メールソフトを開かなくても、メールが来たらTeamsで確認する。
今すぐ返事が必要か否かの見当つけましょう、という主旨です。
良くある業務効率化ですが、Office 365 outlookを利用していること前提です。
thunderbirdも可能だったら私生活も楽になるのになぁ(遠い目)
作成フロー(シンプル)
まずは超シンプルなフローです。
トリガーは「新しいメールが届いたとき(V3)」。
条件は特に何も設定しなくても大丈夫。
特定フォルダに振り分けられたものだけを投稿したいときは、一番上の「フォルダー」を設定しましょう。
または、特定の差出人から来たメールだけを投稿したいときは「差出人」を設定しましょう。
続いて受信日時の情報を取り込むための設定です。
デフォルトでは受信日時の項目が出てこないため、作ってあげなければいけません。
まずは「変数を初期化」します。「変数」で検索すると出てきます。
一番下の「値」から設定します。
何の変数を初期化するか? というところなので、受信日時を動的コンテンツから選択します。
種類は「文字列」。
名前は「受信日時」とでもしておきましょうか。
名前は自分が分かれば何にしても大丈夫です。
タイムゾーンの変換も忘れずに行います。
ついでに書式設定もしてしまいましょう。
デフォルトのままだと視認性が悪いです。
おすすめは「yyyy/MM/dd HH:mm」です。
※カスタム値として設定してください。
最後に、どこに投稿するのか設定してあげれば終了です。
受信日時には、ちゃんと変換した「変換後の時間」を設定してあげましょう。
フローをテストすると、以下のように投稿されました。
作成フロー(アダプティブカードで反応する)
Teamsに投稿されても皆の反応が分からない。
このメールが必要なのか否か、誰か代わりに見て教えて欲しいのに(殴)
まぁ、丸投げは困りますが、誰か1人が反応すれば良い案件があることも確かですよね。
まず、新しいメールが受信されると上のメッセージが投稿されます。続けて「返信」として、その案件はまだ誰も見てないよ、というメッセージも投稿されます。
同時に、下のアダプティブカードが投稿されます。
「必要」か「不要」かにチェックを入れて「送信」を押す、というアクションが可能です。
誰かが「必要」か「不要」かを送信すると、投稿は左のように変わります。
下のアダプティブカードは「回答ありがとう」のメッセージ。
上の投稿は「こちらの受信メールは「必要」が選択されたものです」と続けて投稿されます。
本当は1つのスレッドの中にアダプティブカードも入れ込みたかったんですが、私の実力では2日ほど試行錯誤したんですが無理でした。誰か『簡単に』コピペ等で実装できる方が居たら教えて欲しい。
さて、ここまで来たら次のアクションにも繋げたいところですが、まずはここまで実装しましょう。
今回のフロー
タイムゾーンの変換まではシンプル版と一緒なので割愛します。
その後「チャットまたはチャネルでメッセージを投稿する」から詳細を見ていきます。
シンプル版よりも言葉を簡単に変えています。
単なるお知らせですね。
次は「メッセージ詳細を取得する」です。
このフロー内で最初に投稿された投稿に対して返信したいので、さきほどの「お知らせ」のメッセージIDを取得しておきます。これをやっておかないと返信するとき、宛先はどこさ、と先に進めなくなります。
※TeamやChannelは適宜変更してくださいね。
まずは返信第1弾。
この案件は確認中ですよ、と投稿させます。
ここで大切なのは「Messeage ID」です。
先に「メッセージの投稿」と「詳細の取得」をしていたのは、このIDに当てはめる「Reply To ID」を取得するためでした。
本当はアダプティブカードを投稿した時のスレッド1つで完結させたかったんですが、それも自分の力量ではできなかったので、苦肉の策です。
さて続いて、誰かが反応できるようにしたアダプティブカードを投稿し、反応を待ちます。
省略
今回使ったアダプティブカードは以下の通りです。
コピペして、どんなもんかを自分で確かめながら試行錯誤してみてください。
ちなみに「新しいメールが届きました」の中で改行させたい場合は「\n\n」と入れてみてください。
例えば「新しいメールが届きました。\n\n誰か確認してください」とやると、投稿されたときに改行されています。
{
"type": "AdaptiveCard",
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.2",
"actions": [
{
"type": "Action.Submit",
"title": "送信"
}
],
"body": [
{
"type": "TextBlock",
"text": "新しいメールが届きました。",
"wrap": true,
"size": "Medium",
"weight": "Bolder"
},
{
"type": "Input.ChoiceSet",
"choices": [
{
"title": "必要",
"value": "必要"
},
{
"title": "不要",
"value": "不要"
}
],
"placeholder": "Placeholder text",
"id": "choices",
"style": "expanded"
}
]
}
アダプティブカードは誰かが反応したあとは「回答ありがとう」のままになってしまうので、結果を返信で残すための設定が以下です。
「choices」というのはアダプティブカードの回答情報を保持しているIDです。
さて、以上を設定したら動かしてみましょう。
お疲れ様でした。
※「承認フロー」の方がもっと簡単に応用できるのですが、承認アプリに誘導され、メールでも通知され、アクティビティにも格納され、と各種方面から判断者を囲い込むフローになっていました(笑)
Teamsを煩わしいと感じてアナログに戻られては困るので、簡単な反応だけが欲しいのであれば、こちらの方が導入しやすいのではないでしょうか。
アダプティブカードは以下で作成することができますが、英語ですので、慣れるしかないです。
私は慣れないので、色んなアクションのJSONを見て、試行錯誤しながら切り貼りして作成している感じです。
使いこなせればもっと応用力が広がるんだろうなぁ。勉強したい。
アダプティブカードの横幅
横幅を100%にする方法。
HTMLと同じように「width」を指定してあげれば良い、という情報は見つかるものの、具体的な挿入位置が分からずイラっとしていました。ようやく成功したので掲載。
"msteams": {
"width": "Full"
},
今回作成したアダプティブカードだと、最初の方の、バージョンの後に挿入すれば良いです。
{
"type": "AdaptiveCard",
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.2",
"msteams": {"width": "Full"},
"actions": [
{
"type": "Action.Submit",
"title": "送信"
}