es
Reservas›Clasificar técnicos para una inserción de emergencia P0

Clasificar técnicos para una inserción de emergencia P0

Devuelve los técnicos que podrían asumir el trabajo de emergencia en el inicio solicitado, clasificados primero por LLEGADA MÁS RÁPIDA (para un P0 la llegada prevalece sobre la eficiencia de ruta). La respuesta también incluye una `crew_recommendation` histórica (tamaño mediano de cuadrilla en trabajos completados comparables + aviso obligatorio — AC-2). Los técnicos con reservas siguen siendo candidatos — cada entrada incluye la vista previa de desplazamiento (qué trabajos de menor prioridad se empujarían, por día) que causaría comprometerse con ellos; total_moves=0 significa un hueco libre. Los trabajos P0 nunca se desplazan; los P1 solo por un P0. La ETA se estima desde la ubicación de inicio del técnico (sin GPS en vivo). Pase el technician_id elegido a emergency/preview + emergency/commit. 409 PRÓXIMOS PASOS: EMERGENCY_RESCHEDULE_NOT_ELIGIBLE — el trabajo no puede insertarse como emergencia (no es P0, ya empezó/se completó/se archivó, o no está cotizado): corrija el estado del trabajo o use una confirmación normal. EMERGENCY_RESCHEDULE_CREW_UNSUPPORTED — los trabajos de cuadrilla no pueden usar el flujo de emergencia (v1): dote personal mediante confirm/reassign. EMERGENCY_RESCHEDULE_NO_WORKING_DAY — la fecha elegida no tiene horas de trabajo: elija un día laborable. EMERGENCY_RESCHEDULE_IN_PAST — la hora de inicio ya pasó: elija una hora futura.

Argumentos

after_hours_overridebooleanbodyopcional
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.
emergency_job_idstringbodyopcional
UUID of the P0 job to place. Send this OR `job`, never both and never neither.
▾jobobjectbodyopcional
A job that does not exist yet — the wizard's read-only preview before anything is written. Send this OR `emergency_job_id`.
▾addressobjectbodyopcional
Service address for a caller who does not exist yet. Geocoded when it carries no coordinates.
citystringbodyopcional
countrystringbodyopcional
formattedstringbodyopcional
latitudenumberbodyopcional
linestringbodyopcional
line2stringbodyopcional
longitudenumberbodyopcional
postal_codestringbodyopcional
statestringbodyopcional
customer_idstringbodyopcional
UUID of an existing customer — their stored address is used. Send this OR `address`.
demobilization_minutesintegerbodyopcional
Demobilization minutes after the work — same rules as mobilization_minutes.
job_duration_minutesintegerbodyopcional
Hands-on work minutes. Optional when the job type carries a default.
job_type_idstringbodyopcional
UUID of the job type: supplies default_duration_minutes when job_duration_minutes is omitted. Optional — omitted, the business's default job type applies.
mobilization_minutesintegerbodyopcional
Mobilization minutes before the work — same fallback rules as quoteJobRequest.
skill_idsarray<string>bodyopcional
UUIDs of skills the work needs. Optional; up to 20.
limitintegerbodyopcional
Máximo de candidatos a devolver (por defecto 5, máx. 10).
modeenumbodyobligatorio
Cascade mode each candidate's displacement preview assumes: overtime = displaced jobs stay same-day; next_day = overflow rolls to the next working day.
start_atstringbodyobligatorio
Desired start — business-local wall clock. Seconds may be omitted and a space may replace the T; an offset is accepted only when it agrees with the business timezone (a disagreeing one is refused with JOB_REQUEST_INVALID_INPUT rather than guessed). Must be in the future.
POST/v1/job-requests/emergency/candidates
curl -X POST "https://api.crisphive.com/v1/job-requests/emergency/candidates" \
  -H "Authorization: Bearer chsk_test_4eC8xQ9mZ2pL7Ka0rT" \
  -H "Content-Type: application/json" \
  -d '{
  "after_hours_override": true,
  "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"
    ]
  },
  "limit": 1,
  "mode": "overtime",
  "start_at": "2030-06-14T09:00:00"
}'
Cuerpo de la solicitud
{
"after_hours_override": ,
"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": [
]
},
"limit": ,
"mode": ,
"start_at":
}

Respuestas