Laravel Support Ticket 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 customers open a support ticket without emailing you first

 Support template

Let customers open a support ticket without emailing you first
==============================================================

Import a Laravel support ticket form for Filament, collect priority and attachments, then route each request with a Laravel listener.

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

 Updated September 2, 2026

 This Laravel support ticket form gives customers a clear way to report a problem, choose its priority, and attach relevant files. Import it into FilaForms to create a consistent initial request instead of asking customers to assemble details across email messages.

After a customer submits the form, FilaForms stores the initial request in your Laravel application's database and shows it in the Filament submission dashboard. Your support team can review the submission there. A Laravel listener reads the email, priority, and attachments values to route the request into the workflow you already operate.

The field table below creates a focused starting record for support. Contact information gives staff a reply path. Priority provides the customer's urgency signal. Attachments keep error images, screenshots, and other supporting material with the original request rather than scattered through a message thread.

HubSpot's 2024 State of Service report found that 82% of service professionals say customers expect their support requests resolved immediately. A clear intake path helps with that expectation. It does not require your team to promise immediate resolution. The first response should establish ownership, collect missing facts, and set an appropriate next step.

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

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

### Contact Information

    Field Type Required Validation      Your Name `name`   Text  Yes  `required`     Email Address `email`   Email  Yes  `required`     Account ID or Username `account_id`   Text  No  none     Priority Level `priority`   Select, 4 options  Yes  `required`     

### Issue Details

    Field Type Required Validation      Issue Category `category`   Select, 6 options  Yes  `required`     Subject `subject`   Text  Yes  `required`     Description `description`   Textarea  Yes  `required`     Attachments `attachments`   File Upload  No  none     

### Form settings the template ships with

 Submit buttonOpen ticket

After submitshow message

Success messageYour ticket is open. Check your inbox for the confirmation and reference number.

Admin email subjectNew support ticket: {form\_name}

Auto-response subjectYour support ticket is open

  Route ticket submissions in Laravel
-----------------------------------

Keep priority separate from the decision your support team makes after review. A customer can accurately describe an issue as urgent. The actual response may still depend on account context, recent incidents, and the impact on other users. Store the selected priority with the submission, then let your Laravel workflow apply the rules that govern response and escalation.

Add a severity field when you need to record business impact independently from urgency. Priority describes how quickly the customer believes they need help. Severity can describe the scope of the failure, such as whether one person cannot complete a task or a shared function affects many users. Those values answer different questions, so they support clearer reporting and more deliberate escalation.

Use controlled severity options that match the language your support team already uses. Do not infer severity from priority alone. A low-priority report may reveal a serious underlying defect, and an urgent request may affect only a single workflow. The reviewer should be able to adjust the operational decision after reading the complete submission.

FilaForms emits `FormSubmitted` after a customer sends this template. Save the following listener as `app/Listeners/RouteSupportTicket.php`. It reads the submitted email, priority, and attachments values, then records the information that a support workflow needs to route the initial request.

```
submission->data;

        Log::info('Support ticket received', [
            'form_id' => $event->form->getKey(),
            'submission_id' => $event->submission->getKey(),
            'email' => $data['email'] ?? null,
            'priority' => $data['priority'] ?? null,
            'attachments' => $data['attachments'] ?? [],
        ]);
    }
}

```

Laravel 12 discovers listeners in `app/Listeners` automatically. Replace the log call with the action that creates your internal support record, notifies a queue, or sends the request to an existing helpdesk integration. Keep the form responsible for collecting the initial request. Keep routing rules in Laravel, where they can use the records and ownership rules your application already has.

Treat attachments as evidence that requires handling rules. A screenshot can reveal account details, browser extensions, or customer data. Restrict access to staff who need the files. Define retention periods before support begins collecting large files or repeated diagnostic uploads. The original submission should remain available to reviewers even if later workflow records change ownership.

This form has no SLA timers, ticket status workflow, or agent assignment. It only captures the initial request. Use it when your application already has a process for ownership and follow-up, or when you want to add that process incrementally. Choose a full helpdesk system instead when the ticket lifecycle itself is the product you need to introduce.

The settings block lets you adapt the imported template when your support process changes. You might add the severity field for business-impact reporting, or revise priority options to match your escalation policy. Make those changes with the team that receives tickets, because field labels shape how customers describe the problem and how staff interpret it.

Start with the imported template when you need an accountable support entry point inside an application you run. A [Laravel form builder for Filament](/) keeps the intake record close to your customer data. Review the [FilaForms form features](/features) when you need notifications, submission review, or conditional questions for different support paths.

 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('support-ticket');
```

  Template schema (JSON) ```
{
    "name": "Support Ticket Form",
    "description": "Technical support request with priority and attachments",
    "icon": "heroicon-o-lifebuoy",
    "category": "Support",
    "popularity": "Very High",
    "experience": {
        "success_message": "Your ticket is open. Check your inbox for the confirmation and reference number.",
        "post_submit_action": "show_message",
        "submit_button_text": "Open ticket"
    },
    "notification_config": {
        "enabled": true,
        "channels": [
            "email"
        ],
        "admin_emails": [
            "support@example.com"
        ],
        "custom_admin_subject": true,
        "admin_subject_template": "New support ticket: {form_name}",
        "send_auto_response": true,
        "auto_response_email_field": "email",
        "auto_response_subject": "Your support ticket is open",
        "auto_response_message": "Thanks for contacting support. Your ticket is open and a member of the team will reply during business hours.Reply to this email to add more detail to the ticket."
    },
    "sections": [
        {
            "name": "Contact Information",
            "fields": [
                {
                    "label": "Your Name",
                    "type": "text",
                    "code": "name",
                    "required": true,
                    "width": "50"
                },
                {
                    "label": "Email Address",
                    "type": "email",
                    "code": "email",
                    "required": true,
                    "width": "50"
                },
                {
                    "label": "Account ID or Username",
                    "type": "text",
                    "code": "account_id",
                    "required": false,
                    "placeholder": "Your account identifier",
                    "width": "50"
                },
                {
                    "label": "Priority Level",
                    "type": "select",
                    "code": "priority",
                    "required": true,
                    "options": [
                        {
                            "value": "Low - General inquiry"
                        },
                        {
                            "value": "Normal - Standard issue"
                        },
                        {
                            "value": "High - Business impact"
                        },
                        {
                            "value": "Urgent - Critical issue"
                        }
                    ],
                    "width": "50"
                }
            ]
        },
        {
            "name": "Issue Details",
            "fields": [
                {
                    "label": "Issue Category",
                    "type": "select",
                    "code": "category",
                    "required": true,
                    "options": [
                        {
                            "value": "Technical Issue"
                        },
                        {
                            "value": "Billing Question"
                        },
                        {
                            "value": "Feature Request"
                        },
                        {
                            "value": "Bug Report"
                        },
                        {
                            "value": "Account Access"
                        },
                        {
                            "value": "Other"
                        }
                    ],
                    "width": "100"
                },
                {
                    "label": "Subject",
                    "type": "text",
                    "code": "subject",
                    "required": true,
                    "placeholder": "Brief description of the issue",
                    "width": "100"
                },
                {
                    "label": "Description",
                    "type": "textarea",
                    "code": "description",
                    "required": true,
                    "placeholder": "Please provide detailed information about your issue...",
                    "width": "100"
                },
                {
                    "label": "Attachments",
                    "type": "file-upload",
                    "code": "attachments",
                    "required": false,
                    "width": "100"
                }
            ]
        }
    ]
}
```

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

  What happens after someone submits this support ticket form? FilaForms stores the initial request in your Laravel application's database and shows it in the Filament submission dashboard. A Laravel listener can then read the email, priority, and attachments values to route the request. 

 Can I track severity separately from priority? Yes. Add a severity field when you need to record business impact independently from the urgency selected as priority. 

 How do I route a support ticket in Laravel? Listen for FilaForms\\\\Core\\\\Events\\\\FormSubmitted, then use the submitted email, priority, and attachments values in the Laravel workflow that routes the request. 

 Does this template include ticket assignment or SLA tracking? No. This form has no SLA timers, ticket status workflow, or agent assignment. It only captures the initial request. 

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

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

- [ Let customers file a warranty claim with proof of purchase attached Import a Laravel warranty claim form for Filament, collect purchase proof and photos, then... ](https://filaforms.app/templates/warranty-claim)
- [ Let customers request a product return without emailing support Import a Laravel return request form for Filament, collect order details and return reason... ](https://filaforms.app/templates/return-request)
- [ Let clients request a service with the details your team needs Import a Laravel service request form for Filament, capture service type and urgency, then... ](https://filaforms.app/templates/service-request)
- [ Give customers a structured way to report a problem Import a Laravel customer complaint form template with structured intake, severity details... ](https://filaforms.app/templates/complaint-form)
- [ 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)

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