TL;DR: You can build a working law firm intake pipeline in n8n in an afternoon. The pattern is a webhook that catches form submissions, a qualification and conflict-flag step, a write to Clio (Lead Inbox for Clio Grow, or the v4 API for Manage), an instant confirmation email or SMS, and a reminder chain for no-shows. Automate everything except the actual conflict-check decision and the fee/engagement call - those stay human. This is the technical build behind the strategy in automated legal intake and client intake and CRM for law firms.
What law firm intake software actually has to do
The job of intake software is to move a stranger from "filled out a form at 11pm" to "booked consultation with a clean record in your practice management system" without a human touching the keyboard until judgment is required. Most firms lose leads in the gap between those two states: the form lands in an inbox, someone copies it into Clio the next morning, and by then the prospect has called two other firms.
The five stages every build needs:
-
Capture - a web form or webhook that catches the submission the moment it happens.
-
Qualify and flag - sort the lead by practice area and budget signals, and surface any conflict-of-interest red flags for a human to clear.
-
Write to the system of record - create the contact and, when appropriate, the matter in Clio so nothing lives in a spreadsheet.
-
Respond instantly - an automatic email or SMS within seconds, not the next business day.
-
Follow up - a reminder chain for unbooked or no-show leads so they do not go cold.
You can buy a packaged tool that does this (Lawmatics, Law Ruler, Clio Grow's own forms). The reason to build it in n8n instead is control: your qualification logic, your branching, your message timing, and no per-seat pricing creep as the firm grows. The tradeoff is you own the maintenance. If you want the no-code-extension version that sits on top of Clio Grow, read Clio Grow + Zapier automation first - the n8n build here is the more flexible sibling of that approach.
The stack: n8n plus Clio
n8n is the orchestrator. There is no official first-party Clio node, so every Clio interaction runs through n8n's HTTP Request node against Clio's REST API. That sounds like a downside; it is actually the opposite, because it means you are never waiting on a vendor to expose the field you need.
Two Clio surfaces matter here, and they are not the same product:
-
Clio Grow has a Lead Inbox API. You POST a JSON payload to the lead inbox endpoint and the lead appears in Grow exactly as if it came from a Grow form. This is the simplest way to land a new intake lead, and it is the right target if your firm runs intake through Grow. See the Clio Grow Lead Inbox API guide.
-
Clio Manage is the practice management system with the full v4 REST API at
https://app.clio.com/api/v4/. This is where contacts (/contacts) and matters (/matters) live, and it uses OAuth 2.0 bearer tokens. See the Clio API v4 reference.
Pick the target based on where your intake team actually works. A common setup: land the raw lead in Clio Grow's inbox for the intake coordinator's pipeline view, and only promote it to a Manage contact and matter once it has been qualified and conflict-cleared. Do not create a Manage matter for every form fill - you will pollute your matter list with tire-kickers and conflicts you never cleared.
Authentication notes that will bite you
Clio Manage uses OAuth 2.0. In n8n, store the token using the built-in OAuth2 credential type rather than pasting a bearer token into a header, so n8n handles refresh for you. Clio's regions are separate: the US, EU, Canada, and other deployments have different base URLs and separate developer accounts, so confirm your firm's region before you hardcode app.clio.com. Getting this wrong produces a 401 that looks like a credential problem but is actually a region mismatch.
The workflow, node by node
Here is the actual n8n workflow outline. Build it in this order; each node feeds the next.
1. Webhook (Trigger)
- Method: POST
- Path: /intake
- Point your web form (or a Form Trigger node) at this URL
2. Set / Edit Fields (normalize)
- Map raw form fields to clean keys:
full_name, email, phone, practice_area,
opposing_party, matter_summary, source
3. Code (qualify + flag)
- Score the lead, detect practice area,
set conflict_flag = true if opposing_party
matches anything in your watchlist
4. IF (qualified?)
- true -> continue
- false -> Respond + tag as "unqualified", stop
5. HTTP Request (Clio Grow Lead Inbox)
- POST the lead JSON to the Grow inbox endpoint
6. IF (conflict_flag == true)
- true -> Slack/email the intake lawyer, HOLD
- false -> continue to matter creation
7. HTTP Request (Clio Manage - create contact)
- POST /api/v4/contacts (OAuth2 credential)
8. HTTP Request (Clio Manage - create matter)
- POST /api/v4/matters, link to the contact id
9. Send Email / SMS (instant confirmation)
- Fires within seconds of submission
10. Wait + IF (reminder chain)
- No booking after 24h -> reminder 1
- No booking after 72h -> reminder 2 + flag for human call
The qualification Code node is where your firm's actual judgment lives. A minimal version that branches on practice area and raises a conflict flag:
const lead = $input.first().json;
// crude budget/fit signal - tune to your firm
const qualified =
lead.practice_area &&
lead.matter_summary &&
lead.matter_summary.length > 20;
// conflict watchlist would normally come from a
// data store; inline here for clarity
const watchlist = ["acme corp", "john doe"];
const opposing = (lead.opposing_party || ").toLowerCase();
const conflict_flag = watchlist.some(name =>
opposing.includes(name)
);
return [{
json: {
...lead,
qualified,
conflict_flag,
},
}];
Note what this code does and does not do. It flags a possible conflict by matching the opposing party against a watchlist. It does not clear the conflict. That is the line you do not cross with automation.
What to automate and what to keep human
Automate the mechanical work: data entry, the confirmation message, scheduling links, reminder timing, and routing the lead to the right attorney's queue. These are deterministic and low-risk, and they are exactly the steps where human delay costs you clients.
Do not automate the conflict-check decision. Run the flag automatically - cross-reference the opposing party and related names against your existing client and matter data - but a human clears or escalates every hit. A false negative here is not a missed lead, it is a potential bar complaint or a disqualification motion. Surface the flag prominently, block matter creation until it is cleared, and log who cleared it. The automation's job is to make sure the check happens and is visible, not to make the call.
Also keep human: the fee conversation and the engagement decision. An intake bot can collect budget signals and book the consult, but quoting a fee or accepting representation through an automated flow is how firms end up bound to engagements they never reviewed. Let the automation get the qualified, conflict-clear prospect into a booked consultation with full context, then hand off.
The general rule: automate capture, routing, communication, and record-keeping. Keep human anything that creates a legal or ethical obligation. If you are mapping this across more of the firm, legal workflow automation: the 5 processes to fix first ranks the rest.
Instant follow-up and the reminder chain
Speed is the entire game in the response step. The lead that gets an answer in seconds books at a dramatically higher rate than the one that waits until the next morning, and an n8n webhook responds in seconds by default - so the only reason your firm is slow is that no one built this yet.
Keep the first message short and human-sounding: confirm receipt, set the next step (a booking link or a "we will call you within X hours"), and nothing else. Do not dump a fee schedule or a questionnaire into the first touch.
The reminder chain catches the leads that do not book immediately. Use n8n's Wait node to pause the execution, then an IF node to check whether a booking exists before sending. A practical cadence:
-
+24 hours, no booking: a single nudge with the scheduling link.
-
+72 hours, no booking: a final nudge, plus a task assigned to a human to make a personal call.
After that, stop automated contact and let a person decide. Two unanswered automated reminders is the point where more messages annoy rather than convert, and a phone call from an actual person is what closes the warm-but-undecided lead.
Why build this instead of buying it
Packaged legal intake tools work, and for a solo or very small firm they are often the right call - you get forms, CRM, and follow-up in one subscription with no maintenance. Build in n8n when you have outgrown that: when your qualification logic is too specific for a form builder's dropdowns, when you are paying per seat for features you do not use, or when you want intake data flowing into systems the packaged tool does not integrate with.
The honest downside is ownership. A self-built pipeline is your responsibility when Clio changes an API, when a credential expires, or when a form field gets renamed. Budget for that. But the payoff is a system that does exactly what your firm does, costs the same whether you run 50 or 5,000 intakes a month, and never holds your workflow hostage to a vendor's roadmap.
If you want this built and maintained without standing up an n8n instance yourself, that is the kind of thing we do at Aluslabs - the workflow above is a real starting point, not a sales diagram. Take it, adapt the qualification logic to your practice areas, and wire it to your Clio region.
FAQ
Is there an official n8n node for Clio?
No. As of 2026 there is no first-party n8n Clio node, so you connect through n8n's HTTP Request node against Clio's REST API. Use the built-in OAuth2 credential type for Clio Manage so n8n manages token refresh, and POST JSON to the Clio Grow Lead Inbox endpoint for Grow.
Should I send leads to Clio Grow or Clio Manage?
Send raw, unqualified leads to the Clio Grow Lead Inbox so they appear in your intake pipeline. Only create a Clio Manage contact and matter after the lead is qualified and the conflict flag is cleared. Creating a Manage matter for every form fill clutters your matter list with leads you never vetted.
Can the workflow run the conflict check automatically?
It can run the flag automatically by matching the opposing party and related names against your existing client and matter data, but a human must clear or escalate every hit. The automation's role is to guarantee the check happens and is visible, then block matter creation until someone signs off. Never let automation clear a conflict on its own.
How fast should the first follow-up go out?
Within seconds. An n8n webhook responds immediately, so your confirmation email or SMS can fire the moment the form is submitted. Faster first response correlates strongly with higher booking rates, and the whole point of this build is closing the gap between submission and reply.
Do I need to self-host n8n for this?
No. The same workflow runs on n8n Cloud or a self-hosted instance. Self-hosting gives you more control and avoids execution-based pricing at high volume; n8n Cloud removes the maintenance burden. For a firm just starting with intake automation, Cloud is usually the faster path to live.
What about Clio's regional API differences?
Clio runs separate deployments for the US, EU, Canada, and other regions, each with its own base URL and developer account. Confirm your firm's region before hardcoding app.clio.com, because a region mismatch produces a 401 that looks like a credential error but is not.