WSD 사용자 API

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 04월 28일
  • 소요 시간: 14분
  • WSD 사용자 API는 할당된 작업 공간 위치, 사무실 출근 일정, 공동 작업자, 과거 및 향후 예약 등 인증된 사용자의 직장 컨텍스트를 반환하는 스크립트된 REST API입니다.

    WSD 사용자는 (WSD) 예약 제품에 포함 워크플레이스 서비스 제공 되며 모든 관련 사용자 데이터로 예약 예약 환경을 초기화하기 위한 단일 통화 엔트리포인트를 제공합니다. 이 API는 예약(com.sn_wsd_rsv) 플러그인 내에 워크플레이스 서비스 제공 있으며 사용자의 전체 직장 ID 및 이력을 표시하기 위한 엔트리포인트 역할을 합니다.

    인증된 사용자는 로그인되어 있거나 자격 증명이 API 요청에 포함된 사용자입니다.

    일반적인 사용 사례:
    • 예약 포털 초기화: 직장 앱 또는 포털을 열 때 한 번의 호출로 사용자의 집 위치, 일정 및 예약 내역을 로드합니다.
    • 사용자 지정 모바일 또는 웹 앱: 프론트엔드 예약 환경을 빌드하는 경우와 같이 여러 테이블 API 호출을 연결하지 않고 모든 사용자 컨텍스트를 가져옵니다.
    • 사무실 내 상태 추적: 지정된 날짜에 사무실에 출근할 예정인 직원을 식별합니다.

    요구 사항

    WSD 사용자 API에는 다음이 필요합니다.
    • sn_wsd_core.workplace_user 역할이 있는 사용자 기록이 하나 이상 있어야 합니다.
    • 워크플레이스 서비스 제공 컨시어지(com.sn_wsd_concierge워크플레이스 서비스 제공), 코어(com.sn_wsd_core) 및 워크플레이스 서비스 제공 예약(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

    할당된 직장 위치, 현재 상태 일정, 공동 작업자, 과거 및 향후 예약 등 인증된 사용자의 직장 컨텍스트를 검색합니다.

    이 엔드포인트를 사용하여 단일 호출에 모든 관련 사용자 컨텍스트를 로드하여 예약 환경을 초기화합니다. 공동 작업자 데이터는 com.sn_wsd_concierge 플러그인이 활성화된 경우 선택적으로 포함됩니다.

    URL 형식

    버전이 지정된 URL: /api/sn_wsd_rsv/{api_version}/user/context

    기본 URL: /api/sn_wsd_rsv/user/context

    지원되는 요청 매개변수

    표 1. 경로 매개변수
    이름 설명
    api_version 옵션입니다. 액세스할 엔드포인트의 버전입니다. 예를 들어 v1 또는 v2입니다. 최신 버전이 아닌 엔드포인트 버전을 사용하도록 이 값만 지정하십시오.

    데이터 유형: 문자열

    표 2. 쿼리 매개변수
    이름 설명
    포함 응답에 관련 데이터를 포함하기 위한 값입니다. 엄격한 동일성 일치를 사용합니다(쉼표로 구분된 구문 분석이 아님).
    주:
    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. 응답 헤더
    머리글 설명
    콘텐츠-형식 응답 본문의 데이터 형식: application/json.

    상태 코드

    이 HTTP 작업에 적용되는 상태 코드는 다음과 같습니다. REST API에 사용되는 가능한 상태 코드 목록은 REST API HTTP 응답 코드를 참조하십시오.

    표 6. 상태 코드
    상태 코드 설명
    200 성공입니다. 요청이 성공적으로 처리되었습니다.
    500 내부 서버 오류입니다. 요청을 처리하는 동안 예기치 않은 오류가 발생했습니다. 응답에는 오류에 대한 추가 정보가 포함되어 있습니다.

    응답 본문 매개변수(JSON 또는 XML)

    이름 설명
    결과 요청의 결과를 포함하는 객체입니다.

    데이터 유형: 객체

    "result": {
      "collaborators": [Array],
      "reservations": {Object},
      "schedule": {Object},
      "workplace_location": {Object}
    }
    공동 작업자 현재 상태 데이터가 있는 사용자의 공동 작업자 목록입니다.

    데이터 유형: 객체 배열

    "collaborators": [
      {
        "sys_id": "String",
        "name": "String",
        "routine": "Object",
        "exceptions": "Array"
      }
    ]
    공동 작업자.예외 공동 작업자의 오피스 일정이 루틴에서 벗어나는 날짜 목록입니다.

    계획된 사무실 출석을 나타내는 각 요일의 부울 플래그를 포함합니다. 사용자가 해당 날짜에 사무실에 출근할 계획이면 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를 따릅니다.

    값은 오피스 출석을 나타내고 아니오는 결석을 나타냅니다.

    데이터 유형: 객체

    "routine": {
      "monday": Boolean,
      "tuesday": Boolean,
      "wednesday": Boolean,
      "thursday": Boolean, 
      "friday": Boolean,
      "saturday": Boolean,
      "sunday": Boolean
    }
    collaborators.sys_id 공동 작업자의 사용자 기록 Sys_id입니다.

    테이블: 사용자 [sys_user]

    데이터 유형: 문자열

    예약 사용자의 과거 및 향후 예약을 포함하는 객체입니다. 개인 및 위치 없는 예약은 제외됩니다.

    방향당 최대 100개의 예약이 가능합니다.

    상태별로 필터링됨: 확인됨, 완료됨.

    데이터 유형: 객체

    "reservations": {
      "past": [Array],
      "future": [Array]
    }
    예약.미래 요청된 월 범위 내 사용자의 향후 예약 목록입니다. 시작 날짜/시간별로 가장 빠른 순서부터 정렬됩니다.

    데이터 유형: 객체 배열

    "future": [
     {
      "sys_id": "String",
      "number": "String",
      "start": "String",
      "end": "String",
      "state": "String",
      "subject": "String,
      "location": {Object},
      "building": {Object}
     }
    ]
    예약.미래.건물 예약 위치가 있는 건물입니다.

    데이터 유형: 객체

    "building": {
     "name": "String",
     "sys_id": "String"
    }
    reservations.future.building.name 건물의 표시 이름입니다. 예를 들어, HQ 빌딩 A입니다.

    데이터 유형: 문자열

    reservations.future.building.sys_id 건물 기록의 Sys_id입니다.

    테이블: 직장 건물 [sn_wsd_core_building]

    데이터 유형: 문자열

    예약.미래.종료 예약의 종료 날짜 시간(UTC)입니다.

    형식: yyyy-MM-dd HH:mm:ss

    데이터 유형: 문자열

    예약.미래.위치 예약 공간입니다.

    데이터 유형: 객체

    "location": {
      "sys_id": "String",
      "name": "String"
    }
    reservations.future.location.name 예약 위치의 표시 이름입니다. 예: Desk 42

    데이터 유형: 문자열

    reservations.future.location.sys_id 예약 위치의 Sys_id입니다.

    테이블: 직장 위치 [sn_wsd_core_workplace_location]

    데이터 유형: 문자열

    예약.미래.번호 사람이 읽을 수 있는 예약 번호입니다. 예를 들면 RSV0001234입니다.

    데이터 유형: 문자열

    reservations.future.start 예약의 시작 날짜 시간(UTC)입니다.

    형식: yyyy-MM-dd HH:mm:ss

    데이터 유형: 문자열

    reservations.future.state 예약의 현재 상태입니다.
    유효한 값은 다음과 같습니다.
    • 확인됨
    • 완료됨

    데이터 유형: 문자열

    예약.미래.제목 예약의 주제 또는 제목입니다. 예: 팀 스탠드업 데스크

    데이터 유형: 문자열

    reservations.future.sys_id 예약 기록의 Sys_id입니다.

    테이블: 직장 예약 [sn_wsd_rsv_reservation]

    데이터 유형: 문자열

    예약.과거 요청된 월 범위 내 사용자의 과거 예약 목록입니다. 시작 날짜/시간별로 정렬되며, 가장 최근 항목부터 정렬됩니다.

    reservation.future동일한 배열 구조를 따릅니다.

    데이터 유형: 객체 배열

    "past": [
     {
      "sys_id": "String",
      "number": "String",
      "start": "String",
      "end": "String",
      "state": "String",
      "subject": "String,
      "location": {Object},
      "building": {Object}
     }
    ]
    일정 사용자의 오피스 출근 일정(반복되는 주간 루틴 및 예외 포함)
    주:
    com.sn_wsd_concierge 플러그인이 비활성 상태이면 루틴은 null이고 예외는 빈 배열입니다.

    데이터 유형: 객체

    "schedule": {
      "exceptions": [Array],
      "routine": {Object}
    }
    일정.예외 사용자의 오피스 일정이 루틴에서 벗어나는 날짜 목록입니다.

    데이터 유형: 객체 배열

    "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: 사용자가 사무실에 있지 않음

    데이터 유형: 문자열

    일정.예외.위치 이 날짜에 사용자가 있을 사무실 위치의 이름 또는 식별자입니다. in_office이 예인 경우에만 관련이 있습니다. 사용자가 원격 근무인 경우 빈 문자열일 수 있습니다.

    데이터 유형: 문자열

    일정.예외.원본 예외를 생성한 소스입니다.
    유효한 값은 다음과 같습니다.
    • 사용자: 직원이 수동으로 생성합니다.
    • 시스템: 플랫폼에서 자동으로 생성됩니다.
    • 수동: 관리자가 생성하거나 사용자를 대신하여 생성합니다.

    데이터 유형: 문자열

    schedule.exceptions.sys_id 예외 기록의 Sys_id입니다.

    테이블: 직원 현재 상태 예외(sn_wsd_concierge_employee_presence_exception)

    데이터 유형: 문자열

    일정.루틴 사용자의 반복되는 주간 오피스 일정입니다. 각 필드는 요일을 나타내는 부울이며 사용자가 해당 날짜에 사무실에 출근하도록 예약되어 있는지 여부를 나타냅니다.

    값은 오피스 출석을 나타내고 아니오는 결석을 나타냅니다.

    데이터 유형: 객체

    "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": {
      "name": "String",
      "sys_id": "String"
    }
    workplace_location.building.name 건물의 표시 이름입니다. 예를 들어, HQ 빌딩 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": []
        }
      }
    }