Support Triage

Classify a support message by category and priority, and flag it for human review.

Endpoint
POST https://kovca.io/api/v1/support/triage

Request body

FieldTypeDescription
messagestring, requiredThe customer's message. 1–8,000 characters after trimming.
subjectstring, optionalThe ticket subject line. Up to 200 characters.
Example request
{
  "subject": "Refund not received",
  "message": "I returned my order two weeks ago and still haven't received my refund."
}

Response

200 OK
{
  "request_id": "req_8sJq2LwzVd0cYb1E",
  "category": "billing",
  "priority": "medium",
  "requires_human_review": false
}
FieldType
request_idstring
category"billing" | "technical" | "account" | "product" | "other"
priority"low" | "medium" | "high"
requires_human_reviewboolean

Categories

  • billing: Charges, invoices, payments, refunds, subscriptions, or pricing.
  • technical: Errors, bugs, outages, crashes, slow performance, or integration problems.
  • account: Signing in, passwords, account access, profile details, or account settings.
  • product: How a feature works, how to use the product, or a feature request.
  • other: Something else, such as shipping, partnerships, job inquiries, or spam.

How the result is determined

Kovca makes four separate judgments about the message: which category it belongs to, how urgent it is on a three-level scale, whether it threatens legal or regulatory action, and whether it reports a security problem. Each judgment has an internal likelihood. Kovca then applies these fixed rules:

  • category is the most likely category.
  • priority is the most likely urgency level: low (general question or feedback), medium (a problem that needs fixing, but the customer can keep working), or high (the customer is blocked right now: an outage, a broken core feature, or work they cannot complete). A likely security problem (probability ≥ 70%) is always high.
  • requires_human_review is true if any of these holds:
    • the probability of a legal or regulatory threat is at least 30%;
    • the probability of a security problem is at least 30%;
    • the top category has a probability below 60%;
    • the top urgency level has a probability below 50%.

These likelihoods are internal and are not part of the response, and they are not calibrated confidence scores. Treat the output as a routing aid, not a guarantee. Your own business rules decide what happens next.

Examples

curl https://kovca.io/api/v1/support/triage \
  -H "Authorization: Bearer $KOVCA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "subject": "Refund not received",
  "message": "I returned my order two weeks ago and still haven'\''t received my refund."
}'

Errors

  • 400 INVALID_REQUEST: message is missing or empty, a field is too long or the wrong type, or the body has an unknown field.
  • 401 UNAUTHORIZED: the API key is missing or invalid.
  • 429 RATE_LIMITED: the workspace rate limit was exceeded.
  • 503 SERVICE_UNAVAILABLE / 504 TIMEOUT: temporary; retry with backoff.

See Errors and limits for the full list.

Data handling

The message and subject are processed to produce the result. They are not stored by Kovca; only request metadata (status, latency, timestamp) is recorded.