Use cases/Specialized

Legal Case Tracker (Turkish Family Law)

Track clients, cases, hearings, and events for a solo practice — SQLite-backed, fully local, with fuzzy search and natural-language queries.

Specializedadvanced~1.5h setup
Tools
memory_search
Plugins
case-tracker
Channels
telegramdesktop
Uses
pre_llm_callaudit

A solo or small-firm legal practice manages dozens of active cases. Commercial CRMs are over-built for the use case (and store sensitive data on someone else's servers). The case-tracker plugin gives a small practice a private, fully local case management system, with the agent acting as the natural-language interface.

What it does

  • SQLite database at ~/.flowly/case-tracker/cases.db — never leaves your hardware
  • Six tools: case_create, case_search (fuzzy), case_get, case_update, case_add_event, case_list
  • /case slash command for status, add, log, remove
  • pre_llm_call hook: when active cases exist, injects orientation into every conversation so the agent prefers case_search over generic memory tools when you mention a client name
  • Automatic audit log: every tool call recorded for compliance review

What you'll need

  • The bundled case-tracker plugin enabled
  • Telegram or Desktop channel
  • Optional: scheduled imports from your case files

Setup

1. Enable the plugin

bash
flowly plugins enable case-tracker
flowly service restart

Verify it's loaded:

bash
flowly plugins list
# Should show: case-tracker | enabled | provides_tools: case_create, case_search, ...

2. Create your first case

From any channel:

"Mehmet Demir adında yeni bir boşanma davası açayım — duruşma 15 Mayıs."

The agent calls case_create, confirms the record. Add subsequent events:

"Mehmet'in davasında bugün arabuluculuk toplantısı yapıldı, karşı taraf 30 gün uzatma istedi."

Logged via case_add_event.

3. Query naturally

Whether the case is fresh or six months old, the agent uses case_search first because the pre_llm_call hook orients it:

"Mehmet hakkında ne durumda?"

Returns the case detail + recent timeline. Same flow works for any client name, partial matches, or even informal references like "o anlaşmazlık geçen ay".

4. Slash commands

Send to Flowly
/case status # active case count + next 5 hearings /case search Çetin # fuzzy search by client name /case log <case_id> <text> # quick event addition /case remove <case_id> # archive (not delete) a case

Tips

  • Audit log is your friend. ~/.flowly/case-tracker/log.jsonl records every read and write. Required for some compliance regimes.
  • Backup the database. It's plain SQLite; nightly cp to encrypted storage is enough.
  • Don't expose case data over remote channels casually. Use Desktop or local Telegram for sensitive content. Avoid public Web chat for client-confidential conversations.
  • Customise the orientation prompt. The bundled pre_llm_call returns Turkish-family-law-specific text. Edit __init__.py if you practice a different domain — corporate, IP, etc. — to align the orientation.
  • Per-client memory tags. Tag related notes/emails/research with case:<id> so memory_search complements the structured DB. The agent will combine both seamlessly.