予約オープン API
Appointment Open API は、予約アプリケーションを操作できるようにする電気通信 API です。この API を使用して、予約を行い、利用可能な時間帯を検索します。
Appointment Open API は、Open API TMForum TMF646 Appointment REST API 仕様のServiceNow®実装であり、TM Forum の適合認定を受けています。この実装は、 TMF646 Appointment API REST Specification R16.0.1 に基づいています。
- 予約 (com.snc.appointment_booking)
- Field Service Management (フィールドサービス管理 (FSM)) (com.snc.work_management)
- 電気通信のフィールドサービス管理 (com.sn_fsmt)
- 電気通信オープン API (com.sn_tmf_api)
この API を使用する前に、予約設定とサービス設定を設定する必要があります。さらに、予約が取り込まれているタスクが存在する必要があります。
この API は sn_tmf_api 名前空間内で提供されます。呼び出し元ユーザーには、sn_tmf_api.appointment_integrator ロールが必要です。
オープン予約:GET /api/sn_tmf_api/appointment/searchTimeSlot
予約サービス構成で設定されたタイムスロットとその可用性を返します。
URL 形式
/api/sn_tmf_api/appointment/searchTimeSlot
サポートされている要求パラメーター
| 名前 | 説明 |
|---|---|
| なし |
| 名前 | 説明 |
|---|---|
| catalog_id | 必須。予約サービス構成で構成されたレコードプロデューサーのSys_id。 データタイプ:文字列 テーブル:レコードプロデューサー [sc_cat_item_producer] |
| end_date | 必須。予約を検索する期間の終了日時。 データタイプ:文字列 形式:YYYY-MM-DD 00:00:00。例: |
| 場所 | 予約の場所のSys_id。 テーブル:場所 [cmn_location] データタイプ:文字列 デフォルト:指定されていない場合は、すべての場所を返します。 |
| opened_for | 必須。予約対象のユーザーのSys_id。 テーブル:連絡先 [customer_contact] データタイプ:文字列 |
| start_date | 必須。予約を検索する期間の開始日時。 データタイプ:文字列 形式:YYYY-MM-DD 00:00:00。例: |
| 名前 | 説明 |
|---|---|
| なし |
ヘッダー
次のリクエストや応答ヘッダーは、この HTTP アクションにのみ適用されるか、またはこのアクションに別個の方法で適用されます。REST API で使用される一般的なヘッダーのリストについては、「 サポートされている REST API ヘッダー」を参照してください。
| ヘッダー | 説明 |
|---|---|
| 承認 | 応答本文のデータフォーマット。application/json のみをサポートします。 |
| ヘッダー | 説明 |
|---|---|
| なし |
ステータスコード
この HTTP アクションには、次のステータスコードが適用されます。REST API で使用される可能性のあるステータスコードのリストについては、「 REST API HTTP 応答コード」を参照してください。
| ステータスコード | 説明 |
|---|---|
| 200 | 成功。要求が正常に処理されました。 |
| 400 | 要求が正しくありません。不適切な要求タイプまたは誤った要求が検出されました。 |
| 500 | 内部サーバーエラー。要求の処理中に予期しないエラーが発生しました。応答に、エラーに関する追加情報が含まれます。 |
応答本文のパラメーター
| 名前 | 説明 |
|---|---|
| availableTimeSlot | 要求された指定された時間ブロック内の予約スロットのリスト。 データタイプ:オブジェクトのアレイ |
| availableTimeSlot.available | 関連付けられたタイムスロットが利用可能かどうかを示すフラグ。 可能な値:
データタイプ:ブーリアン |
| availableTimeSlot.end_date | 関連付けられた予約の終了日時。タイムゾーンは、 timeZone パラメーターの値に基づいています。 データタイプ:文字列 形式:YYYY-MM-DD 00:00:00。例:2025-01-31 09:35:43。 |
| availableTimeSlot.end_date_display | 関連する予約の終了日時を表示します。タイムゾーンは、 timeZone パラメーターの値に基づいています。 データタイプ:文字列 形式:YYYY-MM-DD 00:00:00。例:2025-01-31 09:35:43。 |
| availableTimeSlot.end_dateUTC | 関連付けられた予約の終了日時。 データタイプ:文字列 形式:UTC |
| availableTimeSlot.start_date | 関連する予約の開始日時。timeZoneパラメーターの値を反映します。 データタイプ:文字列 形式:YYYY-MM-DD 00:00:00。例:2025-01-31 09:35:43。 |
| availableTimeSlot.start_date_display | 関連する予約の開始日時を表示します。timeZoneパラメーターの値を反映します。 データタイプ:文字列 形式:YYYY-MM-DD 00:00:00。例:2025-01-31 09:35:43。 |
| availableTimeSlot.start_dateUTC | 関連する予約の開始日時。 データタイプ:文字列 形式:UTC |
| hasMore | 制限を返した後にフェッチする予約スロットがさらにあるかどうかを示すフラグ。この制限は、予約プロパティ sn_apptmnt_booking.max_appointments_returned (デフォルト:100) で指定されます。このプロパティの詳細については、 Appointment booking components を参照してください。 可能な値:
データタイプ:ブーリアン |
| noApptAvailable | 指定された日時に利用可能な予約スロットが他にもあるかどうかを示すフラグ。 有効な値:
データタイプ:ブーリアン |
| 検索結果 | 指定された検索タイムスロット内での予約の空き状況の結果。 可能な値:
データタイプ:文字列 |
| ステータス | 利用可能なタイムスロット検索の完了ステータス。たとえば、done です。 データタイプ:文字列 |
| タイムゾーン | 指定された予約スロットを予約または更新するときに使用されるタイムゾーン。 日付タイプ:文字列 形式:米国/東部などの国/都市または地域の形式 |
cURL 要求
次のコード例は、このエンドポイントを呼び出す方法を示しています。
curl --location --request GET 'https://instance.service-now.com/api/sn_tmf_api/appointment/searchTimeSlot?
start_date=2024-07-10 09:00:00&end_date=2024-07-20 23:00:00&catalog_id=ada50a93f0220210f8776517d8c8e776&
opened_for=51670151c35420105252716b7d40ddfe&location=f48b21850a0a0ba7004182b18099696d ' \
--user 'username':'password'
Result (結果):
{
"searchResult": "success",
"status": "done",
"availableTimeSlot": [
{
"start_date": "2024-07-10 09:00:00",
"end_date": "2024-07-10 12:00:00",
"start_date_display": "09:00",
"end_date_display": "12:00",
"start_dateUTC": "2024-07-10 16:00:00",
"end_dateUTC": "2024-07-10 19:00:00",
"available": false
},
{
"start_date": "2024-07-11 13:00:00",
"end_date": "2024-07-11 16:00:00",
"start_date_display": "13:00",
"end_date_display": "16:00",
"start_dateUTC": "2024-07-11 20:00:00",
"end_dateUTC": "2024-07-11 23:00:00",
"available": true
},
{
"start_date": "2024-07-12 09:00:00",
"end_date": "2024-07-12 12:00:00",
"start_date_display": "09:00",
"end_date_display": "12:00",
"start_dateUTC": "2024-07-12 16:00:00",
"end_dateUTC": "2024-07-12 19:00:00",
"available": true
},
{
"start_date": "2024-07-12 13:00:00",
"end_date": "2024-07-12 16:00:00",
"start_date_display": "13:00",
"end_date_display": "16:00",
"start_dateUTC": "2024-07-12 20:00:00",
"end_dateUTC": "2024-07-12 23:00:00",
"available": true
},
{
"start_date": "2024-07-19 13:00:00",
"end_date": "2024-07-19 16:00:00",
"start_date_display": "13:00",
"end_date_display": "16:00",
"start_dateUTC": "2024-07-19 20:00:00",
"end_dateUTC": "2024-07-19 23:00:00",
"available": true
}
],
"hasMore": false,
"noApptAvailable": false,
"timeZone": "US/Arizona"
}
予約オープン:POST /api/sn_tmf_api/appointment/appointment
作業指示書の予約を行うことができます。
URL 形式
/api/sn_tmf_api/appointment/appointment
サポートされている要求パラメーター
| 名前 | 説明 |
|---|---|
| なし |
| 名前 | 説明 |
|---|---|
| なし |
| 名前 | 説明 |
|---|---|
| category | 必須。予約サービス構成用に構成されたレコードプロデューサーのSys_id。 データタイプ:文字列 テーブル:予約サービス設定 [sn_apptmnt_booking_service_config] テーブルの [カタログアイテム] フィールド。 |
| relatedEntity | 必須。予約に関連付ける、影響を受ける作業指示のリスト。 データタイプ:オブジェクトのアレイ |
| relatedEntity.@referredType | 必須。アイテムまたはサービスのタイプ。 有効な値:WorkOrder データタイプ:文字列 テーブル:作業指示 [wm_order] |
| relatedEntity.id | 必須。関連エンティティのSys_id。 データタイプ:文字列 テーブル:workOrder [wm_order] デフォルト:sys_idが指定されていない場合は、すべてを返します。 |
| relatedEntity.role | 必須。関連エンティティのロールの説明。 有効な値:作業指示 データタイプ:文字列 テーブル:作業指示 [wm_order] |
| relatedParty | 必須。予約の連絡先のリスト。各連絡先はアレイ内のオブジェクトです。要求には、顧客アカウント情報を含むアイテムが少なくとも 1 つリストされている必要があります。 データタイプ:オブジェクトのアレイ |
| relatedParty.@referredType | 顧客のタイプ。 有効な値:個々 データタイプ:文字列 |
| relatedParty.id | 必須。作業指示書に関連付けられている連絡先のSys_idまたはexternal_id。 データタイプ:文字列 テーブル:連絡先 [customer_contact] |
| relatedParty.name | 連絡先の名前。 データタイプ:文字列 テーブル:連絡先 [customer_contact] |
| relatedParty.role | 必須。連絡先のロール。 可能な値:
データタイプ:文字列 テーブル:連絡先 [customer_contact] |
| 関連する場所 | 必須。予約に関連する場所のリスト。 データタイプ:オブジェクトのアレイ |
| relatedPlace.@referredType | 必須。場所のタイプ。例:市区町村。 データタイプ:文字列 テーブル:場所 [cmn_location] |
| relatedPlace.id | 必須。関連する場所のSys_id。 データタイプ:文字列 テーブル:場所 [cmn_location] |
| relatedPlace.name | 連絡先に関連する場所の名前。例:251 Reddy St, Darwin, CA 93522。 データタイプ:文字列 テーブル:場所 [cmn_location] |
| relatedPlace.role | 必須。場所ロールの説明。たとえば、作業指示書などです。 データタイプ:文字列 |
| タイムゾーン | 必須。指定された予約スロットを予約するときに使用するタイムゾーン。 日付タイプ:文字列 形式:米国/東部などの国/都市または地域の形式 |
| validFor | 必須。予約が有効な日付範囲。 データタイプ: オブジェクト |
| validFor.endDateTime | 必須。タイムスロットの終了日時。 データタイプ:文字列 形式:YYYY-MM-DD 00:00:00。例:2025-01-31 09:35:43。 |
| validFor.startDateTime | 必須。タイムスロットの開始日時。 データタイプ:文字列 形式:YYYY-MM-DD 00:00:00。例:2025-01-31 09:35:43。 |
ヘッダー
次のリクエストや応答ヘッダーは、この HTTP アクションにのみ適用されるか、またはこのアクションに別個の方法で適用されます。REST API で使用される一般的なヘッダーのリストについては、「 サポートされている REST API ヘッダー」を参照してください。
| ヘッダー | 説明 |
|---|---|
| 承認 | 応答本文のデータフォーマット。application/json のみをサポートします。 |
| ヘッダー | 説明 |
|---|---|
| Content-Type | 要求本文のデータ形式。application/json のみをサポートします。 |
ステータスコード
この HTTP アクションには、次のステータスコードが適用されます。REST API で使用される可能性のあるステータスコードのリストについては、「 REST API HTTP 応答コード」を参照してください。
| ステータスコード | 説明 |
|---|---|
| 200 | 成功。要求が正常に処理されました。 |
| 500 | 内部サーバーエラー。要求の処理中に予期しないエラーが発生しました。応答に、エラーに関する追加情報が含まれます。 |
応答本文のパラメーター
| 名前 | 説明 |
|---|---|
| category | 予約サービス構成用に構成されたレコードプロデューサーのSys_id。 データタイプ:文字列 保存場所:予約サービス設定 [sn_apptmnt_booking_service_config] テーブルの [カタログアイテム] フィールド。 |
| creationDate | 予約が作成された日時。 データタイプ:文字列 形式:YYYY-MM-DD 00:00:00。例:2025-01-31 09:35:43。 |
| href | 予約レコードへのハイパーリンク。別の予約オープン API 要求でこのリンクを使用して、予約を再スケジュールまたは削除します。 データタイプ:文字列 |
| ID | 予約のSys_id。 データタイプ:文字列 保存場所:予約サービス設定 [sn_apptmnt_booking_service_config] テーブル |
| lastUpdate | 予約が最後に更新された日時。 データタイプ:文字列 形式:YYYY-MM-DD 00:00:00。例:2025-01-31 09:35:43。 |
| relatedEntity | 予約の関連エンティティに関する詳細。 データタイプ:オブジェクトのアレイ |
| relatedEntity.@referredType | アイテムまたはサービスのタイプ。 データタイプ:文字列 保存場所:workOrder [wm_order] テーブル |
| relatedEntity.id | 関連エンティティのSys_id。 データタイプ:文字列 保存場所:workOrder [wm_order] テーブル |
| relatedEntity.role | 関連エンティティのロールの説明。 可能な値:作業指示 データタイプ:文字列 保存場所:workOrder [wm_order] テーブル |
| relatedParty | 予約の連絡先のリスト。各連絡先はアレイ内のオブジェクトです。 データタイプ:オブジェクトのアレイ |
| relatedParty.@referredType | 顧客のタイプ。 データタイプ:文字列 保存場所:連絡先 [customer_contact] テーブル |
| relatedParty.id | 作業指示書に関連付けられている顧客連絡先のSys_id。 データタイプ:文字列 保存場所:連絡先 [customer_contact] テーブル |
| relatedParty.name | 顧客の連絡先の名前。 データタイプ:文字列 保存場所:連絡先 [customer_contact] テーブル |
| relatedParty.role | 顧客連絡先のロール。 可能な値:
データタイプ:文字列 保存場所:連絡先 [customer_contact] テーブル |
| 関連する場所 | 関連する予約の場所の詳細。 データタイプ: オブジェクト |
| relatedPlace.@referredType | 予約の地理的な住所。 可能な値:GeographicLocation。 データタイプ:文字列 保存場所:場所 [cmn_location] テーブル |
| relatedPlace.id | 場所のSys_id。 データタイプ:文字列 保存場所:場所 [cmn_location] テーブル |
| relatedPlace.name | 連絡先に関連する場所の名前。例:100 South Charles Street, Baltimore, MD。 データタイプ:文字列 保存場所:場所 [cmn_location] テーブル |
| relatedPlace.role | 介入住所としての予約場所のロール。 可能な値:InterventionAddress データタイプ:文字列 保存場所:場所 [cmn_location] テーブル |
| 正常終了 | 要求が成功したかどうかを示すフラグ。 可能な値:
データタイプ:ブーリアン |
| タイムゾーン | 指定された予約スロットを予約または更新するときに使用されるタイムゾーン。 日付タイプ:文字列 形式:米国/東部などの国/都市または地域の形式 |
| validFor | 予約が有効な日付範囲。 データタイプ: オブジェクト |
| validFor.endDateTime | 予約の終了日時。 データタイプ:文字列 形式:YYYY-MM-DD 00:00:00。例:2025-01-31 09:35:43。 |
| validFor.startDateTime | 予約の開始日時。 データタイプ:文字列 形式:YYYY-MM-DD 00:00:00。例:2025-01-31 09:35:43。 |
cURL 要求
次の例は、新しい予約を作成する方法を示しています。
curl "https://instance.servicenow.com/api/sn_tmf_api/appointment/appointment" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data "{
\"validFor\": {
\"startDateTime\": \"2024-08-19 09:00:00\",
\"endDateTime\": \"2024-08-19 11:00:00\"
},
\"category\": \"e4c1116b3b810300ce8a4d72f3efc40f\",
\"relatedParty\": [
{
\"id\": \"eaf68911c35420105252716b7d40ddde\",
\"name\": \"Sally Thomas\",
\"role\": \"customer\",
\"@referredType\": \"Individual\"
}
],
\"relatedPlace\": {
\"id\": \"25ab9c4d0a0a0bb300f7dabdc0ca7c1c\",
\"name\": \"100 South Charles Street, Baltimore,MD\",
\"role\": \"interventionAddress\",
\"@referredType\": \"GeographicAddress\"
},
\"relatedEntity\": [
{
\"id\": \"48dbfbf9201f0250f877303e8a020dcd\",
\"role\": \"work order\",
\"@referredType\": \"WorkOrder\"
}
],
\"timeZone\": \"US/Arizona\"
}" \
--user 'username':'password'
応答:
{
"validFor": {
"startDateTime": "2024-07-19 09:00:00",
"endDateTime": "2024-07-19 11:00:00"
},
"category": "e4c1116b3b810300ce8a4d72f3efc40f",
"relatedParty": [
{
"id": "eaf68911c35420105252716b7d40ddde",
"name": "Sally Thomas",
"role": "customer",
"@referredType": "Individual"
}
],
"relatedPlace": {
"id": "25ab9c4d0a0a0bb300f7dabdc0ca7c1c",
"name": "100 South Charles Street, Baltimore,MD",
"role": "interventionAddress",
"@referredType": "GeographicAddress"
},
"relatedEntity": [
{
"id": "48dbfbf9201f0250f877303e8a020dcd",
"role": "work order",
"@referredType": "WorkOrder"
}
],
"timeZone": "US/Arizona",
"success": true,
"id": "feacb7f9201f0250f877303e8a020d38",
"href": "api/sn_tmf_api/appointment/appointment/feacb7f9201f0250f877303e8a020d38",
"creationDate": "2024-07-10 22:45:01",
"lastUpdate": "2024-07-10 22:45:01"
}