予約オープン API
Appointment Open API は、予約アプリケーションとやり取りできるようにする電気通信 API です。この API を使用して、予約を行い、利用可能なタイムスロットを検索します。
予約オープン API は、Open API TMForum TMF646 予約 REST API 仕様のServiceNow®実装であり、TM フォーラムによって適合性認定を受けています。この実装は、 TMF646 予約 API REST 仕様 R16.0.1 に基づいています。
- 予約 (com.snc.appointment_booking)
- フィールドサービス管理 (com.snc.work_management)
- Field Service Management for Telecommunications (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。例: |
| location | 予約の場所の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 | 指定された日時に利用可能な予約スロットが他にあるかどうかを示すフラグ。 有効な値:
データタイプ:ブーリアン |
| 検索結果 | 指定された検索タイムスロット内の予約可能な結果。 可能な値:
データタイプ:文字列 |
| status | 利用可能なタイムスロットの検索の完了ステータス。たとえば、「完了」などです。 データタイプ:文字列 |
| タイムゾーン | 指定された予約スロットの予約または更新時に使用されるタイムゾーン。 日付タイプ:文字列 形式:国/都市または地域の形式 (米国/東部など) |
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'
結果:
{
"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 | 必須です。アイテムまたはサービスのタイプ。 有効な値:作業指示のみ データタイプ:文字列 テーブル:作業指示 [wm_order] |
| relatedEntity.id | 必須です。関連エンティティのSys_id。 データタイプ:文字列 テーブル:workOrder [wm_order] デフォルト:sys_idが指定されていない場合はすべてを返します。 |
| relatedEntity.role | 必須です。ロール:関連エンティティの説明。 有効な値のみ:作業指示 データタイプ:文字列 テーブル:作業指示 [wm_order] |
| 関連パーティー | 必須です。予約の連絡先のリスト。各連絡先はアレイ内のオブジェクトです。要求には、顧客アカウント情報を含むアイテムが少なくとも 1 つリストされている必要があります。 データタイプ:オブジェクトのアレイ |
| relatedParty.@referredType | 顧客のタイプ。 有効な値:個々 データタイプ:文字列 |
| relatedParty.id | 必須です。作業指示書に関連付けられた連絡先のSys_idまたはexternal_id。 データタイプ:文字列 テーブル:連絡先 [customer_contact] |
| relatedParty.name | 連絡先の名前。 データタイプ:文字列 テーブル:連絡先 [customer_contact] |
| relatedParty.role | 必須です。連絡先のロール。 可能な値:
データタイプ:文字列 テーブル:連絡先 [customer_contact] |
| relatedPlace | 必須です。予約に関連する場所のリスト。 データタイプ:オブジェクトのアレイ |
| 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 | 予約レコードへのハイパーリンク。別の Appointment Open API 要求でこのリンクを使用して、予約を再スケジュールまたは削除します。 データタイプ:文字列 |
| ID | 予約のSys_id。 データタイプ:文字列 保存場所:予約サービス設定 [sn_apptmnt_booking_service_config] テーブル |
| 前回の更新 | 予約が最後に更新された日時。 データタイプ:文字列 形式: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.@referredType | 顧客のタイプ。 データタイプ:文字列 保存場所:連絡先 [customer_contact] テーブル |
| relatedParty.id | 作業指示書に関連付けられた顧客連絡先のSys_id。 データタイプ:文字列 保存場所:連絡先 [customer_contact] テーブル |
| relatedParty.name | 顧客連絡先の名前。 データタイプ:文字列 保存場所:連絡先 [customer_contact] テーブル |
| relatedParty.role | 顧客連絡先のロール。 可能な値:
データタイプ:文字列 保存場所:連絡先 [customer_contact] テーブル |
| relatedPlace | 関連付けられた予約の場所の詳細。 データタイプ: オブジェクト |
| 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"
}