Messy intake wastes lawyer time and creates risk
Enquiries arrive as free-form emails and calls with half the information. Someone re-keys it, chases the rest, eyeballs conflicts, and guesses who should handle it — slow, inconsistent, and risky.
This solution structures intake automatically, flags likely conflicts for a human to confirm, and routes matters to the right team — turning a scattered process into a reliable one.
Enquiry → structure → conflict pre-check → route
- ✓ Structured field extraction
- ✓ Smart follow-up questions
- ✓ Conflict pre-screening
- ✓ Practice-area routing
- ✓ Completeness checks
- ✓ Summary for the assigned team
- ✓ Claude for extraction & Q&A
- ✓ Conflicts DB integration
- ✓ Matter / CRM system API
- ✓ Routing rules engine
- ✓ Human confirmation step
- ✓ Conflicts confirmed by a human
- ✓ No engagement auto-accepted
- ✓ PII handling controls
- ✓ Decision audit trail
- ✓ Escalation on ambiguity
Conflict pre-screen with human confirmation
The model proposes potential conflicts from the parties it extracted; acceptance is always a human decision, never automatic.
from conflicts import search_parties def triage(intake: dict) -> dict: # intake = extracted {parties, matter_type, jurisdiction, ...} hits = search_parties(intake["parties"]) # fuzzy match vs DB result = { "matter": intake, "possible_conflicts": hits, "route": route_for(intake["matter_type"]), "status": "needs_human_confirmation", # never auto-accept } return queue_for_confirmation(result)
Make intake fast, complete and safe
Feeds clean matter data into Document Drafting and Matter Summaries.