Laravel Beneficiary Intake 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. Register people receiving your program's support with consent on record

 Nonprofit template

Register people receiving your program's support with consent on record
=======================================================================

Import a Laravel beneficiary intake form for Filament to collect service needs, record consent, and route new program participants.

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

 Updated September 2, 2026

 This Laravel beneficiary intake form gives program participants a clear way to register for support and record consent before staff offer services. After import, the rendered field table captures the intake details your team needs, while the submission dashboard keeps each response in your application's database.

The template suits nonprofit, aid, and community-service applications built with Filament. It gives developers a starting point for service requests, consent capture, and staff follow-up without hand-writing a form schema. Use it with the [Laravel form builder for Filament](/) when program staff need to adjust the form visually.

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

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

### Personal Details

    Field Type Required Validation      Full Name `full_name`   Text  Yes  `required`     Date of Birth `date_of_birth`   Date  Yes  `required`     Phone Number `phone`   Phone Number  No  none     Email Address `email`   Email  No  `email`     Address `address`   Textarea  No  none     

### Support Needed

    Field Type Required Validation      Services Requested `services`   Multi Select, 7 options  Yes  `required`     Household Size `household_size`   Number  No  `integer | min:1`     Referred By `referred_by`   Text  No  none     Situation `situation`   Textarea  Yes  `required`     

### Consent

    Field Type Required Validation      I consent to my data being stored `data_consent`   Toggle  Yes  `required`     Contact me about other services `marketing_consent`   Toggle  No  none     

 What happens after someone submits
----------------------------------

The field table below separates identity, requested support, and consent because those answers serve different operational decisions. Staff first need to know who has requested help. They then need to understand which services may fit. Consent must remain visible when someone accesses or exports the record.

A new submission appears in the submission dashboard, where staff can review it before beginning a case. This avoids treating every request as an approved enrolment. A program may need to check eligibility, capacity, location, referral criteria, or documentation before it confirms support.

You can also respond immediately through Laravel. The listener below reads the submitted name, requested services, and data-consent value. It writes a structured intake event that an existing casework workflow can use to notify the assigned caseworker or create a review task.

```
submission->data;

        Log::info('Beneficiary intake received', [
            'form_id' => $event->form->getKey(),
            'submission_id' => $event->submission->getKey(),
            'full_name' => $data['full_name'] ?? null,
            'services' => $data['services'] ?? null,
            'data_consent' => $data['data_consent'] ?? null,
        ]);
    }
}

```

Laravel 12 discovers listeners in `app/Listeners` automatically. Keep the listener small and send its structured intake data into the same queue, case-management record, or review process that your staff already trusts. This keeps the form focused on collection and keeps routing rules close to the service workflow.

Routing a new beneficiary to a caseworker
-----------------------------------------

Route new intakes by a rule your program can explain. A local program can assign by service area. A specialist program can assign by requested service. A smaller team can send all new records to one intake queue, then let a coordinator distribute work during regular triage.

The submitted services value should support routing, not replace human judgement. Someone may select several needs, and the right worker may depend on urgency or capacity. Store the original answer with the submission so staff can see why the routing rule chose a queue.

Give the receiving caseworker enough context to make a first contact safely. The person's name, selected services, and consent status provide a useful minimum. Avoid placing extra sensitive details into emails or broad chat channels. Link staff to the protected record instead when they need the full intake.

Only 12% of nonprofits describe themselves as digitally mature, according to the Salesforce Nonprofit Trends Report, 5th edition, 2022. A defined intake route helps a program make its first operational improvement without requiring a full case-management replacement.

Adapting this template for household-based programs
---------------------------------------------------

Household-based programs often make support decisions from shared circumstances rather than one person's request. Add a household size field when household composition changes eligibility, benefit limits, food allocation, or appointment planning. Keep its meaning clear, such as whether it includes the submitting person.

Use the household size in an eligibility check after submission. A field alone cannot decide eligibility because programs also apply local rules, funding conditions, and staff review. Put that decision in the workflow that already owns your program rules, then record the outcome alongside the intake.

Some programs never send outreach communications. Remove marketing consent in that case, so the form asks only for permissions your organization actually uses. Fewer unnecessary questions can make the consent section easier for participants to understand and for staff to administer.

If the program serves people through a representative, define who can submit on another person's behalf. You may need a relationship field or a separate authorization process. Do not infer that authority from a name alone.

Handling consent responsibly
----------------------------

The consent section should explain the specific data use before a participant submits the form. Staff should be able to see the recorded consent status during follow-up. That makes it less likely that a service interaction relies on an assumption made outside the intake record.

Capturing `data_consent` on submission is not a full compliance program. Your organization still needs its own retention policy and a way to honor consent withdrawal. Those processes determine how long data stays available, who can access it, and what changes when a participant withdraws consent.

Treat consent withdrawal as a workflow event, not a note that disappears in a record. Identify the person, update the relevant permission, stop the affected use, and retain only what your policy requires. Review any exports, mailing lists, or connected systems that may have received the earlier consent state.

When this template is the wrong tool
------------------------------------

This template is not enough when your organization needs a complete compliance program. It records an intake consent decision, but it does not create your retention policy or perform consent-withdrawal handling. Define those responsibilities before collecting sensitive beneficiary information.

It also needs adaptation when the program has a formal eligibility assessment, complex household relationships, or referrals across several agencies. Begin with this intake as the registration point, then connect it to the controlled review process that makes the final service decision. For broader form workflows, review the [Filament form builder features](/features).

 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('beneficiary-intake');
```

  Template schema (JSON) ```
{
    "name": "Beneficiary Intake Form",
    "description": "Register people receiving support with consent captured",
    "icon": "heroicon-o-user-group",
    "category": "Nonprofit",
    "popularity": "Medium",
    "sections": [
        {
            "name": "Personal Details",
            "fields": [
                {
                    "label": "Full Name",
                    "type": "text",
                    "code": "full_name",
                    "required": true,
                    "width": "50"
                },
                {
                    "label": "Date of Birth",
                    "type": "date",
                    "code": "date_of_birth",
                    "required": true,
                    "width": "50"
                },
                {
                    "label": "Phone Number",
                    "type": "phone",
                    "code": "phone",
                    "required": false,
                    "width": "50"
                },
                {
                    "label": "Email Address",
                    "type": "email",
                    "code": "email",
                    "required": false,
                    "validation": [
                        {
                            "name": "email",
                            "parameters": []
                        }
                    ],
                    "width": "50"
                },
                {
                    "label": "Address",
                    "type": "textarea",
                    "code": "address",
                    "required": false,
                    "width": "100"
                }
            ]
        },
        {
            "name": "Support Needed",
            "fields": [
                {
                    "label": "Services Requested",
                    "type": "multi-select",
                    "code": "services",
                    "required": true,
                    "options": [
                        {
                            "value": "Food support"
                        },
                        {
                            "value": "Housing advice"
                        },
                        {
                            "value": "Financial advice"
                        },
                        {
                            "value": "Counselling"
                        },
                        {
                            "value": "Legal aid"
                        },
                        {
                            "value": "Employment support"
                        },
                        {
                            "value": "Childcare"
                        }
                    ],
                    "width": "100"
                },
                {
                    "label": "Household Size",
                    "type": "number",
                    "code": "household_size",
                    "required": false,
                    "validation": [
                        {
                            "name": "integer",
                            "parameters": []
                        },
                        {
                            "name": "min",
                            "parameters": [
                                "1"
                            ]
                        }
                    ],
                    "width": "50"
                },
                {
                    "label": "Referred By",
                    "type": "text",
                    "code": "referred_by",
                    "required": false,
                    "width": "50"
                },
                {
                    "label": "Situation",
                    "type": "textarea",
                    "code": "situation",
                    "required": true,
                    "description": "Only share what you are comfortable sharing",
                    "width": "100"
                }
            ]
        },
        {
            "name": "Consent",
            "fields": [
                {
                    "label": "Consent",
                    "type": "section-divider",
                    "code": "consent_divider",
                    "required": false,
                    "placeholder": "Consent",
                    "width": "100"
                },
                {
                    "label": "I consent to my data being stored",
                    "type": "toggle",
                    "code": "data_consent",
                    "required": true,
                    "description": "We store this information to provide support and never sell it",
                    "width": "100"
                },
                {
                    "label": "Contact me about other services",
                    "type": "toggle",
                    "code": "marketing_consent",
                    "required": false,
                    "width": "100"
                }
            ]
        }
    ]
}
```

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

  What happens after a beneficiary submits this form? The submission enters the dashboard, where a listener can send the person's name, requested services, and consent status to your casework workflow. 

 Can this intake form support household-based programs? Yes. Add a household size field and use it in an eligibility check when household composition affects services or support limits. 

 Does recording data consent make our organization fully compliant? No. Capturing data consent is not a full compliance program, so your organization still needs a retention policy and a way to honor consent withdrawal. 

 Should we include marketing consent in this form? Remove marketing consent when your program never sends outreach communications, so the form asks only for permissions you use. 

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

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

- [ 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)
- [ Register new patients with contact, insurance and consent details Import a Laravel patient intake form for Filament, collect contact, insurance, and consent... ](https://filaforms.app/templates/patient-intake)
- [ Get everything you need from a new client before kickoff Import a Laravel client onboarding form for Filament, collect project details, and route e... ](https://filaforms.app/templates/client-onboarding)
- [ Record a patient's medical history before their first visit Import a Laravel medical history form for Filament, collect pre-visit health details, and... ](https://filaforms.app/templates/medical-history)
- [ 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)
