Slackのまとめ

[まとめページに戻る](https://qiita.com/Keiji_otsubo/items/60afc2a8d211b6f7d89f)
[まとめN～Z](https://qiita.com/Keiji_otsubo/items/92f92bb9f668ca9688be)

+ [残念ながら、Salesforce Professional を使用している場合は Slack を使用できません。Slackと Salesforce を一緒に使用するには、API アクセス アドオンが必要です。](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007cmCa7)

----------------------------
+ [Slackのエラー](https://qiita.com/Keiji_otsubo/items/8a15fb9786ac7eb64d67)
+ [Slack のトレイルヘッド](https://qiita.com/Keiji_otsubo/items/d4928cd538e74287166b)
+ [Slack フローで使う時は非同期パスを使う？](https://qiita.com/Keiji_otsubo/items/a43a58edc37460c047d8)

+ [フローのslack関連アクションでのSlack アプリケーションの違い](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000Pf5bo)

:::note
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/de631719-b904-2ce3-cc9d-19821d668b3b.png)

https://www.sunbit.co.jp/blog/2023/02/22025/
:::

+ [ケースが Salesforce から Slack チャネルに作成されたときに、そのケースから特定のフィールドを送信する方法は?](https://trailhead.salesforce.com/en/trailblazer-community/feed/0D54S00000JegFK)
+ [Apex SDK for Slack Overview](https://developer.salesforce.com/docs/platform/salesforce-slack-sdk/guide/overview.html)

+ [フローからSlack投稿を行う際にグループにメンションする方法](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000JdSNi)

諸々調べておりましたところ、グループへのメンションは下記となることが分かりました。

```
'<!' & 'subteam^' & グループIDを持っている項目__c & '>'
```

+ [Slackチャンネルにユーザを招待](https://qiita.com/Keiji_otsubo/items/0ebaa1a2a3c4c40f60e9#slack%E3%83%81%E3%83%A3%E3%83%B3%E3%83%8D%E3%83%AB%E3%81%AB%E3%83%A6%E3%83%BC%E3%82%B6%E3%82%92%E6%8B%9B%E5%BE%85)

+ [商談の「完了予定日」が過ぎている案件を所有しているユーザーにSlack通知でリマインドしたい](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007T5kEL)

+ [Salesforce Flows を使用してSlack-Cチャネルの作成を自動化する](https://sombir-sheoran.medium.com/automate-slack-channel-creation-using-salesforce-flows-405ea8e7147b)


# 廃止されたトレイルヘッド
+ [【質問ごと消しています。】Trailhead モジュールIntegrate Salesforce with Slackは数か月前に廃止されました。このバッジ リンクにより、Trailhead で 404 エラーが表示されます。](https://trailhead.salesforce.com/en/trailblazer-community/feed/0D54S00000JeMDT)
+ [integrate-salesforce-with-slack](https://trailhead.salesforce.com/en/trailblazer-community/feed/0D54S00000Jed6R)

# 制限？

Slack は HTML によるテキスト形式をサポートしておらず、リッチ テキスト メッセージをプレーン テキストとして表示します。

https://help.salesforce.com/s/articleView?id=sf.flow_ref_elements_actions_slack_send_message.htm&type=5

+ [画面フローでSlackチャンネルセレクターに初期値を設定したい](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007UtKn7)

:::note
サポートにも問い合わせたところ、現時点では初期値の設定は行えないそうです。
:::




+ [Any tips on getting the verify step to work for the Automate Slack Messages unit within the Integrate Salesforce with Slack module?](https://trailhead.salesforce.com/en/trailblazer-community/feed/0D54S00000K10D6SAJ)
+ [completed "automate slack messages" unit within SF integration project module however when i click "verify step to earn 100 pts" TH says "step not yet complete"- but ive followed all steps and refreshed all screens- any suggestions?](https://trailhead.salesforce.com/en/trailblazer-community/feed/0D54S00000Je5DZ)
+ [Slackに自動投稿するフローを作りたい](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007A1Kvy)







# Slackからフローを起動する関係

+ [Slackからフローを起動させたい](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000JfwR7SAJ)
+ [Slackから画面フローを開く際に選択リストがあるとエラーになってしまう](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000JfxB8SAJ)

+ [SLACK:INVALID_AUTH error while using Oauth connection for slack configuration in anypoint studio.](https://help.mulesoft.com/s/question/0D52T00005JD7c3SAD/slackinvalidauth-error-while-using-oauth-connection-for-slack-configuration-in-anypoint-studio)
+ [Experience Cloud ユーザーが Slack からレコードを開けられるようにしたい](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000QKLTy)

Experience Cloud メンバーから Salesforce を認証およびクエリするために、カスタム Slack アプリを構築する必要がある

+ [「Slack チャンネルにユーザーを招待（slackInviteUsersToChannel-slackInviteUsersToChannel）」アクションはありますが、該当チャンネルにユーザーが存在していないことを確認し、招待してよいか否かユーザーが判断した上で、処理を続行させたいです。](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007ervd0)

:::note
Slack では/who コマンドを使えば現在のチャネルのユーザを取得できるようです。

https://www.universalclass.com/articles/computers/how-to-use-slack-commands.htm

以下を読むとSlack にスラッシュコマンドをAPIを使って投げているようです。

もし、APIのコールアウトが可能であるのなら、フローのコールアウトで/whoを呼び出せるような気もしますが、返ってきた結果の形によっては処理するのが面倒かもしれませんね。

https://api.slack.com/interactivity/slash-commands

文書化されていないAPIメソッドがあるみたいな...
https://stackoverflow.com/questions/45350521/sending-command-via-slack-api

https://stackoverflow.com/questions/43762414/how-can-i-trigger-a-slash-command-in-slack-every-day-at-a-certain-time/43868371#43868371
:::

+ [Slackへ画面フロー起動のメッセージをメンション付けて送りたいです](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007UtJDl)

:::note
SlackのユーザIdを使ってメンションできるようです。


This is a test message for <@SLACK USER ID>

Can I @ mention a user in Slack from a SFDC flow?
https://forums.slackcommunity.com/s/question/0D53a00008OSTauCAH/can-i-mention-a-user-in-slack-from-a-sfdc-flowi-am-sending-a-message-to-a-slack-channel-on-opportunity-stage-changes-i-would-be-able-to-mention-the-opportunity-owner-in-the-message-does-anyone-know-how-to-do-this-or-is-this-not-possible?language=en_US
:::


# 使い方の考察

+ [Sales Cloud for Slackを利用したSlackとの連携について](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000PekI9)

**作成した商談名channelとレコードの紐付け**

これに関しては、以下のブログを読むとカスタム項目を作って
「Slack チャネルの作成」アクションの最後でchannel idを変数に格納していますね。
この変数を使ってレコードを更新しているようです。

https://automationchampion.com/2022/05/30/create-a-slack-channel-using-flow-3/
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/708849b0-e34b-d240-3eb7-4f3561d78f06.png)

**商談名Channelにユーザ招待**  については、このhelpを見ると

[Slack のフローコアアクション: ユーザを Slack チャンネルに招待](https://help.salesforce.com/s/articleView?id=sf.flow_ref_elements_actions_slack_invite_users_to_channel.htm&type=5)


以下の値が必要みたいです。

Slack チャンネル ID 　：　先ほど取得したchannel idを使えばいいと思います。
チャンネルの Slack ワークスペース ID　：　　Slack ワークスペース ID
Salesforce ユーザ ID コレクションリソース：

この部分はレコードの取得でユーザオブジェクトを対象のプロファイルで検索すればコレクション変数に格納できると思います。

**Channelに対してレコードを紐付ける**

コアアクションのヘルプを見ると

メッセージを送信の中に以下の項目が指定できるので、チャネルにSalesforceのレコードを追加できるかもしれませんね。

Slack 会話 ID | 必須。メッセージを送信するチャンネルまたはダイレクトメッセージの ID。Slack アプリケーションの [メッセージ] タブを使用してメッセージをユーザに送信する場合は、Slack ユーザ ID を指定します。値を入力するか、またはリソースを選択します。

Salesforce レコード ID | ビューに送信するレコード ID。ビューの定義はパイロット機能です。詳細は、『Apex SDK for Slack (パイロット) ガイド』の「Define a View (ビューの定義)」を参照してください。

[Slack のフローコアアクション: Slack メッセージを送信](https://help.salesforce.com/s/articleView?id=sf.flow_ref_elements_actions_slack_send_message.htm&type=5)


# SlackSetUpのEnableCustomObject でなくて画面フローを使う方法

+ [カスタムオブジェクトのレコードページでそのレコードが設定された状態でSlackを送信したい](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007PyZwT)

:::note
 EnableCustomObject を使ったことはないので、何とも言えませんがこの画面に値を自動設定しようと思うとSalesforce for Slackのパッケージを改造しないといけないように思います。

個人的にはせっかくレコードの詳細画面を開いているので、ボタンから画面フローを起動してメッセージや宛先を選択したら、レコードのIdはパラメータとして渡せるので希望のことが実現できるのではと思います。

英語で書かれていますが、画面フローを使った方法が解説されています。

I am wondering if it's possible to create a custom button on the account record level (a Custom Detail Page button) that will send a notification to a Slack channel as well as log a record in Salesforce.

https://www.reddit.com/r/salesforce/comments/ite31r/custom_buttonslack_help/

Slackアクションも気になるところですが... よく理解できてません。

[Slack-Salesforce連携入門②(初期セットアップ編)](https://qiita.com/vxc-slack/items/c1da49f342147fcc5185#slack-setup%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E5%BD%B9%E5%89%B2)
:::

# レポートの活用

+ [SalesforceのToDO漏れやフェーズの停滞をSlackに通知したい](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007H8G4O)

:::note
英語の記事ですが、レポートをスラックに送信する方法が解説されています。
これだと、対象の件数が多くてもレポートなので、制限等に悩まずに済むのではと思います。

Schedule Salesforce reports in Slack
https://slack.com/intl/ja-jp/slack-tips/schedule-salesforce-reports-in-slack
:::



# バグ？

+ [Flow from Slack to add thread reply](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000PeG8E)
+ [既存のSlackチャンネルに機会をリンクするにはどうすればいいですか？](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX000000n9Nk)

:::note
PS: 既存の Slack チャンネルに商談をリンクするオプションは、既知のバグのため現在利用できません。ワークスペースに 1,000 を超えるチャンネルがある場合、一部または大部分のチャンネルがリストに表示されないことがあります。 
:::


# Omni Channel

+ [Is it possible to connect Omni Channel with Slack?](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007XIIQV)


# 画面レイアウトの変更？

+ [Slack マークダウンを使う？](https://forums.slackcommunity.com/s/question/0D5Hq00009l8AGAKA2/salesforce-to-slack-flow-crudurl-unfurl-layout-not-functioning?language=en_US)

# Slack API

+ [【未解決】Is there a way to check to see if a slack user already exists in a slack channel in salesforce flow?](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007bL2kw)

# 未解決

+ [レコードトリガーを使ったslack通知について](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX000000UZkl)

+ [Slack メッセージ送信フローに改行を挿入する](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX000000UjOS)