# IF 条件

IF 条件を使用すると、レシピフローにより多くのロジックを追加できます。IF 条件で優先度をチェックして、緊急のサポートチケットをエスカレートしたり、IF 条件を使用して有効なメールかどうかをチェックしてから、オンボーディングの招待状を送信したりできます。

Automation Institute

Workato の Automation Institute で、IF 条件に関する実践的なチュートリアルを体験してください。このコースを修了すると「Automation Pro」の認定を取得できます。詳細については、こちら (opens new window)を参照してください。

IF 条件は、Workato の複数の機能で使用されています。

トリガー条件 トリガーに対して IF 条件を設定して、レシピが処理すべきトリガーイベントのサブセットを定義できます。たとえば、種類が「顧客」の新しい Salesforce アカウントのみや、評価が「Hot」である Salesforce リードのみを処理することを指定できます。トリガーの IF レシピの例
この Salesforce トリガーには、ステータスが「Closed」の新規または更新済みのケースのみを処理するトリガー条件が設定されています。
条件付きのアクションステップ レシピ内に IF 条件を設定して、ワークフローの処理ロジックをより適切に定義できます。たとえば Zendesk 組織が見つかった場合は Zendesk 組織を更新し、見つからない場合は新しい Zendesk 組織を作成します。
条件付きステップレシピの例条件付きステップを使用して、Zendesk 組織を作成するか更新するかを決定するレシピ。サンプルレシピ (opens new window)
エラー監視ステップの自動再試行機能 IF 条件を設定して、自動再試行を実行する条件を指定できます。たとえば、スローされたエラーがタイムアウトであるか、一時的なネットワークの問題の場合に限り、 Monitor ブロックのステップを自動再試行することを指定できます。
自動再試行条件再試行条件フィールドの設定。この例では、エラーメッセージに401エラーコードが含まれていない場合に限り、Monitor ブロックのアクションが再度実行されます。サンプルレシピ (opens new window)

# 条件

各条件は、データ、条件、値の3つの部分から構成されます。通常、データ (左側) はアプリから取得した変数データ (ケースのステータスやリードの評価など) です。値 (右側) は、照合したい静的な値 ([Closed] や [Hot] など) です。データと値は大文字と小文字が区別されます。

この記事では、選択可能な14の条件について説明します。例として、トリガー条件を使用します。さらに、AND または OR 演算子を使用して複数の条件を結合することにより、複雑な条件を設定することができます。

各条件は、さまざまなデータ型に対応しています。条件を無効なデータ型で使用しようとすると、レシピが正常に開始されない場合があります。

動画チュートリアル : 条件内の無効なデータ型の処理方法

さらに、トリガーに対して無効な IF 条件を設定すると、次のような問題が発生する可能性があります。

  • 開始されたレシピがトリガーエラーをスローし、トリガーイベントを処理できなくなる。
  • レシピがすべてのトリガーイベントを除外する。

# contains

この条件では、データに指定した値が含まれているかどうかを確認します。大文字と小文字が区別されます。 大文字と小文字の区別にこだわらない場合は、比較する前に両方を小文字にするか、両方を大文字にしてください。条件には、任意の文字、数字、単語、記号を使用できます。

contains レシピの例 件名に単語「bug」を含む新しい Zendesk チケットのみを処理するようにレシピに指示するトリガー条件

# 有効な型

この条件は、配列および文字列データ型のみに対応しています。

#

トリガーデータ 条件/値 レシピによる処理の有無
"UI bug" contains "bug" あり
"UI BUG" contains "bug" なし
"Instructions unclear" contains "bug" なし
"" contains "bug" なし
nil contains "bug" なし
12345 contains 123 なし
[1, 2, 3] contains 1 あり
[1, 2, 3] contains [1, 3] なし
["abc", "pqr", "xyz"] contains "abc" あり
["abc", "pqr", "xyz"] contains ["abc", "pqr"] なし

# starts with

この条件では、トリガーデータの文字列が指定した値で始まるかどうかをチェックします。大文字と小文字が区別されます。大文字と小文字の区別にこだわらない場合は、比較する前に両方を小文字にするか、両方を大文字にしてください。

starts with レシピの例 文字列 “(408)” または “(669)” で始まる電話番号を持つ新しい Zendesk ユーザーのみを処理するようにレシピに指示するトリガー条件

starts with 条件は、完全な一致のみを検索します。null 値は処理されません。

# 有効な型

この条件は文字列データ型のみに対応しています。

#

トリガーデータ 条件/値 レシピによる処理の有無
"(408) 555-6928" starts with "(408)" あり
"408 555-6928" starts with "(408)" なし
"(650) 555-2395" starts with "(408)" なし
"" starts with "(408)" なし
nil starts with "(408)" なし
12345 starts with 123 トリガーエラーがスローされる
numeric_type_pill starts with 123 トリガーエラーがスローされる
numeric_type_pill starts with "123" あり #pill = 12345の場合

# 特殊な非文字列データ型のケース

starts with 条件で非文字列データ型同士を比較しようとすると、トリガーエラーがスローされます。たとえば、数値型を数値型と比較すると、エラーがスローされます。

starts with 条件で数値型同士を比較 starts with 条件で数値型同士を比較するとトリガーエラーがスローされる

ただし、トリガーデータの入力フィールドが非文字列のデータピルであり、値が文字列の場合、Workato はデータピルの値を文字列値に変換し、比較を行います。変換された値が条件に一致していると、true に評価されます。

starts with 条件で数値型同士を比較 値が文字列の場合、非文字列のデータピルは文字列に変換されて比較される


# ends with

この条件では、トリガーデータが指定した値で終わるかどうかをチェックします。大文字と小文字が区別されます。大文字と小文字の区別にこだわらない場合は、比較する前に両方を小文字にするか、両方を大文字にしてください。条件には、任意の文字、数字、単語、記号を使用できます。

ends with レシピの例 送信者のメールアドレスが文字列「@workato.com」で終わる場合に限り、新しいメールを処理するようにレシピに指示するトリガー条件

使用しているアプリケーションで、条件で指定したフィールドが空白のままになっている場合、イベントは処理されません。

# 有効な型

この条件は文字列データ型のみに対応しています。

#

トリガーデータ 条件/値 レシピによる処理の有無
"(408) 555-6928" ends with "6928" あり
"408 555-6928" ends with "(6928)" なし
"(650) 555-2395" ends with "6928" なし
"" ends with "6928" なし
nil ends with "6928" なし
12345 ends with 345 トリガーエラーがスローされる
numeric_type_pill ends with 345 トリガーエラーがスローされる
numeric_type_pill ends with "345" あり #pill = 12345の場合
numeric_type_pill ends with "345" なし #pill = 123の場合

# 特殊な非文字列データ型のケース

ends with 条件で非文字列データ型同士を比較しようとすると、トリガーエラーがスローされます。たとえば、数値型を数値型と比較すると、エラーがスローされます。

ends with 条件で数値型同士を比較 ends with 条件で数値型同士を比較するとトリガーエラーがスローされる

ただし、トリガーデータの入力フィールドが非文字列のデータピルであり、値が文字列の場合、Workato はデータピルの値を文字列値に変換し、比較を行います。変換された値が条件に一致していると、true に評価されます。

ends with 条件で数値型同士を比較 値が文字列の場合、非文字列のデータピルは文字列に変換されて比較される


# doesn't contain

この条件は、contains 条件の逆です。この条件では、トリガーデータに指定した値が 含まれない かどうかをチェックします。大文字と小文字が区別されます。大文字と小文字の区別にこだわらない場合は、比較する前に両方を小文字にするか、両方を大文字にしてください。

doesn't contain レシピの例 商品のタイトルに文字列「Shirt」が含まれていない場合に限り、新しい Shopify 商品を処理するようにレシピに指示するトリガー条件

使用しているアプリケーションで、指定したフィールドが空白のままになっている場合、 doesn’t contain 条件はそのフィールドを考慮せず、イベントは処理されません。これは以下の「 is true 」セクションで示すように、文字列関数で is true または is not true 条件を使用するか、doesn’t contain 条件と is present 条件をペアにして使用することで回避できます。

# 有効な型

この条件は、配列および文字列データ型のみに対応しています。

#

トリガーデータ 条件/値 レシピによる処理の有無
"UI bug" doesn't contain "bug" なし
"UI BUG" doesn't contain "bug" あり
"Instructions unclear" doesn't contain "bug" あり
"" doesn't contain "bug" あり
nil doesn't contain "bug" なし
12345 doesn't contain 123 なし
[1, 2, 3] doesn't contain 1 なし
[1, 2, 3] doesn't contain [1, 3] あり
["abc", "pqr", "xyz"] doesn't contain "abc" なし
["abc", "pqr", "xyz"] doesn't contain ["abc", "pqr"] あり

# doesn't start with

この条件は、starts with 条件の逆です。この条件では、トリガーデータ文字列が指定した値で 始まらない かどうかをチェックします。大文字と小文字が区別されます。大文字と小文字の区別にこだわらない場合は、比較する前に両方を小文字にするか、両方を大文字にしてください。

doesn't start with レシピの例 Opportunity フィールドが文字列「B」から始まらない場合に限り、新しいか更新された Quick Base 商談レコードを処理するようにレシピに指示するトリガー条件

使用しているアプリケーションで、指定したフィールドが空白のままになっている場合、 doesn’t start with 条件はそのフィールドを考慮せず、イベントは処理されません。 doesn’t contain トリガー条件と同様に、これは以下の「 is true 」セクションで示すように、文字列関数で is true 関数を使用するか、doesn’t start with 条件を is present 条件とペアにして使用することで回避できます。

# 有効な型

この条件は文字列データ型のみに対応しています。

#

トリガーデータ 条件/値 レシピによる処理の有無
"(408) 555-6928" doesn't start with "(408)" or "(669)" なし
"408 555-6928" doesn't start with "(408)" or "(669)" あり
"(650) 555-2395" doesn't start with "(408)" or "(669)" あり
"" doesn't start with "(408)" or "(669)" あり
nil doesn't start with "(408)" or "(669)" なし
12345 doesn't start with 123 トリガーエラーがスローされる
numeric_type_pill doesn't start with 123 トリガーエラーがスローされる
numeric_type_pill doesn't start with "123" なし #pill = 12345の場合
numeric_type_pill doesn't start with "123" あり #pill = 345の場合

# 特殊なケース

  1. 非文字列データ型

doesn't start with 条件で非文字列データ型同士を比較しようとすると、トリガーエラーがスローされます。たとえば、数値型を数値型と比較すると、エラーがスローされます。

doesn't start with 条件で数値型同士を比較 doesn't start with 条件で数値型同士を比較するとトリガーエラーがスローされる

ただし、トリガーデータの入力フィールドが非文字列のデータピルであり、値が文字列の場合、Workato はデータピルの値を文字列値に変換し、比較を行います。変換された値が条件に一致していると、true に評価されます。

doesn't start with 条件で数値型同士を比較 値が文字列の場合、非文字列のデータピルは文字列に変換されて比較される

  1. Nil/null

トリガーデータが nil (null とも呼ばれる) の場合、たとえば「nil が "345" で始まらない」など、トリガーデータが条件に一致するように見えても、トリガーイベントはレシピによって処理されません。


# doesn't end with

この条件は、ends with 条件の逆です。この条件では、トリガーデータ文字列が指定した値で 終わらない かどうかをチェックします。大文字と小文字が区別されます。大文字と小文字の区別にこだわらない場合は、比較する前に両方を小文字にするか、両方を大文字にしてください。条件には、任意の文字、数字、単語、記号を使用できます。

doesn't end with レシピの例 [Full Name] が文字列「Skywalker」で終わらない場合に限り、新しいか更新された Dynamics CRM 顧客を処理するようにレシピに指示するトリガー条件

使用しているアプリケーションで、指定したフィールドが空白のままになっている場合、 doesn’t end with 条件はそのフィールドを考慮せず、イベントは処理されません。 doesn’t contain トリガー条件と同様に、これは以下の「 is true 」セクションで示すように、文字列関数で is true 関数を使用するか、doesn’t end with 条件と is present 条件をペアにして使用することで回避できます。

# 有効な型

この条件は文字列データ型のみに対応しています。

#

トリガーデータ 条件/値 レシピによる処理の有無
"(408) 555-6928" doesn't ends with "6928" なし
"408 555-6928" doesn't ends with "(6928)" あり
"(650) 555-2395" doesn't ends with "6928" あり
"" doesn't ends with "6928" あり
nil doesn't ends with "6928" なし
12345 doesn't ends with 345 トリガーエラーがスローされる
numeric_type_pill doesn't ends with 345 トリガーエラーがスローされる
numeric_type_pill doesn't ends with "345" なし #pill = 12345の場合
numeric_type_pill doesn't ends with "345" あり #pill = 123の場合

# 特殊なケース

  1. 非文字列データ型

doesn't end with 条件で非文字列データ型同士を比較しようとすると、トリガーエラーがスローされます。たとえば、数値型を数値型と比較すると、エラーがスローされます。

doesn't end with 条件で数値型同士を比較 doesn't end with 条件で数値型同士を比較するとトリガーエラーがスローされる

ただし、トリガーデータの入力フィールドが非文字列のデータピルであり、値が文字列の場合、Workato はデータピルの値を文字列値に変換し、比較を行います。変換された値が条件に一致していると、true に評価されます。

doesn't end with 条件で数値型同士を比較 値が文字列の場合、非文字列のデータピルは文字列に変換されて比較される

  1. Nil/null

トリガーデータが nil (null とも呼ばれる) の場合、たとえば「nil が "345" で終わらない」など、トリガーデータが条件に一致するように見えても、トリガーイベントはレシピによって処理されません。


# equals

この条件では、トリガーデータが指定した値と等しいかどうかをチェックします。大文字と小文字が区別されます。大文字と小文字の区別にこだわらない場合は、比較する前に両方を小文字にするか、両方を大文字にしてください。条件には、任意の文字、数字、単語、記号を使用できます。

equals レシピの例 大文字と小文字が区別されるステータスが「Closed」の、新しいか更新された Salesforce ケースのみを処理するようにレシピに指示するトリガー条件

# 有効な型

この条件は、整数、浮動小数点数、日付、配列など、あらゆるデータ型に対応しています。

#

トリガーデータ 条件/値 レシピによる処理の有無
"Closed" equals "Closed" あり
"Closed" equals "closed" なし
"" equals "Closed" なし
"" equals null なし
'null' equals nil あり
nil equals "Closed" なし
12345 equals 12345 あり
12345 equals "12345" あり
6 - 1 equals 5 あり
"Closed".present? equals true あり
"Closed".present? equals "true" なし
"Closed".present? equals 1 なし

# 特殊な文字列変換のケース

非文字列データ型のトリガーデータを文字列データ型の値と比較しようとすると、Workato は、比較のためにトリガーデータを文字列に変換します。たとえば、「12345 equals "12345"」は true に評価されます。


# does not equal

この条件は、equal 条件の逆です。この条件では、トリガーデータが指定した値に 等しくない かどうかをチェックします。大文字と小文字が区別されます。大文字と小文字の区別にこだわらない場合は、比較する前に両方を小文字にするか、両方を大文字にしてください。条件には、任意の文字、数字、単語、記号を使用できます。

does not equal レシピの例 優先順位が大文字と小文字が区別される文字列「Low」と等しくない、新しい Zendesk チケットのみを処理するようにレシピに指示するトリガー条件

# 有効な型

この条件は、整数、浮動小数点数、日付、配列など、あらゆるデータ型に対応しています。

#

トリガーデータ 条件/値 レシピによる処理の有無
"Closed" does not equal "Closed" なし
"Closed" does not equal "closed" あり
"" does not equal "Closed" あり
"" does not equal null あり
'null' does not equal nil なし
nil does not equal "Closed" あり
12345 does not equal 12345 なし
12345 does not equal "12345" なし
6 - 1 does not equal 5 なし
"Closed".present? does not equal true なし
"Closed".present? does not equal "true" あり
"Closed".present? does not equal 1 あり

# greater than

この条件では、トリガーデータが指定した値より大きいかどうかをチェックします。

greater than レシピの例 SLA 有効期限の日付が日付「12/21/2018」より後の場合に限り、新しい Salesforce アカウントを処理するようにレシピに指示するトリガー条件

value が数値に設定され、 trigger data フィールドに null 値がある場合、コンピューターでは数値を null 値と比較できないため、レシピはトリガーエラーを発生させます。この問題を解決するには、 is present 条件と greater than 条件を一緒に追加します。

is present および greater than レシピの例 既存の [SLA expiration] フィールドがあり (is present)、12/21/2018以降に有効期限が切れるように (greater than) 設定されている場合に限り、新しい Salesforce 商談を処理するようにレシピに指示するトリガー条件

# 有効な型

この条件は、文字列、整数、数値のデータ型に対応しています。

#

トリガーデータ 条件/値 レシピによる処理の有無
"2017-06-31T12:00:00.252805--07:00" greater than "2017-12-31T12:00:00.252805--07:00" なし
"2017-06-30T12:00:00.252805--07:00" greater than "2017-01-31T12:00:00.252805--07:00" あり
"2017-06-31" greater than "2017-12-31" なし
"2017-06-31" greater than "2017-01-31" あり
5 greater than 10 なし
5 greater than 1 あり
1.5 greater than 10.5 なし
1.5 greater than 1.23 あり
"abc" greater than "abcde" なし #ASCII 値の比較
"abc" greater than "a" あり #ASCII 値の比較
nil greater than "2017-01-31T22:00:00.252805--07:00" トリガーエラーがスローされる
"2017-06-31" greater than nil トリガーエラーがスローされる
nil greater than 10 トリガーエラーがスローされる
1.5 greater than nil トリガーエラーがスローされる
"abc" greater than nil トリガーエラーがスローされる

# less than

この条件では、トリガーデータが指定した値より小さいかどうかをチェックします。

is less than レシピの例 バリアント価格が50未満になった場合に限り、新しい Shopify 商品バリアントを処理するようにレシピに指示するトリガー条件

value が数値に設定され、 trigger data フィールドに null 値がある場合、コンピューターでは数値を null 値と比較できないため、レシピはトリガーエラーを発生させます。この問題を解決するには、 is present 条件と less than 条件を一緒に追加します。

# 有効な型

この条件は、文字列、整数、数値のデータ型に対応しています。

#

トリガーデータ 条件/値 レシピによる処理の有無
"2017-06-31T12:00:00.252805-07:00" less than "2017-12-31T12:00:00.252805-07:00" あり
"2017-06-30T12:00:00.252805-07:00" less than "2017-01-31T12:00:00.252805-07:00" なし
"2017-06-31" less than "2017-12-31" あり
"2017-06-31" less than "2017-01-31" なし
5 less than 10 あり
5 less than 1 なし
1.5 less than 10.5 あり
1.5 less than 1.23 なし
"abc" less than "abcde" あり #ASCII 値の比較
"abc" less than "a" なし #ASCII 値の比較
nil less than "2017-01-31T22:00:00.252805-07:00" トリガーエラーがスローされる
"2017-06-31" less than nil トリガーエラーがスローされる
nil less than 10 トリガーエラーがスローされる
1.5 less than nil トリガーエラーがスローされる
"abc" less than nil トリガーエラーがスローされる

# is true

この条件では、トリガーデータが true かどうかをチェックします。

is true レシピの例 [variant's requires shipping] フィールドが true に設定されている場合に限り、新しい Shopify 商品バリアントを処理するようにレシピに指示するトリガー条件

トリガーデータの入力フィールドに指定された関数が true に評価されるかどうかをチェックするためにも使用できます。たとえば文字列関数から得られた文字列型のデータピルを、boolean に評価される条件に変換することができます。以下の例とともに、こちらを参照してください。

boolean レシピの例 関数 amount.blank? が true に評価される場合 ([amount] フィールドが空白の場合) に限り、新しい Quick Base 商談レコードを処理するようにレシピに指示するトリガー条件

# 有効な型

この条件は、boolean データ型のみに有効です。この条件を使用して boolean データピルと照合するか、true または false に評価される関数と照合できます。

#

トリガーデータ 条件/値 レシピによる処理の有無
pill.present? is true なし #pillnil または null 値があるか、pill が空の文字列 "" の場合
pill.present? is true あり #pill に値がある場合
"Advanced Solutions".include?("Solutions") is true あり
"Advanced Solutions".include?("solutions") is true なし

# is not true

この条件は、is true 条件の逆です。この条件では、トリガーデータが true ではない かどうかをチェックします。

is not true レシピの例 Salesforce ケースがクローズされていない場合に限り、新しい Salesforce ケースを処理するようにレシピに指示するトリガー条件

トリガーデータの入力フィールドに指定された関数が false に評価されるかどうかをチェックするためにも使用できます。たとえば文字列関数から得られた文字列型のデータピルを、boolean に評価される条件に変換することができます。以下の例とともに、こちらを参照してください。

#

トリガーデータ 条件/値 レシピによる処理の有無
pill.present? is not true なし #pillnil または null 値があるか、pill が空の文字列 "" の場合
pill.present? is not true なし # pill に値がある場合
"Advanced Solutions".include?("Solutions") is not true なし
"Advanced Solutions".include?("solutions") is not true あり

# is present

この条件はトリガーデータをチェックします。データが存在する場合、トリガーイベントはレシピによって処理されます。入力データが null または空の文字列の場合、トリガーイベントはレシピによって処理されません。

is present レシピの例 ファイルに名前がある場合に限り、新しい Box ファイルを処理するようにレシピに指示するトリガー条件

# 有効な型

この条件は、整数、浮動小数点数、日付、配列など、あらゆるデータ型に対応しています。

#

トリガーデータ 条件/値 レシピによる処理の有無
"Advanced Solutions" is present あり
12345 is present あり
"" is present なし
nil is present なし

# is not present

この条件はトリガーデータをチェックします。データが存在する場合、トリガーイベントはレシピによって 処理されません。 入力データが null または空の文字列の場合、トリガーイベントはレシピによって 処理されます。

is not present レシピの例 エージェントが割り当てられていない新しい Zendesk チケットのみを処理するようにレシピに指示するトリガー条件

# 有効な型

この条件は、整数、浮動小数点数、日付、配列など、あらゆるデータ型に対応しています。

#

トリガーデータ 条件/値 レシピによる処理の有無
"Advanced Solutions" is not present なし
12345 is not present なし
"" is not present あり
nil is not present あり


Last updated: 2023/8/31 1:07:14