NestFleetDocs

AI Auto-Reply

After triage, NestFleet searches the knowledge base for known issues that match the case. When a high-confidence match is found and the case meets the auto-reply criteria, the system drafts a response — and either sends it automatically or queues it for team approval, depending on the product's configuration.

What auto-reply does

The auto-reply pipeline runs as a pg-boss job after triage completes. It performs three steps:

  1. Known-issue matching — runs a vector similarity search against the product's knowledge base using the case content as the query. Returns the top-k most similar articles and known issues.
  2. Reply generation — passes the original case and the matched knowledge to the LLM, which drafts a contextually accurate response in a helpful, professional tone. The draft respects the product's configured reply style (formal, casual, concise, etc.).
  3. Routing — depending on the confidence score and the product's approval mode setting, the reply is either sent immediately or placed into an approval queue.

Confidence threshold

The confidence threshold controls how certain the triage agent must be before auto-reply is triggered. It is configured per product in Settings → Triage → Confidence threshold.

Threshold rangeBehaviour
0.90 – 1.0Very conservative. Only the clearest matches trigger auto-reply. Most cases go to awaiting-lead.
0.75 – 0.89 (default: 0.80)Balanced. Handles routine questions and known issues automatically while escalating ambiguous cases.
0.60 – 0.74Aggressive. More cases are auto-handled but risk of incorrect replies increases.
Below 0.60Not recommended. Almost all cases will trigger auto-reply regardless of match quality.

Start with the default (0.80) and adjust based on the false-positive rate you observe in your rejection logs over the first two weeks of operation.

Known-issue matching

NestFleet uses embedding-based vector search (pgvector) to find relevant articles. When a case arrives, its content is embedded using the configured embedding model and compared against all knowledge base articles, known issues, and resolved past cases for the product.

The top-k results (default: 5) are passed as context to the reply generation step. The LLM uses this context to answer accurately without hallucinating — if no relevant context is found, the reply generation step is skipped and the case is routed to awaiting-lead.

The quality of auto-replies is directly proportional to the quality of your knowledge base. A well-maintained knowledge base with detailed runbooks and FAQs will produce significantly better auto-replies. See the Knowledge Base guide for how to build and maintain it.

Approval modes

Each product can be set to one of two approval modes in Settings → Triage → Auto-reply mode:

ModeBehaviour
Auto-sendThe reply is sent immediately when confidence meets the threshold. The case moves to auto-resolved. Team is notified but no action is required unless the customer replies.
Send for approval (default)The reply is drafted but held in an approval queue. A team member must review and approve before it is sent. Suitable for teams getting started with auto-reply.

Reviewing and editing a pending auto-reply

When a reply is pending approval, the case detail view shows a banner with the draft text. From there, a Support Lead or Operator can:

  • Approve as-is — sends the reply to the customer immediately
  • Edit and approve — modify the draft inline before sending
  • Reject — discard the draft and move the case to awaiting-lead
  • Regenerate — ask the LLM to produce a new draft (useful if context has changed)

All pending auto-replies are also listed in the Cases queue with the filter Status: auto-resolved (pending approval). This gives leads a single view of all drafts across all cases without needing to open each one individually.

What happens on rejection

When a pending reply is rejected:

  1. The draft is archived (visible in the case history but not sent)
  2. The case state changes to awaiting-lead
  3. The rejecting team member can add an optional note explaining why
  4. An audit event is recorded with the actor, timestamp, and note
  5. The assigned Support Lead receives an email notification

Rejection patterns are valuable feedback. If the same type of draft is repeatedly rejected, consider updating the relevant knowledge base article or adjusting the triage configuration.

Community tier footer

On the Community tier (self-hosted without a license key), auto-replies sent to customers include a small footer: "Powered by NestFleet". This is how NestFleet sustains development while remaining free and open-source. Upgrade to a paid license to remove the footer.