# トリガー
トリガーは、レシピに記述されたアクションを実行するために、どのイベントをリッスンするかを決定します。
トリガーイベントは、特定のイベント (新規連絡先の作成や既存のチケットの更新) が発生したときや、ファイルに新しい行が追加されたときに、またはスケジュールに従って (特定の時間や間隔で)、アプリ (Salesforce や Jira など) で設定できます。
Workato は、利用可能な API に応じて、トリガーイベントをリアルタイムで受信したり、アプリをポーリングして定期的にイベントの発生を確認したりすることができます。
トリガーは、新しいイベントをいつチェックし (トリガーメカニズム)、どのようにグループ化するか (トリガーディスパッチ) によって、さまざまなタイプに分類できます。
トリガーメカニズムとトリガーディスパッチ
# トリガー動作
Workato のレシピは、レシピのジョブとして処理されるトリガーイベントを順番に取得してキューに入れます。レシピは、カーソルを維持し、キュー内のトリガーイベントを同期的に処理していきます。また、スループットも調整可能です。Workato では、処理済みのトリガーイベントのレコードを保持するため、ジョブの重複は発生しません。
トリガーイベントがキューに入れられ、ジョブとしてレシピで処理される
Workato のトリガーは以下のように動作します。
- 順次処理
トリガーは時系列で処理されます。たとえば、古いレコードから先に、または Workato のキューに入れられた順に処理されます。
- カーソル位置の維持
レシピは、停止中や実行中などステータスを問わず、処理したジョブを記憶します。レシピが開始されるたびに、停止位置を取得し、停止した後のすべてのトリガーイベントの処理を開始します。
2017年10月21日午前11時30分にレシピを停止し、数日後または数週間後に再開する場合、2017年10月21日午前11時30分に停止したときからのトリガーイベントが取得される
- 重複なし
各レシピは、処理済みのトリガーイベントのレコードを保持し、重複するイベントを処理しません。
- フロー制御
レシピはトリガーイベントを同期的に処理します。たとえば、最初のジョブが完了して初めて2番目のジョブを処理します。 大量のデータを移行する場合、バッチ処理や、複数の並列ジョブの実行により、データスループットを最大化できます。Workato のレシピの並列処理数の詳細については、こちらを参照してください。
- 処理の保証
Workato のポーリングトリガーでは、トリガーイベントの処理が保証されます。サーバーが一時的にダウンしたり、ネットワークが不安定であったりしても、Workato ではトリガーの取得と順次処理が保証されます。
Workato のリアルタイムトリガーのほとんどで利用される Webhook イベントは見逃されてしまいがちです。そのようなことを減らすために、Workato のほとんどのリアルタイムトリガー (明らかな例外は HTTP Webhook トリガー) には、バックアップポーリングメカニズムがあり、見逃された Webhook トリガーイベントが確実に取得されます。
# トリガーメカニズム
トリガーメカニズムにより、トリガーが作動するタイミングが決まります。このセクションでは、ポーリングトリガー、リアルタイムトリガー、特定の時間に実行するトリガーについて説明します。
# ポーリングトリガー
ポーリングトリガーは、新しいイベントが利用可能かどうかを定期的にアプリに問い合わせて、新しいイベントを確認します。ポーリングの頻度は Workato プランのタイプによって決まり、最短で5分にすることができます。ポーリングのたびに、処理の準備ができたイベントが複数生成されます。つまり、1回のポーリングにより、複数のジョブが作成される可能性があります。
レシピが最初に開始されると、ポーリングトリガーは [From] の日付以降のすべてのイベントを取得します。たとえば、2017年1月午前10時 (太平洋標準時刻) 以降に作成または更新されたすべての NetSuite カスタマーを取得します。その後、プランのタイプに応じて、ポーリングが一定間隔で行われます。ポーリング間隔が5分のレシピが継続的に実行されている場合、5分ごとに新しいトリガーイベントが取得されます。たとえば、5分以内に作成または更新されたすべての NetSuite カスタマーを取得します。
レシピを停止すると、ポーリングトリガーは、トリガーアプリからのイベントの取得を停止します。ただし、レシピが再開された場合、ポーリングトリガーは、レシピが停止されてからのイベントをすべて取得します。
# 例 : ポーリングトリガー
ビジネスプランの Workato アカウントの場合、ポーリングトリガーに表示されるとおり、ポーリング間隔は5分です。
特定のポーリング間隔に関するトリガーのヒント
レシピは、Salesforce で作成された新しいアカウントを5分ごとにポーリングし、新しいアカウントがあれば取得します。複数のアカウントが作成されている場合は、それぞれのアカウントで新しいジョブが発生します。
2017年2月1日午前0時 (太平洋標準時刻) にレシピが停止された場合、トリガーイベントの取得が中止されます。ただし、たとえば3月10日午前0時 (太平洋標準時刻) にレシピを再開すると、Workato は2月1日以降に作成されたすべての Salesforce アカウントを取得します。
# リアルタイムトリガー
リアルタイムトリガーは通常、非同期通知メカニズムに基づいて構築されます。特定のイベントに関心があることをアプリが認識できるようにするには、一般的にリアルタイムトリガーで、接続されたアプリに登録する必要があります (API 経由またはアプリのインターフェイスから手動で登録)。そのイベントが発生すると、アプリは Workato に通知を送信し、トリガーイベントを生成します。
Webhook はこのようなメカニズムの1つです。Workato でサポートされているリアルタイムトリガーのほとんどは、Webhook をベースに構築されています。Webhook の利点は、遅延がないことと、新しいイベントがあるかどうかを Workato が一定間隔で確認する必要がなく、イベントが発生したときだけアプリから通知を受け取るため、効率が上がることです。
Workato がサポートするリアルタイムトリガー (HTTP リアルタイムトリガーを除く) は、一般的には定期的なポーリングが可能な Webhook トリガーです。リアルタイムトリガーのポーリング間隔は、一般的に通常のポーリングトリガーよりも長くなります。ただし、5分に1回程度とはいわずとも、1時間に1回はポーリングすることができます。また、レシピの開始時に [From] の日付を選択できるのも、リアルタイムトリガーのポーリングメカニズムによるものです。
# 特定の時間に実行するトリガー
特定の時間に実行するトリガーは、毎時、毎日、毎月など、特定の日時に実行されます。
Salesforce の特定の時間に実行する検索トリガーの各種スケジュールオプション
このトリガーは、スケジュールされた時間や間隔で、指定された基準に一致するすべてのイベントを取得します。また、特定の時間に実行するトリガーは、他のトリガーとは異なり、すでに取得済みのイベントを返します。
特定の時間に実行するトリガーは、バッチトリガーと同様に、バッチ単位でイベントを返します。ユーザーは最大バッチサイズを指定できます。たとえば、バッチサイズを100に設定し、420の新しいイベントが特定された場合、5つの新しいジョブが作成されます。その場合、最初の4つのジョブのイベント数はそれぞれ100件、5番目のジョブでは20件となります。
# スケジューラ、クロック、タイマー
スケジューラトリガーで、レシピを実行する正確なタイミングをスケジュールできます。以下の2つのトリガーがあります。
スケジューラトリガー
- 新たにスケジュールされたイベント
このトリガーでは、レシピが最初にトリガーする時間と、その後に引き続きトリガーする際の時間間隔を指定できます。
レシピの開始時に初めてトリガーし、その後1時間ごとにトリガーする基本的なスケジューラトリガー
- 新たにスケジュールされたイベント (詳細)
このトリガーでは、レシピがトリガーする曜日と時間を指定できます。分のみを指定した場合、たとえば30とすると、レシピは1日に24回、毎時30分にトリガーします。時と分の両方の入力項目を指定すると、レシピは1日に1回トリガーします。
毎週日曜日午前0時0分にトリガーする詳細なスケジューラトリガー
# トリガーディスパッチ
トリガーディスパッチは、トリガーが単一のイベントとイベントのリストのどちらを返すかを決定します。このセクションでは、単一トリガーとバッチトリガーについて説明します。
# 単一トリガー
単一トリガーは、データをリアルタイムで継続的に同期する場合に役立ちます。たとえば、商談の成立後直ちに、その商談が Salesforce から NetSuite に受注として移動する場合などです。Workato のトリガーのほとんどは、単一トリガーです。
# バッチトリガー
バッチトリガーは、トリガーイベントが単一イベントではなくリストで取得されることから、一般的にスループットを高めるために使用されます。たとえば、大量のユーザーアクティビティデータを Marketo から Redshift などのデータウェアハウスに移動する場合です。
バッチトリガーは、ポーリングトリガーと同様の方法で新しいイベントを取得します。このグループサイズ、つまりバッチサイズは、トリガー設定の一部としてエンドユーザーが指定できます。
バッチトリガーはユーザーが指定したサイズのバッチでトリガーイベントを処理
バッチトリガーの詳細については、バッチ処理に関するこちらの記事を参照してください。
# [Since] と [From]
[Since] 設定や [From] 設定を使用すると、指定された日付や時間の過去のトリガーイベントをレシピで取得できます。新しいトリガーイベント (レシピが開始されてから作成されたイベント) を取得するのではなく、すでに発生したイベントを取得できます。
以下の例では、 新規の Salesforce オブジェクト トリガーの [From] の日付が2017年1月1日午前0時 (太平洋標準時刻) となっており、[Account] オブジェクトが選択されています。
トリガーの [Since] の日付の設定。トリガーは、2017年1月1日午前0時以降に作成された新規アカウントのみを取得する。
レシピを開始すると、以下のジョブレポートの作成日列からもわかるように、2017年1月1日午前0時 (太平洋標準時刻) 以降に作成された Salesforce アカウントのみが取得されます。
ジョブレポートは、2017年1月1日以降に作成された Salesforce アカウントのみが処理されたことを示している
トリガーが 新規または更新された Salesforce オブジェクト の場合、2017年1月1日午前0時 (太平洋標準時刻) 以降に作成または更新された Salesforce アカウントのみが取得されます。
ただし、すべてのトリガーに [Since]/[From] パラメータがあるわけではありません。このようなトリガーでは、トリガーイベントが取得される日時は、通常はレシピが開始された時間からのオフセットとして、デフォルトであらかじめ設定されています。共通の値を以下に示します。
- レシピが最初に開始されたとき
- レシピが最初に開始される1時間前
- レシピが最初に開始される1日前 このオフセットについては、通常、コネクターのトリガーのヒントに説明が示されます。
Google カレンダーのデフォルトのオフセット (1時間前) に関するトリガーのヒント
[Since] と [From] の値は一度だけ設定でき、レシピを初めて開始した後は、それ以降変更されないようにロックされます。
# トリガー条件
トリガー条件の使用方法を3分で理解する
トリガー条件とは、どのようなトリガーイベントを選択して処理するかを定義する追加のルールです。たとえば、カリフォルニア州の Salesforce アカウントのみを処理するように指定できます。
トリガー条件は、トリガーイベントが取得された後に Workato によって評価されます。つまり、Workato は5分以内に作成されたすべての新しい Salesforce アカウントを取得してから、カリフォルニア州以外のアカウントをフィルタリングして除外します。ということは、 新規 Salesforce アカウント トリガーでは、その後カリフォルニア州で更新されるアカウントは取得されないことにもなります。取得されると思っていたイベントがレシピにない場合は、この問題が原因である可能性があります。
注 : トリガー条件は一般に、項目の変更を監視するわけではなく、単にトリガー条件が満たされるかどうかだけを確認するものです。たとえば、Salesforce の成立した商談のみを ERP システムに同期したい場合、以下のトリガー条件を設定すると、商談のステータスが Closed Won
のときに行われたすべての更新がレシピによって取得されます。これは、レシピのステータスが初めて商談成立とマークされた場合のみレシピで商談が取得されるようにするのとは対照的なことです。
トリガー条件を追加するには、[Trigger IF] チェックボックスにチェックを入れます。トリガーデータツリーが表示され、トリガー条件を指定するために使用できる変数が表示されます。
[Trigger IF] チェックボックスにチェックを入れると、トリガー条件を設定するための項目が表示される
トリガー条件を定義します。使用可能な条件の詳細については、IF 条件の説明を参照してください。以下のように指定すると、評価の値が [Warm] の Salesforce アカウントのみがトリガーで取得されます。値は大文字と小文字を区別して正確に指定する必要があります。
トリガー条件の定義
トリガー条件を追加するには、+
を選択し、ピックリストで [OR] または [AND] を選択します。どちらの演算子を選択するかによって、すべての追加トリガー条件がどのように評価されるかが決まります。
OR 演算子を使用して別のトリガー条件を追加
追加のトリガー条件を定義します。値は大文字と小文字を区別して正確に指定する必要があります。以下のようにすると、評価の値が [Hot] のアカウントもトリガーで取得されます。3番目のトリガー条件以降、トリガー条件は以前に選択された演算子 (OR または AND) と組み合わせて評価されることに注意してください。
追加のトリガー条件の定義。後続のトリガー条件では、同じ AND 演算子を使用する必要がある。
Last updated: 2023/8/31 1:07:14