- 調査・研究
- Salesforce
Salesforceに新しいケースが登録されたらSlackに通知する
SalesforceとSlackを連携するアプリが公開されているので試してみました!
本稿ではSalesforceのケースレコード作成時にSlackへ通知する一例を紹介します。
なお、実装手順確認時のSalesforceのバージョンはSummer ’22になります。
今回実装した仕様
[前提]
1.パソコン修理サービスを行っているA社に修理依頼の電話問い合わせがくる。
2.電話対応を行ったA社のオペレータは対応後に問い合わせ内容をSalesforceのケースに登録する。
3.ケースに登録されるタイミングでケースの種別によってSlackのチャンネル別にケース作成のお知らせが投稿される。
4.外出中のA社の修理担当者はSlackに投稿された内容をSlackのモバイルアプリで確認する。
[事前準備]
・Slackのヘルプを参考にしてアプリのインストール/接続設定が完了していること。
・Salesforce の Slack アプリをインストールして設定する。
・Slack に Salesforce アプリをインストールする。
・Salesforce アカウントと Slack アカウントを接続する。
・モバイルにSlackのアプリがインストールされていること。
[仕様]
・ケースの種別は「ノートパソコン、デスクトップパソコン、モニター」の三種類とする。
・投稿文のフォーマット例は下記の通りとする。
【投稿文のフォーマット例】
ケースが作成されました。
[ケース名]:ノートパソコン問い合わせ
[ケース番号]:00001032
[状況]:New
[優先度]:Medium
実装手順
ケース種別に合わせたSlackチャンネルを作成
・問い合わせ-デスクトップパソコン
・問い合わせ-ノートパソコン
・問い合わせ-モニター
・問い合わせ-その他(フローの条件分岐のデフォルト結果)
ケースの種別選択リスト値を作成
・ノートパソコン
・デスクトップパソコン
・モニター
Slackへ投稿する定型文を作成
ケースオブジェクトにカスタム項目作成
データ形:数式
戻り値のデータ型:テキスト
項目の表示ラベル:Slackメッセージ(任意の名称)
項目名:SlackMessage(任意の名称)
・数式
BR() & “ケースが作成されました。”
& BR() & “[ケース名]:” & Subject
& BR() & “[ケース番号]:” & CaseNumber
& BR() & “[状況]:” & TEXT(Status)
& BR() & “[優先度]:” & TEXT(Priority)
Slackの投稿先チャンネル情報を紐付け
アプリケーションランチャーにある「Slack Setup」をクリック
「Slack Setup」の「Automation Configuration」の「Edit」をクリック
「+ New Message Destinations」をクリック
・ノートパソコンのSlackチャンネル情報作成
Message Destination Name:ノートパソコン(メッセージ名)
Slack Workspace:問い合わせ対応(Slackのワークスペース名)
Slack Channel or Person:問い合わせ-ノートパソコン(Slackのチャンネル名)
他のSlackチャンネル情報も同様に作成 ※チャンネル情報のIDは、後ほど使用します。
・デスクトップパソコンチャンネル作成
Message Destination Name:デスクトップパソコン(メッセージ名)
Slack Workspace:問い合わせ対応(Slackのワークスペース名)
Slack Channel or Person:問い合わせ-デスクトップパソコン(Slackのチャンネル名)
・モニターチャンネル作成
Message Destination Name:モニター(メッセージ名)
Slack Workspace:問い合わせ対応(Slackのワークスペース名)
Slack Channel or Person:問い合わせ-モニター(Slackのチャンネル名)
・その他チャンネル作成
Message Destination Name:その他(メッセージ名)
Slack Workspace:問い合わせ対応(Slackのワークスペース名)
Slack Channel or Person:問い合わせ-その他(Slackのチャンネル名)
Slackへの投稿フロー作成
ケースレコード作成時にSlack投稿のアクションを呼び出すためレコードトリガフローを選択します。
下記のようなフローを作成して有効化します。
※ここではエラー処理は考慮しないものとします。
レコードトリガフローの作成
オブジェクト:ケース
フローをトリガする条件:レコードが作成された
フローを最適化:アクションと関連レコード
決定(分岐)を作成
表示ラベル:分岐(任意の名称)
API参照名:branch(任意の名称)
結果(分岐条件)を作成
ノートパソコンの条件
表示ラベル:ノートパソコン(任意の名称)
結果のAPI参照名:result1(任意の名称)
結果を実行する条件の要件:すべての条件に一致(AND)
リソース:$Record > ケース種別
演算子:次の文字と一致する
値:ノートパソコン
デスクトップパソコンの条件
表示ラベル:デスクトップパソコン(任意の名称)
結果のAPI参照名:result2(任意の名称)
結果を実行する条件の要件:すべての条件に一致(AND)
リソース:$Record > ケース種別
演算子:次の文字と一致する
値:デスクトップパソコン
モニターの条件
表示ラベル:モニター(任意の名称)
結果のAPI参照名:result3(任意の名称)
結果を実行する条件の要件:すべての条件に一致(AND)
リソース:$Record > ケース種別
演算子:次の文字と一致する
値:モニター
デフォルト設定
表示ラベル:その他
新規アクション(メッセージ送信処理)の作成
ノートパソコンの送信処理作成
アクション:Slack:Post Message
表示ラベル:投稿1(任意の名称)
API参照名:Post1(任意の名称)
Message Destination ID:xxxxxxxxxxxxxxxxxx(ノートパソコンのチャンネル情報ID)
Record ID:{!$Record.Id}(ケースのレコードID)
Message:{!$Record.SlackMessage__c}(作成したケースの項目)
他のアクションも同様に作成
デスクトップパソコンの送信処理作成
アクション:Slack:Post Message
表示ラベル:投稿2(任意の名称)
API参照名:Post2(任意の名称)
Message Destination ID:xxxxxxxxxxxxxxxxxx(デスクトップパソコンのチャンネル情報ID)
Record ID:{!$Record.Id}(ケースのレコードID)
Message:{!$Record.SlackMessage__c}(作成したケースの項目)
モニターの送信処理作成
アクション:Slack:Post Message
表示ラベル:投稿3(任意の名称)
API参照名:Post2(任意の名称)
Message Destination ID:xxxxxxxxxxxxxxxxxx(モニターのチャンネル情報ID)
Record ID:{!$Record.Id}(ケースのレコードID)
Message:{!$Record.SlackMessage__c}(作成したケースの項目)
その他の送信処理作成
アクション:Slack:Post Message
表示ラベル:投稿4(任意の名称)
API参照名:Post4(任意の名称)
Message Destination ID:xxxxxxxxxxxxxxxxxx(その他のチャンネル情報のID)
Record ID:{!$Record.Id}(ケースのレコードID)
Message:{!$Record.SlackMessage__c}(作成したケースの項目)
動作確認
1.Salesforceからケースを作成してみます。
ケースが作成されるとフローが動作してSlackのチャンネルに作成した投稿文が投稿されます。
種別:ノートパソコン
状況:New
優先度:Medium
発生源:Phone
ケース名:ノートパソコン問い合わせ
2.モバイルからSlackのチャンネルに投稿されていることを確認します。
最後に
SlackとSalesforceを連携させてみましたがいかがでしたでしょうか。
Slackをコミュニケーションツールの主としている企業は便利になりそうです。
今後のさらなる機能拡張に期待したいです。