AI Support Guide

Simpli Insights

Theme discovery and pattern analysis for customer support cases.

Insights helps support teams understand what customers are really asking about. Cluster cases into themes, detect emerging topics, suggest category taxonomies, and analyse distribution patterns — all powered by LLM analysis.

Simpli Insights provides theme discovery, trend detection, and category analysis for support case data.

Configuration

VariableDefaultDescription
APP_PORT8012Server port
LITELLM_MODELopenai/gpt-5-miniLLM model for analysis
MAX_CLUSTERS20Maximum number of theme clusters
MIN_CLUSTER_SIZE3Minimum cases per cluster
CORS_ORIGINS*Allowed CORS origins (comma-separated)

Start the server

simpli-insights serve

API endpoints

All endpoints are under the /api/v1 prefix.

POST /api/v1/themes

Discover themes from a batch of support cases.

Request:

{
  "cases": [
    {"id": "c-1", "subject": "Can't log in", "content": "Password reset not working"},
    {"id": "c-2", "subject": "Login broken", "content": "Getting 403 on sign-in page"},
    {"id": "c-3", "subject": "Account locked", "content": "Too many failed attempts"}
  ]
}

Response:

{
  "audit_id": "i-abc123",
  "total_cases": 3,
  "themes": [
    {
      "theme_id": "t-1",
      "name": "Authentication Issues",
      "description": "Login, password, and account access problems",
      "case_count": 3,
      "case_ids": ["c-1", "c-2", "c-3"],
      "sample_subjects": ["Can't log in", "Login broken"]
    }
  ],
  "uncategorized_case_ids": []
}

POST /api/v1/emerging

Detect emerging topics by comparing recent cases against a baseline.

{
  "recent_cases": [
    {"id": "c-10", "subject": "SSO not working", "content": "SAML error after update"}
  ],
  "baseline_cases": [
    {"id": "c-1", "subject": "Password reset", "content": "Standard password issue"}
  ]
}

POST /api/v1/categories

Suggest a category taxonomy from case data, or validate existing categories.

POST /api/v1/distribution

Analyse how cases distribute across existing categories.

GET /health

Health check.

Integration example

import httpx

client = httpx.Client(base_url="http://localhost:8012")

# Discover themes
themes = client.post("/api/v1/themes", json={
    "cases": [
        {"id": "c-1", "subject": "Billing question", "content": "Charged twice"},
        {"id": "c-2", "subject": "Double charge", "content": "Two charges on card"},
        {"id": "c-3", "subject": "Wrong amount", "content": "Billed $99 instead of $49"},
    ],
}).json()

for theme in themes["themes"]:
    print(f"{theme['name']}: {theme['case_count']} cases")

# Detect emerging topics
emerging = client.post("/api/v1/emerging", json={
    "recent_cases": recent_cases,
    "baseline_cases": last_month_cases,
}).json()

for topic in emerging["topics"]:
    print(f"NEW: {topic['topic']} ({topic['case_count']} cases, +{topic['growth_rate']:.0%})")

Next steps

On this page