# Salesforce のリアルタイムトリガー
Workato は、次の3つの Salesforce トリガーについてリアルタイム機能を提供しています。
- New Object (新規オブジェクト)
- New/Updated Object (新規/更新されたオブジェクト)
- New Outbound Message (新規アウトバウンドメッセージ)
これらのリアルタイムトリガーは、Salesforce のワークフロールール (opens new window)を利用して動作しています。このワークフロールールを通じて、Salesforce はレコードに特定の変更がないかを監視し、そのような変更があったときは直ちにアウトバウンドメッセージで Workato に通知します。こうしたアウトバウンドメッセージは、Workato レシピによってトリガーイベントとして受信および処理されます。
# リアルタイムトリガーの権限
Salesforce でリアルタイムトリガーを使用するには、Salesforce 組織でワークフロールールが設定されている必要があります。こうしたワークフロールールの設定には、[Administrative Permissions] タブ以下にある Customize application
権限が必要ですが、接続しているユーザーがそのルールを設定するユーザーである必要はありません。
アプリケーション権限のカスタマイズ - プロファイルの設定
# 適切なトリガーの選択
3つのトリガーはどれも Salesforce から Workato に送信されるアウトバウンドメッセージによって起動されますが、次のような注意すべき違いがあります。
New Object および New/Updated Object | New Outbound Message | |
---|---|---|
バックアップポーリングの有無 | あり。レシピは、選択されたオブジェクトに対する変更をすべて取得します。 | なし。レシピは、アウトバウンドメッセージを受信したときのみトリガーされます。 |
Related Objects フィールド | あり | なし |
SOQL の WHERE 句 | あり | なし |
アウトバウンドメッセージの項目の設定 | 不要です。Workato は自動的にすべての項目、または入力項目 'Fields' で指定された項目を取得します。 | 必要です。Salesforce 内での設定時に、アウトバウンドメッセージで送信する項目すべてを指定する必要があります。詳細については以下を参照してください。 |
(レシピごとに) 固有のエンドポイント URL | 存在しません。エンドポイント URL は Salesforce コネクションと、選択したオブジェクトに対して一意です。 | 存在します。エンドポイント URL は Salesforce コネクションと、選択したオブジェクト、そしてユーザーが指定した名前に対して一意です。 |
# New Object および New/Updated Object (リアルタイム)
'New Object' と 'New/Updated Object' は、一般的なポーリングトリガー (opens new window)と同様の方法で使用できますが、リアルタイム性を必要とするさまざまなユースケース (POS や、在庫管理とフルフィルメントなどのユースケース) に役立ちます。Workato レシピが変更をポーリングするためにポーリング期間を待つのではなく、レシピをトリガーするためのアウトバウンドメッセージを設定し、それを使用します。
'New Object' は、選択されているオブジェクトのレコードが 作成された というアウトバウンドメッセージを受信すると、リアルタイムでトリガーされます。これについては以下の例でも解説していますが、レコードが Created Date not equal to null
という条件 (ワークフロールールで設定したもの) を満たしているときは必ず、アウトバウンドメッセージが送信されます。
同様に、'New/Updated Object' トリガーは、選択されているオブジェクトのレコードが 作成または更新された ときに起動されます。ワークフロールールには、同じ条件である Created Date not equal to null
が与えられます。ただし、こちらのトリガーには Workato がレコード上の LastModifiedDate
項目を確認するという違いがあります。
Workato レシピが受信しているアウトバウンドメッセージイベントすべてから何らかのレコードを絞り込む必要がある場合は、トリガーの SOQL WHERE 句フィールドまたはトリガー条件を利用することで、それを実現できます。
これら2種類のトリガーについて、Workato は6時間ごとのバックアップポーリングを利用して配信を保証しており、たとえ Salesforce がアウトバウンドメッセージの送信に失敗した場合でも、オブジェクトの新規/更新された変更すべてが取得されるようになっています。つまり、SOQL 条件やトリガー条件でフィルタリングされていない限り、レコードの変更はすべて Workato レシピによって取得されることになります。
# 設定
これらのトリガーを設定するには、以下の手順を実施する必要があります。
- Salesforce のリアルタイムトリガーを使って Workato レシピを作成し、トリガーから生成されたエンドポイント URL をコピーします。
- Salesforce のワークフロールールを作成して関心のあるイベントを監視し、そのイベントの発生時には生成済みのエンドポイント URL へとアウトバウンドメッセージを送信させるようにします。
- ワークフロールールを有効化します。
- 必要に応じて、レシピにトリガー条件を追加します。
- レシピを開始します。
以下のセクションでは、次のリアルタイムトリガーの設定手順を詳しく解説します。
# New Object (リアルタイム)
以下では、 New Object リアルタイムトリガーの設定について説明します。ここでは、Salesforce の新規の取引先責任者を対象としたリアルタイムトリガーを設定していきます。
Workato 内でこのトリガーを選択します。すると、ご使用の Salesforce アカウントに接続するよう促されます。
Salesforce に接続します。
Salesforce で監視したい特定のオブジェクトを選択します。この例では、[Contact] を選択します。
オブジェクトが選択されると、このトリガーは Salesforce のワークフロールールの設定に利用できるエンドポイント URL を生成します。新規作成された取引先責任者に関するリアルタイムイベントはこの Workato レシピに送信するようにと Salesforce に伝えるのが、このエンドポイント URL の役目です。Salesforce のワークフロールールの作成に利用できるよう、この URL をクリップボードにコピーしてください。
Workato が Salesforce のワークフロールールに利用できるエンドポイント URL を生成
このエンドポイント URL は、トリガーが接続している Salesforce 組織と、選択した Salesforce オブジェクトに固有のものです。Salesforce コネクターや、監視対象の Salesforce オブジェクトを変更する場合は、このエンドポイント URL を生成し直す必要があります。
- Salesforce 組織に移動し、 [Setup] を選択します。[Create] > [Workflow & Approvals] > [Workflow rules] と進み、 [New rule] を選択して、新しいワークフロールールを作成します。すると、Salesforce のワークフロールールの設定ウィザードに移動します。
Salesforce 組織で [Setup] > [Create] > [Workflow & Approvals] > [Workflow rules] に移動し、[New rule] を選択
- 設定ウィザードのステップ1では、レシピ内で選択したものと同じ Salesforce オブジェクトを選択してください。
Salesforce で監視する特定のオブジェクトを選択
- 設定ウィザードのステップ2では、 レコードが作成されるたびに 評価されるワークフロールールを設定します。ここではルールの条件を
Created Date not equal to null
に設定します。レコードの Created Date (作成日付) 項目が null になることはないため、これによりレコード作成時に必ずワークフロールールがトリガーされるようになります。
レコード作成時に評価される Salesforce のワークフロールールを設定
- 設定ウィザードのステップ3では、ワークフローアクション "New outbound message" を追加します。これにより、Salesforce はレコード作成時に Workato レシピのエンドポイント URL へアウトバウンドメッセージを送信することで、必ずその Workato レシピに通知を行うようになります。
ワークフローアクションとしてアウトバウンドメッセージを追加。新規作成された取引先責任者が評価条件を満たしていると、アウトバウンドメッセージが送信される。
- ステップ3でコピーしたエンドポイント URL を用いてアウトバウンドメッセージを設定し、保存します。
レシピによって生成されたエンドポイント URL を用いてアウトバウンドメッセージを設定
- ワークフロールールを保存し、有効化します。
ワークフロールールを有効化して、Salesforce 内で新規作成される取引先責任者の監視を開始
- Workato に戻り、レシピを開始します。レシピが機能しているかどうかをテストするため、Salesforce インスタンスに新規の取引先責任者を作成します。レシピがトリガーイベントを即座に取得するかどうかチェックし、ワークフロールールが機能していることを確かめます。
トリガーイベントが実際にすぐに取得されるなら、ワークフロールールと Workato トリガーが正しく設定されているということです。実行中のレシピは、Salesforce で新規作成されるレコードを監視し、それをトリガーイベントとして即座に処理するはずです。特定のレコードをフィルタリングするロジックをワークフローに追加する必要がある場合は、トリガー条件を追加してください。
# New/Updated Object (リアルタイム)
以下では、 New/Updated Object リアルタイムトリガーの設定について説明します。ここでは、Salesforce の新規/更新されたリードを対象としたリアルタイムトリガーを設定していきます。
Workato 内でこのトリガーを選択します。すると、ご使用の Salesforce アカウントに接続するよう促されます。
Salesforce に接続します。
Salesforce で監視したい特定のオブジェクトを選択します。この例では、[Lead] を選択します。
トリガーにより、Salesforce のワークフロールールの設定に利用できるエンドポイント URL が生成されます。新規作成または更新された取引先責任者に関するリアルタイムイベントはこの Workato レシピに送信するようにと Salesforce に伝えるのが、このエンドポイント URL の役目です。Salesforce のワークフロールールの作成に利用できるよう、この URL をクリップボードにコピーしてください。
このエンドポイント URL は、トリガーが接続している Salesforce 組織と、選択した Salesforce オブジェクトに固有のものです。Salesforce コネクターや、監視対象の Salesforce オブジェクトを変更する場合は、このエンドポイント URL を生成し直す必要があります。
Salesforce 組織に移動し、 [Setup] を選択します。[Create] > [Workflow & Approvals] > [Workflow rules] と進み、 [New rule] を選択して、新しいワークフロールールを作成します。すると、Salesforce のワークフロールールの設定ウィザードに移動します。
設定ウィザードのステップ1では、レシピ内で選択したものと同じ Salesforce オブジェクトを選択してください。
Salesforce で監視する特定のオブジェクトを選択
- 設定ウィザードのステップ2では、レコードが作成されるたび、 そして編集されるたびに 評価されるワークフロールールを設定します。
ここではルールの条件を Created Date not equal to null
に設定します。レコードの Created Date (作成日付) 項目が null になることはないため、これによりレコード作成時または更新時に必ずワークフロールールがトリガーされるようになります。
レコード作成時または更新時に評価される Salesforce のワークフロールールを設定
- 設定ウィザードのステップ3では、ワークフローアクション "New outbound message" を追加します。これにより、Salesforce はレコード作成時または更新時に Workato レシピのエンドポイント URL へアウトバウンドメッセージを送信することで、必ずその Workato レシピに通知を行うようになります。
ワークフローアクションとしてアウトバウンドメッセージを追加。新規作成または更新された取引先責任者が評価条件を満たしていると、アウトバウンドメッセージが送信される。
- ステップ3でコピーしたエンドポイント URL を用いてアウトバウンドメッセージを設定し、保存します。
レシピによって生成されたエンドポイント URL を用いてアウトバウンドメッセージを設定
- ワークフロールールを保存し、有効化します。
ワークフロールールを有効化して、Salesforce 内で新規作成されるリードの監視を開始
- Workato に戻り、レシピを開始します。レシピが機能しているかどうかをテストするため、リードを更新します。この例では、既存のリードを更新してください。レシピがトリガーイベントを即座に取得するかどうかチェックし、ワークフロールールが機能していることを確かめます。
トリガーイベントが実際にすぐに取得されるなら、ワークフロールールと Workato トリガーが正しく設定されているということです。実行中のレシピは、Salesforce で新規作成または更新されるレコードを監視し、それをトリガーイベントとして即座に処理するはずです。特定のレコードをフィルタリングするロジックをワークフローに追加する必要がある場合は、トリガー条件を追加してください。
# New Outbound Message (リアルタイム)
'New Outbound Message' トリガーは Webhook トリガーのように使用でき、Salesforce からのアウトバウンドメッセージを受信したときのみレシピがトリガーされます。
このトリガーの出力は、アウトバウンドメッセージで指定されているオブジェクトのすべての項目です。
トリガーを設定するには、'Outbound message name' フィールドに一意な名前を入力し、Salesforce オブジェクトを選択します。すると、Salesforce コネクション、選択したオブジェクト、および入力した名前に固有の URL がレシピによって生成されます。
この URL は、アウトバウンドメッセージを設定する際に 'Endpoint URL' フィールドで利用します。
Salesforce のアウトバウンドメッセージ
ワークフローの後続のステップで必要になる項目はすべて、アウトバウンドメッセージ内で指定する必要があります。上のスクリーンショットでは、Opportunity の項目のうち、必要なものとして AccountId
や Amount
などが選択されています。これにより、Workato が最終的にトリガーで受け取る出力が提供されます。
New Outbound Message の最終出力
# 常時実行
New Outbound Message トリガーはバックアップポーリングを通した配信を保証していないため、イベントを受信するつもりである場合は、レシピを常時実行させてください。
このトリガーは Webhook トリガーと同じように機能します。停止中のレシピはイベントを受け取ることができません。レシピが長時間 (24時間以上) 停止していると、イベントが見逃されることがあります。
# アウトバウンドメッセージについての情報
アウトバウンドメッセージの作成と設定は容易ですが、この Salesforce の機能には制限があります。アウトバウンドメッセージをエンドポイントに配信できない場合、この機能は送信を再試行しますが、その期間は24時間以内に限られており、再試行の間隔は最長2時間まで急速に広がっていきます (ドキュメント (opens new window)を参照)。
WARNING
監査証跡の構築にアウトバウンドメッセージを利用することはできません。各メッセージは少なくとも1回は配信されることになっていますが、複数回配信される場合もあります。
また、24時間以内に配信できないときは、まったく配信されない場合もあります。さらに、上述のように、ソースオブジェクトには通知の送信時から受信時までに変更があるかもしれませんが、エンドポイントが受信できるのは最新のデータのみであり、途中の変更は一切受信されません。
既存のアウトバウンドメッセージを確認するには、[Setup
] から クイック検索ボックス に 'Outbound Messages' と入力し、Salesforce のユーザーインターフェイスでそれを選択してください。
- 新しいアウトバウンドメッセージを定義するには、[New Outbound Message] をクリックします。
- アウトバウンドメッセージのステータスを追跡するには、[View Message Delivery Status] をクリックします。
- メッセージの詳細を確認したり、そのメッセージを使用するワークフロールールや承認プロセスを確認したりするには、既存のアウトバウンドメッセージを選択します。
Last updated: 2023/8/31 1:07:14