Slack フローで使う時は非同期パスを使う？



+ [【フロー】一つのフローで "条件の要件に一致するたび"にslack送信したい](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007YwfJaSAJ)

:::note
結果、非同期パス内にSlackアクションを実装すれば

「”条件の要件に一致するたび”にSlack送信するアクションを含むオペレーションを、一つのフローで実現」することが出来ましたので、他の方のために記しておくことにします。
:::

+ [商談オブジェクトの項目変更に応じたSlack通知フローを作成したいが、エントリ条件がうまく作動しない](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007ZAh0QSAT)


:::note alert
"SlackAction" Please remove this element from the flow or move it to the scheduled path. Record-triggered flows cannot perform actions that have external callouts on paths that are executed immediately.

「SlackAction」 この要素をフローから削除するか、スケジュールされたパスに移動してください。レコードによってトリガーされるフローは、パス上で即座に実行される外部コールアウトを持つアクションを実行できません。
:::

:::note
"Include a Run Asynchronously path to access an external system after the original transaction for the triggering record is successfully committed"

「トリガーレコードの元のトランザクションが正常にコミットされた後に外部システムにアクセスするための非同期実行パスを含めます」
:::

+ [Please delete element ④ or move it to the scheduled path](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007aiVN6)

:::note
英語ですが同じようなエラーの質問と回答があります。

非同期パスを使う必要があるみたいです。

トリガーレコードの元のトランザクションが正常にコミットされた後に外部システムにアクセスするための非同期実行パスを含めます

Include a Run Asynchronously path to access an external system after the original transaction for the triggering record is successfully committed

https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007ZAh0QSAT
:::


+ [スケジュールトリガーフローにてコレクション変数への値の割り当てについて](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007cmAtA)

:::note
レコード取得時の「保存するレコード」をコレクション変数に格納できておらず、現在のレコードが適切に割り当てられておりませんでした。

別のフローにて非同期パスについての、お送り頂きましたリンクを参照に作ることができました。
:::

+ [フローで商談レコードを作成して、作成された商談のIDを含めたメッセージをSlackに送信する方法](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000TkyJc)

:::note
苦肉の策としてトリガーレコードに商談への参照項目を持たせ、同期部分でトリガーレコードを更新してからSlack通知をさせました。
:::


# 非同期パスではPRIORVALUEが使えない

+ [変更前後の項目を自動でSlackへ通知したい](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007eruXk)

:::note
一旦以前の値を保持するカスタム項目を作成し、そこに値を保存することで実現することができました。  

https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000OtulsSAB

英語ですが同じ質問があります。

対応しないので、以前の値は別途別のフィールドとして持っておくようなことが回答されています。

As of the time of this answer, you cannot use PRIORVALUE or $Record__Prior in an Asynchronous Path and see the values before the path executes. This is being considered for Run Asynchronously, but not for Scheduled Paths.

If you need to check what the prior value was, you need to make separate arrangements for this, such as saving the previous value in a different field or record. This question has an answer that explains it: 
:::

+ [レコードの内容が変更されたらslackに通知する設定で、通知内容に変更前後の内容を含める設定方法をご教示いただきたく、よろしくお願いします。 ](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX000000UZkl)

:::note
頂いたアドバイスを元に以下のように変更しました

+ 過去値を格納するカスタム項目を作成 
+ 即時実行パスの中で割り当て要素を使って、作成したカスタム項目に過去値を代入 
+ スケジュール済みパスの中でカスタム項目を元に通知要否判定 
+ slack通知のメッセージの中身もカスタム項目の値を参照 

これでトライ中です。まだ期待通り動いてませんがこれで試行錯誤してみます
:::


# スケジュール済みパスでは「変更済み」の時にトリガされない

+ [特定のオブジェクトに対し、新規作成/編集時にSlack通知を発信したい](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000KC464)


+ [非同期パスを使用した外部システムへのレコードトリガフローの接続](https://help.salesforce.com/s/articleView?id=release-notes.rn_automate_flow_builder_asynchronous_path.htm&release=234&type=5)

+ [スケジュール済みパスに潜む罠](https://sf.forum.circlace.com/articles/994589973134311424)

+ [スケジュールされたパスと非同期パス](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000BtRvTSAV)

:::note
要約すると、非同期実行パスの方がパフォーマンスは高いですが、パフォーマンスにそれほど敏感でない場合は、提案されたスケジュールされたパスのアプローチの方が労力を節約できるかもしれません。詳細については、https: //unofficialsf.com/pauple_helpie/triggering-flows/をご覧ください。

今日、困惑する出来事がありました。コレクションのサイズと要素の数に基づいて反復が 2000 を超えたため、実行が失敗しました (意図的に限界を超えていました)。すぐにフロー失敗のメールを受け取りました。不可解なのは、15 分後に同じレコード失敗メールを再度受け取り、30 分後に再度メールを受け取り、1 時間後に再度メールを受け取り、2 時間後に再度メールを受け取り、フローを実行したユーザーとして私が再び失敗したというタイムスタンプが付いたメールが届いたことです。
:::