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

ユーザー管理API

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

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

 

この記事では、Gainsightユーザー管理REST APIとその機能について説明します。

はじめに

ユーザー管理APIは、REST (Representational State Transfer) を軸に構成されています。管理者はこれらのAPIを使用することにより、ユーザーの作成、ユーザーの更新、ユーザーステータスの更新、およびユーザーステータスの取得を行うことが可能です。

メモ:

  • APIを使用することにより、最大50人のユーザーのステータスを作成、更新、および更新することができます。
  • ユーザー管理APIを使用して上級管理者フィールドの作成および更新をすることはできません。

[認証]

これらのユーザー管理APIを使用するためには、アクセストークンを生成しなければなりません。

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

アクセスキーを取得したら、すべてのAPIリクエストのリクエストヘッダー「accesskey」の一部としてアクセスキーをGainsightに渡す必要があります。アクセス キーに有効期限はありません。

ヘッダー

キー

コンテンツタイプ

アプリケーション/json

受け入れる

アプリケーション/json、テキスト/プレーン、*/*

受け入れるー言語

en-GB,en-US;q=0.9,en;q=0.8

<認証>

<アクセスキー>

スロットリング制限

外部ユーザー管理APIの制限は、1時間あたり100リクエスト/1日あたり1000リクエストです

以下は、Gainsightで推奨される全体的なAPI制限です (正確な制限はパッケージによって異なる可能性があります)。

  • 同期 API コール: 1分あたり100回のAPI呼び出し/1日あたり50,000 回のAPI呼び出し
  • 非同期 API 呼び出し (Gainsight API の一括呼び出し): 1 時間あたり 10 コール/1 日あたり 100 コール

API

レートリミット

外部ユーザー管理API

1時間あたり100リクエスト/1日あたり1000リクエスト

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

ユーザーの作成

このAPIを使用して、Gainsightでユーザーを作成することができます。また、ルックアップを追加して、ユーザーのマネージャーIDを処理することも可能です。以下は、ユーザータイプに基づいてユーザーを作成するための必須フィールドになります。

  • 内部ユーザー:メール、SFDCUserName、名前 (またはファーストネームと姓)
  • 外部ユーザー:会社ID

メモ:

  • Nameが設定されていない場合は、ファーストネームと姓から入力されます。
  • SystemTypeが設定されていない場合は、「内部」に設定されます。
  • permissionBundlesはユーザーの作成が完了した後に各ユーザーに割り当てられる権限バンドルになります。このプロセスは非同期であり、すぐに反映されない場合があることに注意してください。
  • IsActiveUserが設定されていない場合は、アクティブに設定されます。
  • 一度に作成できるユーザー数は最大50人までです。

メソッド

ポスト

エンドポイント URL

https://<customer domain>/v1/users/services?notify=true/false

通知値を「true または false」として指定することにより、作成したユーザーにウェルカム メールを送信することを選択できます。

注意:

  • 「通知」フラグが「true」に設定されている場合、ウェルカム メールがユーザーに送信されます。
  • (デフォルト) 「通知」フラグの値が「false」の場合、ウェルカム メールはユーザーに送信されません。

重要: クエリ パラメータの通知値は、 true または false のいずれかです。

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

{
"records": [
    {
        "FirstName": "Test",
        "LastName": "User",
        "Name":"Test User",
        "Email": "test@gs.com",
        "LicenseType":"Viewer",
        "SFDCUserName":"test9@gs.com",
        "CompanyName":"XYZ"
    },
    {
        "FirstName": "Test",
        "LastName": "User",
        "Name":"Test User",
        "Email": "test@gs.com",
        "LicenseType":"Viewer",
        "SFDCUserName":"test10@gs.com",
        "CompanyName":"XYZ"
    }
],
"lookups": {
    "CompanyID": {
        "fields": {
            "CompanyName": "Name"
        },
        "lookupField": "Gsid",
        "objectName": 「会社」、
        "multiMatchOption": "FIRSTMATCH",
        "onNoMatch":"ERROR"
    }
}
}

パラメータ

パラメータ

(*必須)

日付タイプ

説明

Company ID*

文字列

-

会社レコードのGSIDを含む文字列値。

メモ:

  • 会社IDは、外部ユーザーにのみ適用されます。
  • 内部タイプのユーザーの場合、会社Idはnullに設定されます。

SFDCUserName*

文字列

-

内部タイプのユーザーの一意で有効なメールアドレスを含む文字列値。

メモ:同じユーザー名が既に存在する場合、記録は拒絶されます。

Email*

文字列

-

内部タイプのユーザーの有効なメールアドレスを含む文字列値。

FirstName

文字列

-

ユーザーの名を含む文字列値。

メモ:名前フィールドの値が指定されていない場合、ファーストネームと姓の値は必須です。

苗字

文字列

-

ユーザーの姓を含む文字列値。

メモ:名前フィールドの値が指定されていない場合、ファーストネームと姓の値は必須です。

ライセンスタイプ

文字列

フル、Viewer、Viewer Analytics、内部コラボレータ、および外部

有効なライセンス タイプラベルを含む文字列値。

SystemType

文字列

内部、外部、ゲスト

パートナー

ユーザーが内部ユーザーになるのか外部ユーザーになるのかを定義する値を含む文字列値。

IsSuperAdmin

ブール値

-

Trueの場合、ユーザーが上級管理者であることを指定するブール値。

メモ:デフォルトでは、指定されていない場合はユーザーは非上級管理者として作成されます。

マネージャー

文字列

-

有効なユーザーのGSIDを含む文字列値。

メモ:自己ユーザー割り当てはサポートされていません。

Name*

文字列

-

ユーザー名を含む文字列値。

メモ:名前フィールドの値が指定されていない場合、ファーストネームと姓の値は必須です。

タイムゾーン

文字列

-

Gainsightでサポートされた有効なタイムゾーン ラベルを含む文字列値。

タイトル

文字列

-

ユーザーのタイトルを含む文字列値。

IsActiveUser

ブール値

-

Trueの場合、ユーザーがアクティブであることを指定するブール値。

メモ:デフォルトでは、ユーザーはアクティブユーザーとして作成されます。

Locale

文字列

-

Gainsightでサポートされた有効なロケールラベルを含む文字列値。

permissionBundles

リスト

-

権限バンドル名を含むリスト値 (カスタム/デフォルト)。

permissionBundleAction

文字列

-

バンドルを既存のバンドルに追加するのか、既存のバンドルを上書きするのかを示す文字列値。

メモ:デフォルトのアクションは「追加」です。

objectName

文字列

-

ルックアップ オブジェクト名を含む文字列値。

multiMatchOption

  • FIRSTMATCH
  • MARKASERROR

文字列

-

  • ルックアップJSON とルックアップオブジェクトの間で最初に一致したGSIDを含む文字列値。
  • 複数の記録がJSON とルックアップオブジェクトの間のクライテリアに一致する場合、システムがエラーで応答する文字列値。

onNoMatch

  • NULLABLE
  • DEFAULTVALUE
  • エラー

文字列

-

  • 一致しない場合にターゲットフィールドにnull値を挿入する文字列値。(デフォルト)
  • ターゲットフィールドにデフォルト値を挿入する文字列値。
  • 記録がJSON とルックアップオブジェクトの間のクライテリアに一致しない場合、システムがエラーで応答する文字列値。

応答成功のサンプル

{
"result": true,
"errorCode": null,
"errorDesc": null,
"requestId": "c0d61647-d3ce-4785-8bfe-d6dacc5cdf88",
"data": {
    "status": "SUCCESS",
    "successRowCount": 2,
    "records": [
        {
            "IsSuperAdmin": false,
            "Email": "test@gs.com",
            "CompanyID": null,
            "Gsid": "1P01DX6HKU2QAQ2F3FBSO042UN34BJSUGWW1",
            "FirstName": "Test",
            "SFDCUserName": "test9@gs.com",
            "SystemType": "1I0054U9FAKXZ0H26HOLPCQ81MF6AUC6FF2X",
            "Name": "Test User",
            "LicenseType": "1I003CYFM4Q8T50O0EK4EPT0XX6S7SUXS5JJ",
            "IsActiveUser": true,
            "GainsightLicenseEnabled": false,
            "LastName": "User"
        },
        {
            "IsSuperAdmin": false,
            "Email": "test@gs.com",
            "CompanyID": null,
            "Gsid": "1P01DX6HKU2QAQ2F3FHQ0E6LOXYTGK8N7U10",
            "FirstName": "Test",
            "SFDCUserName": "test10@gs.com",
            "SystemType": "1I0054U9FAKXZ0H26HOLPCQ81MF6AUC6FF2X",
            "Name": "Test User",
            "LicenseType": "1I003CYFM4Q8T50O0EK4EPT0XX6S7SUXS5JJ",
            "IsActiveUser": true,
            "GainsightLicenseEnabled": false,
            "LastName": "User"
        }
    ],
    "errors": [],
    "success": true
},
"message": null
}

応答失敗のサンプル

{
"result": false,
"errorCode": "GU_2403",
"errorDesc": "Lookup objects [Company1] are not valid",
"requestId": "0bf61426-63ad-4774-ad95-4bd2f6c43c25",
"data": null,
"message": null
}

ユーザーの更新

このAPIを使用して、Gainsightでユーザーの詳細を更新することができます。以下は、このAPIを使用して更新できる、サポートされているユーザーフィールドになります。SFDCUserName, Gsid, SfdcUserId.

メソッド

PUT

エンドポイントのURL

https://<customer domain>/v1/users/services?key=[FieldName]

メモ:

  • フィールド名は必須です。
  • 一度に作成できるユーザー数は最大50人までです。

重要:クエリパラメータキーの値は、SFDCUserName/Gsid/SfdcUserIdのいずれかになりますキーの受け渡しは必須です。キーとして選択されたフィールドの値は、更新リクエストボディのユーザー記録で指定する必要があります。これらのフィールドを更新することはできません。

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

{
"records": [
    {
        "IsActiveUser":true,
        "LicenseType": "Full",
        "SFDCUserName": "test3@gs.com",
        "CompanyName": "XYZ",
        "permissionBundles":["DEFAULT_BUNDLE"]
    },
    {
        "LicenseType":"Full",
        "SFDCUserName":"test2@gs.com",
        "permissionBundles":["DEFAULT_BUNDLE"]
        "CompanyName":"XYZ"
    }
],
"lookups": {
    "CompanyID": {
        "fields": {
            "CompanyName": "Name"
        },
        "lookupField": "Gsid",
        "objectName": 「会社」、
        "onNoMatch":"ERROR"
    }
},
         "permissionBundleAction":"overwrite"
}

PermissionBundleAction:

  • permissionBundleActionオプションは既存のバンドルに追加するのか、既存のバンドルを上書きするのかを示します。
  • デフォルトのアクションは「追加」です。
  • サポートされているアクションは「追加/上書き」になります。

パラメータ

パラメータ

(*必須)

日付タイプ

説明

Company ID*

文字列

-

会社レコードのGSIDを含む文字列値。

メモ:

  • 会社IDは、外部ユーザーにのみ適用されます。
  • 内部タイプのユーザーの場合、会社Idはnullに設定されます。

SFDCUserName*

文字列

-

内部タイプのユーザーの一意で有効なメールアドレスを含む文字列値。

メモ:同じユーザー名が既に存在する場合、記録は拒絶されます。

Gsid*

文字列

-

ユーザーのGsidを含む文字列値。

メモ:

  • これは更新不可能なフィールドであり、更新操作のupsertキーとして使用することができます。
  • クエリパラメータでupsertキーとして選択されている場合は、このフィールドは必須になります。

SfdcUserId*

文字列

-

ユーザーのSfdcUserIdを含む文字列値。

メモ:

  • これは更新不可能なフィールドであり、更新操作のupsertキーとして使用することができます。
  • クエリパラメータでupsertキーとして選択されている場合は、このフィールドは必須になります。

メール

文字列

-

内部タイプのユーザーの有効なメールアドレスを含む文字列値。

FirstName

文字列

-

ユーザーの名を含む文字列値。

苗字

文字列

-

ユーザーの姓を含む文字列値。

ライセンスタイプ

文字列

-

有効なライセンス タイプラベルを含む文字列値。

IsSuperAdmin

ブール値

-

Trueの場合、ユーザーが上級管理者であることを指定するブール値。

メモ:デフォルトでは、指定されていない場合はユーザーは非上級管理者として作成されます。

マネージャー

文字列

-

有効なユーザーのGSIDを含む文字列値。

メモ:自己ユーザー割り当てはサポートされていません。

名前

文字列

-

ユーザー名を含む文字列値。

タイムゾーン

文字列

-

Gainsightでサポートされた有効なタイムゾーン ラベルを含む文字列値。

タイトル

文字列

-

ユーザーのタイトルを含む文字列値。

IsActiveUser

ブール値

-

Trueの場合、ユーザーがアクティブであることを指定するブール値。

メモ:デフォルトでは、ユーザーはアクティブユーザーとして作成されます。

Locale

文字列

-

Gainsightでサポートされた有効なロケールラベルを含む文字列値。

permissionBundles

リスト

-

権限バンドル名を含むリスト値 (カスタム/デフォルト)。

permissionBundleAction

文字列

-

バンドルを既存のバンドルに追加するのか、既存のバンドルを上書きするのかを示す文字列値。

メモ:デフォルトのアクションは「追加」です。

objectName

文字列

-

ルックアップ オブジェクト名を含む文字列値。

multiMatchOption

  • FIRSTMATCH
  • MARKASERROR

文字列

-

  • ルックアップJSON とルックアップオブジェクトの間で最初に一致したGSIDを含む文字列値。
  • 複数の記録がJSON とルックアップオブジェクトの間のクライテリアに一致する場合、システムがエラーで応答する文字列値。

onNoMatch

  • NULLABLE
  • DEFAULTVALUE
  • エラー

文字列

-

  • 一致しない場合にターゲットフィールドにnull値を挿入する文字列値。(デフォルト)
  • ターゲットフィールドにデフォルト値を挿入する文字列値。
  • 記録がJSON とルックアップオブジェクトの間のクライテリアに一致しない場合、システムがエラーで応答する文字列値。

応答成功のサンプル


{
"result": true,
"errorCode": null,
"errorDesc": null,
"requestId": "5dd9296a-c5d3-4ae1-8fbb-56fd3a2e4d86",
"data": {
    "status": "SUCCESS",
    "successRowCount": 2,
    "records": [
        {
            "Email": "test3@gs.com",
            "CompanyID": null,
            "Gsid": "1P01DX6HKU2QAQ2F3F7JU49M384I1MDU66B9",
            "SystemType": "Internal",
            "Name": "Test User",
            "LicenseType": "Full",
            "IsActiveUser": true,
            "IsSuperAdmin": false,
            "FirstName": "Test",
            "SFDCUserName": "test3@gs.com",
            "GainsightLicenseEnabled": false,
            "LastName": "User"
        },
        {
            "Email": "test2@gs.com",
            "CompanyID": null,
            "Gsid": "1P01DX6HKU2QAQ2F3FKTBOET0641B3PBC2TO",
            "SystemType": "Internal",
            "Name": "Test User",
            "LicenseType": "Full",
            "IsActiveUser": true,
            "IsSuperAdmin": false,
            "FirstName": "Test",
            "SFDCUserName": "test2@gs.com",
            "GainsightLicenseEnabled": false,
            "LastName": "User"
        }
    ],
    "errors": [],
    "success": true
},
"message": null
}

応答失敗のサンプル

{
"result": false,
"errorCode": "GU_2403",
"errorDesc": "Lookup objects [Company1] are not valid",
"requestId": "0bf61426-63ad-4774-ad95-4bd2f6c43c25",
"data": null,
"message": null
}

ユーザーステータスの更新

このAPIを使用すると、Gainsightのユーザーステータス (アクティブ/非アクティブ) を更新することができます。

メソッド

PUT

エンドポイントのURL

https://<customer domain>/v1/users/services/status?status=true/false

メモ:一度に更新できるユーザーステータス数は最大50までです。

重要:クエリパラメータステータスは、trueまたはfalseです。

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

リクエストボディーで、ユーザーGSIDを追加して、それぞれのユーザーを更新する必要があります。API呼び出しは無効なユーザーGSIDを無視します、そのため要求で有効なユーザー GSIDを指定したことを確認してください。

[
"1P01936XHTA4SF76ZU5RWZWIMDDL54UB7UF9",
"1P01936XHTA4SF76ZUUXHOUMVVSFH9YJM15A",
"1P01936XHTA4SF76ZUW5J2RVEZZ8H33C8MAM"
]

パラメータ

パラメータ

(*必須)

日付タイプ

説明

gsid*

gsidの一覧

-

ステータスを一括更新する必要があるユーザーの一覧

応答成功のサンプル

{
"result": true,
"errorCode": null,
"errorDesc": null,
"data": {
    "status": "COMPLETED"
},
"message": null
}

応答失敗のサンプル

{
  "result": true,
  "errorCode": null,
  "errorDesc": null,
  "localizedErrorDesc": null,
  "requestId": "5c1d2242-8c71-4c1c-84e3-8f6e9187c650",
  "data": {
      "invalidUserIds": [
          "1P01936XHTA4SF76ZUW5J2RVEZZ8H33C8MAM",
          "1P01936XHTA4SF76ZU5RWZWIMDDL54UB7UF9",
          "1P01936XHTA4SF76ZUUXHOUMVVSFH9YJM15A"
      ]
  },
  "message": null,
  "localizedMessage": null
}

ユーザーの詳細を取得

このAPIを使用すると、Gainsightのユーザー詳細を取得することができます。属性を指定して、API応答でユーザーの詳細を表示することができます。

メソッド

ポスト

エンドポイントのURL

https://<customer domain>/v1/users/services/list

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

{




"includeTotal": true,
"limit": 25,
"page": 0,
"orderBy": {
    "ModifiedDate": "desc"
},
"select": [
    "Name",
    "SFDCUserName",
    "Email",
    "IsSuperAdmin",
    "ModifiedDate",
    "LicenseType"
],
"where": {
    "conditions": [
        {
            "name": "SystemType",
            "alias": "SystemTypeNotIn",
            "value": [
                "1I0054U9FAKXZ0H26H8LWSP9IXL2NBBNBAGG",
                "1I00BVVU4MEPNLT5UUTEI7IOVQ51BTETMIYR"
            ],
            "operator": "NOT_IN"
        },
        {
            "alias": "A",
            "name": "SystemType",
            "operator": "IN",
            「value": [
                "1I0054U9FAKXZ0H26HIODPYB6VXM69JDPA5O",
                "1I0054U9FAKXZ0H26HR1I0W4KFTTAGJ8UIUH"
            ]
        }
    ],
    "expression": "SystemTypeNotIn AND (A)"
}
}

パラメータ

パラメータ

(*必須)

日付タイプ

説明

limit

番号

-

1回のAPI呼び出しで送信される記録の制限を含む数値

page

番号

-

制限に基づく次の記録セットを含む数値

orderBy

マップ

-

昇順または降順によるフィールド名の順序を含むマップ値。

select*

フィールド一覧

-

オブジェクトからフィールドを取得する一覧。

where

マップ

-

記録をフィルタリングし、指定された条件を満たす記録のみを抽出するために使用されるマップ値。

Conditions

リスト

-

ユーザー記録を除外するために使用される条件の一覧。

expression

文字列

-

AND/OR演算を含む文字列値。

応答成功のサンプル

{
"result": true,
"errorCode": null,
"errorDesc": null,
"requestId": "873207cc-f7fb-47df-9034-de4797a94ad5",
"data": {
    "page": 0,
    "size": 5,
    "total": 5,
    "limit": 25,
    "users": [
        {
            "IsSuperAdmin": false,
            "Email": "test3@gs.com",
            "Gsid": "1P0186EIDXGJI1O93WM1ZK3A19R6ORXFQTFY",
            "SFDCUserName": "test3@gs.com",
            "ModifiedDate": "2021-12-01T11:13:47Z",
            "ProfilePicture": null,
            "Name": "Test User",
            "LicenseType": "Full",
            "Status": "Active"
        }
    ]
},
"message": null
}

応答失敗のサンプル

{
"result": false,
"errorCode": "GU_1705",
"errorDesc": "Invalid select fields",
"requestId": "981cdb70-675e-4052-b7a1-9521526892ca",
"data": null,
"message": null
}

エラーコード

エラーコード

エラーメッセージ

 

理由

HTTPステータス コード

GU_1101

ウップス!何かが間違っていた。

リクエストの処理中に予期しないエラーが発生した場合。

500

GU_2400

リクエストが多すぎます

APIの制限を超過。

429

GU_2401

ユーザーの一括作成操作が失敗しました

API作成はすべての記録を挿入できませんでした。

400

GU_2402

ユーザーの一括更新操作が失敗しました

すべての記録を更新できませんでした。

400

GU_2403

ルックアップ構成が無効です

作成/更新ユーザー要求で、無効なルックアップ構成が提供された場合。

400

GU_2404

ルックアップフィールドをnullまたは空にすることはできません

ソースまたはターゲットのルックアップフィールドがnullまたは空の場合。

400

GU_2405

ルックアップオブジェクトが無効です

ルックアップで提供されたターゲットオブジェクト名の1つがnullまたは空になっています。

400

GU_2406

ルックアップ一致クライテリアが無効です

ルックアップの一致クライテリアが空またはnullの場合。

400

GU_2407

フィールドがユーザー記録に存在しません

一致クライテリアで指定されたフィールドが、作成/更新するユーザー記録に存在しない場合。

400

GU_2409

リクエストで提供されたキーはサポートされていません

ユーザー更新リクエストで提供された識別子が無効です。

400

GU_2410

同じユーザーをマネージャーとして追加することはできません

セルフマネージャーは許可されていません

400

GU_2411

ユーザーの更新で競合

ユーザー更新リクエストで同一ユーザーが複数回提供されている場合

400

GSOBJ_RLS004

ResolveLookupRequestは無効なターゲットルックアップマッピング {{FieldName}}

対象のルックアップフィールドが無効の場合。(つまり、フィールドはターゲットオブジェクト内に存在しません)

400

GSOBJ_RLS005

ResolveLookupRequest 無効なターゲット ルックアップ マッピング{{FieldName}}

対象のソースフィールドが無効の場合。(つまり、フィールドがユーザーオブジェクトに存在しないか、ルックアップフィールドではない場合)

400

GSOBJ_RLS008

ResolveLookupRequestのソースcollectionMasterが見つからない {{ObjectName}}

ユーザーオブジェクトのコレクションマスターが空またはnullになっています。

400

GSOBJ_RLS009

ResolveLookupRequestのターゲットcollectionMasterが見つからない {{ObjectName}}

提供されたターゲットオブジェクトのコレクションマスターが空またはnullになっています。

400

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