What you'll build
By the end of this guide, you'll have a single form that carries a lead from first inquiry through an active case to close. Prospective clients submit a case inquiry, the firm runs a conflict check and gets an engagement letter signed, and the same record becomes the client's ongoing case file, with status updates, attorney assignment, and document exchange all happening in one place. Two status guards keep the pipeline honest: a case can't be marked "qualified" until the conflict check clears, and it can't go "active" until the engagement letter is signed. A role-based portal gives clients, attorneys, and admin staff each their own view of the same data.
π‘ Note: This workflow picks up after a lead is captured. If you need AI to score and route inbound leads before they reach this stage, see how to build an AI-powered lead qualification system instead. This guide is about what happens once a lead becomes a case.
When to use this
Your intake form and your case management are two disconnected tools, so a "qualified" lead has to be re-entered somewhere else before anyone can actually work the case
Conflict checks or engagement letters get skipped because nothing stops a case from moving forward without them
Clients keep calling or emailing to ask "what's happening with my case?" because they have no way to check status or see shared documents themselves
Same-day emergency inquiries sit in a general inbox instead of getting triaged immediately
You want attorneys to work from their own caseload and deadline list instead of scrolling through the firm's entire pipeline
Part 1 β Build the case intake and case file form
This is the only form in the entire workflow. Prospective clients fill out the public section when they submit an inquiry. Two fields, a case status note and a shared documents upload, are also visible to the client later, but only the firm fills them in. Everything else is an admin-only case management section the firm uses to run the case. Magic Create can generate the whole structure, admin-only section included, from one prompt.
1. Create a new project: From your Formaloo homepage, start a new project with Form. It comes with one form already attached, which is the fastest starting point for this workflow.
2. Open Magic Create: From your Formaloo homepage, click Magic Create. Describe your form in text (or paste the prompt below), then click Create.
Build a law firm intake and case file form. Public section: full name, email address, phone number (short text), what type of legal case they need help with (single choice: Personal injury, Family law, Criminal defense, Business & commercial, Real estate, Immigration, Estate planning, Employment, Other), which state their case is in (dropdown of US states plus Other), how urgent their situation is (single choice: Emergency β need help today, Urgent β this week, Standard β no rush), a long text description of their situation, whether they've already consulted another attorney about this matter (yes/no), the name of that attorney or firm (short text, only relevant if yes), whether they consent to be contacted about this matter (yes/no), and a file upload for supporting documents. Add two fields the client will see later but only the firm fills in: a case status update note (long text) and a shared documents file upload for anything the firm sends back. Add an admin-only case management section: case status (dropdown: New lead, Under review, Qualified β case opened, Active case, On hold, Closed β won, Closed β settled, Closed β declined), assigned attorney (assignee field), case number (short text), conflict check status (dropdown: Pending, Cleared, Conflict identified), opposing party or other parties involved (short text), engagement letter status (dropdown: Not sent, Sent, Signed), billing arrangement (dropdown: Contingency, Hourly, Flat fee, Retainer), key deadline or statute of limitations (date), referral source (dropdown: Website, Google search, Referral, Social media, Other), and internal notes (long text).
3. Verify your fields: Your form should now look like the table below. Magic Create will have generated most of this structure automatically. Open each field's settings and check that the field ID matches exactly, since logic, emails, and the PDF template all reference these IDs.
Field (question form) | Field ID | Type | Access |
What's your full name? |
| Short text | Public |
What's your email address? |
| Short text | Public |
What's your phone number? |
| Short text | Public |
What type of legal case do you need help with? |
| Single choice | Public |
Which state is your case in? |
| Dropdown | Public |
How urgent is your situation? |
| Single choice | Public |
Tell us about your situation |
| Long text | Public |
Have you already consulted another attorney about this matter? |
| Yes/No | Public |
Name of attorney or firm previously consulted |
| Short text | Public, hidden unless the answer above is Yes |
Do you consent to be contacted about this matter? |
| Yes/No | Public |
Upload any documents related to your case (optional) |
| File upload | Public |
Case status update for you |
| Long text | Client-visible, firm-filled |
Documents shared with you |
| File upload | Client-visible, firm-filled |
Case status |
| Dropdown | Admin only |
Assigned attorney |
| Assignee | Admin only |
Case number |
| Short text | Admin only |
Conflict check status |
| Dropdown | Admin only |
Opposing party / other parties involved |
| Short text | Admin only |
Engagement letter status |
| Dropdown | Admin only |
Billing arrangement |
| Dropdown | Admin only |
Key deadline / statute of limitations |
| Date | Admin only |
Referral source |
| Dropdown | Admin only |
Internal notes |
| Long text | Admin only |
π See what admin-only fields are and how they help for how the case management section behaves differently from the public fields.
4. Publish the form: Click Publish in the island bar at the top of the editor.
Part 2 β Create your email templates
Nine templates cover the full lifecycle: confirming a new inquiry, alerting the intake team, flagging emergencies, nudging attorneys past the two guard points, notifying clients of status and document changes, and reminding attorneys of upcoming deadlines. Build all nine now so they're ready to attach to logic in Part 4.
1. Open the email template editor: Click your profile icon β Apps & integrations β Custom email templates β Add new template.
2. Build each of the nine templates: Give each a name, subject line, and design, using answer piping (@field_id) to personalize the content. Save each one.
New lead confirmation (to the client): subject "We've received your case inquiry, @full_name." A warm, reassuring confirmation that their @case_type inquiry in @jurisdiction was received, with no legal advice or promises about outcomes. It acknowledges urgency directly if @urgency_level is Emergency.
New lead notification (to the intake team): subject "New intake: @case_type in @jurisdiction (@urgency_level)." A factual internal summary with a key-value table of @full_name, @case_type, @jurisdiction, and @urgency_level, ending with a call to review the lead and run a conflict check.
Emergency case alert (to admin): subject "π¨ Emergency case: @full_name needs help today." An urgent, high-priority internal alert with case type, jurisdiction, and a short excerpt of the situation.
Conflict check warning (to the assigned attorney): subject "Conflict check needed before opening case @case_number." A direct nudge that someone tried to qualify the case while @conflict_check_status isn't Cleared, and to complete the check against @opposing_party first.
Engagement letter reminder (to the assigned attorney): subject "Engagement letter still needed for @full_name's case." A short, direct nudge that the case can't move to Active until the engagement letter is signed.
Case status update (to the client): subject "Update on your case, @full_name." A warm status update reflecting the new @case_status, referencing @case_update_notes if the attorney left a note, without over-promising outcomes.
New documents shared (to the client): subject "New documents available for your case." A brief, friendly nudge to log into the portal and review what the firm shared.
New client documents uploaded (to the assigned attorney): subject "@full_name uploaded new documents." A one- to two-sentence factual internal notice that the client added a document after their initial submission.
Deadline reminder (to the assigned attorney): subject "Reminder: @key_deadline is approaching for @full_name's case." A direct internal reminder naming the case number and prompting review before the deadline.
π See how to create and send custom email templates for the full template editor walkthrough, including how AI can generate the HTML design from a prompt.
Part 3 β Create your PDF template
One PDF template turns any case record into a case file summary you can export any time, for a client file, for court, or for an audit trail. It isn't tied to a specific status change, so build it section by section and pull in fields with answer piping as you go.
1. Open the PDF template editor: Click your profile icon β Apps & integrations β Custom PDF templates β Add new template.
2. Build the client information section: Add @full_name, @email, @phone_number, and @referral_source.
3. Build the case details section: Add @case_type, @jurisdiction, @urgency_level, @opposing_party, and the full @case_description.
4. Build the prior counsel and consent section: Add @consulted_other_attorney and @other_attorney_name, then an inset block for @contact_consent.
5. Build the case management section: Add @case_status as a status badge, plus @assigned_attorney, @conflict_check_status, @engagement_letter_status, @billing_arrangement, @key_deadline, and @case_update_notes.
6. Build the document exchange section: List @supporting_documents under a "Submitted by client" heading and @shared_documents under a "Shared by the firm" heading.
7. Build the internal notes and footer: Add @internal_notes, pipe @case_number and the built-in @submission_date variable into the header, and add a confidentiality line to the footer.
8. Name and save your template.
π See how to create PDF templates to turn responses into documents and how to generate custom PDFs using templates for the full editor walkthrough.
Part 4 β Automate guards, routing, and notifications with advanced logic
This is where the two guard points and every notification come together. Each rule is broken out on its own below, then combined into one prompt for Magic Logic to generate all at once.
1. Open Magic Logic: In the form editor, open Advanced logic from the form settings panel on the right side, then go to the Logic tab. Click Magic Logic in the top right corner.
2. Reveal the prior attorney field: If "Have you already consulted another attorney about this matter?" is Yes, show "Name of attorney or firm previously consulted." Keep it hidden by default.
3. Show the consent warning: If "Do you consent to be contacted about this matter?" is No, show a warning that you can't proceed without consent. Keep it hidden by default.
4. Set the starting pipeline stage: On submit, set case status to "New lead."
5. Send the emergency alert: If urgency level is "Emergency β need help today," immediately send the "Emergency case alert" email to the admin team.
6. Add the conflict check guard: Before case status can move to "Qualified β case opened," require conflict check status to already be "Cleared." If someone tries to advance it while conflict check status is "Pending" or "Conflict identified," send the "Conflict check warning" email to the assigned attorney instead of allowing the change.
7. Add the engagement letter guard: Before case status can move to "Active case," require engagement letter status to already be "Signed." If it isn't, send the "Engagement letter reminder" email to the assigned attorney instead of allowing the change.
8. Auto-assign qualified cases: If case status is changed to "Qualified β case opened" and assigned attorney is empty, assign the record to the intake attorney on rotation.
9. Send client status notifications: Whenever case status changes to any new value, send the "Case status update" email to the client's email field.
10. Send document exchange notifications: Whenever "Documents shared with you" is updated by staff, send the "New documents shared" email to the client. Whenever "Upload any documents related to your case" is updated after the initial submission, send the "New client documents uploaded" email to the assigned attorney.
11. Send deadline reminders: 14 days and again 3 days before the key deadline / statute of limitations date, send the "Deadline reminder" email to the assigned attorney.
12. Combine steps 2β11 into one prompt: Paste the prompt below into Magic Logic and click Generate rules.
Hide "Name of attorney or firm previously consulted" by default; show it only when "Have you already consulted another attorney about this matter?" is Yes. If "Do you consent to be contacted about this matter?" is No, show a warning that we can't proceed without consent. When the form is submitted, set case status to "New lead," send the "New lead confirmation" email to the client's email field, send the "New lead notification" email to the intake team, and if urgency level is "Emergency β need help today," also send the "Emergency case alert" email to the admin team. If someone tries to change case status to "Qualified β case opened" while conflict check status is not "Cleared," send the "Conflict check warning" email to the assigned attorney instead of allowing the change. If someone tries to change case status to "Active case" while engagement letter status is not "Signed," send the "Engagement letter reminder" email to the assigned attorney instead of allowing the change. When case status is changed to "Qualified β case opened" and assigned attorney is empty, assign the record to the intake attorney on rotation. Whenever case status changes to any new value, send the "Case status update" email to the client's email field. Whenever "Documents shared with you" is updated by staff, send the "New documents shared" email to the client. Whenever "Upload any documents related to your case" is updated after the initial submission, send the "New client documents uploaded" email to the assigned attorney. Send the "Deadline reminder" email to the assigned attorney 14 days and again 3 days before the key deadline / statute of limitations date.
13. Review and approve each rule: The AI previews every rule it built. Approve, redo, or cancel each one individually, then confirm the guard rules from steps 6 and 7 are blocking the status change rather than just sending a warning alongside it.
14. Save your logic: Click Save in the top right corner.
π See what is logic in Formaloo and how to add advanced logic to your form for more on how On submit and On update rules work. For the full list of supported variables, see how to dynamically pull form data into custom emails, PDFs, and AI prompts.
Part 5 β Activate the portal and add roles
Turn the project into a portal and set up the three roles it runs on before building any pages.
1. Activate the portal: Open your project, click the gear icon in the top-right corner, and select Activate client portal. Click Manage users, then Setup wizard, and connect a user directory.
2. Add user roles: In your user directory, add three roles: Client, Attorney, and Admin. This lets you control page access and data filters by role.
π See how to create and assign user roles in your portal for the full walkthrough.
Part 6 β Build the client pages
These are the only pages a client role ever sees: submit the inquiry, then track status and documents on their own case.
1. Add "Submit a case inquiry": A public page with the form block. No login is required, since submitting is what creates the client's account.
2. Add "My case status": A table restricted to the logged-in client's own record, showing case status and any notes the attorney left.
3. Add "My documents": The same restriction, showing only the supporting and shared documents columns, so clients can drop in a file or check what the firm shared without reading through case notes.
π‘ Pro tip: Each client sees only their own case. No one else's records appear. See how to let users view and edit their own data in your portal.
Part 7 β Build the attorney pages
Attorneys work from their own caseload and deadline list, not the firm's full pipeline.
1. Add "My assigned cases": A Kanban board filtered to assigned attorney = logged-in user, columns grouped by case status, cards ordered by key deadline.
2. Add "My upcoming deadlines": A table filtered to assigned attorney = logged-in user and case status not any "Closed" variant, sorted by key deadline ascending.
π‘ Pro tip: Each attorney sees only records assigned to them. See how to let users view and edit their own data in your portal.
Part 8 β Build the admin pages and set page access
Admin staff run the whole firm's pipeline, including emergency triage and reporting, from these pages.
1. Add "All cases": A Kanban board with no filter, grouped by case status, cards ordered by submission date. Dragging a card between columns updates case status and triggers the guard and notification logic automatically.
2. Add "Conflict checks pending": Filtered to conflict check status not Cleared.
3. Add "Engagement letters pending": Filtered to engagement letter status not Signed and case status = "Qualified β case opened."
4. Add "Emergency intakes": Filtered to urgency level = Emergency, newest first.
5. Add "Upcoming deadlines": A firm-wide table filtered to case status not any Closed variant, sorted by key deadline ascending.
6. Add "Closed cases": Filtered to the three Closed statuses, newest first, as a running archive.
7. Add "Practice area overview": A chart grouped by case type.
8. Add "Referral sources": A chart grouped by referral source.
π See how to create a Kanban board and how to sort and filter your submissions data for the underlying data views used on these pages.
Note: Setting a custom domain for the portal is available on the Business plan or through the Brand removal add-on, if you want the portal to live on your own URL instead of the default Formaloo one.
9. Set page access: On the public "Submit a case inquiry" page, set access to Public. On every other page, restrict access to Logged-in users and the matching role (Client, Attorney, or Admin) so each group only sees its own pages.
π See how to page access on pages in portals for a walkthrough of setting page-level permissions by role.
What you now have
A prospective client can submit an inquiry and, without any manual re-entry, watch that same record become their case file. Nothing gets qualified without a cleared conflict check, and nothing goes active without a signed engagement letter. The workflow enforces both instead of relying on someone remembering to check. Attorneys work from their own caseload and deadline list, clients can check status and exchange documents without a phone call, and admin staff run the whole firm's pipeline, including emergency triage and practice area reporting, from one portal.
Ready-to-use templates
Don't build this from scratch β we've already put it together for you.
AI lead qualification & scoring form β scores and routes inbound leads with AI before they reach a human. Pair it upstream of this workflow so only qualified inquiries land in your case intake form.
Employee request workflow β routes internal requests by type and tracks approvals from one admin view. The same status-and-assignee routing pattern used for case status and assigned attorney here.
Patient intake & consent workflow for healthcare β conditional admin-only fields, a PDF export, and an admin Kanban pipeline, structured the same way as the conflict check and engagement letter guards in this guide.
Don't have a form yet? Create one in seconds with Magic Create β describe what you need and Formaloo builds the form for you.
What's next
Catch cases that stall at a guard point Once your workflow is live, use email campaigns to nudge attorneys sitting on an unresolved conflict check or an unsigned engagement letter for too long. β How to send an email campaign and collect data with AI agents
Give admin staff faster ways to work the pipeline As case volume grows, refine the Conflict checks pending and Engagement letters pending views with additional filters and sorts. β How to sort and filter your submissions data
Make the All cases board easier to scan Add visual cues so emergency or deadline-critical cases stand out at a glance on the firm-wide Kanban. β How to enable upvoting on Kanban and gallery boards
Learn more how-tos
See what happens before a lead reaches this workflow This guide starts once a lead is already in front of a human. Pair it with AI scoring and routing upstream. β How to build an AI-powered lead qualification system
See the same conditional admin-only pattern in a different context The conflict check and engagement letter guards here mirror how conditional admin sections work elsewhere. β How to build a patient intake and consent workflow for healthcare clinics
See a similar approval-gate pattern applied to internal requests Blocking a status change until a condition is met is a specific case of a more general pattern. β How to build a dual-approval request workflow
