Back to work

Case operations · Local n8n build

Client Intake and Case Management.

An enquiry can arrive by form, phone, WhatsApp, or document upload. This n8n build gives each route a named place in the case lifecycle, with a lawyer approval step before contract feedback reaches a client.

n8n editor showing ten square-cornered sections for client intake, voice appointments, documents, follow-ups, contract review, lawyer approval, WhatsApp, and failure alerts
Actual local n8n canvas · 77 executable nodes, ten section notesOpen for full-size detail
Role
Workflow design & implementation
Tools
n8n, AI, Google Workspace, WhatsApp, Sarvam
Year
2026

Inside the automation · Eight webhook routes · one schedule · one error trigger

A case moves through named routes.

The polished canvas keeps one copy of each unique route and separates the work into ten sections. These stages show the intended handoffs; the imported build has not been run against live services.

01 · Intake

Turn an enquiry into a case

Validate the intake payload, classify the enquiry with an AI chain, create a case record in Google Sheets, notify the lawyer, and acknowledge the client.

  1. 01Webhook
  2. 02Validate
  3. 03AI classify
  4. 04Sheets
  5. 05Notify

02 · Voice

Move a call toward an appointment

Parse a Sarvam voice callback, extract the request, branch on appointment intent, create a Calendar event, and send a WhatsApp confirmation.

  1. 01Voice callback
  2. 02Extract
  3. 03Decide
  4. 04Calendar
  5. 05Confirm

03 · Documents

Collect and review evidence

The document route extracts text, prepares an AI summary, stores files in Drive, and updates the case. Contract review adds a lawyer approval path before a client response.

  1. 01Upload
  2. 02Extract text
  3. 03Summarize
  4. 04Store
  5. 05Approve

04 · Continuity

Follow up without losing status

A daily scheduler reads active cases and prepares follow-ups; separate status and WhatsApp routes handle updates and inbound questions. A failure-alert branch is present for review.

  1. 01Schedule
  2. 02Read cases
  3. 03Prepare reply
  4. 04Update
  5. 05Alert

The problem

A legal intake team can receive the same case through a form, voice call, document upload, or WhatsApp message. Someone then has to classify the enquiry, record the case, arrange an appointment, chase missing documents, and keep both the client and lawyer informed. When those steps sit in separate inboxes, a handoff can be missed without anyone noticing.

I built Client Intake and Case Management in n8n to map those handoffs. Its saved source canvas contained two copies of most routes. I prepared a separate, inactive 77-node copy that keeps one route for each event and organizes the graph into ten section notes. The source workflow remains untouched in local n8n.

How the workflow is designed

An intake webhook validates a new enquiry, sends it through an AI classification chain, writes a case record to Google Sheets, and prepares lawyer and client notifications. A voice callback route extracts call details and can move an appointment request into Google Calendar. A document route extracts text, summarizes it, stores the original in Google Drive, and flags missing material for a lawyer.

The other routes cover scheduled follow-ups, case-status changes, contract review with a lawyer approval step, inbound WhatsApp messages, and webhook verification. A separate error-trigger branch formats an alert. The cleaned canvas keeps eight unique webhook method-and-path combinations plus one scheduled trigger; the section notes make each route readable from trigger to handoff.

These are connected paths in the saved graph, not proof that external services completed their actions. The saved nodes have no bound n8n credentials, so the integrations still need validation. Many nodes select an error output without connecting that output, and the error-trigger branch is not configured as this workflow's error workflow.

What is verified locally

I inspected the local n8n graph and checked the polished copy's structure: 77 executable nodes sit inside ten section notes, no connection points to a removed node, and the eight webhook routes have distinct method-and-path pairs. The copy was imported under a distinct name and remains inactive. Both it and the original workflow have zero recorded executions in this local instance; neither has been run end to end.

The workflow therefore demonstrates the intended orchestration and a reviewable canvas. It does not establish that a case was created, an appointment booked, a document reviewed, or a client notified. There are no measured client outcomes to report.

What production readiness would require

I would first bind sandbox credentials and confirm each external system's payload shape and permissions. Then I would run synthetic scenarios for a valid enquiry, malformed intake, voice callback, missing document, appointment conflict, overdue follow-up, contract approval and rejection, repeated webhook delivery, and a provider outage. The tests need to verify actual records, messages, calendar events, webhook responses, and retry behavior rather than only a green n8n canvas.

Before activation, I would connect failure outputs to explicit recovery or escalation paths, configure and exercise a separate error workflow, secure the webhooks, and define who can approve AI-generated contract summaries. Only after those checks would I publish the routes and measure whether the workflow reduces missed handoffs or response time.

Next

Customer Service and Orders

Customer Service and Orders