Skip to main content
FeatureFactory
Docs Triage Bot

Docs

Triage Bot

The triage bot classifies incoming signals with AI and routes them to the right reviewers. Configure policies to decide which signals get triaged, how they are categorised, and who sees them.

How triage works

Every incoming signal is evaluated against your triage policies. A matching policy queues an AI classification job. The result - category, confidence, and summary - lands in the triage queue for human review.

Triage workflow

  1. 01Signal arrives - When feedback arrives through POST /api/v1/signals or the GitHub integration, FeatureFactory checks it against every active triage policy.
  2. 02Policy match - If a policy matches, a triage record is created in the pending state. The AI classification job is queued immediately.
  3. 03AI classification - The classification job reads the signal context and runs it through the configured LLM provider. It outputs a category, a confidence score between 0 and 1, and a plain-English summary.
  4. 04Human review - The triage appears in the Triage queue in the app. Assignees receive an in-app notification. A reviewer can approve or dismiss the triage from the queue or via the API.
  5. 05Action or close - Approved triages link back to the original signal record and appear in reporting. Dismissed triages are soft-deleted from the queue and do not affect metrics.

Triage states

StateMeaning
pendingThe triage record has been created but the AI classification has not completed yet.
classifiedThe AI has produced a classification with a category, confidence score, and summary. Awaiting human review.
approvedA team member approved the classification. The signal is marked as actioned and removed from the active queue.
dismissedA team member dismissed the triage. The signal is closed without action and will not re-enter the queue.

Triage policies

Policies define the rules that determine which signals enter the triage queue. Create and manage policies via the API or from the Triage section of the app.

Policy fields

match_type

Signal type to match: pr_opened, pr_merged, signal_received, or any.

conditions

Array of field-level matchers. Each matcher specifies a signal field, an operator (eq, contains, gte, lte), and a value.

action

What to do on match: create_triage (queue an AI triage record), notify (send a team notification), or both.

priority

Integer priority used to sort matched triages in the queue. Higher values surface first.

assignee_ids

Optional array of team member IDs. Matched triages are routed to these assignees. If empty, the triage is unassigned.

Example policy

{
  "match_type": "pr_merged",
  "conditions": [
    { "field": "quality_score", "op": "lte", "value": 49 }
  ],
  "action": "create_triage",
  "priority": 10,
  "assignee_ids": [42, 87]
}

This policy triages every merged PR that scores below 50. Triages are routed to team members 42 and 87.

API reference

Triage policies and triage records are fully manageable via the REST API. See the API Reference for GET /triage-policies, POST /triage-policies, PUT /triage-policies/{id}, POST /triages/{id}/approve, and POST /triages/{id}/dismiss.

Define the scope and actions that determine which issues require Triage review.
Review the source evidence and classification before approving, dismissing, or escalating the item.

Was this article helpful?

Your response enters the same customer insight queue used by product feedback.