Laravel Legal Client Intake Template | FilaForms                                 [ ![Filaforms Logo](https://filaforms.app/logo.svg)FilaForms

 ](https://filaforms.app)  [ Features ](https://filaforms.app#features) [ Pricing ](https://filaforms.app/pricing) [ Blog ](https://filaforms.app/blog) [ Documentation ](https://docs.filaforms.app)  [ Try Demo ](https://filaforms.app/login) [ Buy a license ](https://filaforms.app/pricing#plans) 

 [ Features ](https://filaforms.app#features) [ Pricing ](https://filaforms.app/pricing) [ Blog ](https://filaforms.app/blog) [ Documentation ](https://docs.filaforms.app) [ Try Demo ](https://filaforms.app/login) [ Buy a license ](https://filaforms.app/pricing#plans) 

  1. [Home](https://filaforms.app)
2. /
3. [Form Templates](https://filaforms.app/templates)
4. /
5. Open a new client matter without a back-and-forth email chain

 Legal template

Open a new client matter without a back-and-forth email chain
=============================================================

Import a Laravel legal client intake template for Filament, capture matter details, and route new enquiries into your application.

 [ Open this template in the demo builder ](https://filaforms.app/app/templates/legal-client-intake) 14 fields, 8 required. Free demo account, no card. 

 Updated September 2, 2026

 This Laravel legal client intake template gives prospective clients one place to describe a matter before your team responds. Import it into FilaForms, then use the field table below as the starting structure for a client portal your firm already runs.

The imported form captures matter details and initial conflict information. Your team receives each enquiry in the Laravel application it already operates, while the submission dashboard preserves the original response for review.

An intake form works best when it gives the reviewer enough context to decide the next step. The person submitting should understand that the form starts an enquiry. It should not suggest that the firm has accepted representation or created an attorney-client relationship.

Group the questions around the decision a staff member needs to make. Contact details identify who needs a reply. Matter context lets a reviewer assign the enquiry to an appropriate practice group. Time sensitivity helps the reviewer decide whether a request needs urgent attention.

The conflict-related prompts support a later review. They give a firm enough starting information to identify names or organisations worth checking. This form is not a conflict-of-interest check. A law firm still runs its own conflict search before opening the matter.

Clio says online intake forms improved conversion rates by up to 5% for solo and small law firms. Its source is Legal Trends Report for Solo and Small Law Firms, 2025. That result does not remove the need for a clear review process. It does show why a short, direct first step can matter when potential clients decide whether to contact a firm.

[FilaForms is a Laravel form builder for Filament](/) that keeps submissions in your application's database. The form is built visually in the panel, so staff can adjust wording and choices without a hand-written Filament schema.

  Fields in this template (14 fields, 8 required) 
-------------------------------------------------

 Field types used: Text, Email, Phone Number, Date, Textarea, Radio, Select, Toggle Buttons, Rich Editor, File Upload. Every field is editable in the builder after import.

### Client

    Field Type Required Validation      Full Name `full_name`   Text  Yes  `required`     Email Address `email`   Email  Yes  `required | email`     Phone Number `phone`   Phone Number  Yes  `required`     Date of Birth `date_of_birth`   Date  No  none     Address `address`   Textarea  Yes  `required`     Client Type `client_type`   Radio, 4 options  Yes  `required`     Company Name `company`   Text  No  none     

### Matter

    Field Type Required Validation      Practice Area `practice_area`   Select, 8 options  Yes  `required`     Urgency `urgency`   Toggle Buttons, 3 options  Yes  `required`     Opposing Party `opposing_party`   Text  No  none     Matter Summary `summary`   Rich Editor  Yes  `required`     Key Dates `key_dates`   Textarea  No  none     Supporting Documents `documents`   File Upload  No  none     How Did You Hear About Us? `referral_source`   Select, 6 options  No  none     

### Form settings the template ships with

 Submit buttonSubmit my enquiry

After submitshow message

Success messageThank you. A solicitor will review your matter and contact you within one working day.

Admin email subjectNew matter: {form\_name}

Auto-response subjectWe have received your enquiry

  Route and adapt a new client matter
-----------------------------------

The field table below renders from the imported template. It provides a practical baseline for legal enquiries, rather than an attempt to collect every fact before a conversation. Keep the first submission focused on information your intake team will use immediately.

Make the opening screen explain what happens after submission. A useful confirmation tells the prospective client that the firm received the enquiry and will review it. It should avoid promises about response time unless the firm can meet them consistently.

An internal intake queue needs ownership. Assign a reviewer by practice area, office, or scheduled rotation. Urgency should guide review order, but it should not bypass conflict checks. A rushed matter still needs the same recordkeeping and professional review as any other enquiry.

For transactional-only work, remove `opposing_party` and `key_dates`. That variation suits firms with no litigation intake. Replace those prompts only when a specific transactional decision needs more context, such as a proposed closing window or the type of agreement involved.

Avoid collecting sensitive details that nobody will use during first review. More information can create a larger privacy and retention burden. Ask for additional documents or detailed facts after the team confirms the appropriate next contact.

The settings block controls the imported form's behaviour in your panel. Build and adjust the form there, rather than maintaining field definitions in application code. This keeps the form structure visible to the people who manage the intake process.

FilaForms emits `FormSubmitted` after a prospective client submits the form. A Laravel listener can read `email`, `practice_area`, and `urgency` from the submission data. The listener below writes an intake event that another part of your application can use for assignment or notification.

Save the listener as `app/Listeners/LogLegalClientIntake.php`. Laravel 12 discovers listeners in that directory automatically.

```
submission->data;

        $email = $data['email'] ?? null;
        $practiceArea = $data['practice_area'] ?? null;
        $urgency = $data['urgency'] ?? null;

        Log::info('Legal client intake received', [
            'form_id' => $event->form->getKey(),
            'submission_id' => $event->submission->getKey(),
            'email' => $email,
            'practice_area' => $practiceArea,
            'urgency' => $urgency,
        ]);
    }
}

```

Replace the log call with the action your application needs. For example, create an internal review task, notify the intake coordinator, or route an enquiry to a practice-specific queue. Keep the original submission as the source record, even when you create a separate matter candidate record.

That separation protects the initial account of the enquiry. A reviewer can compare later notes with the original response. It also lets your internal workflow change without changing the imported form every time the firm's assignment process changes.

Use this template when client intake must live beside your portal data and internal workflows. Review the [FilaForms features for Laravel and Filament](/features) if you need conditional questions, multi-step forms, or email notifications around the same intake process.

 Use this template in your own application
-----------------------------------------

 With FilaForms installed, one call creates the form with every field, rule, and setting listed above. Then edit it in the builder.

```
use FilaForms\Core\Support\FormTemplates;

$form = FormTemplates::createFormFromTemplate('legal-client-intake');
```

  Template schema (JSON) ```
{
    "name": "Legal Client Intake",
    "description": "Open a matter with client, opposing party and conflict detail",
    "icon": "heroicon-o-scale",
    "category": "Legal",
    "popularity": "Very High",
    "experience": {
        "success_message": "Thank you. A solicitor will review your matter and contact you within one working day.",
        "post_submit_action": "show_message",
        "display_mode": "wizard",
        "show_progress_bar": true,
        "submit_button_text": "Submit my enquiry",
        "one_per_person": false
    },
    "notification_config": {
        "enabled": true,
        "channels": [
            "email"
        ],
        "admin_emails": [
            "intake@example.com"
        ],
        "custom_admin_subject": true,
        "admin_subject_template": "New matter: {form_name}",
        "send_auto_response": true,
        "auto_response_email_field": "email",
        "auto_response_subject": "We have received your enquiry",
        "auto_response_message": "Thank you for contacting us. Your enquiry is with our intake team and a solicitor will be in touch within one working day.Please do not send further documents until we confirm we can act for you."
    },
    "sections": [
        {
            "name": "Client",
            "fields": [
                {
                    "label": "Full Name",
                    "type": "text",
                    "code": "full_name",
                    "required": true,
                    "width": "50"
                },
                {
                    "label": "Email Address",
                    "type": "email",
                    "code": "email",
                    "required": true,
                    "validation": [
                        {
                            "name": "email",
                            "parameters": []
                        }
                    ],
                    "width": "50"
                },
                {
                    "label": "Phone Number",
                    "type": "phone",
                    "code": "phone",
                    "required": true,
                    "width": "50"
                },
                {
                    "label": "Date of Birth",
                    "type": "date",
                    "code": "date_of_birth",
                    "required": false,
                    "width": "50"
                },
                {
                    "label": "Address",
                    "type": "textarea",
                    "code": "address",
                    "required": true,
                    "width": "100"
                },
                {
                    "label": "Client Type",
                    "type": "radio",
                    "code": "client_type",
                    "required": true,
                    "options": [
                        {
                            "value": "Individual"
                        },
                        {
                            "value": "Company"
                        },
                        {
                            "value": "Charity"
                        },
                        {
                            "value": "Public body"
                        }
                    ],
                    "width": "50"
                },
                {
                    "label": "Company Name",
                    "type": "text",
                    "code": "company",
                    "required": false,
                    "width": "50"
                }
            ]
        },
        {
            "name": "Matter",
            "fields": [
                {
                    "label": "Practice Area",
                    "type": "select",
                    "code": "practice_area",
                    "required": true,
                    "options": [
                        {
                            "value": "Family"
                        },
                        {
                            "value": "Employment"
                        },
                        {
                            "value": "Property"
                        },
                        {
                            "value": "Commercial"
                        },
                        {
                            "value": "Immigration"
                        },
                        {
                            "value": "Personal injury"
                        },
                        {
                            "value": "Wills and probate"
                        },
                        {
                            "value": "Criminal"
                        }
                    ],
                    "width": "50"
                },
                {
                    "label": "Urgency",
                    "type": "toggle-buttons",
                    "code": "urgency",
                    "required": true,
                    "options": [
                        {
                            "value": "Routine"
                        },
                        {
                            "value": "Time sensitive"
                        },
                        {
                            "value": "Deadline this week"
                        }
                    ],
                    "width": "50"
                },
                {
                    "label": "Opposing Party",
                    "type": "text",
                    "code": "opposing_party",
                    "required": false,
                    "description": "Needed for our conflict of interest check",
                    "width": "100"
                },
                {
                    "label": "Matter Summary",
                    "type": "rich-editor",
                    "code": "summary",
                    "required": true,
                    "description": "Set out what happened and what outcome you want",
                    "width": "100"
                },
                {
                    "label": "Key Dates",
                    "type": "textarea",
                    "code": "key_dates",
                    "required": false,
                    "width": "50"
                },
                {
                    "label": "Supporting Documents",
                    "type": "file-upload",
                    "code": "documents",
                    "required": false,
                    "width": "50"
                },
                {
                    "label": "How Did You Hear About Us?",
                    "type": "select",
                    "code": "referral_source",
                    "required": false,
                    "options": [
                        {
                            "value": "Search engine"
                        },
                        {
                            "value": "Existing client"
                        },
                        {
                            "value": "Another firm"
                        },
                        {
                            "value": "Social media"
                        },
                        {
                            "value": "Advertisement"
                        },
                        {
                            "value": "Other"
                        }
                    ],
                    "width": "50"
                }
            ]
        }
    ]
}
```

  Frequently asked questions
--------------------------

  What does this Laravel legal client intake template capture? It captures matter details and initial conflict information. The field table below shows the imported structure. 

 Can I adapt this form for transactional-only work? Yes. Remove opposing\_party and key\_dates when the firm handles transactional work with no litigation intake. 

 How do I route a new legal matter in my Laravel application? Listen for FilaForms\\\\Core\\\\Events\\\\FormSubmitted and read email, practice\_area, and urgency from the submission data. 

 Does this template complete a conflict-of-interest check? No. This form is not a conflict-of-interest check. A law firm still runs its own conflict search before opening the matter. 

   Run this form inside your Laravel app.
--------------------------------------

 FilaForms installs as a Filament plugin. Submissions land in your own database.

 [ Try it in the demo ](https://filaforms.app/app/templates/legal-client-intake) [ See pricing ](https://filaforms.app/pricing) 

More templates
--------------

- [ Let your team request an NDA before sharing anything sensitive Import a Laravel NDA request form into Filament, adapt its legal intake, and route each su... ](https://filaforms.app/templates/nda-request)
- [ Get everything you need from a new client before kickoff Import a Laravel client onboarding form for Filament, collect project details, and route e... ](https://filaforms.app/templates/client-onboarding)
- [ Review a client's retainer hours and priorities every month Import a Laravel retainer check-in form for Filament to record monthly hours, client satis... ](https://filaforms.app/templates/retainer-check-in)
- [ Brief a writer with everything they need before they start Import a Laravel content request form template for Filament, collect complete writer brief... ](https://filaforms.app/templates/content-request)
- [ Ask attendees how your event went, right after it ends Import a Laravel event feedback form for Filament, collect attendee ratings, and route eac... ](https://filaforms.app/templates/event-feedback)
- [ Capture honest feedback before an employee's last day Install a Laravel exit interview form for Filament, route sensitive answers carefully, and... ](https://filaforms.app/templates/exit-interview)
- [ Capture scope changes and client approval before work starts Import a Laravel change request form for Filament, record scope, cost, priority, and clien... ](https://filaforms.app/templates/change-request)
- [ Collect customer testimonials your marketing team can actually publish Import a Laravel testimonial collection form for Filament, collect publishable customer fe... ](https://filaforms.app/templates/testimonial-collection)

    ![FilaForms Logo](/logo.svg) FilaForms 

 Laravel form infrastructure for Filament. Stop rebuilding forms on every project.

 [ Buy a license   ](https://filaforms.app/pricing#plans) 

 ### Product

 [ Features ](https://filaforms.app#features) [ Documentation ](https://docs.filaforms.app) [ Blog ](https://filaforms.app/blog) [ Compare form builders ](https://filaforms.app/compare) [ Templates ](https://filaforms.app/templates) [ Pricing ](https://filaforms.app/pricing) [ About ](https://filaforms.app/about) [ Contact ](mailto:hello@filaforms.app) 

 ### Legal

 [ Terms of Service ](https://filaforms.app/terms-of-service) [ Privacy Policy ](https://filaforms.app/privacy-policy) 

  © 2025-2026 FilaForms. All rights reserved.

 [    ](mailto:hello@filaforms.app) [    ](https://x.com/MinasyanManuk)
