0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Slack-Salesforce連携入門④(カスタムメッセージ通知)

Posted at

はじめに

この記事では、SalesforceとSlack連携機能のうち、カスタムメッセージを使った通知機能の設定方法を紹介します。

カスタムメッセージは、フロー等の自動化処理からSlackへ通知する場合に利用するメッセージになります。

改めて、Slackへメッセージを通知するために必要な手順を、整理すると以下になります。

image.png

  1. Slackに認証して、どのワークスペースの、どのユーザーを使って、どのチャンネルに送信するかを決める
    (カスタムメッセージ送信先の設定)
  2. メッセージの内容を作る
  3. 1.で決めた認証と宛先に、2.で作ったメッセージを、SlackのAPIで送信する

最後の「APIを使う」という部分は、普段プログラミングに触れていない場合は、少し難しく感じるかもしれません。
しかしカスタムメッセージ通知では、用意されたAPEXクラスを使うことで、APIを意識せずにフロー等からメッセージの送信が実現出来ます。

落とし穴

具体的な設定方法を見て行く前に、上記手順に存在する大きな落とし穴から見ていきます。

上記の1の設定は、「Slack Setup」アプリの「Automation Configuration」を使って「カスタムメッセージ送信先」として定義します。(認証情報・ワークスペース・チャンネルの情報)
これは大抵の場合、システム管理者が行う操作 になります。

image.png

しかし実際にSlackへのメッセージ送信のきっかけはユーザー操作となるため、上記設定を行った方とは別の人物という場合がほとんどでしょう。

この「設定した人」と「操作した人」が異なることで、「操作がどのユーザーであっても、システム管理者のアカウントでSlackに通知が来てしまう」という落とし穴が存在します。

image.png

落とし穴対策

この落とし穴に対する回避策は、以下の3点になります。

  1. Slack通知用のSlackアカウントを用意する。「カスタムメッセージ送信先」を作成する場合は、そのユーザー認証を使う
  2. 「カスタムメッセージ送信先」の作成者が、Slackの通知者になる。という点を許容する。
    (この場合、「システム管理者」がメッセージ送信者であることを気にしない。)
  3. SlackのWeb API呼び出しに方式を変更する。

一見、1で良いように思えますが、ここにも注意点があります。
Salesforceで行ったSlackアカウントの認証情報は、そのSalesforceアカウントと紐づけて管理されています。
そのため、1つのSalesforceアカウントで、「カスタムメッセージ送信先」の作成時は通知用のSlackアカウント
自分が業務で通知を行う場合は、自分のSlackアカウントを使う。といった切り替えが出来ません。

image.png

※Slack Authというオブジェクトで、認証情報を一元管理しているため、別のSlack ユーザーで認証し直してしまうと他の箇所にも影響が出てしまう。
(宛先情報を作った際に認証したSlackユーザーが差し替わってしまう等)

認証のやり直しを行うと、「カスタムメッセージ送信先」で使っていたSlackアカウントが書き換わったり、通知が動作しなくなったり、予期しない動作が起きる場合があります。

SalesforceアカウントもSlack通知設定用に専用に用意すれば、この問題は回避出来ますが、このためにSalesforceのライセンス費用が発生するため勿体ないです。
システム管理でしか使わないライセンスがあれば1の回避策は有力ですが、そうでない場合は、その他の解決策もご検討下さい。

設定方法

前置きが長くなりましたが、設定方法を見ていきましょう。

設定は、以下の流れになります。

  1. Slackに認証して、どのワークスペースの、どのユーザーを使って、どのチャンネルに送信するかを決める
    (カスタムメッセージ送信先の設定)
  2. メッセージの内容を作る
  3. 1.で決めた認証と宛先に、2.で作ったメッセージを、SlackのAPIで送信する

カスタムメッセージ送信先の設定

カスタムメッセージ送信先は、Slack Setupアプリの、「Automation Configuration」から行います。
画面の一番下のメニューになります。

image.png

Automation Configuration 画面は、以下のようになっています。
「New Message Destination」リンクを押すと、新しいメッセージ送信先を追加することが出来ます。

image.png

メッセージの送信先(SlackのWorkspaceとChannnel または、特定の個人)を指定して、名前をつけて保存します。
設定項目は、これしかありません。

別のWorkspaceを指定する場合には、Slack Workspace欄で「Add Workspace」を選択してください。
Slackの認証画面が開き、別のWorkspaceへ接続出来るようになります。

(この時に、Salesforceユーザーと、Workspace, SlackユーザーIDの紐づけが保存されます)

image.png

保存が終わると、MESSAGE DESTINATION ID(メッセージ送信先ID) が振り出されていることが分かります。

image.png

メッセージの内容を作る

Slackへカスタムメッセージを送信する方法を、フローを使って説明致します。
レコードトリガーフローを作っていきます。

image.png

今回は、特に条件は指定せずに、商談が作成/更新された場合にトリガーを指定しています。

image.png

アクションの追加で、「Slack:Post Message」を選択します。

image.png

「Slack:Post Message」アクションには、送信するメッセージと、「メッセージ送信先ID」を指定します。

これにより「Slack Setup」画面で指定したWorkSpaceとChannelに、カスタムメッセージが通知されるようになります。
Messageは、フローで数式を使って文字列を作成することで、任意の情報をSlackに通知出来るようになります。

image.png

フローを保存・有効化し、商談を更新してみましょう。

↓以下のようなメッセージがSlackに通知されます。
任意のMessageが追加出来ていることが分かります。

また、通知者が「Salesforce App」ではなく、「カスタムメッセージ送信先」を設定した人物になっています。
(落とし穴の部分)

image.png

まとめ

今回は、Slackへカスタムメッセージ通知を行う方法を解説しました。

設定手順はとても簡単で

1.Slack Setupから「カスタムメッセージ送信先」の定義を作成
2.そのIDをフローの中で「Post:Slack Message」アクションに指定するだけ

でした。

しかしながらSlackで見た時に、カスタムメッセージの通知者が「カスタムメッセージ送信先」の作成者になってしまうという落とし穴についても、触れさせて頂きました。

運用時は、メッセージの通知方法なども確認して利用して頂ければと思います。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?