BuildBetter Docs

Topics

The Topics tab in Triage is BuildBetter's surface for live topics — real-time groupings of related customer signals from Slack and Intercom. Topics now lives inside Triage so you can see hot themes alongside individual signals, project decisions, and PRs in one inbox.

Info: Topics is in early access. Sources, manual actions, and notification surfaces will continue to grow.

What's a Topic?

A topic is an AI-generated grouping of related conversations about the same underlying issue, request, or theme. Each topic carries:

Field What It Means
Name AI-generated topic name (e.g., "Payment processing fails on iOS")
Description Optional elaboration
Type Bug / Complaint / Feature Request / Feedback / Discussion
Status Active / Stale / Resolved
Priority 1–5 numeric scale
Categories AI-assigned tags
Evidence Conversation groups with full message threads
Participants Customers and teammates in the conversations
Linked tickets Jira / Linear / GitHub issues attached

Lifecycle States

Topics move through these states automatically based on activity.

State When It Applies
Active Recent customer activity or a team response in progress
Stale An unanswered customer message older than your stale threshold (default 240 min)
Reactivated A stale topic that received a team response, returning to active
Resolved Manually archived, all linked conversations closed, or no activity for an extended period

A scheduled job checks staleness every 15–30 minutes and fires an in-app notification on transition to stale.

How Topics Are Created

Topics ingest from Slack and Intercom — historical backfill on setup, live ingestion afterward. Each new or updated conversation is classified by LLM into segments; each segment lands in a topic via matching.

You don't manually create topics — they emerge from real conversations.

Matching and Deduplication

BuildBetter prevents duplicate topics with a two-stage pipeline:

1. Embedding pre-filter

The segment text plus its enriched context (speaker names, companies, channel) is embedded and matched against active and stale topic embeddings. The top 3 similar candidates pass forward.

2. LLM verification

The LLM verifier inspects each candidate's name, description, source labels, and sample messages, then returns a confidence score. The bar is 0.6 with channel context present, 0.7 without.

3. Link or create

If the best confidence beats the threshold, the segment links to the existing topic. Otherwise a new topic is created.

Low-signal filtering: conversations with under 50 chars of substantive content (after stripping @mentions, HTML, greetings) are skipped.

The Tab View

The Topics tab in /triage lists active and recent topics. Each row shows:

Click any topic to open the detail pane.

What's Documented Here

How Topics Differs from Clusters

Topics Clusters
Source Real-time signal feed (Slack, Intercom) Embeddings-based grouping of historical signals
Refresh Continuous (live) On demand
Best for Spotting fast-moving issues right now Spotting durable themes over time
Inside Triage This tab The Clusters tab

Both are valuable for different reads on your customer base. Topics is your hot-issue surface; Clusters is your strategic-theme surface.

Tip: If a channel doesn't have a purpose set in Slack, set one — even a short description meaningfully sharpens topic names and matching. The classifier reads it on every ingestion event.