showcase · tier 2 · ops & support
Support triage
The overnight queue gets classified with schema enums, first replies drafted, urgent tickets escalated.
The whole file
6 tasks · 4 waves · the plan falls out of the bindings, nothing is scheduled by hand.
t2-support-triage.nika.yamlsource
nika: v1workflow: id: support-triage description: "Ticket queue → typed triage → urgent escalation → triage board"model: ollama/qwen3.5:4b # local · zero key · swap for groq/llama-3.3-70b (triage wants speed)vars: queue_path: "./support/overnight-queue.json"secrets: oncall_webhook: source: env key: ONCALL_WEBHOOK_URL egress: # sanction the one send · the secret IS the URL - to: "nika:notify" host_from_self: truetasks: batch: invoke: tool: "nika:uuid" args: { version: v7 } queue: invoke: tool: "nika:read" args: { path: "${{ vars.queue_path }}" } triage: with: queue: ${{ tasks.queue.output }} infer: prompt: | Triage every ticket in this queue · ${{ with.queue }} For each · classify category and urgency, draft a 2-sentence first reply. schema: type: object required: [tickets] properties: tickets: type: array items: type: object required: [id, category, urgency, first_reply] properties: id: { type: string } category: { type: string, enum: [billing, bug, how-to, account, other] } urgency: { type: string, enum: [low, normal, high, critical] } first_reply: { type: string } urgent: with: tickets: ${{ tasks.triage.output.tickets }} invoke: tool: "nika:jq" args: input: "${{ with.tickets }}" expression: 'map(select(.urgency == "high" or .urgency == "critical"))' escalate: with: urgent: ${{ tasks.urgent.output }} batch: ${{ tasks.batch.output }} when: ${{ size(with.urgent) > 0 }} invoke: tool: "nika:notify" args: channel: webhook target: "${{ secrets.oncall_webhook }}" message: "Urgent tickets in triage batch ${{ with.batch }} · ${{ with.urgent }}" severity: warning board: with: tickets: ${{ tasks.triage.output.tickets }} batch: ${{ tasks.batch.output }} invoke: tool: "nika:write" args: path: "./support/triage-${{ with.batch }}.json" content: "${{ with.tickets }}"outputs: tickets: value: ${{ tasks.triage.output.tickets }} description: "The classified queue with drafted first replies"nika inspect · engine 0.105.0 · vendored graph, never re-derived
6 declared edges · 4 waves · the plan falls out of the bindings