CRM & analytics
Auto-lead creation
Every completed call runs through the post-call AI pipeline which outputs a structured analysis (summary, sentiment, lead temperature, entities). The pipeline then upserts a CRM lead:
- Contact match — existing contact looked up by
(workspace_id, phone_e164); created if not found. - Lead — one row per call, links to the contact, stores the AI verdict.
- Stage — defaults from temperature:
hot → qualified,warm → contacted,cold → new,dead → lost.
Kanban
The board at /workspace/crm shows leads by stage. Drag a card to move stages; the lead detail pane shows the originating call transcript + summary.
Analytics dashboards
/workspace/analytics ships these tiles (last 30 days):
- Total calls + inbound vs outbound split
- Average call duration
- Sentiment donut
- Lead temperature donut
- Daily call volume line chart
- Top agents by call count
Search
Full-text search over transcripts is exposed at /workspace/calls?q=.... Backed by a FULLTEXT index oncall_transcripts.text; results show the matching turn plus 2 turns of context.
Export
Every list view has a “Download CSV” button. Streaming export so a 50k-row CSV doesn't spike memory.

