見出し画像

SalesforceとTeams連携メモ


Teamsに通知がしたい

Salesforceでレコードを作成したり等、何かトリガーが走ったときにTeamsに通知がしてみたい。
どうしたらできるのだろうかとチャレンジしてみました。

Teamsのチャネルにはメールアドレスがある

私自身、あまりTeamsを利用したことがなくて調べたところ、Teamsのチャネルにはメールアドレスが割り振られていることがわかりました。
そのメールアドレスにメールを送ることが出来れば、チャネルにそのままメール内容が流れていくという仕組みです。

メールアドレスの取得方法は簡単で、チャネルを開いて「その他オプション」→「メールアドレスを取得」からコピーするだけです。

試しにメールを送ってみたけど………

試しに自分のGmailからコピーしたTeamsチャネルのメールアドレスにテストで送ってみました。
しかしながら、チャネルはうんともすんとも動きません。。。。(´;ω;`)

原因を調べたところ、メールアドレス先に送られたメールに対して権限があったようです。

調査&実際に動かしてみたところ、権限を「だれでもこのアドレスに電子メールを送信できます」にしておかないとチャネルに内容が流れてこないみたいでした。
チャネルの「その他オプション」→「メールアドレスを取得」→「詳細設定」から上記の権限の設定を変更できます。

フローのメールを送信アクションで送ってみた

実際にメールでTeamsチャネルにメッセージを流せることが分かったので、それと同じことをSalesforceのフローで行えば良いわけです。

今回は、レコードトリガーにて、テキストテンプレートを使用して送信を試みました。

フローときくと、すごく難しそうなイメージがありますが、メールを送信するならそこまで難しくないです。
テキストテンプレートにメッセージ文を記載してそれをメール送信アクションでメールアドレスと件名を指定するだけです。

なので、すぐに実現できる!と思ってました。。

HTMLタグとの戦い

作成したフローから無事にTeamsのチャネルにメッセージが流れました。
しかしながら、実際に流れたメッセージには、改行などのHTMLタグが表示され、改行もされていない状態で流れてきたのです。
HTMLタグを非表示にし、なおかつ改行をした状態でメッセージが流れるようにしなければなりません。

こちらの記事を参考にさせて頂きながら、SUBSTITUTE関数を駆使し、改行タグを非表示にするのと、改行させることに成功しました。
やり方としては、最初はテキストテンプレートに直接メッセージを記載していたのですが、それをやめました。
テキスト型の数式で改行したい部分にSUBSTITUTE関数を挟みながらメッセージを作成、それをテキストテンプレートに引用するというかたちをとりました。

しかしながら、本文の最初と最後に表示される<p></p>タグがどうしても消えませんでした。。。
どうしたらいいのやらとこちらも調査したりいろんな人に聞いてみたところ、テキストテンプレートの種類を「リッチテキスト」→「プレーンテキスト」に変更をし、すると<p></p>タグが表示されるので、それを消して保存すると上手くいきました!

本番環境での挙動

今回はdev環境でつくってみたのですが、下記のヘルプに記載されている通り、dev環境では動いて本番環境で動かない場合があるそうです。
その場合はサポートに連絡すると対応頂けるそうです。


この記事が気に入ったらサポートをしてみませんか?