AI-powered legal billing analytics with advanced multi-agent architecture using LangGraph
Orchestrates the workflow, makes routing decisions, and coordinates between specialized agents
Expands abbreviations, clarifies ambiguous queries, and provides contextual recommendations
Generates optimized SQL queries, executes them safely, and provides intelligent summaries
When the user searches from an active datagrid listing, always call classify first:
{"query": "…", "listing": "matters"} (listing = active grid: clients, matters, timekeeper, rateSets, …)intent is wyzesearch → POST /convert-filter with the same query and stub.listingintent is wyzeassist → POST /query?stream=true with question, firm_id, listing, and Bearer authorization / idtoken headersResponse includes next_endpoint, use_stream, and routing_message so the FE does not guess.
Classify query intent before routing to WyzeSearch or WyzeAssist
Main endpoint for processing legal billing queries
Headers (required for WyzeCloud-backed features): authorization: Bearer … and idtoken: … — same as WyzeCloud; used for RBAC, rate resolver, firm config, and portfolio KPI calls. No server-side env fallback.
Streaming: Add ?stream=true to enable real-time streaming
System health check and status information
Detailed status of all agents in the system
Convert natural language queries to structured database filters
Portfolio: when data.table is portfolio, spread data.queryParams onto GET /firm/clients/portfolio. Do not send the raw NL query as search= (API returns 400).
Example data.queryParams: page=1&limit=20&portfolioTab=relationshipManager&relationshipManagerName=Rhonda+Compher