SalesforceからSlackにメンションやコードブロックを含む投稿ってできるの?
こんにちは!
皆さんSlack活用していますか?
Slackの便利なところはメンションのしやすさや、コードブロック、箇条書きなどを活用した文章の見やすさ、
スレッド形式でのやり取りなどが挙げられると思います。
しかし、もし、SalesforceとSlackを連携させた時にこれらの便利なものが使えないのであれば、正直がっかり
しませんか?Salesforceとの連携なんてしてあげないんだから!と、Salesforceに冷たい対応をとってしまいませんか?
当社ホームページに来たお問合せをWeb To Leadで取り込み、合わせてSalckにも通知する、といった連携を
構築した際のお話です。
ホームページ問い合わせをSlackに連携するための仕組みについて
当社ホームページのお問い合わせをSlackに連携するにあたり、Salesforceにも情報を蓄積する必要があるし、
Slackとの連携もしたい、と言うことで、以下の構成で連携しました。
当社ホームページからSalesforceへの連携は、当社製品KippoWを利用しています。
すごく便利!おすすめ!簡単に連携できます。
※KippoWの詳細についてはこちらをご覧ください。WordPressのContact7 Formなどから
簡単にSalesforceへのWeb To Leadができるようになります!
SalesforceからSlackへの連携は、以前のブログでも記載しましたが、SalesforceとSlackを繋ぐことで
連携設定は完了となります。(標準オブジェクトのリードなので)
※以前のブログはこちら「Salesforce技術ブログ(SalesforceとSlackを繋ぎたいんじゃ!)」
Salesforceにリード登録されたタイミングでSlackへ通知する
リードに登録された後、Slackに通知させるためにSlack SetupアプリケーションのAutomation Configuration
設定から、リード登録時のメッセージ宛先チャンネルを設定します。
下記のようにどのチャンネルにメッセージを送るかの設定します。
登録後、IDが割り当てられますのでそのIDをコピーします。
※黒塗りの「MESSAGE DESTINATION ID」の右のコピーマークをクリック。
今回、リード登録時にSlack通知させるために「レコードトリガーフロー」を利用しました。
ワンクッション挟みたいのであれば画面フローでの構築も可能だと思いますし、今であれば
まだプロセスビルダーでの構築もできます。(お勧めしないけど)
今回は上記のような構成で仮組みしました。
※ちゃんとエラー処理は入れるようにしましょう。上記は簡素化のために省略しています。
内容を細かく説明すると、
①開始条件
このトリガ処理が起動する条件を定義します。今回はリードが作成された
タイミングのみ、データ保存後に起動するようにしました。
- 「オブジェクト」にリードを設定
- 「トリガを設定」にレコードが作成された を選択
- 「エントリ条件を設定」は、なし
- 「フローを最適化」は、アクションと関連レコード を選択
②レコードを取得
Slack投稿の際、特定のユーザにメンションをしたいため、Salesforceのユーザオブジェクトに
Slack IDを予め保存しておき、その値を取得します。リードの所有者の割り当てと連動させるなど
工夫によってはもっと便利にできます。簡易承認プロセスのようなこともできます。
- 「オブジェクト」にユーザを選択
- 「ユーザレコードを絞り込み」にUsername=(取得したいユーザ名) を設定
- 「ユーザレコードを並び替え」は無し
- 「保存するレコード数」は最初のレコードのみ
- 「レコードデータの保存方法」はすべての項目を自動的に保存 を選択
③Apexアクションの設定
Slackへ通知を行うためにApexアクションを設定します。
ここでは、先ほどコピーした「MESSAGE DESTINATION ID」を割り当て、投稿するチャンネル、
投稿するメッセージを設定します。
- 「Message Destination ID」に先ほどコピーした「MESSAGE DESTINATION ID」を設定
- 「Record ID」に{!$Record.Id}(リードのレコードID)を設定
- 「Message」に数式を設定
※「Message」に設定した数式に本文を記載し割り当てます。
ここまで設定したら保存して「有効化」を行うことで、リードが新規作成される度に
Slackへメッセージが通知されます。
※リードソースの設定などを条件に組み込めば、ホームページ以外からのリードを除外できます。
フローなのでかなり色々なことができます。
折角だからメンションとかコードブロックとかSlackの機能を使って投稿したい
と言うことで、みんな折角投稿するならSlackの機能を最大限活用して投稿したいと思うはずです。
少なくとも私は思いました。
と言うことで、色々と試してみた結果、数式に以下の記述を行うことでメンションやコードブロック
投稿ができます。
①ユーザへのメンション
<@と>の文字列の間にメンション対象者のSlack IDを設定することでメンションできます。
Slack IDはSlackのシステム管理者にご確認ください。(またはメンションリンクのURLを確認してください。)
'<@' & 取得したSlack ID & '>'
②@Channel、@here
@Channelや@hereなどを使いたい場合は、@の代わりに!を記載することでメンションできます。
'<!channel>'
'<!here>'
③文字を太字にする
文字を太文字にする場合は、*(アスタリスク)で文字を囲みます。
'*' & '太字になります' & '*'
④イタリック表記にする
イタリック表記にする場合は、_(アンダースコア)で文字を囲みます。
'_' & '斜め文字になります' & '_'
⑤文字に取り消し線をつけます
文字に取り消し線を付ける場合は~(チルダ)で文字を囲みます。
'~' & '文字が取り消されます' & '~'
⑥コード表記する場合は、`(バッククォート)で文字を囲みます。
'`コードになります`'
⑦引用表記にする
引用表記する場合は、文字の前に>(やまかっこ)をつけます。
'>' & '引用されたみたいになります'
⑧コードブロック表記にする
コードブロック表記にする場合は、対象の文字を“`(バッククォート3つ)で
囲みます。改行はbr()を記入します。
'```' & 'テストテストテスト1行目' & br()
& '2行目' & br()
& '3ぎょうめ' & br()
& '```'
⑨チャンネルリンクにする
チャンネルリンクにする場合は、チャンネル名の前に#(シャープ)をつけます。
'#' & 'general'
※箇条書きはうまく設定できず引き続き検証中です。
フローと数式を活用することにより、Salesforceからかなり便利にSlack投稿ができるように
なります。
これで、Slackへの投稿が便利になりますね。ますます皆さんSalesforceとSlackを連携したくなるはず!
最後にご参考までにテストで作成したサンプル数式を貼り付けておきます。フローのテキスト形式の
数式にこちらを貼り付ければ動作確認ができます。必要な箇所のみ切り出してご利用ください。
「個人へのメンション」の{!Hensu}の箇所は、フローで取得したSlack IDを設定してください。
'個人へのメンション' & br()
& '<@' & {!Hensu} & '>' & br()
& br()
& '@chanelへのメンション' & br()
& '<!channel>' & br()
& br()
& '@hereへのメンション' & br()
& '<!here>' & br()
& br ()
& 'コードブロック' & br()
& '```' & 'テストテストテスト1行目' & br()
& '2行目' & br()
& '3ぎょうめ' & br()
& '```' & br()
& br()
& '太字' & br()
& '*' & '太字になります' & '*' & br()
& br()
& 'イタリック' & br()
& '_' & '斜め文字になります' & '_' & br()
& br()
& '取り消し線' & br()
& '~' & '文字が取り消されます' & '~' & br()
& br()
& 'コード' & br()
& '`コードになります`' & br()
& br()
& '引用' & br()
& '>' & '引用されたみたいになります' & br()
& br()
& 'チャンネルリンク' & br()
& '#' & 'general'
それではまた〜