Laravel Website Feedback 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. Let visitors report broken pages with a screenshot and the page URL

 Feedback &amp; Surveys template

Let visitors report broken pages with a screenshot and the page URL
===================================================================

Import a Laravel website feedback form for Filament to capture page URLs, issue types, and screenshots, then route reports to your team.

 [ Open this template in the demo builder ](https://filaforms.app/app/templates/website-feedback) 7 fields, 3 required. Free demo account, no card. 

 Updated September 2, 2026

 This Laravel website feedback form gives visitors a direct way to report a broken page, confusing content, or a visual problem. Import it into FilaForms when your application needs the page context, issue type, and a screenshot in one submission record.

It collects the page URL, feedback type, and a screenshot. The field table below shows the imported structure. Your team can review the submission in Filament, identify the affected page, and send the report into the workflow that owns the fix.

This works best when a visitor can describe a problem while the page remains open. A captured URL prevents support staff from asking which route the visitor meant. A feedback type gives triage a starting category. A screenshot preserves the visual evidence available to the reporter.

Storyblok and OnePoll's 2022 survey found that 60% of consumers abandon purchases because of poor website user experience. That makes a short reporting path useful for teams that maintain pages connected to sign-up, checkout, or account tasks.

Use this template when feedback should stay with your application records. [FilaForms is a Laravel form builder for Filament](/) that stores submissions in your database. Reviewers get an admin view without a separate feedback service.

  Fields in this template (7 fields, 3 required) 
------------------------------------------------

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

### What Happened

    Field Type Required Validation      Page URL `page_url`   Link  Yes  `required`     Feedback Type `feedback_type`   Toggle Buttons, 5 options  Yes  `required`     Tell Us More `details`   Textarea  Yes  `required | min:10`     Screenshot `screenshot`   File Upload  No  none     

### Your Setup

    Field Type Required Validation      Device `device`   Select, 4 options  No  none     Browser `browser`   Select, 5 options  No  none     Email Address `email`   Email  No  `email`     

 Turn reports into an owned maintenance workflow
-----------------------------------------------

The field table below groups page context separately from the report itself. Reviewers first see where the visitor encountered the issue. They can then use the feedback type to decide whether the report belongs with content, design, support, or engineering.

Keep the feedback type options aligned with the queues your team actually uses. A vague catch-all category produces reports that require another classification step. A small set of familiar categories lets a reviewer route a report quickly while preserving the reporter's original wording.

Treat the page URL as evidence, not as a guaranteed reproduction path. The visitor may be signed in, using a locale, or carrying query parameters that change the result. Compare the URL with the account and request context your application already records before you decide that a page defect exists.

The screenshot is a static file, not a live DOM snapshot. It shows what the reporter chose to include, not console errors or a way to reproduce the bug. Ask for browser details through a follow-up process when a visual report needs more technical investigation.

Do not make the form carry every diagnostic question. A visitor can report a broken page in seconds when the request stays focused. Your internal review can request a screen recording, device details, or reproduction steps after triage identifies a report worth investigating.

Adapt the template for a mobile app
-----------------------------------

For a mobile app, replace `page_url` with a `screen_name` select that matches your app's own navigation. A URL often has no useful meaning to someone using a native screen. A screen name lets the reporter identify the place they saw without translating your navigation into a web address.

Use labels that visitors recognise from the app. Match tab names, menu labels, and screen titles. Keep historic option values understandable when navigation changes, because past reports still need to tell a reviewer where the original issue appeared.

The `feedback_type` and `screenshot` fields still serve the same purpose in an app variant. The type directs the report to the right reviewer. The screenshot gives that reviewer the visible state, even when the current release has already changed.

Avoid treating the screenshot as a substitute for version information. A screenshot can show the UI, but it cannot identify a release build or device behaviour by itself. Connect the form to the application context you already collect if a report needs that level of diagnosis.

Route submissions in your Laravel application
---------------------------------------------

FilaForms emits `FormSubmitted` after a visitor submits website feedback. Listen for `FilaForms\Core\Events\FormSubmitted` and read `page_url`, `feedback_type`, and `screenshot` from the submission data. The listener can record the report in your logs before you replace that action with your own triage workflow.

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

```
submission->data;

        $pageUrl = $data['page_url'] ?? null;
        $feedbackType = $data['feedback_type'] ?? null;
        $screenshot = $data['screenshot'] ?? null;

        Log::info('Website feedback received', [
            'form_id' => $event->form->getKey(),
            'submission_id' => $event->submission->getKey(),
            'page_url' => $pageUrl,
            'feedback_type' => $feedbackType,
            'screenshot' => $screenshot,
        ]);
    }
}

```

Route different feedback types to the people who can act on them. A content report may need an editor. A page failure may need an engineer. Keep the original submission available when a reviewer creates a ticket, because the screenshot and page URL explain why the work started.

Set a review cadence before publishing the form. A fast acknowledgement can help support reports. A weekly review may suit small visual issues. The best destination depends on whether your team fixes pages through a support queue, a content workflow, or an engineering backlog.

Use the [FilaForms features for Laravel and Filament](/features) to decide where notifications, conditional fields, and submission analytics fit your maintenance process. The template supplies the reporting structure. Your application supplies ownership, response time, and the work that resolves the report.

When this template is the wrong tool
------------------------------------

Choose a different reporting approach when your team needs technical telemetry from the visitor's browser. This template records what the visitor submits. It does not collect console errors, network failures, session replay, or an automatic reproduction path.

It is also the wrong tool when the report must prove that an issue affects every visitor. A single submission identifies an experience worth checking. Your team still needs monitoring, tests, and direct investigation to establish scope and cause.

Use this form for direct reports that need page context and a visible record. Use your own diagnostic tools when you need browser-level evidence or automated error collection. That division keeps the visitor form short and keeps technical investigation with the systems built to support it.

 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('website-feedback');
```

  Template schema (JSON) ```
{
    "name": "Website Feedback Form",
    "description": "Catch usability problems with page context and severity",
    "icon": "heroicon-o-computer-desktop",
    "category": "Feedback & Surveys",
    "popularity": "High",
    "sections": [
        {
            "name": "What Happened",
            "fields": [
                {
                    "label": "Page URL",
                    "type": "link",
                    "code": "page_url",
                    "required": true,
                    "placeholder": "https://example.com/pricing",
                    "width": "100"
                },
                {
                    "label": "Feedback Type",
                    "type": "toggle-buttons",
                    "code": "feedback_type",
                    "required": true,
                    "options": [
                        {
                            "value": "Confusing"
                        },
                        {
                            "value": "Broken"
                        },
                        {
                            "value": "Slow"
                        },
                        {
                            "value": "Suggestion"
                        },
                        {
                            "value": "Praise"
                        }
                    ],
                    "width": "100"
                },
                {
                    "label": "Tell Us More",
                    "type": "textarea",
                    "code": "details",
                    "required": true,
                    "validation": [
                        {
                            "name": "min",
                            "parameters": [
                                "10"
                            ]
                        }
                    ],
                    "width": "100"
                },
                {
                    "label": "Screenshot",
                    "type": "file-upload",
                    "code": "screenshot",
                    "required": false,
                    "width": "100"
                }
            ]
        },
        {
            "name": "Your Setup",
            "fields": [
                {
                    "label": "Device",
                    "type": "select",
                    "code": "device",
                    "required": false,
                    "options": [
                        {
                            "value": "Desktop"
                        },
                        {
                            "value": "Laptop"
                        },
                        {
                            "value": "Tablet"
                        },
                        {
                            "value": "Phone"
                        }
                    ],
                    "width": "50"
                },
                {
                    "label": "Browser",
                    "type": "select",
                    "code": "browser",
                    "required": false,
                    "options": [
                        {
                            "value": "Chrome"
                        },
                        {
                            "value": "Safari"
                        },
                        {
                            "value": "Firefox"
                        },
                        {
                            "value": "Edge"
                        },
                        {
                            "value": "Other"
                        }
                    ],
                    "width": "50"
                },
                {
                    "label": "Email Address",
                    "type": "email",
                    "code": "email",
                    "required": false,
                    "description": "Only if you want a reply",
                    "validation": [
                        {
                            "name": "email",
                            "parameters": []
                        }
                    ],
                    "width": "50"
                }
            ]
        }
    ]
}
```

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

  What does this Laravel website feedback form collect? It collects the page URL, feedback type, and a screenshot. The field table below shows the imported structure. 

 Can I adapt this website feedback form for a mobile app? Yes. Replace page\_url with a screen\_name select that matches your app's own navigation. 

 How do I route website feedback in my Laravel application? Listen for FilaForms\\\\Core\\\\Events\\\\FormSubmitted and read page\_url, feedback\_type, and screenshot from the submission data. 

 What does the screenshot show? The screenshot is a static file, not a live DOM snapshot. It shows what the reporter chose to include, not console errors or a way to reproduce the bug. 

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

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

- [ Let users tell you which product features to fix next Import a Laravel product feedback form for Filament, capture ratings and detailed feedback... ](https://filaforms.app/templates/product-feedback)
- [ 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)
- [ Learn who buys your product and why before you build more Import a Laravel market research survey template, capture buyer context and budget signals... ](https://filaforms.app/templates/market-research-survey)
- [ 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)
- [ 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)
- [ 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)
- [ 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)
