予約›緊急挿入 + カスケード日程変更のプレビュー
緊急挿入 + カスケード日程変更のプレビュー
緊急ジョブを選んだ時刻にテクニシャンへ挿入した場合のカスケードを(書き込みなしで)計算します: 緊急ジョブがどこに着地するか + 押しのけられるすべてのジョブを、ビジネスローカルの日ごとにグループ化します。`displacement_mode=reassign` を指定すると、代わりに押しのけられた各ジョブを元のウィンドウのまま別の実行可能なテクニシャンに引き渡します(当日中の約束)— 代替キャパシティがないジョブは reschedule にフォールバックし `days` に残ります。`mode=overtime` は全員を当日中に維持します(テクニシャンが遅くまで働く)。`mode=next_day` はあふれた分を次の勤務日へ繰り越します。読み取り専用です — 繰り返し呼び出しても安全で、コミットは別のエンドポイントです。独立した機能です(EMERGENCY_RESCHEDULE_DESIGN.md を参照)。 409 の次のステップ: EMERGENCY_RESCHEDULE_SLOT_OCCUPIED — 着地ウィンドウが、カスケードが移動できないジョブ(別の P0、クルーまたは複数日ジョブ)でブロックされています: 別のテクニシャン(/candidates のランキングを辿る)または別の時刻を選んでください。押しのけが P0/クルー/複数日のアンカーに触れることは決してありません。EMERGENCY_RESCHEDULE_NOT_ELIGIBLE / CREW_UNSUPPORTED / NO_WORKING_DAY / IN_PAST — /candidates と同じ対処です。
引数
after_hours_overridebooleanbody任意
Place this P0 outside working hours / approved time-off — you have phoned
the technician and they agreed. Drops the non-working-day rejection; the
response then carries an AFTER_HOURS warning. Double-booking, service
area, required skills and the lead-tier rule still reject.
displacement_modeenumbody任意
押しのけられたジョブの扱い: reschedule(デフォルト — 後のウィンドウへずらす)または reassign(元の時刻のまま別の実行可能なテクニシャンへ引き渡す。キャパシティのないジョブは reschedule にフォールバックします)。
emergency_job_idstringbody任意
挿入する P0 ジョブの ID です。
▾jobobjectbody任意
A job that does not exist yet — the wizard's read-only preview before anything is written. Send this OR `emergency_job_id`.
modeenumbody必須
カスケードモード: overtime = 押しのけられたジョブを当日中に維持する(テクニシャンが遅くまで働く)。next_day = あふれた分を次の勤務日へ繰り越す。
start_atstringbody必須
希望する開始時刻 — ビジネスローカルのナイーブな日時(例: "2026-07-20T09:00:00")です。未来の時刻である必要があります。
technician_idstringbody必須
対象のテクニシャン(ビジネスに属している必要があります)です。
POST/v1/job-requests/emergency/preview
curl -X POST "https://api.crisphive.com/v1/job-requests/emergency/preview" \ -H "Authorization: Bearer chsk_test_4eC8xQ9mZ2pL7Ka0rT" \ -H "Content-Type: application/json" \ -d '{ "after_hours_override": true, "displacement_mode": "reschedule", "emergency_job_id": "9b2f6c3e-1a4d-4f0a-8f2e-7c5d1b3a9e01", "job": { "address": { "city": "San Francisco", "country": "US", "formatted": "123 Market Street, San Francisco, CA 94103", "latitude": 1, "line": "123 Market Street", "line2": "Suite 200", "longitude": 1, "postal_code": "94103", "state": "CA" }, "customer_id": "9b2f6c3e-1a4d-4f0a-8f2e-7c5d1b3a9e01", "demobilization_minutes": 15, "job_duration_minutes": 90, "job_type_id": "9b2f6c3e-1a4d-4f0a-8f2e-7c5d1b3a9e01", "mobilization_minutes": 15, "skill_ids": [ "9b2f6c3e-1a4d-4f0a-8f2e-7c5d1b3a9e01" ] }, "mode": "overtime", "start_at": "2030-06-14T09:00:00", "technician_id": "9b2f6c3e-1a4d-4f0a-8f2e-7c5d1b3a9e01" }'
リクエストボディ
{
"after_hours_override": ,
"displacement_mode": ,
"emergency_job_id": ,
"job": {
"address": {
"city": ,
"country": ,
"formatted": ,
"latitude": ,
"line": ,
"line2": ,
"longitude": ,
"postal_code": ,
"state":
},
"customer_id": ,
"demobilization_minutes": ,
"job_duration_minutes": ,
"job_type_id": ,
"mobilization_minutes": ,
"skill_ids": [
]
},
"mode": ,
"start_at": ,
"technician_id":
}
Bearer