Insights

Browse, search, filter, and triage synthesized insights in Praxiom AI.

Overview

Insights are the structured output of synthesis. Each insight represents a validated finding from your research — a pain point, opportunity, feature request, user behavior pattern, or feedback theme. Praxiom provides full CRUD, semantic search, filtering, and batch operations so you can efficiently triage hundreds of insights during prioritization sessions.

How It Works

Browsing and Filtering

List insights with GET /api/insights?workspace_id={id}. The endpoint supports rich filtering:

ParameterDescription
insight_typeFilter by type: pain_point, opportunity, feature_request, user_behavior, feedback_theme
severityFilter by severity: low, medium, high, critical
is_archivedFilter archived/active insights (true or false)
min_frequencyMinimum number of sources that mention this theme (e.g. 3 for high-signal insights)
limitMax results (default 200, max 500)
offsetPagination offset

The response returns { insights: [...], total: N } sorted by creation date (newest first).

For natural language queries across your insight library, use POST /api/insights/search:

{
  "workspace_id": "your-workspace-uuid",
  "query": "What are the main onboarding friction points?",
  "limit": 10,
  "insight_type": null,
  "severity": null,
  "min_frequency": null
}

The search pipeline works in two stages:

  1. Semantic search — Embeds your query and searches the Pinecone vector store for the most relevant insights, preserving relevance ordering.
  2. Fallback — If vector search is unavailable, falls back to database text search across title and description fields using ILIKE.

Results are returned as { insights: [...], total: N, query: "..." }.

Semantic search shines when you use natural language questions like "Which users complained about pricing?" rather than exact keyword matches. The vector embeddings capture meaning, not just text overlap.

Individual Insight Operations

OperationEndpointDescription
CreatePOST /api/insightsManually create an insight
ReadGET /api/insights/{insight_id}Fetch a single insight
UpdatePATCH /api/insights/{insight_id}Edit notes, rating, severity, etc.
DeleteDELETE /api/insights/{insight_id}Permanently remove an insight

Batch Operations

During triage sessions, use POST /api/insights/batch to archive or unarchive multiple insights at once:

{
  "workspace_id": "your-workspace-uuid",
  "insight_ids": ["uuid-1", "uuid-2", "uuid-3"],
  "action": "archive"
}

The action field accepts archive or unarchive. The response reports { updated_count: N, insight_ids: [...] }.

Archiving does not delete insights. Archived insights are hidden from default list views but remain searchable and can be unarchived at any time.

Key Concepts

Insight Fields

FieldDescription
titleShort, descriptive summary
descriptionDetailed explanation with context
insight_typepain_point, opportunity, feature_request, user_behavior, feedback_theme
severitylow, medium, high, critical
frequencyNumber of sources that surfaced this theme
quotesDirect user quotes with source attribution
source_idsUUIDs of the research sources that contributed
impactOptional impact assessment
is_archivedWhether the insight is archived

Prioritization Workflow

A typical PM triage session looks like this:

  1. Filter by severity=high or min_frequency=3 to surface the strongest signals
  2. Search for specific product areas ("checkout flow", "mobile experience")
  3. Archive low-priority or duplicate insights in bulk
  4. Select the remaining high-value insights for recommendation generation

What's Next

Once your insights are triaged, generate evidence-backed recommendations in the Recommendations guide.

Was this helpful?