Tech Waves

produced by Hakuhodo DY ONE

本ブログは、株式会社Hakuhodo DY ONEの開発チームによるエンジニアブログです。
それぞれのメンバーが業務を通して得た技術情報や、各種セミナーの参加レポート、またその他トピックについて情報発信を行っています。

Power Automateを使ってTeamsの投稿をSlackに自動転記する方法

こんにちは、佐藤です👓。

今回はPower Automateを利用して、Teamsにメッセージが投稿された時にSlackにも同じメッセージを投稿する方法について紹介します。

複数のメッセージツールを利用していてどこかに一元化したいものがあれば役に立つと思いますので、気になる方はぜひ実践してみてください!

 

Power Automateとは

Power Automateとは、Microsoft社が提供するノーコード・ローコードの業務アプリで、TeamsやExcelなど幅広いアプリケーションに対応しており、定常業務やワークフロー業務の自動化を実現することができるツールです。

連携できるツールも豊富にあり、今回紹介するSlackはもちろん、GmailやXなどのツールとも連携が可能です。

※使用できるコネクタの一覧は以下のリンクを参考

https://learn.microsoft.com/ja-jp/connectors/connector-reference/connector-reference-powerautomate-connectors

 

連携方法

ワークフローの設定

1. office 365へログイン


2. ログイン後、左上のボタンからPower Automateを選択


3. Power Automateの画面に遷移したら、検索バーで「slack」と検索します。すると検索結果に「新しいチャンネルメッセージがTeamsに追加されたら、SlackとTeamsにメッセージを投稿する」が出てきますので、そちらを選択します。


4. 画面遷移後、続行をクリック


5. 続行をクリックするとワークフローを操作できる画面に遷移しますので、その中にある「Post a message as the Flow bot to a channel」を右クリックして削除してください。(削除しなくても問題ないですが、ログも一緒にSlackチャンネル上に通知されてしまうため、削除することをおすすめします。)
☆この四角で囲まれたブロックのことをアクションと呼びます。


6. 「when a new channel message is added」と「Post message」の間にある+ボタンを押して「アクションの追加」を選択してください。


7. アクション追加タブが出現するので、検索欄で「HTML」と検索して「Html からテキスト」を選択してください。


8. ワークフローの形が下記のようになっていたら、次はそれぞれのアクションに対してパラメータを設定します。

 

パラメータ設定

この章ではそれぞれのアクションに対して連携元のTeamsチャンネルの設定、連携先のSlackチャンネル設定などについて説明します。

「When a new channel message is added」の設定

  • Slackへ通知したい連携元のTeamsチャンネルを設定することができます。トグル上にチームやチャネルが存在しない場合でも、手入力で設定することが可能です。
  • 手入力でも設定できない場合は、「接続を変更する」から連携元にしたいTeamsの組織が入っているかどうか確認をして再度設定をしましょう。

設定例



「Htmlからテキスト」の設定

  • そのままSlack上にテキストを渡すこともできますが、Teamsの投稿をそのまま渡してしまうとHTMLタグがついたまま連携されるため、見栄えが悪くなってしまいます。そのため、一度HTMLタグがついているものをプレーンテキストに変換するために、本ステップでパラメータを設定します。
  • 設定画面では、メッセージ本文以外にも投稿者や投稿タイトルを埋め込んだり、文字列操作専用の関数などが用意されています。関数を利用する際はサンダーマークではなくその下の「fx」をクリックすると、利用可能ですのでぜひ活用してみてください。

設定例


応用例

  • Teamsからの投稿であることを追記(Markdownも使えます)
  • 件名タイトルの追加
  • replace関数を使って無理やりhtmlタグをmarkdownへ変換
    • このやり方は別のアクションブロックなどが必要になるため、別の機会に紹介します。基本は上記の設定例にある方法で問題ありません。


「Post message」の設定

  • 連携元のTeamsチャンネルを設定した時と同様に、連携先のチャンネル名を入力またはトグルから選択します。
    • 存在しない場合は「接続を変更する」を選択してワークスペースが正しいかどうか確認してください。
  • メッセージテキストブロックにプレーンテキストコンテンツを追加します。こちらに先ほど「Htmlからテキスト」で設定したコンテンツがSlack上に表示されます。
  • ボット名について
    • ⑤の工程で「いいえ」を設定した場合は、④の工程で設定した名前が表示名となって連携先のSlackチャンネルで投稿されます。
    • ⑤の工程で「はい」を選択した場合は、bot名ではなくこのワークフローを作成したユーザーが表示名となります。
      • 例えばSlack上の表示名が佐藤となっている人がワークフローを作成した場合、佐藤が表示名となってTeamsの投稿内容が反映されます。Teamsの投稿者ではないことに注意してください

ワークフローの保存&実行
1. 左上の「保存」ボタンを押す。


2. マイフローから作成したフローを選択し、「オンにする」をクリックするとワークフローを起動します。これで完成です。

※フローを停止したい場合は「オフにする」をクリックしてください。Teamsに何も投稿がされず、ある一定の日数が経過した場合も自動的にオフになります。



実行例

設定が完了すると以下のように、Teamsの投稿がSlack上に自動連携されます。

パラメータの設定次第では、Teamsのリンクを記載することも可能です。ぜひ色々試してみてください!


まとめ

今回は、Power Automateを利用してTeamsにメッセージが投稿された時にSlackにも同じメッセージを投稿する方法について紹介しました。コミュニケーションツールを複数使わざるを得ない状況などに使えると思います。

ほとんどコードを書かずに構築できますので、ぜひお試しください。