Contact template
Route sales enquiries to the right rep with budget and timeline upfront
Import a Laravel sales contact form for Filament, capture company and budget context, then route each enquiry into your application.
Updated
This Laravel sales contact form gives prospects a direct way to share their email address, company, budget, team size, and timeline. Import it into FilaForms when your sales team needs enough context to triage an enquiry before writing the first reply.
The imported template keeps each response in the Laravel application your team already runs. The field table below provides the starting structure, while the submission dashboard gives sales and developers one record to review, route, and retain.
A general contact form often produces messages that require another email before anyone can decide who owns the conversation. This template asks for the commercial details that usually affect the first response. A company identifies the account. A budget frames the likely scope. Team size and timeline show the likely buying process and urgency.
Do not treat every answer as a strict filter. A prospect may not know their final budget. They may write a timeline that depends on internal approval. Use the responses to prepare a useful reply and assign ownership, rather than rejecting leads through an assumption.
Chili Piper's 2022 B2B Vendor Response Time study found that nearly 30% of companies never responded at all to a submitted demo request. A submitted form only starts the process. Decide who sees new enquiries, how quickly they respond, and which details they need to make that response relevant.
FilaForms is a Laravel form builder for Filament when sales data belongs beside accounts, users, and internal workflows. Your team can adjust the imported template visually in the Filament panel. The submission remains in your own database, where your application can connect it to the records that already govern sales work.
Fields in this template (8 fields, 6 required)
Field types used: Text, Email, Phone Number, Select, Currency, Toggle Buttons, Textarea. Every field is editable in the builder after import.
Your Details
| Field | Type | Required | Validation |
|---|---|---|---|
Full Name
full_name
|
Text | Yes |
required |
Work Email
email
|
Yes |
required | email |
|
Company
company
|
Text | Yes |
required |
Phone Number
phone
|
Phone Number | No | none |
What You Need
| Field | Type | Required | Validation |
|---|---|---|---|
Team Size
team_size
|
Select, 5 options | Yes |
required |
Approximate Budget
budget
|
Currency | No | none |
Buying Timeline
timeline
|
Toggle Buttons, 4 options | Yes |
required |
How Can We Help?
message
|
Textarea | Yes |
required | min:20 |
Route sales enquiries into an accountable follow-up process
The field table below groups contact information with the details that shape a sales conversation. That order lets a prospect identify their organisation before they explain the request. It also gives a representative a compact briefing before they open a message or schedule a call.
Assign a clear owner to each new submission. A smaller team may send all enquiries to one sales inbox. A larger team may route by account segment, territory, or product line. The template does not decide that policy. Your Laravel application should make the assignment where it already understands users, accounts, and permissions.
Keep the first follow-up tied to the submitted context. A representative can acknowledge the stated timeline, ask about an unclear budget, and address the company by name. That is more useful than a generic confirmation. It also gives the sales team a consistent source record when several people discuss the same enquiry.
The settings block controls the form behaviour in your panel. Change it there when your sales process changes, instead of maintaining a hand-written Filament schema. This keeps the form visible to the people who own lead collection and prevents configuration from drifting away from the working sales process.
Adapt the template for a fixed-scope package
For an agency selling one fixed-scope package, drop budget and team_size. Add a preferred_start_date field instead. A fixed offer already defines the commercial range, so a start date gives the team a more useful signal about delivery planning.
Keep the company and email details in that variant. They still give the agency a contact point and a way to match a request to an existing client. Ask only for details that change the next action. A fixed-scope package does not need a budget question when the price is already clear.
You can use the same approach for other focused offerings. If a consultant only accepts work in one region, add a location only when it changes availability. If a service requires a decision-maker, add a role question only when it changes who receives the follow-up. Each extra question needs an owner who will use the answer.
Route submissions inside Laravel
FilaForms emits FormSubmitted after a prospect submits this template. A Laravel listener can read email, company, and budget from the submission data. The example writes the submission context to the application log, which gives you a runnable starting point for a notification or review workflow.
Save the listener as app/Listeners/LogSalesContact.php. Laravel 12 discovers listeners in that directory automatically.
<?php
namespace App\Listeners;
use FilaForms\Core\Events\FormSubmitted;
use Illuminate\Support\Facades\Log;
final class LogSalesContact
{
public function handle(FormSubmitted $event): void
{
$data = $event->submission->data;
$email = $data['email'] ?? null;
$company = $data['company'] ?? null;
$budget = $data['budget'] ?? null;
Log::info('Sales contact received', [
'form_id' => $event->form->getKey(),
'submission_id' => $event->submission->getKey(),
'email' => $email,
'company' => $company,
'budget' => $budget,
]);
}
}
Replace the log call with the action your application needs. You might notify the representative who owns the account, create an internal lead record, or place the enquiry into a review queue. Keep the original submission as the source record. Derived records should retain its identifier so a teammate can inspect the complete response later.
This template captures budget and timeline as text. It does not score or qualify the lead, so routing beyond a notification email remains your responsibility. Add lead scoring only after you define the signals, outcomes, and review process that make a score useful for your team.
Know when this template is the wrong tool
Choose this template when developers already operate the sales application and want enquiries close to the account data that informs follow-up. Review the FilaForms features for Laravel and Filament when your workflow needs conditional questions, multi-step forms, notifications, or submission analytics.
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('sales-contact');
Template schema (JSON)
{
"name": "Sales Contact Form",
"description": "Route sales enquiries to the right team with budget and timeline context",
"icon": "heroicon-o-currency-dollar",
"category": "Contact",
"popularity": "High",
"sections": [
{
"name": "Your Details",
"fields": [
{
"label": "Full Name",
"type": "text",
"code": "full_name",
"required": true,
"width": "50"
},
{
"label": "Work Email",
"type": "email",
"code": "email",
"required": true,
"validation": [
{
"name": "email",
"parameters": []
}
],
"width": "50"
},
{
"label": "Company",
"type": "text",
"code": "company",
"required": true,
"width": "50"
},
{
"label": "Phone Number",
"type": "phone",
"code": "phone",
"required": false,
"width": "50"
}
]
},
{
"name": "What You Need",
"fields": [
{
"label": "Team Size",
"type": "select",
"code": "team_size",
"required": true,
"options": [
{
"value": "1-10"
},
{
"value": "11-50"
},
{
"value": "51-200"
},
{
"value": "201-1000"
},
{
"value": "1000+"
}
],
"width": "50"
},
{
"label": "Approximate Budget",
"type": "currency",
"code": "budget",
"required": false,
"description": "Helps us point you at the right plan",
"width": "50"
},
{
"label": "Buying Timeline",
"type": "toggle-buttons",
"code": "timeline",
"required": true,
"options": [
{
"value": "This month"
},
{
"value": "This quarter"
},
{
"value": "Next 6 months"
},
{
"value": "Just researching"
}
],
"width": "100"
},
{
"label": "How Can We Help?",
"type": "textarea",
"code": "message",
"required": true,
"placeholder": "Tell us what you are trying to solve",
"validation": [
{
"name": "min",
"parameters": [
"20"
]
}
],
"width": "100"
}
]
}
]
}
Frequently asked questions
- What does this Laravel sales contact form collect?
- It captures an email address, company, budget, team size, and timeline so sales can triage an enquiry before the first reply.
- How should I adapt this form for a fixed-scope agency package?
- Drop budget and team_size, then add a preferred_start_date field when you sell one fixed-scope package.
- How do I route sales contact submissions in my Laravel application?
- Listen for FilaForms\\Core\\Events\\FormSubmitted and read email, company, and budget from the submission data.
- Does this template qualify or score sales leads?
- No. The form captures budget and timeline as text, but it does not score or qualify a lead, so routing beyond a notification email remains your responsibility.