Skip to content
Try Free →

Knowledge gaps detection

Last updated: 4 min read

What counts as an unanswered question

Any assistant reply the system marks as not having actually answered the question — most commonly a fallback reply ("I don't have specific info on that") when retrieval didn't turn up grounded content, across every channel including voice.

Where to see them

Analytics > Unanswered Questions. A live list of individual unanswered messages (not pre-grouped into topics), each showing:

  • The question and a snippet of how the bot responded.
  • Confidence score for that answer.
  • Channel and date.

Filter by date range (up to a year back) to review a wider window.

The Overview dashboard also surfaces your most-asked unanswered topics as a quick "Knowledge Gaps" card with a one-click "Train Agent on this" action per item.

Turning unanswered questions into training (opt-in)

Beyond the live list, AskVault can run a daily sweep that looks for questions asked repeatedly and turns the recurring ones into training suggestions:

  1. Scans roughly the last two weeks of conversations.
  2. Groups similar phrasings of the same underlying question into one topic.
  3. Keeps only topics asked at least twice in that window — one-off questions aren't auto-drafted.
  4. Drafts a grounded answer using your existing knowledge base, when the content supports one. If nothing in your knowledge base actually answers it, the topic is queued as "needs content" instead of guessing.
  5. Applies the result per your workspace's training mode:
    • Suggest mode. The draft waits in a review queue for one-click approval before it becomes a live Q&A pair.
    • Auto mode. A grounded draft is trained automatically; an ungrounded one still waits for you to add content.

This sweep is off by default per workspace — turn it on (suggest or auto) under your workspace's self-improvement settings to start getting drafted answers instead of just a list of gaps to fill by hand.

Webhook on gap

Subscribe to knowledge.gap_detected under Settings > Webhooks. It fires once per new recurring-topic suggestion the daily sweep creates — not once per individual unanswered message:

{
"event": "knowledge.gap_detected",
"workspace_id": "ws_xxx",
"question": "How do I cancel my plan?",
"occurrences": 4,
"failure_reason": "content_missing",
"auto_applied": false
}

Useful for routing recurring gaps to your content team in Slack or a tracker.

Fill workflow

  1. Pick a gap from the live Unanswered Questions list, the Overview card, or (if you've turned on the sweep) the training-suggestion review queue.
  2. Decide: add a Q&A pair, edit an existing source, or crawl new content.
  3. Edit in Knowledge Hub. New content is searchable within minutes of indexing.
  4. If it came from the training queue, approve or dismiss the draft.

Common pitfalls

Filling the wrong gap. Prioritize questions that keep recurring over one-off asks, unless a single high-stakes question deserves attention regardless of volume.

Adding redundant content. Existing content may already cover it — the real issue can be retrieval quality, not missing content. Try a more specific source, better headings, or an explicit Q&A pair for that exact phrasing.

Expecting the auto-train sweep to run without opting in. It's off by default per workspace. Turn on suggest or auto mode if you want drafted answers instead of a manual fill workflow.

FAQ

Does this work for the voice channel?

Yes — unanswered questions are logged per message regardless of channel, so voice conversations appear in the same list.

Can I export gaps to my project tracker?

Yes, via the knowledge.gap_detected webhook, which fires from the daily recurring-topic sweep.

Does the bot get smarter automatically?

Only if you turn on the auto-training sweep (suggest or auto mode). With it off, gaps surface for you to fill by hand. With it on, recurring gaps get a drafted grounded answer automatically — auto mode applies grounded drafts without review; suggest mode queues them for one-click approval.

Was this page helpful?