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

GainsightカスタムオブジェクトAPIドキュメンテーション

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

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

 

この記事では、APIを使ってカスタムオブジェクトレコードを更新する方法について説明します。

はじめに

カスタムオブジェクトREST APIは、Gainsightのデータ管理で作られた少量のカスタムオブジェクトのレコードを作成、更新、読取り、及び削除するのに役立ちます。

前提条件

  • このドキュメントでAPIを使うには、必要なサブドメイン又はカスタムドメインが作成されていることを確認してください。例: customobjectapi.gainsightcloud.com 又は customobjectapi.yourcompany.com.ドメインの作成方法の詳細については、Gainsightドメインのセットアップ記事を参照してください。
  • エンドポイントURLにドメインを追加して、Gainsightに接続します。
  • 必要な低ボリュームカスタムオブジェクトがGainsight組織で作られていることを確認します。低ボリュームカスタムオブジェクトの作成方法の詳細については、Gainsight オブジェクト記事の低ボリュームカスタムオブジェクトのセクションを参照してください。
  • データ管理スキーマから取得したキーとしてフィールド名を渡します。

認証

API アクセスは、固有のアクセス キーを使用して制御されます。REST API要求を送信するGainsightテナントのアクセスキーを取得するにはGainsight 管理者に連絡してください。アクセスキーを生成または共有する方法の詳細については、「API アクセスキーを生成」記事を参照してください。

アクセスキーを受け取ったら、そのアクセスキーを各APIリクエストのリクエストヘッダーAccesskeyの一部としてGainsightに渡す必要があります。

注意:AccessKeyに有効期限はありません。

ヘッダー

キー

アクセスキー

アクセスキーを生成する方法の詳細については、この記事の認証セクションを参照してください。

コンテンツタイプ

JSON

スロットリング制限

API

レートリミット

同期 API コール

1 分あたり 100 回の API 呼び出し/1 日あたり 50,000 回の API 呼び出し

非同期 API コール

1 時間あたり 10 コール/1 日あたり 100 コール

注意:上記の API 制限はすべて*固定ウィンドウ速度制限です。

* 固定ウィンドウのレート制限により、特定時間におけるAPIリクエスト数を制限します。たとえば、サーバーには、1 分あたり 100 件のリクエストしか受け付けない固定ウィンドウアルゴリズムを実装するレート制限コンポーネントを含めることができます。時間枠は固定されており、特定の時間に始まります。たとえば、サーバーは午前 10:00 から午前 10:01 までの間に 100 件のリクエストのみを処理します。

APIを挿入する

[APIを挿入]は、Gainsightカスタムオブジェクトに1つ又は複数のレコードを挿入するために使われます。1回のAPIコールで最大50件のレコードを挿入できます。一括読み込み (50件を超える記録の挿入) を実行する場合は、Gainsight S3コネクター又はGainsightバルクAPIを使用することができます。バルクAPIのS3コネクタの詳細については、Gainsight S3コネクター及びGainsightバルクAPI 記事をそれぞれ参照してください。

このAPIはレコードを挿入する前に、オブジェクトの全てのフィールドを検証します。検証が成功すると、レコードがオブジェクトに挿入されます。いずれかのフィールドのいずれかのレコードで検証が失敗した場合、API 呼び出しは検証エラーで失敗します。

メソッド

ポスト

エンドポイント URL

https://customobjectapi.gainsightcloud.com/v1/data/objects/{objectName}

エンドポイント URL では:

  • customobjectapi.gainsightcloud.comは、Gainsightに接続するためのドメインです。あくまで参考です。
  • オブジェクト名はGainsightのカスタムオブジェクト名です。実際のエンドポイントURL は、...gainsightcloud.com/v1/data/objects/thisObject__gcの様になります。

上記で使われているオブジェクト名は参考用です。要件とユースケースに対応した名前でオブジェクトを作成することができます。データ管理ページから、エンドポイントURLを介して渡される正しいオブジェクト名を確認することができます。

リクエスト本文のサンプル

オブジェクトに挿入を希望するレコードをリクエスト本文で渡します。オブジェクト内のフィールドとそれに関連付けられた値は、以下に示す様にキーと値のペアとして渡されます。挿入する必要がある各レコードを配列項目として渡します。API呼び出しを通して、最大50レコードを挿入することができます。

サポートされている形式のいずれかで、APIに日付値と日時値を渡すことができます。サポートされている形式の詳細については、Gainsightデータ管理 記事を参照してください。

{
  "records": [
    {
      "CSMLastName": "Johnson",
      "CSMFirstName": "Paul",
      "Name": "Gainsight, Inc.",
      "Status": "Active",
      "LifecycleInWeeks": 23,
      "Employees": 12
    },
    {
      "CSMLastName": "Sharma",
      "CSMFirstName": "Rohan",
      "Name": "Verizon",
      "Stage": "New Customer",
      "LifecycleInWeeks": 13,
      "Employees": 22
    },
    {
      "CSMLastName": "Mendis",
      "CSMFirstName": "Jeevan",
      "Name": "ABC Inc.",
      "Status": "Active",
      "LifecycleInWeeks": 31,
      "Employees": 889
    },
    {
      "CSMLastName": "Srivastava",
      "CSMFirstName": "Avneesh",
      "LifecycleInWeeks": 9,
      "Employees": 290,
      "Name": "ACME Corp."
    },
    {
      "CSMLastName": "Singh",
      "CSMFirstName": "Sandeep",
      "LifecycleInWeeks": 19,
      "Employees": 89,
      "Name": "XYZ Inc."
    }
  ],
"lookups": {
        "CSM__gc": {
            "isLookup": true,
            "fields": {
                "CSM_firstName__gc": "FirstName",
                "CSM_lastName__gc": "LastName"
            },
            "objectName": "gsuser",
            "onNoMatch": "NULLABLE",
            "multiMatchOption": "FIRSTMATCH",
            "lookupField": "Gsid"
        }
    }
}

パラメーター

パラメータ(*必須)

データタイプ

説明

レコード

JSON配列

-

データとしてオブジェクトに挿入されるレコードのリストを含むJSON配列。各JSONキーは作成されたカスタムオブジェクトのフィールド名です。オブジェクトに必須フィールドが存在する場合には、他のフィールドと一緒にレコードフィールドに渡す必要があります。

ルックアップ

JSON

-

挿入アクティビティ中に他のオブジェクトからのデータを入力する必要がある場合のルックアップ詳細を含むJSON値。

インポートルックアップ

要求本文の一部としてインポートルックアップ構成を渡すことが可能です。ルックアップ構成をインポートすると、Gainsightの別のオブジェクトから参照することで、GSIDをフィールドに入力することができます。GSIDタイプのフィールドを渡して、別のオブジェクトからGSIDを入力するようにしてください。1つのJSONが、GSIDデータタイプのフィールドに入力するために挿入される全てのレコードへのルックアップに適用されます。

"lookups": {
        "CSM__gc": {
            "isLookup": true,
            "fields": {
                "CSM_firstName__gc": "FirstName",
                "CSM_lastName__gc": "LastName"
            },
            "objectName": "gsuser",
            "onNoMatch": "NULLABLE",
            "multiMatchOption": "FIRSTMATCH",
            "lookupField": "Gsid"
        }
    }

上記のルックアップコードのスニペットでは、キーは次のように定義されています。

  • CSMFirstNAME (リクエスト本文内):FirstName (照合するGSユーザーオブジェクトのフィールド名)
  • CSMLastName (リクエスト本文内):LastName (照合するGSユーザーオブジェクトのフィールド名)
    注意: ソースから複数のフィールドを渡して、複数のルックアップフィールドと一致させることができます(例:GSユーザーオブジェクト > フィールド) を選択して、適切な一致を見つけます。
  • lookupField: Gsid (ルックアップフィールド名)、例:GSユーザー > GSID
  • objectName : gsuser (ルックアップオブジェクト名), 例:GSユーザー。

キーmultiMatchOptionでサポートされているオプションは2つあります:

  • FIRSTMATCHこのオプションはルックアップJSONとGSユーザーオブジェクトの間で最初に一致したGSIDを設定します(デフォルト)
  • MARKASERRORこのオプションを使うと、複数のレコードがJSONとGSユーザーオブジェクトの間の条件に一致する場合に、システムがエラーで応答できます。

キー onNoMatch でサポートされているオプションは 3 つあります:

  • NULLABLE(デフォルト) このオプションを選択すると、ターゲットフィールドにNULL値が挿入されます
  • DEFAULTVALUEこのオプションを選択すると、デフォルト値をターゲットフィールドに挿入します。
    注意:[管理] > [データ管理] > [ターゲット オブジェクトの選択] > [ターゲット フィールドの編集] ページでフィールドにデフォルト値を割り当てることができます。
  • エラー:このオプションを使うと、JSONとGSユーザーオブジェクトの間の条件に一致するレコードがない場合、システムがエラーで応答できます。

例えば、以下のコードスニペットでは、CSMFirstName (リクエスト本文内) を FirstName (GSuser内) と照合し、CSMLastName (リクエスト本文内) を LastName (GSuser内) と照合することにより、GSUserオブジェクトからGSIDがCSMフィールドに取り込まれます。

1.jpg

応答成功のサンプル

APIリクエストが成功すると、レスポンスとしてHTTPステータスコード200が返されます。レスポンスのフォーマットは以下の通りです。成功応答には、正常に挿入された全てのレコードの一覧が含まれています。

  • 各レコードの応答には、レコード用に作成された一意のGSIDと、挿入されたレコード内のフィールドの実際の値が含まれます。
  • 以下の応答は各レコードのCSMフィールドに、GSユーザーオブジェクトからのGSIDが正常に入力されたことも示しています。この値はJSONリクエスト本文のインポートルックアップ構成によって設定されます。
  • 日付と日時の値はエポック形式で表示されます。
  • ステージやステータスなどのドロップダウンリストアイテムには、アイテムの一意のGSIDが入力されます。
{
  "result": true,
  "errorCode": null,
  "errorDesc": null,
  "requestId": "eaa1520f-0b27-4468-86b0-17b4e94f1786",
  "data": {
    "records": [
      {
        "Csm": "1P01OI3OHC9S79J7VN1DW2NKI9JJFXEVHIZK",
        "CreatedDate": 1521691459693,
        "Name": "Gainsight, Inc.",
        "Status": "1I0054U9FAKXZ0H26HO92M3F1G5SPWVQDNF3",
        "ModifiedDate": 1562691459623,
        "Gsid": "1P02MRXML1GRDV44YOYPEBMABN5JYVTAATP8",
        "LifecycleInWeeks": 23,
        "Employees": 12
      },
      {
        "Csm": "1P01OI3OHC9S79J7VN1DW2NKI9JJFXEVHIZK",
        "CreatedDate": 1521691459693,
        "Name": "Verizon",
        "Stage": "1I0054U9FAKXZ0H26HO92M3F1G5SPWVQDNF3",
        "ModifiedDate": 1241672475612,
        "Gsid": "1P02MRXML1GRDV44YO6NO2DQXRNTQYQXDLGF",
        "LifecycleInWeeks": 13,
        "Employees": 22
      },
      {
        "Csm": "1P01OI3OHC9S79J7VN1DW2NKI9JJFXEVHIZK",
        "CreatedDate": 1521691459693,
        "Name": "ABC Inc.",
        "Status": "8K2274U9FAKXZ0H26HO92M3F1G5SPWVQXYS8",
        "ModifiedDate": 1241672475612,
        "Gsid": "1P02MRXML1GRDV44YOL2PI8HX2NJRH5NQTEE",
        "LifecycleInWeeks": 31,
        "Employees": 889
      },
      {
        "Csm": "1P01OI3OHC9S79J7VN8GQLUQDH0Y52CYFMXW",
        "CreatedDate": 1521691459693,
        "Name": "ACME Corp.",
        "ModifiedDate": 1241672475612,
        "Gsid": "1P02MRXML1GRDV44YO2PVJIALGD1NMPG69CA",
        "LifecycleInWeeks": 9,
        "Employees": 290
      },
      {
        "Csm": "1P01OI3OHC9S79J7VN8GQLUQDH0Y52CYFMXW",
        "CreatedDate": 1521691459693,
        "Name": "XYZ Inc.",
        "ModifiedDate": 1241672475612,
        "Gsid": "1P02MRXML1GRDV44YO87PCQFV0QIRSDZZ3DN",
        "LifecycleInWeeks": 19,
        "Employees": 89
      }
    ]
  },
  "message": null
}

失敗応答のサンプル

APIリクエストがエラーになった場合、次の形式でエラーレスポンスが返されます。エラー応答には、Gainsightエラーコードとエラーの説明が含まれています。GainsightのエラーコードとHTTPステータスコードの応答は、様々な理由で発生する可能性があります。Gainsightエラーコード、エラーの説明、その理由、及びHTTPステータスコードの詳細については、会社及びカスタムオブジェクトAPIのエラーコード記事を参照してください。

API呼び出しを行うと、最初の検証に失敗したフィールドで構文解析が停止します。従って、最初に失敗したフィールドのエラー検証を含むエラー応答を受け取ります。応答のデータキーには、失敗の理由に関する追加の詳細が含まれています。全てのフィールドで検証が成功すると、レコードがオブジェクトに挿入されます。

以下は、フィールドDateTime__gcに値を挿入する際に、データ検証エラーが発生したためにAPI呼び出しが失敗した場合の応答の例です。

{
  "result": false,
  "errorCode": "GSOBJ_1005",
  "errorDesc": "Invalid dateTime format (DateTime__gc = XYZ Inc.).",
  "requestId": "39f58495-8f05-4344-8542-ca44ac9afeb8",
  "data": {
    "count": 0,
    "errors": [
      [
        {
          "success": false,
          "parsedValue": "XYZ Inc.",
          "errors": [
            {
              "errorMessage": "Invalid dateTime format",
              "errorCode": "GSOBJ_1005",
              "fieldName": "DateTime__gc",
              "invalidValue": "XYZ Inc."
            }
          ]
        }
      ]
    ],
    "records": null
  },
  "message": null
}

更新API

更新APIはカスタムオブジェクト内の1つ以上の既存のレコードを更新するために使われます。既存のレコードはエンドポイント URL で指定されたキーを使用して識別され、残りのフィールドの値は API 呼び出しで説明されているように更新されます。API呼び出し毎に最大50レコードを更新することができます。

メソッド

入力

エンドポイント URL

https://customobjectapi.gainsightcloud.com/v1/data/objects/{objectName}?keys={fieldName1,fieldName2} 

上記のエンドポイントURLでは、customobjectapi.gainsightcloud.comはGainsightへの接続に使用するドメインです。あくまで参考です。

オブジェクト名がこのオブジェクトで、キーがEmployeesとIndustryの場合、カスタムオブジェクトのレコードを更新するための有効なエンドポイントURLは次のようになります: ...gainsightcloud.com/v1/data/objects/thisObject__gc?keys=Employees,Industry.

上記で使われているオブジェクト名とキー (フィールド名) は参考用です。要件とユースケースに対応した名前でオブジェクトを作成することができます。

条件:

  • エンドポイントURLでは、文字列、GSID、数、及びメールのみのデータタイプのキーを指定することができます。
  • 特定のレコードを識別するために、エンドポイントURLに最大3つのキーを入力することができます。
  • キー間の演算子は常にANDです。つまり、全てのキーの条件に一致するレコードがUpdate APIを使って更新されます。

リクエスト本文のサンプル

オブジェクトで更新を希望するレコードをリクエスト本文で渡します。オブジェクト内のフィールドとそれに関連付けられた値は、以下に示す様にキーと値のペアとして渡されます。キーの値 (エンドポイントURLに記載) は、特定のレコードを識別するための参照として取得され、残りのフィールドはJSONで指定された通りに更新されます。更新するする必要がある各レコードを配列項目として渡します。API呼び出しを通して、最大50レコードを更新するすることができます。オブジェクト内の全てのデータ型のフィールドは、メソッドを通じて更新することができます。

エンドポイントURLでキーとして使われるフィールドの値は更新することができません。これらのフィールドを更新するためには、異なるフィールドをキーとして別の更新API呼び出しを渡すことが可能です。

サポートされている形式のいずれかで、APIに日付値と日時値を渡すことができます。  サポートされている形式の詳細については、Gainsightデータ管理記事を参照してください。

以下は更新API呼び出しのサンプルです。更新が必要な特定のレコードを識別するためのキーとしてNameEmployeesがあり、残りのフィールドの値は各レコードのJSONに従って更新されます。GSIDタイプフィールドの値を更新するやり方の詳細については、ルックアップのインポートセクションを参照してください。

{
  "records": [
    {
      "CSMLastName": "Lee",
      "CSMFirstName": "Shaun",
      "Name": "Gainsight, Inc.",
      "Status": "Active",
      "LifecycleInWeeks": 23,
      "Employees": 12
    },
    {
      "CSMLastName": "Nyumbu",
      "CSMFirstName": "John",
      "Name": "Verizon",
      "Stage": "Launched",
      "LifecycleInWeeks": 13,
      "Employees": 22
    },
    {
      "CSMLastName": "Farbrace",
      "CSMFirstName": "Paul",
      "Name": "ABC Inc.",
      "Status": "Active",
      "LifecycleInWeeks": 31,
      "Employees": 889
    },
    {
      "CSMLastName": "Wasikowska",
      "CSMFirstName": "Mitchelle",
      "LifecycleInWeeks": 9,
      "Employees": 290,
      "Name": "ACME Corp."
    },
    {
      "CSMLastName": "Sharma",
      "CSMFirstName": "Deepak",
      "LifecycleInWeeks": 19,
      "Employees": 290,
      "Name": "XYZ Inc."
    }
  ],
  "lookups": {
        "CSM__gc": {
            "isLookup": true,
            "fields": {
                "CSM_firstName__gc": "FirstName",
                "CSM_lastName__gc": "LastName"
            },
            "objectName": "gsuser",
            "onNoMatch": "NULLABLE",
            "multiMatchOption": "FIRSTMATCH",
            "lookupField": "Gsid"
        }
    }
}

パラメーター

パラメータ(*必須)

データタイプ

説明

レコード

JSON配列

-

データとしてオブジェクトに挿入されるレコードのリストを含むJSON配列。各JSONキーは作成されたカスタムオブジェクトのフィールド名です。

ルックアップ

JSON

-

更新するアクティビティ中に他のオブジェクトからのデータを入力する必要がある場合のルックアップ詳細を含むJSON値。

応答成功のサンプル

APIリクエストが成功すると、レスポンスとしてHTTPステータスコード200が返さます。成功した応答には、正常に更新された全てのレコードの一覧が含まれています。これには、一意のGSIDと更新されたレコード内のフィールドの実際の値が含まれます。

成功応答の例を以下に示します:

  • 各レコードの応答には、レコードの一意のGSIDと、更新されたレコードのフィールドの実際の値が含まれます。
  • 以下の応答はCSM及び親会社フィールドに、それぞれGSユーザーオブジェクト及び会社オブジェクトからのGSIDが取り込まれていることも示しています。これらの値はJSONリクエスト本文のインポートルックアップ構成によって設定されます。
  • 日付と日時の値はエポック形式で表示されます。
  • ステージやステータス値などのドロップダウンリストアイテムには、アイテムの一意のGSIDが入力バリューされます。
{
  "result": true,
  "errorCode": null,
  "errorDesc": null,
  "requestId": "eaa1520f-0b27-4468-86b0-17b4e94f1786",
  "data": {
    "count": 2,
    "errors": null,
    "records": [
      {
        "Status": "1P01OI3OHC9S79J7VN8GQLUQDH0Y52CYFMXW",
        "Gsid": "1P02MRXML1GRDV44YO2PVJIALGD1NMPG69CA",
        "Trend": null,
        "Employees": 12,
        "LifecycleInWeeks": 23,
        "OriginalContractDate": 1521743018667,
        "Users": null,
        "gsd36499": null,
        "Shri_Shri_Id__gc": null,
        "ModifiedDate": 1521743018667,
        "ScorecardId": null,
        "Name": "Gainsight, Inc.",
        "Industry": null,
        "RenewalDate": 1521743018667,
        "CurrentScore": null,
        "PreviousScore": null,
        "Parent_Company__gc": null,
        "CreatedDate": 1521691459694,
        "Stage": null,
        "CustomerLifetimeInMonths": 5,
        "Csm": "1P01OI3OHC9S79J7VN8GQLUQDH0Y52CYFMXW"
      },
      {
        "Status": "1P01OI3OHC9S79J7VN8GQLUQDH0Y52CYFMXW",
        "Gsid": "1P02MRXML1GRDV44YODC75YNFKEJ4M1CHDR8",
        "Trend": null,
        "Employees": 22,
        "LifecycleInWeeks": 13,
        "OriginalContractDate": 1521743018667,
        "Users": null,
        "gsd36499": null,
        "Shri_Shri_Id__gc": null,
        "ModifiedDate": 1521743018667,
        "ScorecardId": null,
        "Name": "Verizon",
        "Industry": null,
        "RenewalDate": 1521743018667,
        "CurrentScore": null,
        "PreviousScore": null,
        "Parent_Company__gc": null,
        "CreatedDate": 1521691459694,
        "Stage": "1P02MRXML1GRDV44YODC75YNFKEJ4M1CHDR8",
        "CustomerLifetimeInMonths": 2,
        "Csm": "1P01OI3OHC9S79J7VN8GQLUQDH0Y52CYFMXW"
      }
    ]
  },
  "message": null
}

失敗応答のサンプル

APIリクエストがエラーになった場合、次の形式でエラーレスポンスが返されます。エラー応答には、Gainsightエラーコードとエラーの説明が含まれています。GainsightのエラーコードとHTTPステータスコードの応答は、様々な理由で発生する可能性があります。Gainsightエラーコード、エラーの説明、その理由、及びHTTPステータスコードの詳細については、会社及びカスタムオブジェクトAPIのエラーコード記事を参照してください。

API呼び出しを行うと、最初の検証に失敗したフィールドで構文解析が停止します。従って最初に失敗したフィールドのエラー検証を含むエラー応答を受け取ります。応答データキーには、失敗の理由に関する追加の詳細が含まれています。全てのフィールドで検証が成功すると、次にレコードがオブジェクトに挿入されます。

次に示すのは、オリジナルの契約日フィールドの値の日時形式が無効なためにAPIが失敗した場合の応答の例です。

{
  "result": false,
  "errorCode": "GSOBJ_1006",
  "errorDesc": "Invalid dateTime format (OriginalContractDate = 7809).",
  "requestId": "7cba3c98-b04b-4e21-9e57-44807fa52b8a",
  "data": {
    "count": 0,
    "errors": [
      [
        {
          "success": false,
          "parsedValue": 7809,
          "errors": [
            {
              "errorMessage": "Invalid dateTime format",
              "errorCode": "GSOBJ_1006",
              "fieldName": "OriginalContractDate",
              "invalidValue": 7809
            }
          ]
        }
      ]
    ],
    "records": null
  },
  "message": null
}

読み取りAPI

読み取りAPIを使うと、Gainsightカスタムオブジェクトから特定の条件に一致する1つ以上のレコードを読み取ることができます。読み取りAPIは、1つのAPI呼び出しで、最大5000レコードを取得します。

注意:フェッチできるレコードが 5000 を超えると思われる場合は、オフセットを 5001 として別の API 呼び出しを渡し、残りのレコード (ここでも最大 5000 レコード) がフェッチされるようにします。オフセットの詳細については、この記事のAPI リクエスト本文の読み取りセクションを参照してください。

メソッド

ポスト

エンドポイント URL

https://customobjectapi.gainsightcloud.com/v1/data/objects/query/{objectName}

エンドポイント URL では:

  • customobjectapi.gainsightcloud.comは、Gainsightに接続するためのドメインです。あくまで参考です。
  • オブジェクト名はGainsightのカスタムオブジェクト名です。カスタム オブジェクトを含む実際のエンドポイントURL はgainsightcloud.com/v1/data/objects/thisObject__gcの様になります

注意:上記で使われているオブジェクト名は参考用です。要件とユースケースに対応した名前でオブジェクトを作成することができます。

リクエスト本文のサンプル

{
  "select": [
    "Company_Name__gc",
    "Company_ID__gr.csm__gr.name"
  ],
  "where": {
    "conditions": [
      {
        "name": "Company_Name__gc",
        "alias": "A",
        "value": [
          "Gainsight"
        ],
        "operator": "EQ"
      },
      {
        "name": "Company_ID__gr.csm__gr.name",
        "alias": "B",
        "value": [
          "John"
        ],
        "operator": "CONTAINS"
      }
    ],
    "expression": "A AND B"
  },
  "orderBy": {
    "Company_Name__gc": "asc",
    "Company_ID__gr.csm__gr.name": "desc"
  },
  "limit": 100,
  "offset": 0
}

読み取りAPIでルックアップフィールドを使って、別のオブジェクト (ベースオブジェクトではない) から値を取得することができます。上記のサンプルAPIでは、ルックアップフィールド Company_ID__gr.csm__gr.nameが使われます。このフィールドには、ベースオブジェクト (例: thisObject) > 会社オブジェクト > ユーザーオブジェクト (会社のcsmフィールド経由) > 名前 (ユーザーオブジェクトのフィールド) からのルックアップがあります。指定されたフィールドで、ルックアップを使ってユーザーオブジェクトから名前が取得されます。

注意:読み取りAPIを使ってグループ条項でレコードをフィルター処理することはできません。

異なる演算子を使用した別のサンプル読み取りAPI:

{
  "select": [
    "Renewal_Date__gc",
    "Company_ID__gr.stage"
  ],
  "where": {
    "conditions": [
      {
        "name": "Renewal_Date__gc",
        "alias": "A",
        "value": [
          "2018-04-01",
          "2018-04-23"
        ],
        "operator": "BTW"
      },
      {
        "name": "Company_ID__gr.stage",
        "alias": "B",
        "value": [
          "New Customer",
          "Kicked Off",
          "Launched"
        ],
        "operator": "IN"
      }
    ],
    "expression": "A OR B"
  },
  "orderBy": {
    "Renewal_Date__gc": "asc",
    "Company_ID__gr.stage": "desc"
  },
  "limit": 100,
  "offset": 0
}

上記のサンプルAPIでは、使われるwhere条件は次の通りです。

  • フィールド:更新日/値2018-04-01, 2018-04-23 / オペレーター。BTW.この条件では、指定された2つの値の間に更新日があるレコードが取得されます。演算子BTWを使う場合は、条件に一致するレコードを取得するために2つの値を指定します。
  • フィールド:Company_ID__gr.stage / 値:新規顧客、キックオフ、ローンチ済み / オペレーター:インこの条件では、提供されるフィールドには、ベースオブジェクトから会社オブジェクト > ステージフィールドへのルックアップがあります。会社のステージが新規顧客、キックオフ、又はローンチ済みになっているレコードが取得されます。演算子INを使う場合は、基準に一致する1つ又は複数の値を指定することができます。

サポートされている形式のいずれかで、APIに日付値と日時値を渡すことができます。サポートされている形式の詳細については、Gainsightデータ管理記事を参照してください。

パラメーター

パラメータ(*必須)

データタイプ

説明

選択

文字列

-

データを取得する必要があるフィールドのリストを含む文字列値。

条件:

リスト

-

データのフィルタリングに必要な全ての条件を含むリスト値。

名前

文字列

-

フィールド名を含む文字列値。

エイリアス

文字列

-

フィルター式のエイリアスを含む文字列値。

文字列

-

条件名を比較するための様々な値を含む文字列値。

オペレーター

文字列

-

データのフィルタリングに使われる演算子を含む文字列値。

文字列

-

複数の条件がある場合のフィルター実行式を含む文字列値。

orderBy

文字列

-

レコードが返される順序 (昇順又は降順) を指定する句を含む文字列値。

limit

番号

-

1回の読み取りAPIヒットで取得されるレコードの最大数を含む値。

オフセット:

数値

-

オブジェクトのレコード開始インデックスを含む値。

データタイプの各フィールドでサポートされている演算子は次の通りです。

データタイプ

サポートされている演算子:

文字列

等しい、等しくない、以上、超、以下、未満、で始まる、含む、含まない、nullである、nullではない、で終わる

ブーリアン

等しい、等しくない

日付

等しい、等しくない、より大きいか等しい、より大きい、より小さいか等しい、より小さい、間、nullである、nullではない

日時

等しい、等しくない、より大きいか等しい、より大きい、より小さいか等しい、より小さい、間、nullである、nullではない

数値

等しい、等しくない、以上、超、以下、未満、イン、インでない 、nullである、nullではない、

GSID

等しい、等しくない、以上、超、以下、未満、で始まる、含む、含まない、nullである、nullではない、で終わる

メール

等しい、等しくない、以上、超、以下、未満、で始まる、含む、含まない、nullである、nullではない、で終わる

ドロップダウンリスト

等しい、等しくない、含む、除外する、で始まる、含む、含まない、nullである、nullではない

複数選択ドロップダウンリスト

含む、除外する、null である、null でない

通貨

等しい、等しくない、以上、超、以下、未満、nullである、nullではない、

パーセンテージ

等しい、等しくない、以上、より大きい、以下、未満、nullである、nullではない、

 次の表は読み取りAPIでサポートされている各演算子の列挙型演算子を示しています。

オペレーター

列挙演算子

EQ

等しい

NE

等しくない

LT

未満

GT

LTE

以下

GTE

以上

BTW.

IS_NULL

nullである

IS_NOT_NULL

NULLでない

含む

含む

DOES_NOT_CONTAINS

含まない

STARTS_WITH

で始まる

ENDS_WITH

で終わる

INCLUDES / IN

含む

EXCLUDES / NOT_IN

除外する

応答成功のサンプル

APIリクエストが成功すると、レスポンスとしてHTTPステータスコード200が返されます。成功レスポンスのフォーマットは以下の通りです。APIリクエスト本文の「選択」セクションに記載されているフィールドは、クエリ条件に一致する全てのレコードに対して返されます。

以下は最初のサンプル読み取りAPIのサンプル成功応答です。

{
  "result": true,
  "errorCode": null,
  "errorDesc": null,
  "requestId": "8863e73c-a465-4fc6-a385-f7b3200720dc",
  "data": [
    {
      "Company_Name__gc": "Gainsight",
      "Company_ID__gr.csm__gr.name": "John Nyumbu"
    },
    {
      "Company_Name__gc": "Gainsight",
      "Company_ID__gr.csm__gr.name": "John Smith"
    },
    {
      "Company_Name__gc": "Gainsight",
      "Company_ID__gr.csm__gr.name": "Paul Johnson"
    }
  ],
  "message": null
}

: 成功応答で:

  • 日付と日時の値はエポック形式で表示されます。
  • ステージやステータス値などのドロップダウンリストアイテムには、アイテムの一意のGSIDが入力されます。

失敗応答のサンプル

APIリクエストがエラーになった場合、次の形式でエラーレスポンスが返されます。エラー応答には、Gainsightエラーコードとエラーの説明が含まれています。GainsightのエラーコードとHTTPステータスコードの応答は、様々な理由で発生する可能性があります。Gainsightエラーコード、エラーの説明、その理由、及びHTTPステータスコードの完全なリストについては、会社及びカスタムオブジェクトAPIのエラーコード記事を参照してください。

次のエラーレスポンス本文では、エラーの説明に読み取りAPIの失敗の理由が示されています。

{
    "result": true,
    "errorCode": null,
    "errorDesc": null,
    "requestId": "b277a27b-316f-45e8-8bd1-37bbb2eb17ef",
    "data": {
        "records": []
    },
    "message": null
}

削除API

削除APIはカスタムオブジェクトの特定のレコードを削除します。削除するレコードは、エンドポイントURLで渡されるGSIDで識別されます。

メソッド

削除

エンドポイント URL

https://customobjectapi.gainsightcloud.com/v1/data/objects/{objectName}/{GSID}

このエンドポイントURLで、customobjectapi.gainsightcloud.comはGainsightへの接続に使用するドメインです。あくまで参考です。

オブジェクト名はGainsightのオブジェクト名です。GSIDはカスタムオブジェクト内の既存のレコードの一意のIDです。例:1I0054U9FAKXZ0H26H4H0U5VRD65H9JW66FJ。

実際に削除するのエンドポイントURL は、...gainsightcloud.com/v1/data/objects/thisObject__gc/1I0054U9FAKXZ0H26H4H0U5VRD65H9JW66FJの様になります。

上記で使われているオブジェクト名は参考用です。要件とユースケースに対応した名前でオブジェクトを作成することができます。

応答成功のサンプル

APIリクエストが成功すると、レスポンスとしてHTTPステータスコード200が返されます。成功レスポンスのフォーマットは以下の通りです。削除されたレコードのGSIDは、応答のデータフィールドに記載されています。

{
    "result": true,
    "errorCode": null,
    "errorDesc": null,
    "requestId": "6e2308e4-5e44-419b-af2a-21cd9153258c",
    "data": "Delete process initiated for 1 records.",
    "message": null
}

失敗応答のサンプル

APIリクエストがエラーになった場合、次の形式でエラーレスポンスが返されます。エラー応答には、Gainsightエラーコードとエラーの説明が含まれています。GainsightのエラーコードとHTTPステータスコードの応答は、様々な理由で発生する可能性があります。Gainsightエラーコード、エラーの説明、その理由、及びHTTPステータスコードの完全なリストについては、会社及びカスタムオブジェクトAPIのエラーコード記事を参照してください。

次のエラーレスポンス本文では、エラーの説明に削除APIの失敗の理由が示されています。

{
    "result": true,
    "errorCode": null,
    "errorDesc": null,
    "requestId": "15402521-8d94-47ec-8126-ee56c45b7db0",
    "data": "Delete process initiated for 1 records.",
    "message": null
}

エラーコード

GainsightカスタムオブジェクトAPIに関連するエラーコードの一覧については、会社及びカスタムオブジェクトAPIのエラーコード記事を参照してください。

  • この記事は役に立ちましたか?