WSD ユーザー API

  • リリースバージョン: Australia
  • 更新日 2026年04月28日
  • 所要時間:16分
  • WSD ユーザー API は、アサインされたワークスペースの場所、オフィス内のプレゼンススケジュール、協力者、過去および将来の予約など、認証されたユーザーの職場コンテキストを返すスクリプト化された REST API です。

    この WSD ユーザーはワークプレイスサービスデリバリ (WSD) 予約製品に搭載されており、関連するすべてのユーザーデータを使用して予約エクスペリエンスを初期化するための単一コールエントリポイントを提供します。この API は ワークプレイスサービスデリバリ Reservation (com.sn_wsd_rsv) プラグイン内にあり、ユーザーの完全な職場 ID と履歴を表示するためのエントリーポイントとして機能します。

    認証されたユーザーとは、ログインしているか、認証情報が API 要求に含まれているユーザーです。

    一般的なユースケース:
    • 予約ポータルの初期化:Workplace アプリまたはポータルを開くときに、ユーザーの自宅の場所、スケジュール、および予約履歴を 1 回の呼び出しでロードします。
    • カスタムモバイルアプリまたは Web アプリ:フロントエンドの予約エクスペリエンスを構築する場合など、複数のテーブル API 呼び出しをつなぎ合わせることなく、すべてのユーザーコンテキストをフェッチします。
    • オフィス内のプレゼンストラッキング:特定の日にオフィスに出社する予定の従業員を特定します。

    要件

    WSD ユーザー API には次のものが必要です。
    • sn_wsd_core.workplace_user ロールを持つユーザーレコードが少なくとも 1 つ存在している必要があります。
    • アクティブにする ワークプレイスサービスデリバリ Concierge (com.sn_wsd_concierge)、 ワークプレイスサービスデリバリ Core (com.sn_wsd_core)、および ワークプレイスサービスデリバリ Reservation (com.sn_wsd_rsv) プラグイン。

    関連 API

    WSD ユーザー API は、すべて sn_wsd_rsv 名前空間の下にある API ファミリーに属しており、一緒に予約ライフサイクル全体をサポートします。
    • WSD 検索 API:場所、時間、キャパシティの基準に基づいて、利用可能な予約可能スペースを検索します。
    • WSD 予約 API:予約を作成し、チェックイン/チェックアウトを管理します。
    • WSD 予約可能モジュール API:ユーザーが予約できる内容と予約方法を管理する予約ルール構成を取得します。

    WSD ユーザー:GET /api/sn_wsd_rsv/v1/user/context

    アサインされたワークプレイスの場所、プレゼンススケジュール、協力者、過去と将来の予約など、認証されたユーザーのワークプレイスコンテキストを取得します。

    このエンドポイントを使用して、関連するすべてのユーザーコンテキストを 1 回の呼び出しでロードすることで、予約エクスペリエンスを初期化します。協力者データは、com.sn_wsd_concierge プラグインがアクティブな場合にオプションで含められます。

    URL 形式

    バージョニングされた URL: /api/sn_wsd_rsv/{api_version}/user/context

    デフォルト URL: /api/sn_wsd_rsv/user/context

    サポートされている要求パラメーター

    表 : 1. パスパラメーター
    名前 説明
    api_version オプション。アクセスするエンドポイントのバージョン。たとえば、 v1v2 などです。最新以外のエンドポイントバージョンを使用する場合にのみ、この値を指定してください。

    データタイプ:文字列

    表 : 2. クエリパラメーター
    名前 説明
    include 応答に関連データを含める値。厳密な等価マッチングを使用します (カンマ区切り解析ではありません)。
    注:
    include は、 ワークプレイスサービスデリバリ コンシェルジュ (com.sn_wsd_concierge) プラグインがアクティブな場合にのみ有効です。

    有効な値: 協力者のみ

    データタイプ:文字列

    デフォルト:協力者を応答から除外します。

    past_reservations_months 返却する過去の予約の月数。

    データタイプ:数値

    最小値:0

    最大値: 12

    デフォルト値:3

    future_reservations_months 返却する将来の予約の月数。

    データタイプ:数値

    最小値:0

    最大値: 12

    デフォルト値:3

    表 : 3. 要求本文パラメーター (XML または JSON)
    名前 説明
    なし

    ヘッダー

    次の要求ヘッダーと応答ヘッダーは、この HTTP アクションにのみ適用されるか、別の方法でこのアクションに適用されます。REST API で使用される一般的なヘッダーのリストについては、「 サポートされている REST API ヘッダー」を参照してください。

    表 : 4. 要求ヘッダー
    ヘッダー 説明
    承認 応答本文のデータフォーマット。サポートされているタイプ:application/json、application/xml、text/xml。
    認証 認証情報。ベーシック認証またはセッションベースの認証をサポートします。
    表 : 5. 応答ヘッダー
    ヘッダー 説明
    Content-Type 応答本文のデータ形式:application/json。

    ステータスコード

    この HTTP アクションには、次のステータスコードが適用されます。REST API で使用される可能性のあるステータスコードのリストについては、「 REST API HTTP 応答コード」を参照してください。

    表 : 6. ステータスコード
    ステータスコード 説明
    200 成功。要求が正常に処理されました。
    500 内部サーバーエラー要求の処理中に予期しないエラーが発生しました。応答には、エラーに関する追加情報が含まれています。

    応答本文のパラメーター (JSON または XML)

    名前 説明
    result 要求の結果を含むオブジェクト。

    データタイプ: オブジェクト

    "result": {
      "collaborators": [Array],
      "reservations": {Object},
      "schedule": {Object},
      "workplace_location": {Object}
    }
    協力者 ユーザーの協力者とそのプレゼンスデータのリスト。

    データタイプ:オブジェクトのアレイ

    "collaborators": [
      {
        "sys_id": "String",
        "name": "String",
        "routine": "Object",
        "exceptions": "Array"
      }
    ]
    collaborators.exceptions 協力者のオフィス勤務スケジュールがルーチンから逸脱する日付のリスト。

    予定されているオフィスへの出席を示す各曜日のブールフラグが含まれています。ユーザーがその日オフィスに出社する予定がある場合は true が表示され、出席が予定されていない場合は false を表示します。

    データタイプ:オブジェクトのアレイ

    "exceptions": [
    { 
       "monday": "Boolean", 
       "tuesday": "Boolean", 
       "wednesday": "Boolean", 
       "thursday": "Boolean", 
       "friday": "Boolean", 
       "saturday": "Boolean", 
       "sunday": "Boolean" 
    }
    ]
    collaborators.name 協力者の表示名。例: Jane Smith

    データタイプ:文字列

    collaborators.routine 協力者の毎週の定期的なオフィス勤務スケジュール。schedule.routineと同じ曜日のブール構造に従います。

    true はオフィスへの出席を示し、 false は欠勤を示します。

    データタイプ: オブジェクト

    "routine": {
      "monday": Boolean,
      "tuesday": Boolean,
      "wednesday": Boolean,
      "thursday": Boolean, 
      "friday": Boolean,
      "saturday": Boolean,
      "sunday": Boolean
    }
    collaborators.sys_id 協力者のユーザーレコードのSys_id。

    テーブル: ユーザー [sys_user]

    データタイプ:文字列

    予約 ユーザーの過去および将来の予約を含むオブジェクト。プライベート予約および場所なしの予約は除外されます。

    1 方向あたり最大 100 件の予約。

    状況 (確認済み、完了) でフィルタリングされます。

    データタイプ: オブジェクト

    "reservations": {
      "past": [Array],
      "future": [Array]
    }
    reservations.future 要求された月の範囲内のユーザーの将来の予約のリスト。開始日時 (早い順) 順に並べ替えられます。

    データタイプ:オブジェクトのアレイ

    "future": [
     {
      "sys_id": "String",
      "number": "String",
      "start": "String",
      "end": "String",
      "state": "String",
      "subject": "String,
      "location": {Object},
      "building": {Object}
     }
    ]
    reservations.future.building 予約した場所が存在する建物。

    データタイプ: オブジェクト

    "building": {
     "name": "String",
     "sys_id": "String"
    }
    reservations.future.building.name 建物の表示名。例: 本社ビル A

    データタイプ:文字列

    reservations.future.building.sys_id 建物レコードのSys_id。

    テーブル:職場の建物 [sn_wsd_core_building]

    データタイプ:文字列

    reservations.future.end 予約の終了日時 (UTC)

    形式:yyyy-MM-dd HH:mm:ss

    データタイプ:文字列

    reservations.future.location 予約済みスペース。

    データタイプ: オブジェクト

    "location": {
      "sys_id": "String",
      "name": "String"
    }
    reservations.future.location.name 予約場所の表示名。たとえば、「 Desk 42」などです。

    データタイプ:文字列

    reservations.future.location.sys_id 予約場所のSys_id。

    テーブル:職場の場所 [sn_wsd_core_workplace_location]

    データタイプ:文字列

    reservations.future.number わかりやすい予約番号。たとえば、 RSV0001234 などです。

    データタイプ:文字列

    reservations.future.start 予約の開始日時 (UTC)

    形式:yyyy-MM-dd HH:mm:ss

    データタイプ:文字列

    reservations.future.state 予約の現在のステータス。
    有効な値:
    • 確認済み
    • 完了

    データタイプ:文字列

    reservations.future.subject 予約の件名またはタイトル。たとえば、 チームスタンドアップデスクなどです。

    データタイプ:文字列

    reservations.future.sys_id 予約レコードのSys_id。

    テーブル:職場予約 [sn_wsd_rsv_reservation]

    データタイプ:文字列

    reservations.past 要求された月の範囲内のユーザーの過去の予約のリスト。開始日時順 (最新順) の順に並べ替えられます。

    reservation.futureと同じアレイ構造に従います。

    データタイプ:オブジェクトのアレイ

    "past": [
     {
      "sys_id": "String",
      "number": "String",
      "start": "String",
      "end": "String",
      "state": "String",
      "subject": "String,
      "location": {Object},
      "building": {Object}
     }
    ]
    schedule ユーザーのオフィス勤務スケジュール (繰り返しの週次ルーチンや例外など)。
    注:
    com.sn_wsd_concierge プラグインが非アクティブな場合、ルーチンは null で、例外は空のアレイです。

    データタイプ: オブジェクト

    "schedule": {
      "exceptions": [Array],
      "routine": {Object}
    }
    schedule.exceptions ユーザーのオフィス勤務スケジュールがルーチンから逸脱する日付のリスト。

    データタイプ:オブジェクトのアレイ

    "exceptions": [
    {
      "sys_id": "sys_id", 
      "date": "String", 
      "in_office": String, 
      "origin": "String", 
      "location": "String" 
     }
    ]
    schedule.exceptions.date この例外が適用される日付 (yyyy-MM-dd 形式)。これは、ユーザーのルーチンが上書きされる日付です。

    データタイプ:文字列

    schedule.exceptions.in_office この日付にユーザーがオフィスにいるかどうかを示すフラグ。これにより、スケジュールで指定されている曜日が上書きされます。
    有効な値:
    • true:ユーザーはオフィスにいます。
    • false:ユーザーはオフィスにいません

    データタイプ:文字列

    schedule.exceptions.location この日付におけるユーザーのオフィス所在地の名前または識別子。in_officetrue の場合にのみ関連します。ユーザーがリモートの場合、空の文字列になることがあります。

    データタイプ:文字列

    schedule.exceptions.origin 例外を作成したソース。
    有効な値:
    • ユーザー:従業員が手動で作成します。
    • システム:プラットフォームによって自動的に作成されます。
    • manual:アドミンまたはユーザーの代わりに作成されます。

    データタイプ:文字列

    schedule.exceptions.sys_id 例外レコードのSys_id。

    テーブル:従業員プレゼンスの例外 (sn_wsd_concierge_employee_presence_exception)

    データタイプ:文字列

    schedule.routine ユーザーの毎週の定期的なオフィス勤務スケジュール。各フィールドは曜日を表すブール値で、ユーザーがその日にオフィスに出社するようにスケジュールされているかどうかを示します。

    true はオフィスへの出席を示し、 false は欠勤を示します。

    データタイプ: オブジェクト

    "routine": {
      "monday": Boolean,
      "tuesday": Boolean,
      "wednesday": Boolean,
      "thursday": Boolean, 
      "friday": Boolean,
      "saturday": Boolean,
      "sunday": Boolean
    }
    workplace_location フロア、建物、敷地の詳細など、ユーザーにアサインされた職場の場所。

    データタイプ: オブジェクト

    "workplace_location": {
      "building": {Object},
      "campus": {Object},
      "floor": {Object},
      "name": "String",
      "sys_id": "String"
    }
    workplace_location.building ワークプレイスの場所が存在する建物。

    データタイプ: オブジェクト

    "building": {
      "name": "String",
      "sys_id": "String"
    }
    workplace_location.building.name 建物の表示名。例: 本社ビル A

    データタイプ:文字列

    workplace_location.building.sys_id 建物レコードのSys_id。

    テーブル:職場の建物 [sn_wsd_core_building]

    データタイプ:文字列

    workplace_location.campus 建物が存在する敷地。

    データタイプ: オブジェクト

    "campus": {
      "name": "String",
      "sys_id": "String"
    }
    workplace_location.campus.name 敷地の表示名。たとえば、「 メインキャンパス」などです。

    データタイプ:文字列

    workplace_location.campus.sys_id 敷地レコードのSys_id。

    テーブル:職場の敷地 [sn_wsd_core_campus]

    データタイプ:文字列

    workplace_location.floor 職場の場所が存在するフロア。

    データタイプ: オブジェクト

    "floor": {
      "name": "String",
      "sys_id": "String"
    }
    workplace_location.floor.name フロアレコードのSys_id。

    テーブル:職場フロア [sn_wsd_core_floor]

    データタイプ:文字列

    workplace_location.floor.sys_id フロアの表示名。たとえば、 フロア 3 などです。

    データタイプ:文字列

    workplace_location.name ユーザーにアサインされた職場の場所の表示名。例: デスク 42 - フロア 3

    データタイプ:文字列

    workplace_location.sys_id ユーザーのアサインされた職場の場所のSys_id。

    テーブル:職場の場所 [sn_wsd_core_workplace_location]

    データタイプ:文字列

    cURL 要求

    次の例では、協力者、過去の 1 か月分の予約、および将来の 6 か月分の予約を含む、認証されたユーザーの完全な職場コンテキストを取得します。

    curl "https://<instance>.service-now.com/api/sn_wsd_rsv/v1/user/context?include=collaborators&past_reservations_months=1&future_reservations_months=6" \
      --request GET \
      --header "Accept: application/json" \
      --user "username:password"

    応答本文。

    {
      "result": {
        "workplace_location": {
          "sys_id": "a1b2c3d4e5f6g7h8",
          "name": "Desk 42 - Floor 3",
          "floor": { "sys_id": "f1a2b3c4", "name": "Floor 3" },
          "building": { "sys_id": "b1c2d3e4", "name": "HQ Building A" },
          "campus": { "sys_id": "c1d2e3f4", "name": "Main Campus" }
        },
        "schedule": {
          "routine": {
            "monday": true, "tuesday": true, "wednesday": false,
            "thursday": true, "friday": false, "saturday": false, "sunday": false
          },
          "exceptions": []
        },
        "collaborators": [
          {
            "sys_id": "d4e5f6g7",
            "name": "Jane Smith",
            "routine": { "monday": true, "tuesday": false, "wednesday": true,
                         "thursday": true, "friday": false, "saturday": false, "sunday": false },
            "exceptions": []
          }
        ],
        "reservations": {
          "past": [
            {
              "sys_id": "r1e2s3v4",
              "number": "RSV0001234",
              "start": "2026-04-01 09:00:00",
              "end": "2026-04-01 17:00:00",
              "state": "completed",
              "subject": "Team standup desk",
              "location": { "sys_id": "l1o2c3", "name": "Desk 42" },
              "building": { "sys_id": "b1c2d3e4", "name": "HQ Building A" }
            }
          ],
          "future": []
        }
      }
    }