Laravel Client Onboarding 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. Get everything you need from a new client before kickoff

 Agency &amp; Freelance template

Get everything you need from a new client before kickoff
========================================================

Import a Laravel client onboarding form for Filament, collect project details, and route each submission into your application.

 [ Open this template in the demo builder ](https://filaforms.app/app/templates/client-onboarding) 15 fields, 5 required. Free demo account, no card. 

 Updated September 2, 2026

 This Laravel client onboarding form gives a new client one place to share their email address, company details, and selected services before kickoff. Import it into FilaForms, then use the field table below as the starting structure for an agency or freelance client portal.

The imported form keeps onboarding submissions inside the Laravel application you already run. Your team can review each response in the submission dashboard, then connect the submitted details to your project, account, or delivery workflow.

  Fields in this template (15 fields, 5 required) 
-------------------------------------------------

 Field types used: Text, Link, Select, Email, Phone Number, Multi Select, Date, Currency, Checkbox List, Textarea. Every field is editable in the builder after import.

### Company

    Field Type Required Validation      Company Name `company`   Text  Yes  `required`     Website `website`   Link  No  none     Industry `industry`   Text  No  none     Company Size `company_size`   Select, 5 options  No  none     

### Key Contacts

    Field Type Required Validation      Primary Contact Name `contact_name`   Text  Yes  `required`     Primary Contact Email `email`   Email  Yes  `required | email`     Phone Number `phone`   Phone Number  No  none     Billing Email `billing_email`   Email  No  `email`     Who Signs Off Work? `approver`   Text  No  none     Preferred Communication `communication`   Select, 5 options  No  none     

### Engagement

    Field Type Required Validation      Services Engaged `services`   Multi Select, 8 options  Yes  `required`     Kickoff Date `kickoff_date`   Date  Yes  `required`     Monthly Retainer `retainer`   Currency  No  none     Access We Need `access_needed`   Checkbox List, 7 options  No  none     Anything We Should Know? `notes`   Textarea  No  none     

### Form settings the template ships with

 Submit buttonFinish onboarding

After submitshow message

Success messageThanks. Your onboarding details are in and we will send a kickoff invite shortly.

Admin email subjectNew client onboarded: {form\_name}

Auto-response subjectWelcome aboard

  Turn submitted details into a usable kickoff record
---------------------------------------------------

The field table below renders from the imported template. It groups client identity and service selection before your team starts work. That sequence helps a client explain who they are and what they need without making them navigate several disconnected requests.

Use the company value to match a response to an existing account or create a record for a new one. Use the email value as the contact point for a kickoff message, a clarification, or a service update. Treat the services value as an intake signal rather than a final statement of scope. A client may select several services before you have confirmed timing, deliverables, or ownership.

The settings block controls how the imported form behaves in your panel. Build and adjust it visually there, rather than maintaining a hand-written Filament schema. This gives the people responsible for intake a visible place to refine the form when your onboarding process changes.

Zuko Analytics form benchmarking, 2026, reports that onboarding forms have a 51.8% starter-to-completion rate. Keep the opening request clear, and ask for information that someone will use during kickoff. A question without an owner adds friction and creates a response that nobody can act on.

For an agency, route a completed submission to the person who owns client qualification or project setup. They can check whether the selected services fit an existing engagement. They can also identify missing context before scheduling a discovery call. This keeps the first conversation focused on decisions instead of basic account details.

For a productised service, use the services selection to start a defined workflow. A content request can create an internal checklist. A design service can notify the project lead. A recurring service can prompt the team to confirm the next billing period. The submission should initiate work only after your own application rules decide what applies.

Adapt the template for solo freelancers
---------------------------------------

Solo freelancers can drop the approver field when they onboard clients without an internal approval step. That removes a question that a client cannot answer usefully when one person owns both sales and delivery. Keep the company, email, and services fields because they still establish the client record and the requested work.

You may also simplify your own follow-up process. A solo freelancer can review new submissions at a fixed time each day. They can send a personal confirmation after checking the requested services. That approach suits a low-volume practice because it keeps judgment with the person who delivers the work.

Do not use the form as a substitute for a signed agreement. A selected service does not settle scope, deadlines, revision limits, or payment terms. Capture those decisions in the contract or project process that your business already uses. The form works best when it prepares that next conversation.

Route new clients into your Laravel application
-----------------------------------------------

FilaForms emits `FormSubmitted` after a client submits the form. A Laravel listener can read `email`, `company`, and `services` from the submission data. It can then record the event for a review queue or hand the data to application code that creates a client intake task.

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

```
submission->data;

        $email = $data['email'] ?? null;
        $company = $data['company'] ?? null;
        $services = $data['services'] ?? null;

        Log::info('Client onboarding received', [
            'form_id' => $event->form->getKey(),
            'submission_id' => $event->submission->getKey(),
            'email' => $email,
            'company' => $company,
            'services' => $services,
        ]);
    }
}

```

Replace the log call with the action your application needs. A client portal can create an intake task for the assigned account owner. An internal queue can flag a submission when services do not match an active agreement. A notification can prompt the delivery lead to prepare the kickoff agenda.

Keep the original submission as the source record. Derived records make triage easier, but they should retain a link to the submission when somebody needs the complete context. This protects your workflow when a client corrects a detail or when reporting requirements change.

This form does not set up billing or provision project access on its own. Someone still has to act on the submitted details in your other tools. Add that automation only after you define who approves the client, which services start immediately, and which records must exist first.

Know when a different tool fits
-------------------------------

Choose this template when developers already operate the client portal and want onboarding data beside the rest of the application. [FilaForms is a Laravel form builder for Filament](/) that stores submissions in your own database. Review the [FilaForms features for Laravel and Filament](/features) when you need to decide what follow-up workflow belongs in your application.

 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('client-onboarding');
```

  Template schema (JSON) ```
{
    "name": "Client Onboarding Form",
    "description": "Everything you need from a new client before kickoff",
    "icon": "heroicon-o-rocket-launch",
    "category": "Agency & Freelance",
    "popularity": "Very High",
    "experience": {
        "success_message": "Thanks. Your onboarding details are in and we will send a kickoff invite shortly.",
        "post_submit_action": "show_message",
        "display_mode": "wizard",
        "show_progress_bar": true,
        "show_step_numbers": true,
        "submit_button_text": "Finish onboarding"
    },
    "notification_config": {
        "enabled": true,
        "channels": [
            "email"
        ],
        "admin_emails": [
            "accounts@example.com"
        ],
        "custom_admin_subject": true,
        "admin_subject_template": "New client onboarded: {form_name}",
        "send_auto_response": true,
        "auto_response_email_field": "email",
        "auto_response_subject": "Welcome aboard",
        "auto_response_message": "Thanks for completing onboarding. We have everything we need to get started.Your project lead will send a kickoff invite within two working days."
    },
    "sections": [
        {
            "name": "Company",
            "fields": [
                {
                    "label": "Company Name",
                    "type": "text",
                    "code": "company",
                    "required": true,
                    "width": "50"
                },
                {
                    "label": "Website",
                    "type": "link",
                    "code": "website",
                    "required": false,
                    "width": "50"
                },
                {
                    "label": "Industry",
                    "type": "text",
                    "code": "industry",
                    "required": false,
                    "width": "50"
                },
                {
                    "label": "Company Size",
                    "type": "select",
                    "code": "company_size",
                    "required": false,
                    "options": [
                        {
                            "value": "Self employed"
                        },
                        {
                            "value": "2-10"
                        },
                        {
                            "value": "11-50"
                        },
                        {
                            "value": "51-200"
                        },
                        {
                            "value": "200+"
                        }
                    ],
                    "width": "50"
                }
            ]
        },
        {
            "name": "Key Contacts",
            "fields": [
                {
                    "label": "Primary Contact Name",
                    "type": "text",
                    "code": "contact_name",
                    "required": true,
                    "width": "50"
                },
                {
                    "label": "Primary Contact Email",
                    "type": "email",
                    "code": "email",
                    "required": true,
                    "validation": [
                        {
                            "name": "email",
                            "parameters": []
                        }
                    ],
                    "width": "50"
                },
                {
                    "label": "Phone Number",
                    "type": "phone",
                    "code": "phone",
                    "required": false,
                    "width": "50"
                },
                {
                    "label": "Billing Email",
                    "type": "email",
                    "code": "billing_email",
                    "required": false,
                    "validation": [
                        {
                            "name": "email",
                            "parameters": []
                        }
                    ],
                    "width": "50"
                },
                {
                    "label": "Who Signs Off Work?",
                    "type": "text",
                    "code": "approver",
                    "required": false,
                    "width": "50"
                },
                {
                    "label": "Preferred Communication",
                    "type": "select",
                    "code": "communication",
                    "required": false,
                    "options": [
                        {
                            "value": "Email"
                        },
                        {
                            "value": "Slack"
                        },
                        {
                            "value": "Phone"
                        },
                        {
                            "value": "Weekly call"
                        },
                        {
                            "value": "Project tool"
                        }
                    ],
                    "width": "50"
                }
            ]
        },
        {
            "name": "Engagement",
            "fields": [
                {
                    "label": "Services Engaged",
                    "type": "multi-select",
                    "code": "services",
                    "required": true,
                    "options": [
                        {
                            "value": "Brand and identity"
                        },
                        {
                            "value": "Web design"
                        },
                        {
                            "value": "Web development"
                        },
                        {
                            "value": "Content"
                        },
                        {
                            "value": "SEO"
                        },
                        {
                            "value": "Paid media"
                        },
                        {
                            "value": "Consulting"
                        },
                        {
                            "value": "Ongoing support"
                        }
                    ],
                    "width": "100"
                },
                {
                    "label": "Kickoff Date",
                    "type": "date",
                    "code": "kickoff_date",
                    "required": true,
                    "width": "50"
                },
                {
                    "label": "Monthly Retainer",
                    "type": "currency",
                    "code": "retainer",
                    "required": false,
                    "width": "50"
                },
                {
                    "label": "Access We Need",
                    "type": "checkbox-list",
                    "code": "access_needed",
                    "required": false,
                    "options": [
                        {
                            "value": "Hosting"
                        },
                        {
                            "value": "Domain registrar"
                        },
                        {
                            "value": "Analytics"
                        },
                        {
                            "value": "Ad accounts"
                        },
                        {
                            "value": "Social accounts"
                        },
                        {
                            "value": "CMS"
                        },
                        {
                            "value": "Code repository"
                        }
                    ],
                    "width": "100"
                },
                {
                    "label": "Anything We Should Know?",
                    "type": "textarea",
                    "code": "notes",
                    "required": false,
                    "width": "100"
                }
            ]
        }
    ]
}
```

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

  What does this Laravel client onboarding form collect? It collects a client's email address, company details, and selected services. The field table below shows the imported structure. 

 Can solo freelancers use this client onboarding form? Yes. Solo freelancers can drop the approver field when they onboard clients without an internal approval step. 

 How do I route client onboarding submissions into my Laravel application? Listen for FilaForms\\\\Core\\\\Events\\\\FormSubmitted and read email, company, and services from the submission data. 

 Does this form set up billing or project access? No. This form does not set up billing or provision project access on its own. Someone still has to act on the submitted details in other tools. 

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

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

- [ 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)
- [ 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)
- [ 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 ro... ](https://filaforms.app/templates/legal-client-intake)
- [ 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)
