Skip to main content

Overview

Incidents (also called tickets) are the structured response layer in SchedKit. When a signal demands action, an incident tracks it: who opened it, its priority, SLA deadline, reply thread, and resolution status. Incidents and tickets are the same underlying resource/v1/tickets and /v1/incidents operate on the same NocoDB table. The naming is interchangeable.

Lifecycle

open → in_progress → resolved → closed
StatusMeaning
openCreated, awaiting response
in_progressBeing actively worked
resolvedFix applied, pending confirmation
closedFully closed

SLA timers

SLA due times are auto-set on creation by priority:
PrioritySLA
urgent1 hour
high4 hours
normal24 hours
low48 hours
Every incident response includes computed SLA fields:
{
  "sla_due_at": "2026-03-15T08:00:00Z",
  "sla_breached": false,
  "sla_status": "warning"
}
sla_status values: okwarning (within 20% of deadline) → breached

Customer status page

Every incident gets a customer_token — a 24-char nanoid. Share the public status URL with the affected customer:
https://schedkit.net/incidents/status/:customer_token
No login required. Shows title, status, priority, and reply thread (staff-facing replies are hidden).

Real-time stream

Subscribe to all incident events for the authenticated user:
curl -N https://schedkit.net/v1/incidents/stream \
  -H "x-api-key: $SCHEDKIT_KEY"
Events broadcast:
  • incident.created
  • incident.updated
  • incident.reply

Replies

Threaded replies are scoped per incident. Staff and customer replies are differentiated by author_type.
curl -X POST https://schedkit.net/v1/incidents/42/replies \
  -H "x-api-key: $SCHEDKIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"body": "Investigating now. ETA 20 minutes."}'

API Reference → Incidents

Full endpoint docs for CRUD, replies, and SSE stream.