Support template

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 route each request to your scheduling workflow.

Open this template in the demo builder 8 fields, 7 required. Free demo account, no card.

Updated

This Laravel service request form lets clients state the service they need, describe their requirements, and mark urgency before your team schedules work. Import it into FilaForms, then give clients one intake path instead of asking them to assemble essential details across email messages.

After submission, FilaForms stores the request in your Laravel application's database and shows it in the Filament submission dashboard. Your scheduling team can review the request there before assigning work. The field table below gives them a consistent starting record, while your application keeps control of routing, ownership, and follow-up.

Fields in this template (8 fields, 7 required)

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

Contact Information

Field Type Required Validation
Name name Text Yes required
Email email Email Yes required
Phone phone Phone Number Yes required
Company company Text No none

Service Request

Field Type Required Validation
Service Type service_type Select, 5 options Yes required
Urgency urgency Select, 4 options Yes required
Preferred Timeline timeline Select, 4 options Yes required
Detailed Requirements requirements Textarea Yes required

Route service requests into your scheduling workflow

The field grouping follows the order a scheduler needs for an initial decision. Client contact details establish who needs a reply. The service choice identifies the type of work. Urgency gives the reviewer a triage signal. Requirements provide the context that makes the request understandable before anyone calls the client.

Do not treat urgency as a delivery commitment. A client can accurately report that a problem feels urgent without knowing the dependencies, technician availability, or scope involved. Let a scheduler compare the request against current capacity before confirming a visit, repair, or delivery window.

This distinction matters for a service desk as much as it does for a field team. Forrester's 2024 State of the Service Desk report found that only 55% of employees feel completely supported by their service desk. The finding does not set a target for your organisation. It does show why clear intake and an owned next step matter after someone asks for help.

Use the submitted service type to decide which queue should receive the request. A maintenance business might send one service type to dispatch and another to a technical reviewer. A professional-services team might use it to identify the specialist who estimates the work. Keep that decision in Laravel code, where it can use the rules and records your application already owns.

The requirements field is free text, so it cannot validate quoting or scheduling. Someone still has to read it before promising a delivery date. That is the limit of this template. It creates a reliable request record, but it cannot determine whether the work is feasible, priced correctly, or available on a given date.

The settings block lets you adjust the imported template in the panel when your intake process changes. Keep the service request as the original record. A notification, ticket, or internal task can move work forward, but it should retain a reference to the request rather than replace its context.

For a subscription-based service desk, add a plan_tier select so requirements route by the customer's plan. A premium plan may need a faster internal response path. A standard plan may enter the regular queue. A controlled selection also keeps plan labels consistent when customers contact you through several channels.

Make the plan tier useful only when it reflects an authoritative customer record. A client-selected value can guide early triage, but it should not override billing or entitlement data. Your scheduling workflow can check the account after submission before it applies a plan-specific response target.

FilaForms emits FormSubmitted after a client submits this template. The listener below reads email, service_type, and urgency from the submission data. It records the essentials for an existing scheduling workflow. Save it as app/Listeners/RouteServiceRequest.php.

<?php

namespace App\Listeners;

use FilaForms\Core\Events\FormSubmitted;
use Illuminate\Support\Facades\Log;

final class RouteServiceRequest
{
    public function handle(FormSubmitted $event): void
    {
        $data = $event->submission->data;

        Log::info('Service request received', [
            'form_id' => $event->form->getKey(),
            'email' => $data['email'] ?? null,
            'service_type' => $data['service_type'] ?? null,
            'urgency' => $data['urgency'] ?? null,
        ]);
    }
}

Laravel 12 discovers listeners in app/Listeners automatically. Replace the log call with the application action that creates a scheduling task, sends an internal notification, or adds the request to your queue. Keep the listener focused on routing. Put availability checks, pricing rules, and technician selection in the services that already govern those decisions.

Start with the imported template when clients need a clear way to ask for work. Use the field table below as the shared intake record for staff who respond, quote, and schedule. A Laravel form builder for Filament keeps those submissions near the rest of your application data. Review the FilaForms form features when you need notifications, submission review, or conditional follow-up questions.

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('service-request');
Template schema (JSON)
{
    "name": "Service Request Form",
    "description": "Professional service request with detailed requirements",
    "icon": "heroicon-o-wrench",
    "category": "Support",
    "popularity": "High",
    "sections": [
        {
            "name": "Contact Information",
            "fields": [
                {
                    "label": "Name",
                    "type": "text",
                    "code": "name",
                    "required": true,
                    "width": "50"
                },
                {
                    "label": "Email",
                    "type": "email",
                    "code": "email",
                    "required": true,
                    "width": "50"
                },
                {
                    "label": "Phone",
                    "type": "phone",
                    "code": "phone",
                    "required": true,
                    "width": "50"
                },
                {
                    "label": "Company",
                    "type": "text",
                    "code": "company",
                    "required": false,
                    "width": "50"
                }
            ]
        },
        {
            "name": "Service Request",
            "fields": [
                {
                    "label": "Service Type",
                    "type": "select",
                    "code": "service_type",
                    "required": true,
                    "options": [
                        {
                            "value": "Consultation"
                        },
                        {
                            "value": "Implementation"
                        },
                        {
                            "value": "Training"
                        },
                        {
                            "value": "Maintenance"
                        },
                        {
                            "value": "Custom Development"
                        }
                    ],
                    "width": "50"
                },
                {
                    "label": "Urgency",
                    "type": "select",
                    "code": "urgency",
                    "required": true,
                    "options": [
                        {
                            "value": "Low"
                        },
                        {
                            "value": "Medium"
                        },
                        {
                            "value": "High"
                        },
                        {
                            "value": "Critical"
                        }
                    ],
                    "width": "50"
                },
                {
                    "label": "Preferred Timeline",
                    "type": "select",
                    "code": "timeline",
                    "required": true,
                    "options": [
                        {
                            "value": "Within 1 week"
                        },
                        {
                            "value": "Within 1 month"
                        },
                        {
                            "value": "Within 3 months"
                        },
                        {
                            "value": "Flexible"
                        }
                    ],
                    "width": "100"
                },
                {
                    "label": "Detailed Requirements",
                    "type": "textarea",
                    "code": "requirements",
                    "required": true,
                    "placeholder": "Describe your service requirements in detail...",
                    "width": "100"
                }
            ]
        }
    ]
}

Frequently asked questions

What happens after a client submits this service request form?
FilaForms stores the request in your Laravel application's database and shows it in the Filament submission dashboard, where your scheduling team can review it before assigning work.
Can I adapt this service request form for a subscription-based service desk?
Yes. Add a plan_tier select so requirements route by the customer's plan.
How do I route a submitted service request in Laravel?
Listen for FilaForms\\Core\\Events\\FormSubmitted and read email, service_type, and urgency from the submission data before sending the request to your scheduling workflow.
Does the requirements field validate a quote or delivery date?
No. The requirements field is free text, so it cannot validate quoting or scheduling. Someone still has to read it before promising a delivery date.

More templates