SalesforceのフローからSlackに通知を飛ばしたい

そう思ったことはありませんか？ない？ない人は引き返していただいて。
今日は、これまで何度か聞かれたことがあるものの、ちゃんとドキュメント化してこなかったこいつについて徹底的に解説していきたいと思います。
最初は動画にしようかと思ったんですけど、一発撮りで撮り切る自身がなかったので久しぶりのQiita投稿です

## SalesforceとSlackは仲良しです
買収されてるからね。
思った以上にノーコードで連携が取れるようになってきています。使わない手は無いですね。

## SalesforceとSlackで何が出来るの？
### フロー連携
Salesforceが搭載するノーコード機能であるフローを使って連携します

### Agentアクション
最近出てきました、Agentforceが利用するアクション設定です
2025年5月現在はこちらの通り5つのアクションが提供されています
![CleanShot 2025-05-28 at 15.09.47@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/1938ebe2-2699-4d4d-93fc-78321ac0ec73.png)

今日はフローの話です

## 前提条件
- SalesforceのSlack アプリケーション設定が設定済みになっていること
![CleanShot 2025-05-28 at 15.13.20@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/93cb7f5e-6cf1-4cb4-9e6c-580a3f87e792.png)
利用規約への同意、Salesforceが提供しているSlackアプリのインストールと、Salesforce連携が済んでいること
これができてないと使えませんので注意

## フローを作ってください
### レコードトリガーフローを作ってください
![CleanShot 2025-05-28 at 15.15.23@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/a9bec8a0-b0e3-4b00-9401-57a544ac8963.png)

### 商談がWinしたら通知を流してみる
まずは簡単なフローにしましょう
![CleanShot 2025-05-28 at 15.17.50@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/10e5c4bc-3b6b-4869-ba02-be79550aaa15.png)

- オブジェクトは商談を選択します
    - 適宜自分が使いたいオブジェクトを選んでください
- トリガーを設定します
    - 今回は商談獲得になったときなので、レコードが更新された場合のみヒットすれば良いのでこの設定にしています

#### Win条件を設定する
エントリ条件を設定という部分ですね
今回はフェーズが08になった時にトリガーが発動するようにこんな形の設定にしました

【超重要】Slack通知をするには非同期パスというものが必要です
画像下部にあるチェックボックスを確実にチェックしてください
そうすると、左側のパス領域に非同期に実行というパスが加わるはずです
![CleanShot 2025-05-28 at 15.20.13@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/6a1a352b-2b34-44f5-b251-0f12230c9b87.png)

ここまででトリガーの発動条件の設定は完了です。簡単！！


## Slack通知の非同期パスを作っていく
![CleanShot 2025-05-28 at 15.24.42@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/4ed1d1e3-ed38-431f-ba20-9c357764eb03.png)
非同期に実行の下あたりに＋ボタンがあるので、そいつをクリックしましょう
ここでノードを追加していきます

### 商談金額によってSlack通知メッセージを変更したい
分かります。そういうのあるよね。ということでまずは通知用メッセージを作っていきましょう
最初に分岐処理でも作りましょうか。

### いでよ決定ノード
![CleanShot 2025-05-28 at 15.28.01@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/69690340-765a-41d7-b79a-3be649fbac7c.png)
ちょっと下の方にあるオレンジ領域にあります。決定というやつをクリックしてください
決定ノードとは、諸条件によって分岐処理を行うためのノードです。

今回は以下の4パターンで分けましょう
- 10万円未満は無視する
- 100万円未満
- 1000万円未満
- 1000万円以上

![CleanShot 2025-05-28 at 15.29.56@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/3223d900-58f8-475e-a64b-39c04f24a138.png)

画像は一旦、10万円未満という選択肢を作っています
条件のリソースっていうところが重要で、フローをトリガーしたOpportunityレコードというのを選択することで、そのレコードの持っている項目の情報にアクセスできます。
今回は金額なのでAmount項目を取得しましょう。

![CleanShot 2025-05-28 at 15.34.25@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/ddd1e311-f131-4d72-8f9d-1fa38c9f70e8.png)
これができたら続きも作っていきましょう。
下の画像にある＋ボタンを押せば次の条件を設定することができます

![CleanShot 2025-05-28 at 15.35.05@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/5345f81e-8f3c-4189-bc17-2e119a728983.png)

ここまでできたら完成
![CleanShot 2025-05-28 at 15.37.42@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/2db43d4a-bff8-43c7-8b97-8028c53efbfb.png)

今回10万円未満は無視することにしたので、それも処理に入れておきましょう
![CleanShot 2025-05-28 at 18.37.33@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/468893c7-005d-4202-ab7c-4158556d1572.png)
終了ノードを入れておけばそこで処理が止まります。


これで条件分岐の設定はできました。

## 通知するメッセージを作る
メッセージを作るには、それを格納しておく変数(はこのようなもの)を作っておく必要があります
フローの初期画面では見えないのですが、左上のボタンを押すとツールボックスが現れますのでそれを開きましょう
新規リソースボタンを押してください
![CleanShot 2025-05-28 at 15.43.53@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/4c40597f-6516-4820-ace4-44fb2f342f95.png)


リソースの種類をテキストテンプレートにします
![CleanShot 2025-05-28 at 15.45.38@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/f8148e59-3c90-40f2-9363-0e62684e58d9.png)

変数の設定はこんな形です。
【超重要】プレーンテキストとして表示を選んでください
![CleanShot 2025-05-28 at 15.46.36@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/6cb808f2-11e5-44cd-8d3f-d52fe3c6cc13.png)
これを選ばないと、不要なHTMLタグがメッセージに混入しますので注意

### メッセージの内容を作ります
リソースを挿入という部分から必要な項目を割り当てていきます。商談名を入れたい場合はこんな感じ
![CleanShot 2025-05-28 at 15.48.37@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/79e6746a-3f1c-427c-b9dc-917d5fb7b81a.png)

サクッといれるとこんな感じになると思います
![CleanShot 2025-05-28 at 15.53.09@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/ffc34b97-83d7-4870-a3d9-34a3050a4c29.png)

### 文字をちょこっと装飾する
#### 太字にしたい
文字を * でくくってください
・商談名： リバネスナレッジ202505
みたいな場合に
・ **商談名** ： リバネスナレッジ202505
としたい場合は
![CleanShot 2025-05-28 at 15.56.00@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/98be2a32-2751-4e37-a4c8-c31006de88eb.png)

このような形で作ります。
左側の*の左には半角スペースを
右側の*の右にも半角スペースを入れる必要があることに注意してください

#### 商談名にリンクをはりたい
リンクの形式はこちらです
![CleanShot 2025-05-28 at 15.58.15@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/4e1e31b0-b2ad-4964-a7de-4f6aa6573816.png)

というわけで、この形式で商談名を囲ってみましょう
![CleanShot 2025-05-28 at 17.51.23@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/fad21ea1-5192-4e68-ab48-3736114a4b67.png)

商談の場合はこんな感じの形式です
https://mydomain.lightning.force.com/lightning/r/Opportunity/レコードID/view

これでSlack上でリンクが貼られるはずです


## 金額によって装飾を変えよう
装飾文字を格納する変数を作っていきましょう。
![CleanShot 2025-05-28 at 16.11.22@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/6fd155b3-161d-479f-9298-0d54bf2610d0.png)
今回は新規リソースから変数を選びます

![CleanShot 2025-05-28 at 16.12.21@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/88f117a0-db43-4690-b689-c6ba9d945298.png)
データ型をテキストにしてデフォルト値を
㊗️㊗️㊗️㊗️㊗️㊗️㊗️㊗️㊗️㊗️㊗️㊗️㊗️㊗️
にしておきましょう。
100万円未満の装飾はこれでいきましょうか。

作った装飾を、先程のテキストテンプレートに追加します
![CleanShot 2025-05-28 at 16.14.12@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/38b75027-0389-4696-a899-f1af95064534.png)
こちらをクリックして編集画面を呼び出してください

上下に入れたいのでリソース欄から、装飾文字を追加してください
![CleanShot 2025-05-28 at 16.15.08@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/a9a8fa78-a6de-4757-91e3-3a6207cac1d5.png)

## 分岐で装飾を変更する
分岐させた中のノードをクリックして、割当ノードを追加します
![CleanShot 2025-05-28 at 16.30.26@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/8f97e114-1c69-40b6-a535-db166852e54f.png)
これを使って先程の装飾用の変数を上書きしていくという仕組みです

![CleanShot 2025-05-28 at 16.32.22@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/6915e4a2-3b53-4e40-90a5-a9c86b57931d.png)
こんな感じですね

## 装飾メッセージにSlack絵文字を使うには？
例えば動きのある絵文字を使いたいことありますよね。そういうときはSlackに登録した絵文字を使いたいのですが、使えないのです。残念ながら。



## Slackに通知を飛ばすには
一番最後のノードにアクションを追加してください
![CleanShot 2025-05-28 at 16.43.47@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/55ca423d-13ea-423f-bd9b-753db992031c.png)
Slackメッセージを送信というアクションを選びます
![CleanShot 2025-05-28 at 16.44.34@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/4f8963ee-c196-4921-af60-a7218f65d2e5.png)
ここまで設定をしましょう
![CleanShot 2025-05-28 at 16.46.00@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/d0cbb3ee-bf82-470e-9898-f5506f402ff2.png)
会話IDというものが謎ですので、ここは↓で取得してください

### まずは通知するチャンネルIDを取得しましょう
こちらをコピーしてください
![CleanShot 2025-05-28 at 16.43.02@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/dd3f4149-cd96-4578-b176-d2b177324d37.png)

これを使って先程の会話IDを埋めます。

## 保存して有効化
![CleanShot 2025-05-28 at 16.47.44@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/c9ed1cb0-13e9-49dd-9cd7-0e747d0ea27f.png)
右上のボタンでやってください

## やってみよう
100万円未満の場合
![CleanShot 2025-05-28 at 16.53.14@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/4cc89535-d077-4d3a-b5fa-ac7f04ddd73a.png)
こんな感じで通知が飛んできます。

## オプション
通知を、商談を更新した本人の名前で飛ばしたい
その場合は、アクションの設定を変えてください
![CleanShot 2025-05-28 at 17.45.30@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/638e7399-fbb8-4894-80ad-9f7e691275fe.png)
そうするとこんなかんじで届くようになります
![CleanShot 2025-05-28 at 17.46.33@2x.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22294/7c1155f3-3c09-4ad1-af5f-4d961bf280bd.png)


## 通知が来ない！
通知を飛ばしたいチャンネルにアプリが入っているかどうかを確認してください