Laravel Speaker Request Form Template | 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 organizers submit a speaking invitation with the details you need

 Contact template

Let organizers submit a speaking invitation with the details you need
=====================================================================

Import a Laravel speaker request form for Filament, review event details, and route each invitation to the person who manages bookings.

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

 Updated September 2, 2026

 This Laravel speaker request form gives event organizers one place to send a speaking invitation with the context a booking owner needs. Import it into FilaForms, then use the field table below to collect each request inside the Laravel application you run.

The imported template creates a submission record when an organizer sends the form. Your booking owner can review the invitation details, and Laravel can route the request into the workflow that already handles speaker decisions. This keeps the form intake close to your event, editorial, or partnership records.

The field table below should support a fast first decision. An event date establishes the time constraint. A topic explains what the organizer expects the speaker to cover. Travel coverage signals whether the request may require an expense conversation before anyone commits.

Keep the intake focused on facts that change the next action. A booking owner needs enough context to decide whether to reply, ask a follow-up question, or decline. Questions that do not influence those decisions add work for organizers and slow the review queue.

Use the same labels that appear in your existing booking process. An event team may call the request an invitation, while a podcast team may call it a guest proposal. The template can use either language, provided the person reviewing submissions understands the terms without interpretation.

FilaForms stores each invitation in your application's database. That gives the booking owner a source record they can inspect while replying. It also lets your application attach its own event, contact, or opportunity records after a person accepts the request.

For a public conference site, send organizers to this page from the section where speakers are introduced. For a company blog, place it beside editorial contact details. The [Laravel form builder for Filament](/) keeps the visual form configuration in the panel, while your application owns the work that follows a submission.

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

 Field types used: Text, Link, Date, Number, Radio, Email, Toggle, Textarea. Every field is editable in the builder after import.

### Event

    Field Type Required Validation      Event Name `event_name`   Text  Yes  `required`     Event Website `event_website`   Link  No  none     Event Date `event_date`   Date  Yes  `required`     Location `location`   Text  Yes  `required`     Expected Audience `audience`   Number  No  `integer | min:1`     Format `format`   Radio, 3 options  Yes  `required`     

### Request

    Field Type Required Validation      Your Name `requester_name`   Text  Yes  `required`     Email Address `email`   Email  Yes  `required | email`     Topic `topic`   Text  Yes  `required`     Travel and Fees Covered `covers_travel`   Toggle  No  none     Anything Else? `notes`   Textarea  No  none     

 Route invitations to the person who makes booking decisions
-----------------------------------------------------------

The first review should produce a clear outcome. Assign one person or a small group to own the incoming queue. They can check the event date, assess the proposed topic, and determine whether travel coverage affects the response. This prevents requests from sitting in a general inbox with no responsible owner.

Treat the submission as intake rather than confirmation. A request may be a good fit in principle but conflict with an existing engagement. It may also require information about audience, format, timing, or travel arrangements. A short reply that asks for the missing decision detail is more useful than accepting based on an incomplete form.

The listener below reads the event date, topic, and travel coverage from this template. It records those values with the form and submission identifiers. Replace the log call with the notification or application action that sends each request to the booking owner.

```
submission->data;

        Log::info('Speaker request received', [
            'form_id' => $event->form->getKey(),
            'submission_id' => $event->submission->getKey(),
            'event_date' => $data['event_date'] ?? null,
            'topic' => $data['topic'] ?? null,
            'covers_travel' => $data['covers_travel'] ?? null,
        ]);
    }
}

```

Save the listener in `app/Listeners/LogSpeakerRequest.php`. Laravel 12 discovers listeners in that directory automatically. The logged data gives you a runnable checkpoint before you connect the event to an email notification, an internal task, or a booking queue.

Keep the submission identifier when your application creates a related booking record. The identifier lets a teammate trace a later decision back to the organizer's original request. It also avoids copying every answer into several records before the request has passed initial review.

For paid speaking engagements, add a `fee` code when the booking owner needs a budget signal before deciding whether to continue. Place the fee question near the information that frames the engagement. Make the question optional if some organizers cannot commit a budget until a conversation takes place.

For virtual-only events, remove `covers_travel`. Travel coverage cannot affect the booking decision when nobody will travel. Removing that question shortens the form and tells organizers that you understand the format they selected.

Screen the first response with the same standards your speaker uses offline. Check whether the topic suits the audience. Check whether the event date leaves enough preparation time. Check whether travel coverage creates a cost that requires approval. Store those judgments in application-owned records if you need a history beyond the submitted invitation.

Do not use the template as a calendar system. The form does not check calendar availability or auto-decline conflicting dates. Someone still reviews and replies to each request. Add a separate availability check or booking workflow when your process needs an immediate answer.

The [FilaForms features for Laravel and Filament](/features) help when a request needs conditional questions or a multi-step flow. Keep this template as the intake surface. Let Laravel handle routing, approval, and any calendar logic that follows a submitted invitation.

 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('speaker-request');
```

  Template schema (JSON) ```
{
    "name": "Speaker Request Form",
    "description": "Invite a speaker with event, audience and travel details",
    "icon": "heroicon-o-microphone",
    "category": "Contact",
    "popularity": "Medium",
    "sections": [
        {
            "name": "Event",
            "fields": [
                {
                    "label": "Event Name",
                    "type": "text",
                    "code": "event_name",
                    "required": true,
                    "width": "50"
                },
                {
                    "label": "Event Website",
                    "type": "link",
                    "code": "event_website",
                    "required": false,
                    "width": "50"
                },
                {
                    "label": "Event Date",
                    "type": "date",
                    "code": "event_date",
                    "required": true,
                    "width": "50"
                },
                {
                    "label": "Location",
                    "type": "text",
                    "code": "location",
                    "required": true,
                    "placeholder": "City, country or Online",
                    "width": "50"
                },
                {
                    "label": "Expected Audience",
                    "type": "number",
                    "code": "audience",
                    "required": false,
                    "validation": [
                        {
                            "name": "integer",
                            "parameters": []
                        },
                        {
                            "name": "min",
                            "parameters": [
                                "1"
                            ]
                        }
                    ],
                    "width": "50"
                },
                {
                    "label": "Format",
                    "type": "radio",
                    "code": "format",
                    "required": true,
                    "options": [
                        {
                            "value": "In person"
                        },
                        {
                            "value": "Virtual"
                        },
                        {
                            "value": "Hybrid"
                        }
                    ],
                    "width": "50"
                }
            ]
        },
        {
            "name": "Request",
            "fields": [
                {
                    "label": "Your Name",
                    "type": "text",
                    "code": "requester_name",
                    "required": true,
                    "width": "50"
                },
                {
                    "label": "Email Address",
                    "type": "email",
                    "code": "email",
                    "required": true,
                    "validation": [
                        {
                            "name": "email",
                            "parameters": []
                        }
                    ],
                    "width": "50"
                },
                {
                    "label": "Topic",
                    "type": "text",
                    "code": "topic",
                    "required": true,
                    "width": "100"
                },
                {
                    "label": "Travel and Fees Covered",
                    "type": "toggle",
                    "code": "covers_travel",
                    "required": false,
                    "description": "Turn off if the event cannot cover travel",
                    "default": true,
                    "width": "100"
                },
                {
                    "label": "Anything Else?",
                    "type": "textarea",
                    "code": "notes",
                    "required": false,
                    "width": "100"
                }
            ]
        }
    ]
}
```

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

  What happens after an organizer submits this speaker request form? FilaForms stores the invitation as a submission in your application's database, where your Laravel code can route it to the person who manages bookings. 

 Can I use this template for paid speaking engagements? Yes. Add a fee code when paid engagements need a budget signal before the booking owner reviews the request. 

 Should virtual events ask whether the organizer covers travel? No. Remove covers\_travel when every event is virtual, because that answer cannot affect the booking decision. 

 How do I notify the booking owner about a request? Listen for FilaForms\\Core\\Events\\FormSubmitted and read event\_date, topic, and covers\_travel from the submission data in a Laravel listener. 

 Does this form check speaker availability? No. The form does not check calendar availability or auto-decline conflicting dates, so someone still reviews and replies to each 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/speaker-request) [ See pricing ](https://filaforms.app/pricing) 

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

- [ Route business inquiries by type before you ever reply Import a Laravel general inquiry form for Filament, capture inquiry types and questions, t... ](https://filaforms.app/templates/inquiry-form)
- [ 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... ](https://filaforms.app/templates/sales-contact)
- [ Give visitors a way to reach you without exposing your email Import a Laravel contact form for Filament, store each message in your application, notify... ](https://filaforms.app/templates/contact-form)
- [ Qualify demo requests before your sales team picks up the phone Import a Laravel demo request form for Filament, qualify leads by company size and product... ](https://filaforms.app/templates/demo-request)
- [ 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)
