A client-intake bot that filters enquiries before the fee-earner picks up.

Sector
Law & legal, 9 staff
Service line
Custom Build + AI Build
Build
About 6 weeks
Engagement
Mid-scope build + Web Care Growth retainer

~12 hrs down to ~2 hrs

Paralegal triage time each week, now spent on exception review

90%+

Of qualified enquiries get a fee-earner reply inside one working hour

<1 min

For a structured holding reply, at any hour

The brief

The firm is a nine-person solicitor practice running immigration, conveyancing and small-business employment work. It was receiving 60–80 enquiries a week across the website contact form, a WhatsApp Business number on the homepage, and inbound email. Each one had to be read, classified by practice area, conflict-checked at a basic level, and assigned to a fee-earner.

Triage was eating roughly twelve hours a week of paralegal time before any matter reached billable hands. Out-of-hours enquiries, which matter a great deal in immigration work, were dropping into the Monday queue cold.

The build

A multi-channel intake layer sitting in front of the firm's existing matter manager (Clio). A website widget, a WhatsApp Business webhook and an inbound-email parser all feed a single intake engine, which routes each enquiry through a qualification flow for its practice area.

The flow runs a basic conflict pre-check against the Clio contact graph, captures the structured fields a fee-earner actually needs (matter type, opposing party, jurisdiction, urgency, source of referral), and writes a triaged matter record straight into Clio with a draft first reply. Out of hours, the bot sends a holding message and books a callback slot. The firm's response window for new enquiries went from “next working day” to under an hour for 90%+ of qualified leads.

Stack

  • Next.js widget
  • Twilio WhatsApp
  • Claude Sonnet
  • Clio API
  • Postgres
  • n8n
Website widget Built in Next.js WhatsApp Business Twilio webhook Inbound email Parsed as it arrives Intake engine Qualifies by practice area Conflict pre-check in Clio Captures the fields that matter Clio matter record Triaged, with a draft first reply for the fee-earner Out of hours Holding message sent, callback slot booked Website widget WhatsApp Business Email parser Intake engine Qualifies by practice area Conflict pre-check in Clio Captures the fields that matter Clio matter record Triaged, with a draft first reply Out of hours Holding message, callback booked
How an enquiry moves through the intake layer. Dashed lines are the out-of-hours path.

What changed

  • Paralegal triage time dropped from ~12 hrs/week to ~2 hrs/week of exception review.
  • Out-of-hours capture rate increased materially. Every enquiry gets a structured holding response within the minute.
  • Fee-earner first response inside one working hour for 90%+ of qualified enquiries.
  • Conflicts are pre-flagged at intake, before a fee-earner ever opens the file.

More case studies

See all case studies

Recognise your business somewhere in here?

If this sounds familiar, start with a 25-minute call: what you're running today, where the friction sits, and whether a monthly retainer is the right shape for it.