Laravel Change Request Form for Filament | 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. Capture scope changes and client approval before work starts

 Agency &amp; Freelance template

Capture scope changes and client approval before work starts
============================================================

Import a Laravel change request form for Filament, record scope, cost, priority, and client approval before work begins.

 [ Open this template in the demo builder ](https://filaforms.app/app/templates/change-request) 13 fields, 8 required. Free demo account, no card. 

 Updated September 2, 2026

 This Laravel change request form gives clients a clear place to describe a scope change before work begins. Import it into FilaForms to record the request, its cost impact, its priority, and client approval inside the Laravel application you run.

FilaForms stores each submission in your Laravel application, where the project owner can review scope, priority, cost impact, and client approval before work begins. The field table below provides the starting structure, while the submission dashboard keeps each request beside the rest of your client workflow.

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

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

### Request

    Field Type Required Validation      Project Name `project_name`   Text  Yes  `required`     Requested By `requested_by`   Text  Yes  `required`     Email Address `email`   Email  Yes  `required | email`     Date Requested `requested_date`   Date  Yes  `required`     

### The Change

    Field Type Required Validation      Summary `summary`   Text  Yes  `required`     Change Type `change_type`   Select, 6 options  Yes  `required`     Priority `priority`   Toggle Buttons, 4 options  Yes  `required`     Reason for the Change `reason`   Textarea  Yes  `required`     What Happens If We Do Nothing? `impact_if_not_done`   Textarea  No  none     Estimated Cost Impact `cost_impact`   Currency  No  none     Estimated Delay (days) `delay_days`   Number  No  `integer | min:0`     Client Approval to Proceed `client_approved`   Toggle  No  none     Supporting Files `files`   File Upload  No  none     

 Turn each submitted request into a project decision
---------------------------------------------------

The field table below groups the request context before the approval decision. That order helps a client explain the change first, then state its urgency and acknowledge the commercial impact. A project owner can review one complete request instead of reconstructing scope from messages.

Treat the submitted priority as a triage signal, not an automatic delivery promise. A high-priority request may need an immediate response, but it still needs someone to check dependencies, capacity, and the active agreement. Keep the decision with the person accountable for the project plan.

Use the client approval value as evidence that the client saw the proposed change. It allows your team to distinguish a question from a request that can enter planning. The cost impact gives the reviewer the context needed to decide whether the work belongs in the current engagement or needs a separate approval path.

Uptime Institute, Annual Outage Analysis, 2023, reported that 64% of organizations with a major IT outage cited a configuration or change management issue as the cause. That finding concerns IT outages, but it supports a practical habit for client work. Record changes before implementation, then make the responsible person decide what happens next.

The settings block controls the imported form in your panel. Adjust the template visually when your review process changes. Do not duplicate the same decision points in a separate hand-written form, because the submission record should remain the source for the client request.

Route submissions to the project owner
--------------------------------------

FilaForms emits `FormSubmitted` after a client submits this template. A Laravel listener can read `email`, `priority`, and `client_approved` from the submission data. It can then record enough context for an internal review queue.

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

```
submission->data;

        $email = $data['email'] ?? null;
        $priority = $data['priority'] ?? null;
        $clientApproved = $data['client_approved'] ?? null;

        Log::info('Change request received', [
            'form_id' => $event->form->getKey(),
            'submission_id' => $event->submission->getKey(),
            'email' => $email,
            'priority' => $priority,
            'client_approved' => $clientApproved,
        ]);
    }
}

```

Replace the log call with your application action after you define the review owner. An agency may create an internal task for the project manager. A smaller practice may notify the developer who owns the engagement. In both cases, the project owner should review the scope, priority, cost impact, and client approval before work begins.

Keep the original submission as the record of what the client requested. A task or notification can make the request visible, but it should not replace the submitted context. This matters when a client later asks why an item was scheduled, deferred, or priced separately.

Adapt it for fixed-price contracts
----------------------------------

For a fixed-price contract, add a `contract_reference` select. It links each change request back to the original agreement. The project owner can then confirm which contract governs the work before deciding whether the requested scope fits the agreed value.

Use a controlled selection for that reference instead of asking clients to type an agreement name. A controlled value reduces mismatches when a client has several active projects. It also gives your Laravel application a stable value for routing the request to the relevant project owner.

The form still needs a human decision after submission. A matching contract reference does not prove that the change belongs in the original scope. It simply gives the reviewer the correct agreement to inspect before deciding the next action.

Use the form within its limits
------------------------------

Recording `client_approved` and `cost_impact` is not the same as a signed contract addendum. This form does not update the contract value or generate paperwork. Keep signed changes and contractual records in the process your business already uses.

Choose this template when developers already operate the client portal and want scope-change records in their own database. [FilaForms is a Laravel form builder for Filament](/) for teams that need submissions near their application data. Review the [FilaForms features for Laravel and Filament](/features) when you are deciding how notifications, review queues, and project records should connect.

 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('change-request');
```

  Template schema (JSON) ```
{
    "name": "Change Request Form",
    "description": "Control scope creep with impact and approval captured up front",
    "icon": "heroicon-o-arrow-path",
    "category": "Agency & Freelance",
    "popularity": "High",
    "sections": [
        {
            "name": "Request",
            "fields": [
                {
                    "label": "Project Name",
                    "type": "text",
                    "code": "project_name",
                    "required": true,
                    "width": "50"
                },
                {
                    "label": "Requested By",
                    "type": "text",
                    "code": "requested_by",
                    "required": true,
                    "width": "50"
                },
                {
                    "label": "Email Address",
                    "type": "email",
                    "code": "email",
                    "required": true,
                    "validation": [
                        {
                            "name": "email",
                            "parameters": []
                        }
                    ],
                    "width": "50"
                },
                {
                    "label": "Date Requested",
                    "type": "date",
                    "code": "requested_date",
                    "required": true,
                    "width": "50"
                }
            ]
        },
        {
            "name": "The Change",
            "fields": [
                {
                    "label": "Summary",
                    "type": "text",
                    "code": "summary",
                    "required": true,
                    "width": "100"
                },
                {
                    "label": "Change Type",
                    "type": "select",
                    "code": "change_type",
                    "required": true,
                    "options": [
                        {
                            "value": "New feature"
                        },
                        {
                            "value": "Scope change"
                        },
                        {
                            "value": "Design change"
                        },
                        {
                            "value": "Timeline change"
                        },
                        {
                            "value": "Bug or defect"
                        },
                        {
                            "value": "Content change"
                        }
                    ],
                    "width": "50"
                },
                {
                    "label": "Priority",
                    "type": "toggle-buttons",
                    "code": "priority",
                    "required": true,
                    "options": [
                        {
                            "value": "Low"
                        },
                        {
                            "value": "Normal"
                        },
                        {
                            "value": "High"
                        },
                        {
                            "value": "Urgent"
                        }
                    ],
                    "width": "50"
                },
                {
                    "label": "Reason for the Change",
                    "type": "textarea",
                    "code": "reason",
                    "required": true,
                    "width": "100"
                },
                {
                    "label": "What Happens If We Do Nothing?",
                    "type": "textarea",
                    "code": "impact_if_not_done",
                    "required": false,
                    "width": "100"
                },
                {
                    "label": "Estimated Cost Impact",
                    "type": "currency",
                    "code": "cost_impact",
                    "required": false,
                    "width": "50"
                },
                {
                    "label": "Estimated Delay (days)",
                    "type": "number",
                    "code": "delay_days",
                    "required": false,
                    "validation": [
                        {
                            "name": "integer",
                            "parameters": []
                        },
                        {
                            "name": "min",
                            "parameters": [
                                "0"
                            ]
                        }
                    ],
                    "width": "50"
                },
                {
                    "label": "Client Approval to Proceed",
                    "type": "toggle",
                    "code": "client_approved",
                    "required": false,
                    "width": "50"
                },
                {
                    "label": "Supporting Files",
                    "type": "file-upload",
                    "code": "files",
                    "required": false,
                    "width": "50"
                }
            ]
        }
    ]
}
```

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

  What happens after someone submits this change request form? FilaForms stores the submission in your Laravel application, where a project owner can review the scope, priority, cost impact, and client approval before work begins. 

 Can I use this form for a fixed-price contract? Yes. Add a contract\_reference select so each change request links to the original agreement. 

 How do I route a change request to the project owner? Listen for FilaForms\\\\Core\\\\Events\\\\FormSubmitted and read email, priority, and client\_approved from the submission data. 

 Does this form replace a signed contract addendum? No. Recording client\_approved and cost\_impact does not update the contract value or generate paperwork. 

   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/change-request) [ See pricing ](https://filaforms.app/pricing) 

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

- [ 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)
- [ 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)
- [ 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)
- [ Let customers open a support ticket without emailing you first Import a Laravel support ticket form for Filament, collect priority and attachments, then... ](https://filaforms.app/templates/support-ticket)
- [ 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)
- [ 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)
- [ Enroll a student with guardian and medical details in one form Import a Laravel student enrollment form for Filament, collect guardian and medical detail... ](https://filaforms.app/templates/student-enrollment)

    ![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)
