メインコンテンツへスキップ
Gainsight Japanese Localization

ルールエンジンのフォーミュラフィールド

Gainsight NXT

This article supports Gainsight NXT, the next evolution of the Customer Success platform. If you are using Gainsight CS Salesforce Edition, you can find supporting documentation by visiting the home page, and selecting CS > Salesforce Edition.

Not sure what your team is using? Click here.

 

重要 - 画像/情報は四半期ごとのリリースで更新されます!

四半期ごとのリリースにて、最新の機能・情報を反映し、画像を含めた情報は更新されます。

 

この記事では、ルールエンジンでサポートされているフォーミュラフィールドについて説明します。この記事を読むことで、データにさまざまなフォーミュラを適用できるようになります。

サポートされているフォーミュラ

この機能を使用すると、オブジェクト上に直接フォーミュラを作成することなく、さまざまな種類のフォーミュラを作成できます。フォーミュラフィールドを使用することで、以下のタスクを実行できます。

  • すべての算術演算子を使用して、フィールドに数値式を作成する。
  • 単一レコードの列に対してフォーミュラを生成する。

数値フォーミュラ

  • Admin Page Views + Config page views
  • Current Score - Previous Score
  • NPS® Avg * 10
  • ((Current Score - Previous Score) / Previous Score) * 100

文字列フォーミュラ

  • First Name + Last Name
  • CTA Comments + Custom Text
  • Convert to Upper Case (Company ID)
  • LEFT(field, substring) — 指定した文字が出現する位置までの文字列の左側部分を抽出します。
  • RIGHT(field, substring) — 指定した文字が出現する位置以降の文字列の右側部分を抽出します。
  • POSITION(field, substring) — 文字列内のサブ文字列の位置を返します。例:POSITION("doe" in "johndoe") は 5 を返します。位置のカウントはインデックス 1 から始まります。
  • LENGTH(field) — 文字列の長さを返します。例:LENGTH("string") は 6 を返します。
  • SUBSTRING(field, position, length) — 位置と長さに基づいてサブ文字列を返します。

日付フォーミュラ

  • (Last Modified Date - Created Date) in days
  • Convert to Date time (Created Date)

期間比較(Period Over Period Comparison)

  • 時間枠における指標の移動平均
  • 期間比較(%)(time window, Average out past N windows) 

制限事項

  • タスクに GroupBy フィールドが追加されている場合、式を追加することはできません。
  • フォーミュラフィールドの定数はトークンとして認識されません。
  • フォーミュラの対象期間は 2 年を超えることはできません。
  • 日付識別子が存在しない場合、Period Over Period Comparison または Period Over Period Comparison in % フォーミュラを作成することはできません。
  • Period Over Period Comparison および Period Over Period Comparison in % は、小数値ではなく整数のみを受け付けます。
  • Period Over Period Comparison および Period Over Period Comparison in % の関数では、負の値は使用できません。
  • ((A-B) * (A+B)) を (A-B) * (A+B) に簡略化することはできません。
  • Concat 関数で使用できる引数は最大 10 個です。
  • 追加できるフォーミュラは最大 10 個です。
  • Period Over Period Comparison フォーミュラと String Concat フォーミュラを同じルールで同時に使用することはできません。

ルールの作成

ルールを作成するには:

  1. Administration > Rules Engineに移動します。
  2. Create Ruleをクリックします。
  3. Create Rule 画面で、以下の情報を入力します。
  • Rule For: Company
  • Rule Name: ルールの名前を入力します。
  • Folder: ルールのフォルダーを選択します。
  • (Optional) Description: ルールの説明を入力します。

clipboard_e55c1a97c906f9adcabfa0a04d96a261e.png

  1. NEXT をクリックします。Setup Rule 画面が表示されます。

Snag_1d743f39.png

  1. DATASET TASK をクリックします。
  2. タスク名を入力します。
  3. ソースオブジェクトとして Company を選択します。

Select Company_4.gif

  1. 以下の画像に示すように、Show セクションと Filter セクションに入力します。
  2. SAVEをクリックします。
  3. <- をクリックして、Setup Rule 画面に移動します。

Setup rule screen_5.gif

ご使用の環境でフィールドが見つからない場合は、カスタムフィールドとして追加してください。カスタムフィールドの追加方法の詳細については、Gainsight データ管理 の記事をご参照ください。

メモ:すべてのカンパニーのデータは、ルールの実行日(本日)に更新されたものと見なされます。そのため、Modified Date フィールドは現在の日付と同じになります。

フォーミュラの適用

  1. + TASK をクリックし、Transformation を選択します。
    メモ:フォーミュラビルダーは、トランスフォーメーションタスクに対してのみ作成できます。

Application_6.png

  1. Task Nameを入力します。
  2. Source Objectを選択します(ここでは、Select fields for formula)。

Source Object_7.gif

文字列フォーミュラ

すべてのカンパニーについて、CEO と CSM の名(First Name)および姓(Last Name)フィールドが利用可能です。名と姓を別々に表示する代わりに、文字列関数を使用してこれらのフィールドを連結し、CEO および CSM という単一のフィールドに結合することができます。

  1. Formula Fields を展開します。
  2. String Formulas を展開します。

Using formula_8.gif

  1. 以下の画像に示すように、Concat 操作を実行して CEO フィールドを作成します。

Create CEO_9.gif

同様に、CSM First NameCSM Last Name フィールドに Concat 関数を適用して、CSM フィールドを作成することができます。

ルールエンジンでサポートされている文字列フォーミュラの完全なリストとその説明を以下に示します:

  • Concat: 選択した引数を連結します。最大 10 個の引数を追加でき、1 つの文字列を複数回使用することができます。
  • To Lower Case: 選択した引数の値を小文字に変換します。
  • To Upper Case: 選択した引数の値を大文字に変換します。
  • ​​​​​​LEFT(field, substring) — 指定した文字が出現する位置までの文字列の左側部分を抽出します。例:LEFT(johndoe@gainsight.com, @) は "johndoe" を返します。
  • RIGHT(field, substring) — 指定した文字が出現する位置以降の文字列の右側部分を抽出します。例:RIGHT(johndoe@gainsight.com, @)  は "gainsight.com" を返します。
  • POSITION(field, substring) — 文字列内のサブ文字列の位置を返します。例:POSITION("doe" in "johndoe") は 5 を返します。位置のカウントはインデックス 1 から始まります。
  • LENGTH(field) — 文字列の長さを返します。例:LENGTH("string") は 6 を返します。
  • SUBSTRING(field, position, length) — 位置と長さに基づいてサブ文字列を返します。例:Substring("johndoe", 2, 3) は "ohn" を返します。

日付フォーミュラ

Modified Date は現在の日付と同じであると見なされます。日付フォーミュラを使用して、更新日までの残り日数を計算することができます。

  1. Date Formulas を展開します。
  2. Date DiffShow セクションにドラッグします。
  3. Date Diff ウィンドウで以下のアクションを実行します。

Data Diff_10.gif

ルールエンジンでサポートされている日付フォーミュラの完全なリストとその説明を以下に示します:

  • Date: Date-time の引数を Date に変換します。
  • DateDiff: 選択した 2 つの日付の差を、選択した単位で返します。

以下の関数は、入力引数として Date および Datetime データ型のみを受け付けます:

  • First Day of Calendar Quarter: カレンダー四半期の最初の日を返します。
  • First Day of Current Month: 当月の最初の日を返します。
  • First Day of Current Week: 今週の最初の日を返します。
  • Last Day of Calendar Quarter: カレンダー四半期の最終日を返します。例:Last Day of Calendar Quarter (3/27/2019) は "3/31/2019" を返します。
  • Last Day of Current Month: 当月の最終日を返します。
  • Last Day of Current Week: 今週の最終日を返します。例:Last Day of Current Week (6/2/2022) は "5/29/2022" を返します。
  • Add/Subtract Date: 日付に対して加算および減算の操作を実行できます。この操作は、データセットで使用されている日付またはルール実行日のいずれかに対して実行できます。日付に任意の日数または週数を加算または減算することができます。

メモ:

日付と時刻の表現に関する国際規格 ISO 8601 では、日曜日は週の 7 番目の最終日とされています。

この関数を使用するには:

  • Date Formulas を展開します。
  • Add / Subtract DateShow セクションにドラッグ&ドロップします。
  • Output Field Label フィールドに名前を入力します。
  • データセットまたは Rule Date から日付フィールドを選択します。
  • + または - 演算子を選択します。
  • Value フィールドに数値を入力します。
  • Value フィールドで Days または Weeks を選択します。
  • SAVE をクリックします。

Date formula.gif

  • Rule Date: Rule Date 関数は引数を受け付けません。ルールが実行されている現在の日付のみを返します。上記の関数のいずれかで Rule Date を引数として使用することもできます。ただし、Date Diff 関数では、Rule Date end datetime フィールドの引数としてのみ使用でき、start datetime フィールドでは使用できません。

Rule date.gif

ライセンス更新までの残り日数を計算するための日付フォーミュラの使用例を以下に示します。トランスフォーメーションタスクでこれを実行するには:

  1. 左ペインの Formula Fields を展開します。
  2. Date Formulas を展開します。
  3. Date Diff を Show セクションにドラッグ&ドロップします。Date Diff フォーミュラフィールドウィンドウが表示されます。
  4. Date Diff フォーミュラフィールドウィンドウで、以下の情報を入力します:
  • Output Field Label: このフィールドには英数字とアンダースコアのみを入力してください。ラベルは必ずアルファベットで始める必要があります。
  • Output Header: このフィールドはアクションを処理するための CSV ヘッダーとして使用されます。表示専用であり、Output Field Label に入力した名前(スペースなし)に基づいて自動生成されます。
  • Decimal Places: 0 から 9 の数値を入力します。
  • Get Signed Value: このオプションは Date Diff 関数にのみ適用されます。このオプションを選択すると、Date Diff 関数の出力が負の整数になる場合があります。このオプションを選択しない場合、Date Diff 関数の出力が負になると、自動的に正の整数に変換されます。

    例:start datetime の値が 2018 年 1 月 5 日、end datetime の値が 2018 年 1 月 2 日の場合、Date Diff 関数は start datetime から end datetime を減算します。この場合、出力は -3 日となります。Get Signed Value オプションを選択しない場合、出力は 3 日として表示されます。Get Signed Value オプションを選択した場合、出力は -3 として返されます。
  1. 以下の画像に示すように、Date Diff 操作を実行します。

Date Formula Usecase.png

この例では、Days left till renewal という新しい列が作成されます。この列には、Rule Date(本日の日付と見なされます)から Renewal Date を減算した差の値(日数)が含まれます。出力に負の値が表示される場合は、そのお客様の更新日が過ぎていることを意味します。

  • Renewal Date: お客様のライセンスの更新が予定されている日付。

  • Rule Date: ルールが実行されている日付。通常は本日の日付を反映します。ただし、ルールを過去に遡って実行している場合、このフィールドには本日の日付は表示されません。
  1. SAVE をクリックします。RESET をクリックすると、入力したデータが消去され、新しい情報を入力できるようになります。 

  2. Setup Rule ページの Show セクションに、新しく作成された Formula Field が表示されます。

メモ

Date Formulas の Add/Subtract Date フォーミュラフィールドは動的フィールドを受け付けます。日付に加算または減算する日数は、選択したフィールドの値に応じて動的に変わります。

単位として選択できるのは Days のみです。Weeks オプションは使用できません。 

AddSubtract Date Field.png

数値フォーミュラ

ルールエンジンのフォーミュラフィールドで数値フォーミュラを使用できます。これにより、ルールの設定時にトランスフォーメーションタスクで強力な計算を実行できます。

Number formula.png

以下の数値フォーミュラを使用できます:

  • Abs: 数値の絶対値を返します。正の整数または負の整数を入力として指定できますが、出力は常に正の整数となります。Abs フォーミュラの使用方法の詳細については、ABS function の記事をご参照ください。

ABS formula.png

  • Ceiling: 数値以上の最小の整数に数値をマッピングします。Ceiling フォーミュラの使用方法の詳細については、Ceiling function の記事をご参照ください。

  • Exp: オイラー数 e(約 2.718)を累乗した値を返します。
    Example: EXP(1) = eの近似値 = 2.71828183
                    EXP(2) = 自然対数の底 e の2乗 = 7.3890561

  • Floor: 数値以下の最大の整数に数値をマッピングします。Floor フォーミュラの使用方法の詳細については、Floor Functionの記事をご参照ください。

  • Log: 指定された底に対する数値の対数を返します。Log フォーミュラの使用方法の詳細については、Log Function の記事をご参照ください。

  • Sqrt: 正の数の正の平方根を返します。

  • In: オイラー数 e を底とする数値の自然対数を返します。ln フォーミュラの使用方法の詳細については、LN function の記事をご参照ください。

メモ: Sqrt、Log、ln は、入力値として正の整数が必要です。ただし、負の値を入力した場合でも、ルールは正常に実行され、エラーメッセージは表示されません。

 負の値を入力した場合、これらのフォーミュラは以下の値を返します:

フォーミュラ
Sqrt  ゼロ
ln ゼロ
Log Null

Period Over Period Comparison 関数の使用

Period Over Period Comparison では、以下の関数を使用できます:

  • Period Over Period Comparison
  • Period Over Period Comparison in %

これらの関数は、日付識別子が存在しない限り作成できません。引数は関数内で使用されます。これらの関数を使用するには、Group By セクションに日付フィールドを含める必要があります。

以下の例では、CSM が過去 1 年間の MRR 値をパーセンテージで示す表を作成する場面で、Period Over Period Comparison を使用する方法を説明します。  

Group By セクションにフィールドが追加されている場合、文字列関数は機能しません。

  1. Modified Date フィールドを GroupBy セクションにドラッグします。
  2. Period Over Period Comparison In %Show セクションにドラッグします。

Period Over Period_11.png

  1. 以下の画像に示すように、値を入力します。

Values as shown_12.gif

Period Over Period Comparison 関数も同様のタスクを実行しますが、パーセンタイル値ではなく実際の値を使用して計算します。

Period Over Period Comparison 関数を使用するための構文は以下のとおりです:

  • Period Over Period Comparison ( Period([ DAY / WEEK / MONTH / YEAR ], <Duration>),
  • <Metric [ field of type numeric ]>,
  • <Date Identifier [ field of type date ]>,
  • <Aggregation Method [ SUM,AVG,COUNT, COUNT DISTINCT, MIN, MAX ]>,
  • <Num of Prior Periods>,< Treat Missing Data as Zero  [ true/false ]>);

統計関数

Gainsight は、ルールエンジンに統計関数を導入しました。これは、ルールエンジンにデータサイエンス機能を導入するための第一歩です。統計関数を使用することで、データセットからインサイトを導き出し、製品と顧客に関するより情報に基づいた意思決定を支援します。

  1. 相関(Correlation)— 相関関数は、2 つの変数の関係性を示します。この関数は、2 つの変数間の関係の強さを調べ、その結果に基づいて意思決定を支援します。
  2. 共分散(Covariance)— 共分散は相関の一種です。2 つの変数間に正の相関があるか負の相関があるかを示しますが、相関の強さは示しません。
  3. 標準偏差と分散(Standard Deviation and Variance)— 標準偏差と分散はどちらもボラティリティ(変動性)を測定します。値が高い場合はデータセットが広く分散しており、標準偏差が低い場合はデータセットの値が平均値に近いことを意味します。  
  4. 分散(Variance)— 分散は、一連の数値が平均値からどの程度離れているかを測定します。
  5. 中央値(Median)— 中央値は、データセットに外れ値がある場合、つまりデータセットの標準偏差が高い場合に、平均値よりも有用です。

詳細については、Application of Statistical Functions in Rules Engine の記事をご参照ください。

統計関数のベストプラクティス

  • Correlation 関数と Median 関数を同じタスク内で併用すると、データに null 値が含まれている場合、正確な結果が得られない場合があります。
  • null でないチェックのフィルターを追加する : データセットに null 値が含まれているかどうか不明な場合で、Correlation を他の統計関数と同じタスク内で使用したい場合は、null でないチェックのフィルターを追加することをお勧めします。これにより、null データレコードが除外され、正確な結果が得られます。
  • 他の集計との Correlation/Median の併用 : データに null 値が含まれている場合、Correlation または Median を他の集計(sum、min、max、avg など)や関数と組み合わせて使用しないことをお勧めします。
  • Null 値の処理 : 関連するすべての指標に「Treat null as Zero」を使用してください。フォーミュラフィールドを使用して各フィールドを選択し、Treat null as Zero オプションを有効にしてください。

ケース式 

ケース式フォーミュラフィールドを使用して、特定の条件セットに基づいてデータを分類することができます。このフォーミュラ関数を使用して出力フィールドを作成することができます。この出力フィールドには、指定した条件に一致するレコードの値が格納されます。 

ケース式の構成:

  • ケース式は最大 10 個のケースで構成されます。  
  • 各ケースは最大 5 個の条件(Criteria)で構成されます。条件とは、レコードが満たすべき特定の要件です。例えば、顧客を「批判者(Detractor)」として分類するための条件は、NPS® スコアが 0~6 の範囲とすることができます。

各ケースには、レコードが条件に一致した場合に実行される関連アクションがあります。値(例:Detractor)が出力フィールドに格納されます。この値はカスタム値にすることも、ソースデータセットの別のフィールドから取得することもできます。

ケース式の実行の詳細:

  1. ケース式の実行は、レコードに対して最初のケースの評価から始まります。このケースのすべての条件がレコードによって満たされた場合、このケースに関連するアクションが実行されます。このレコードに対するケース式の実行はここで終了し、他のケースは評価されません。
  2. 最初のケースが満たされない場合、システムは同じレコードに対して 2 番目のケースを評価し、以降も同様に続きます。使用可能なケースがすべて満たされない場合、デフォルトケースが実行されます。

このプロセスはすべてのレコードに適用されます。  

デフォルトケース : ケース式には常にデフォルトケースがあります。このデフォルトケースには条件はなく、アクション(デフォルトアクション)のみがあります。デフォルトケースは削除できません。レコードが指定されたケースのいずれにも一致しない場合、デフォルトケースに関連するアクションが実行されます。

ケース式フォーミュラフィールドに含まれるフィールドは以下のとおりです:

  • Output Field Label : 出力列の名前を入力します。この名前は、ケース式の結果の最終出力ページに表示されます。
  • Output Header : 表示専用フィールドです。名前は Output Field Label に入力した名前から生成されます。   
  • Output Data Type : 出力のデータ型を選択します。使用可能なデータ型は以下の 3 種類です:
    • Number
    • String
    • Boolean  
  • Decimal Places : Output Data TypeNumber を選択した場合、浮動小数点数の表示に使用する小数点以下の桁数を選択します。
  • Case: ケースは条件(Criteria)で構成されます。+ をクリックして条件を追加できます。
  • Criteria. フィールド:   
    • Field 条件を適用するフィールドを選択します。データセットに含まれるすべてのフィールドがここに表示されます。
    • Operator : フィールドに適用する演算子を選択します。演算子は選択したフィールドに基づいて表示されます。
    • Matching Criteria : 満たすべき一致条件を選択します。以下のいずれかを選択できます:
      • Value フィールドの値と一致させる値を入力します。
      • Field 最初のフィールドで選択したフィールドの値と一致させるフィールドを選択します。
  • Null records checkbox : Null のレコードを含める場合は、このチェックボックスを選択します。
  • Advanced Logic : 複数の条件がある場合、それらの条件間に適用する論理演算子を選択します。デフォルトでは AND ロジックが適用されます。
  • Then : すべての条件が満たされた場合、このフィールドで指定されたアクションが実行されます。使用可能なオプションは、Output Data Type フィールドで選択した値によって異なります。
  • Default : デフォルトケースを表します。このケースには条件はなく、アクションのみがあります。すべてのケースが失敗した場合に実行されます。

以下の例では、Customer on Verge of Churn という出力フィールドが作成されます。出力タイプは Boolean です。MRR の値が 1000 未満で、Trend Indicator フィールドが Down を示している顧客には、このフィールドに true の値が表示されます。それ以外の顧客には、デフォルトケースのアクションとして false が表示されます。

Case example.png

このテストシナリオのソース入力は以下のとおりです。

source.png

この例では、12 社の顧客が含まれており、MRR Trend Indicator の 2 つの評価フィールドが選択されています。しかし、実際の環境では多数の顧客と評価フィールドがあるため、解約リスクのある顧客を特定することが困難になります。Gainsight のケース式フォーミュラフィールドを使用することで、このタスクを簡単に実行できます。

動作の仕組み : ケース式は、12 社の顧客全員がケースに一致するかどうかを評価します。最初の顧客である Abb Corp Ltd. が評価され、このケースを満たすかどうかが確認されます。ABB Corp は 2 つの条件(MRR が 1000 未満でなく、Trend が Down でない)のいずれにも一致しないため、ケース 1 を満たしません。評価すべき他のケースがないため、Abb Corp Ltd. に対してデフォルトケースが実行され、この顧客の出力列に false の値が割り当てられます。このプロセスは 12 社すべての顧客に対して繰り返されます。

メモ トランスフォーメーションタスクの Show セクションに Customer Name フィールドを追加することで、顧客とその解約ステータスを簡単に対応付けることができます。以下の出力画像では、5 社の顧客が解約リスクにあることが確認できます。

Snag_595caac2.png

NPS, Net Promoter, and Net Promoter Score are registered trademarks of Satmetrix Systems, Inc., Bain & Company and Fred Reichheld.
  • この記事は役に立ちましたか?