トリガー

このページは機械翻訳により提供されています。翻訳内容と英語版に相違がある場合は、英語版が優先されます。

レシピを実行するイベントを定義するようにトリガーを設定できます。

概要

  • トリガーは順次配信に従い、処理済みジョブレコードを保持し、重複処理を防ぎ、ジョブの完了順序を保証します。
  • トリガーメカニズムには、ポーリング(定期的な確認)、リアルタイム(多くの場合webhook経由の即時通知)、スケジュール(特定の時刻/間隔で実行)、変更データキャプチャ(CDC)の4種類があります。
  • トリガーディスパッチには、単一(リアルタイムデータ同期)、バッチ(大量データでのスループット向上)、一括があります。

トリガーとは

トリガーは、レシピの実行を開始するイベントを定義します。 すべてのレシピにはトリガーが必要です。

たとえば、マイドライブ内のシートの新しい行トリガーは、Google Sheetでシートの末尾に追加された新しい行を監視します。 このイベントが発生するたびに、レシピはトリガーに続くアクションを実行します。

レシピ例レシピ例

トリガーはリアルタイムで動作したり、イベントを定期的にポーリングしたり、スケジュールに従って実行したりできます。 トリガーとアプリの機能に応じて、ジョブは個別、バッチ、または一括で処理できます。

レシピはトリガーイベントをどのように処理しますか

レシピはトリガーイベントを順番に取得してキューに入れ、ジョブとして処理します。 レシピは、調整可能なスループットでトリガーイベントキューを同期的に進む永続的なカーソルを維持します。 Workatoは、処理済みのすべてのトリガーイベントの記録を保持することで、ジョブが重複しないようにします。

キューに入れられたトリガーイベントトリガーイベントはキューに入れられ、レシピによってジョブとして処理されます

Workatoトリガーは次の動作で機能します:

  • 順次配信

  • トリガーイベントは時系列順に配信され、最も古いレコードが最初に処理されるか、Workatoに送信された順序で処理されます。

  • 永続的なカーソル位置

  • レシピは、停止状態と実行中状態をまたいで進行状況を記憶します。 レシピが停止した場合、再起動時に最後に処理されたイベントから再開されます。 たとえば、レシピが2017年10月21日午前11:30に停止された場合、再起動時にこの時点からトリガーイベントの処理を再開します。
    永続的なカーソル位置

  • 重複なし

  • Workatoは、検出済みのすべてのイベントの記録を保持することで、トリガーイベントが1回だけ処理されるようにします。

  • フロー制御

  • レシピはトリガーイベントを同期的に処理し、ジョブを一度に1つずつ処理します。 大規模なデータ転送を最適化するには、バッチ処理を使用するか、レシピ同時実行を増やします。

  • 配信保証

  • Workatoは、サーバーダウンタイムやネットワークの問題が発生している間でも、ポーリングトリガーがイベントを確実に取得することを保証します。 データ損失を回避するため、すべてのトリガーは順番に処理されます。

ほとんどのリアルタイムWorkato連携を支えるwebhookベースのトリガーでは、イベントがドロップされる可能性があります。 そのため、HTTP webhookトリガーを除くほとんどのWorkatoリアルタイムトリガーには、取り逃したイベントを復旧するためのバックアップポーリングメカニズムが含まれています。

トリガーはどのように分類されますか

トリガーは次の基準に基づいて分類できます:

  • トリガーメカニズム、つまりトリガーが新しいイベントを検出する方法。
  • トリガーディスパッチ、つまりトリガーがイベントをグループ化して配信する方法。

トリガーの種類トリガーメカニズムとディスパッチ

トリガーはイベントをどのように検出しますか

トリガーはさまざまなメカニズムを使用してイベントを検出します:

ポーリングトリガー

ポーリングトリガーは、指定した間隔でアプリにクエリを実行して新しいイベントを定期的に確認します。この間隔は最短で5分ごとに設定できます。 各ポーリングでは複数のイベントを取得でき、1回のポーリングから複数のジョブが作成される可能性があります。

レシピを開始すると、ポーリングトリガーは初回開始時、このレシピは次の日時以降のイベントを取得するフィールドで指定された日付からイベントを収集します。

たとえば、2017年1月1日午前10:00 PST以降に作成または更新されたNetSuite顧客を取得するレシピを考えます。 この初回取得後、レシピは指定した間隔で定期的にポーリングします。 たとえば、ポーリング間隔が5分に設定されている場合、レシピは各ポーリングサイクル中に、直近5分間の新規または更新されたNetSuite顧客を取得します。

レシピを停止すると、ポーリングトリガーは新しいイベントの取得を停止します。 レシピが再起動されると、ポーリングトリガーはレシピの停止中に発生したすべてのイベントを取得します。

長時間アクションのジョブシーケンス

レシピに長時間アクションステップとジョブが含まれている場合、アクションが保留状態になると、Workatoは自動的にジョブシーケンスを無視することに注意してください。 前のジョブが完了しておらず、レシピ同時実行が1に設定されている場合でも、次のジョブの処理が開始されます。

このレシピは、新規または更新されたSalesforceアカウントを5分ごとにポーリングするポーリングトリガーを使用します。

ポーリング間隔特定のポーリング間隔に関するトリガーヒント

5分ごとに、レシピは前回のポーリングサイクル中に作成されたSalesforceアカウントを取得します。 1回の間隔内に複数のアカウントが作成された場合、レシピはアカウントごとに1つ、複数のジョブを作成します。

2017年2月1日にレシピを停止し、2017年3月10日に再起動した場合、Workatoは2月1日の停止時刻以降に作成されたすべてのSalesforceアカウントを取得します。

リアルタイムトリガー

リアルタイムトリガーは、アプリ内の特定のイベントをリッスンし、イベントが発生するとWorkatoに即座に通知します。 これを有効にするには、アプリがAPIまたはインターフェイスを通じてイベント通知を送信するように登録されている必要があります。

Workatoのほとんどのリアルタイムトリガーはwebhookを使用します。webhookはイベントが発生した場合にのみ通知を送信するため、頻繁なポーリングが不要になり、非常に効率的です。

ただし、多くのリアルタイムトリガー(HTTPリアルタイムトリガーを除く)は、webhookとポーリングを組み合わせています。 数分ごとに新しいデータを確認する標準のポーリングトリガーとは異なり、リアルタイムトリガーは通常、1時間に1回など、より低い頻度でポーリングします。 このポーリングにより、レシピを初めて開始するときに、初回開始時、このレシピは次の日時以降のイベントを取得するフィールドで日付と時刻を指定して過去のイベントを取得することもできます。 このフィールドは任意ですが、以前のイベントをキャプチャするのに役立ちます。

スケジュールトリガー

スケジュールトリガーは、毎時、毎日、毎月など、指定された日付と時刻に実行されます。

SalesforceスケジュールトリガーのスケジュールSalesforceスケジュール検索トリガーのさまざまなスケジュールオプション

スケジュールされた各時刻または間隔で、トリガーは指定された条件に一致するすべてのイベントを取得します。 他のトリガーとは異なり、スケジュールトリガーは以前の実行ですでに取得されたイベントを返す場合があります。

スケジュールトリガーは、バッチトリガーと同様に、イベントをバッチで処理します。 最大バッチサイズを設定できます。 たとえば、バッチサイズを100に設定し、420件の新しいイベントが特定された場合、5つのジョブが作成されます。最初の4つのジョブはそれぞれ100件のイベントを処理し、5つ目のジョブは残りの20件のイベントを処理します。

スケジューラー by Workato

新しい定期イベントトリガーをスケジューラー by Workatoから使用すると、レシピを実行するタイミングを定義できます。 レシピを毎時または毎日実行するなどの単純なスケジュールを作成したり、2週間ごとに実行する、平日のみ実行するなど、より高度な設定を行ったりできます。

たとえば、レシピを15分ごとに実行するように、または毎週月曜日の9:00 AMなど特定の時刻に実行するようにスケジュールできます。 より複雑なスケジュールを定義するには、時間単位ドロップダウンメニューからカスタムスケジュールを選択し、cron式を入力します。 サポートされる最小間隔は5分です。

スケジューラー by Workatoでは、レシピの実行頻度を正確に制御できるため、他のアプリケーションのイベントに依存しないワークフローに最適です。

Change Data Capture

Change Data Capture(CDC)は、データベース内のデータに加えられた変更をキャプチャして追跡するために使用されるプロセスです。 このプロセスにより、データ変更のリアルタイムまたはほぼリアルタイムの監視と同期が可能になり、継続的なポーリングを使用せずに、アプリケーションをデータベースの最新の変更に合わせて最新状態に保つことができます。

CDCの主な目的は、データベーステーブルに対して行われた挿入、更新、削除などの変更を識別してキャプチャすることです。 これらの変更は、その後、ダウンストリームシステム、データウェアハウス、または分析プラットフォームに伝播され、すべてのシステムが最新のデータにアクセスできるようになります。

詳細については、変更データキャプチャを参照してください。

トリガーはイベントをどのようにグループ化して配信しますか

トリガーディスパッチは、トリガーがイベントをどのようにグループ化して配信するかを決定します:

単一トリガー

単一トリガーは各イベントを個別のジョブとして処理および配信するため、リアルタイムで継続的なデータ同期に最適です。 たとえば、単一トリガーはSalesforceのクローズ済み商談を監視できます。 商談がクローズされると、トリガーはそれを個別のジョブとして処理し、すぐにNetSuiteに販売注文として転送します。

ほとんどのWorkatoトリガーは単一トリガーです。

バッチトリガー

バッチトリガーは、トリガーイベントを1件ずつではなく一度に複数取得することで、大量のデータを効率的に処理します。 たとえば、バッチトリガーを使用して、MarketoからRedshiftなどのデータウェアハウスに大量のユーザーアクティビティデータを転送できます。

バッチトリガーは、新しいイベントを取得する方法においてポーリングトリガーと同様に機能します。 ただし、トリガー設定時にグループサイズまたはバッチサイズを設定できるため、大量データのワークフローをより効率的に処理できます。

バッチトリガーは、ユーザー指定サイズのバッチでトリガーイベントを処理しますバッチトリガーは、ユーザー指定サイズのバッチでトリガーイベントを処理します

バッチトリガーの詳細については、バッチ処理を参照してください。

一括トリガー

一括トリガーは大量のデータを効率的に移動します。 これらのトリガーはCSVストリーミングを使用し、データをCSVオブジェクトとしてソースから宛先に転送できるようにします。 各レコードに個別にアクセスすることはできませんが、多数のレコードを効率的に処理して送信できます。 一括トリガーは、JiraタスクやServiceNowのテーブル更新など、高スループットワークフローのエクスポートや日次同期のようなタスクに最適です。

一括トリガーはETL/ELTパラダイムに不可欠であり、Workatoでこれらのソースからデータを取り込む主要な方法として機能します。 単一ジョブとしてエクスポートできるレコード数に上限はないため、一括トリガーは大量データのユースケースに適しています。 このアプローチにより、大規模なデータセットの監視と追跡も簡素化されます。

一括トリガーは新規新規/更新済みレコードの両方をサポートし、スケジュールトリガーと同様にスケジュールに従って動作します。 関連付けられたオブジェクトのスキーマが含まれているため、レシピ内のランタイムでCSVオブジェクトを解析できます。

一括トリガーはテストモードで実行できません

一括トリガーでは、アクションが完了したかどうかを定期的に確認する専用ユーザーが必要です。 これはテストモードでは利用できません。

トリガーの動作はどのように設定できますか

ビデオガイド: トリガーを正しく設定する方法

Workatoには、トリガーの動作を設定するためのオプションがいくつか用意されています。 これらの設定により、トリガーが処理対象のイベントを検出する方法とタイミングが決まります。

初回開始時、このレシピは次の日時以降のイベントを取得する

この入力フィールドでは、レシピが過去のトリガーイベントを取得する開始日時を指定できます。これにより、レシピの開始前に発生したイベントをキャプチャできます。

次の例では、Salesforceの新規オブジェクトトリガーで、初回開始時、このレシピは次の日時以降のイベントを取得する日付が2020年7月14日午前12:00 PSTに設定され、アカウントオブジェクトが選択されています。

開始日付の設定初回開始時、このレシピは次の日時以降のイベントを取得するフィールドの設定。 トリガーは2020年7月14日の午前0時以降に作成された新しいアカウントを取得します。

このレシピを開始すると、2020年7月14日午前12:00 PSTより後に作成されたSalesforceアカウントのみが取得されます。

すべてのトリガーに初回開始時、このレシピは次の日時以降のイベントを取得する入力フィールドがあるわけではありません。 このフィールドがないトリガーでは、トリガーイベントの取得開始日時がデフォルトであらかじめ決められており、多くの場合、レシピの開始時刻からのオフセットとして設定されます。 一般的なデフォルト値は次のとおりです:

  • レシピを初めて開始した時点
  • レシピを初めて開始する1時間前
  • レシピを初めて開始する1日前。 このオフセットは通常、コネクターのトリガーヒントに記載されています。

Google CalendarのsinceパラメーターGoogle Calendarの1時間前というデフォルトオフセットを示すトリガーヒント

初回開始時、このレシピは次の日時以降のイベントを取得する値は1回だけ設定できます。 レシピの実行後またはテスト後は変更できません。

タイムゾーン

専用のタイムゾーン入力フィールドがないトリガーでは、レシピを作成したユーザーのタイムゾーンが使用されます。 別のユーザーがレシピを表示すると、時刻はそのユーザーのタイムゾーンに調整されますが、基になる値は作成者のタイムゾーンに基づいたままです。 これは次を意味します:

  • ユーザーA(タイムゾーン-0700 Pacific Time)がレシピを作成した場合、入力時刻はそのユーザーのタイムゾーンで保存されます。
  • ユーザーB(タイムゾーン+0530 Asia/Kolkata)がレシピを表示またはデプロイすると、時刻はそのユーザーのタイムゾーンで表示されますが、ユーザーAが設定した元の値は保持されます。
  • コネクターで明示的に設定されていない限り、ワークスペースのタイムゾーンは初回開始時、このレシピは次の日時以降のイベントを取得する入力フィールドに影響しません。

トリガー条件

トリガー条件の使用方法を3分で学ぶ

トリガー条件は、どのトリガーイベントを処理するかを定義する追加ルールです。 たとえば、CaliforniaのSalesforceアカウントのみを処理するようにレシピに指示するトリガー条件を設定できます。

Workatoは、トリガーイベントを取得した後にトリガー条件を評価します。 つまり、Workatoは直近5分間に作成されたすべての新しいSalesforceアカウントを取得し、その後California以外のアカウントを除外します。 その結果、新規Salesforceアカウントトリガーでは、後でCaliforniaの住所を反映するように更新されたアカウントは取得されません。 レシピで想定されるイベントが見つからないように見える場合、この動作が原因である可能性があります。

通常、トリガー条件はフィールド変更を監視しません。 代わりに、トリガーイベントが取得された時点で条件が満たされているかどうかを確認します。 たとえば、Salesforceの受注済み商談のみをERPシステムに同期するには、Closed Won状態を確認するトリガー条件を設定すると、この状態の商談に対するすべての更新がレシピによって取得されます。 これは、商談のステータスが初めてClosed Wonに変わったときにのみ同期する場合とは異なります。

バッチ/一括トリガーでのトリガー条件の利用状況

トリガー条件は各バッチの最初のレコードのみを評価し、すべてのレコードを評価するわけではないため、バッチトリガーには推奨されません。

これにより、予期しない動作が発生する可能性があります:

  • 最初のレコードが条件を満たす場合、Workatoはバッチ全体を処理します(他のレコードが条件を満たさない場合でも)。
  • 最初のレコードが条件を満たさない場合、Workatoはバッチ全体をスキップします(他のレコードが条件を満たす場合でも)。

バッチトリガーのトリガー条件例: このトリガー条件は各バッチの最初のレコードのみを評価します

代わりに使用するもの: アプリの組み込みフィルタリングオプションを使用します。 たとえば、Salesforceバッチトリガーでは、レコードがバッチ化される前にフィルタリングするためにSOQL WHERE句フィールドを使用します。 これにより、バッチ内のすべてのレコードが条件を満たすことが保証されます。

トリガー条件は一括トリガーにも推奨されません。

トリガー条件の設定

トリガー条件を設定するには、次の手順を実行します:

1

トリガー条件を設定トグルをクリックします。

トリガーフィルターの設定トリガー条件を設定トグルをクリックして、トリガー条件フィールドを設定します

2

レシピデータメニューを開き、トリガー条件のデータピルをトリガーデータフィールドにマッピングします。

3

条件ドロップダウンメニューを使用してトリガー条件を選択します。 選択できる条件の詳細については、条件を参照してください。

4

フィールドにトリガー条件の値を入力します。

たとえば、次のトリガー条件により、Warm評価値を持つSalesforceアカウントのみがトリガーによって取得されます。 値は大文字と小文字が区別され、正確である必要があります。

トリガーフィルターの定義トリガー条件の定義

5

別のトリガー条件を追加するには、+を選択してから、ANDまたはORを選択します。 選択した演算子により、追加のすべてのトリガー条件をどのように追加するかが定義されます。

トリガーフィルターの追加OR演算子を使用して別のトリガー条件を追加

6

追加のトリガー条件を定義します。 値は大文字と小文字が区別され、正確である必要があります。

次のトリガー条件により、Hot評価値を持つアカウントもトリガーによって取得されます。 3番目のトリガー条件以降、トリガー条件は以前に選択した演算子(ORまたはAND)で結合されることに注意してください。

追加のトリガー条件の定義追加のトリガー条件を定義します。 以降のトリガー条件では同じAND演算子を使用する必要があります

Last updated: