Legal template
Let your team request an NDA before sharing anything sensitive
Import a Laravel NDA request form into Filament, adapt its legal intake, and route each submission to your drafting workflow.
Updated
This Laravel NDA request form gives staff a consistent way to ask legal for an agreement before they share confidential information. After import, your team gets a request flow inside the Filament application they already run, plus submission records that can begin a drafting workflow.
The form keeps the request focused on the requester, the named counterparty, and the NDA type. That context lets legal decide whether to use an existing position, ask a follow-up question, or prepare a new agreement. It also gives your application stable values to route without parsing an email subject line.
NDA intake creates recurring work for legal teams. Legal Dive reported an Ontra survey by Wakefield Research in 2023. About 65% of private markets professionals spend six or more hours a week negotiating NDAs. A structured request cannot remove negotiation, but it can give legal the facts needed to start the right conversation.
Import this template when the request belongs with the rest of your application data. FilaForms is a Laravel form builder for Filament that stores submissions in your own database. That matters when an NDA request should be visible alongside client, project, or matter records under your existing access controls.
Fields in this template (12 fields, 8 required)
Field types used: Text, Email, Select, Date, Radio, Number, Textarea, Toggle, File Upload. Every field is editable in the builder after import.
Requester
| Field | Type | Required | Validation |
|---|---|---|---|
Your Name
requester_name
|
Text | Yes |
required |
Work Email
email
|
Yes |
required | email |
|
Department
department
|
Select, 7 options | Yes |
required |
Needed By
needed_by
|
Date | Yes |
required |
Counterparty
| Field | Type | Required | Validation |
|---|---|---|---|
Counterparty Name
counterparty
|
Text | Yes |
required |
Counterparty Country
country
|
Text | Yes |
required |
Counterparty Contact Email
counterparty_email
|
No |
email |
|
NDA Type
nda_type
|
Radio, 3 options | Yes |
required |
Term (months)
term_months
|
Number | No |
integer | between:1,120 |
Purpose of Disclosure
purpose
|
Textarea | Yes |
required |
Counterparty Paper Provided
their_paper
|
Toggle | No | none |
Their Draft
their_draft
|
File Upload | No | none |
Route an NDA request into your legal workflow
The field table below separates the person requesting the NDA from the external organization involved. Keep that distinction when you connect the submission to your own models. The requester may be an employee, while the counterparty is a prospective customer, vendor, adviser, or partner.
After submission, create a legal-work item using the requester email, counterparty, and requested NDA type. Your legal team can then assign an owner, request missing information, and choose its drafting path. If your application already has a matter model, associate that item with the relevant matter instead of creating a separate inbox.
The following listener receives each submission event and records the values required for that handoff. Register the listener in your application's event discovery or event configuration. Replace the log destination with the job, notification, or model creation your legal workflow already uses.
<?php
namespace App\Listeners;
use FilaForms\Core\Events\FormSubmitted;
use Illuminate\Support\Facades\Log;
class RecordNdaRequestForLegalTeam
{
public function handle(FormSubmitted $event): void
{
Log::info('NDA request submitted', [
'form_id' => $event->form->getKey(),
'requester_email' => $event->submission->data['email'] ?? null,
'counterparty' => $event->submission->data['counterparty'] ?? null,
'nda_type' => $event->submission->data['nda_type'] ?? null,
]);
}
}
Use the submission data as an intake record, not as the agreement itself. A legal-work item can preserve the submitted context, while the drafted document remains under the document and approval process your organization already trusts. This boundary also makes revisions easier to audit because the original request stays separate from later negotiations.
Decide who owns incomplete requests before you publish the form. Some teams assign every request to a legal coordinator first. Others route requests by business unit or counterparty type. Your listener can add that application-specific routing after it receives the stable submitted values. Keep the original values unchanged so legal can compare follow-up work with the initial request.
Avoid treating the requester's email as proof that the requester has authority to bind the organization. Use your application's authentication and authorization rules to identify staff. Legal can then confirm the relationship and signing authority during drafting. This keeps the form small while leaving approval decisions with the people and records that govern them.
For a legal team that issues only one-way NDAs, remove the NDA type field and add a signing deadline date field. The deadline makes urgency explicit, which helps legal order requests without guessing from free-form notes. Keep the counterparty context because the team still needs to know who will sign and which relationship creates the request.
This template requests an NDA. It does not generate the NDA document, route it through e-signature, or check for an existing NDA with that counterparty. Add those controls in the systems that own approved clauses, signatures, and counterparty history. The request form should collect reliable context before those systems take over.
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('nda-request');
Template schema (JSON)
{
"name": "NDA Request Form",
"description": "Request a mutual or one-way NDA with counterparty detail",
"icon": "heroicon-o-lock-closed",
"category": "Legal",
"popularity": "High",
"sections": [
{
"name": "Requester",
"fields": [
{
"label": "Your Name",
"type": "text",
"code": "requester_name",
"required": true,
"width": "50"
},
{
"label": "Work Email",
"type": "email",
"code": "email",
"required": true,
"validation": [
{
"name": "email",
"parameters": []
}
],
"width": "50"
},
{
"label": "Department",
"type": "select",
"code": "department",
"required": true,
"options": [
{
"value": "Sales"
},
{
"value": "Engineering"
},
{
"value": "Product"
},
{
"value": "Marketing"
},
{
"value": "Finance"
},
{
"value": "People"
},
{
"value": "Operations"
}
],
"width": "50"
},
{
"label": "Needed By",
"type": "date",
"code": "needed_by",
"required": true,
"width": "50"
}
]
},
{
"name": "Counterparty",
"fields": [
{
"label": "Counterparty Name",
"type": "text",
"code": "counterparty",
"required": true,
"width": "50"
},
{
"label": "Counterparty Country",
"type": "text",
"code": "country",
"required": true,
"width": "50"
},
{
"label": "Counterparty Contact Email",
"type": "email",
"code": "counterparty_email",
"required": false,
"validation": [
{
"name": "email",
"parameters": []
}
],
"width": "50"
},
{
"label": "NDA Type",
"type": "radio",
"code": "nda_type",
"required": true,
"options": [
{
"value": "Mutual"
},
{
"value": "We disclose only"
},
{
"value": "They disclose only"
}
],
"width": "50"
},
{
"label": "Term (months)",
"type": "number",
"code": "term_months",
"required": false,
"validation": [
{
"name": "integer",
"parameters": []
},
{
"name": "between",
"parameters": [
"1",
"120"
]
}
],
"width": "50"
},
{
"label": "Purpose of Disclosure",
"type": "textarea",
"code": "purpose",
"required": true,
"width": "100"
},
{
"label": "Counterparty Paper Provided",
"type": "toggle",
"code": "their_paper",
"required": false,
"width": "50"
},
{
"label": "Their Draft",
"type": "file-upload",
"code": "their_draft",
"required": false,
"width": "50"
}
]
}
]
}
Frequently asked questions
- Does this form generate an NDA document?
- No. This form requests an NDA; it does not generate the document, route it through e-signature, or check whether an NDA already exists with that counterparty.
- Can a one-way-only legal team adapt this template?
- Yes. Remove the NDA type field and add a signing deadline date field when your legal team issues only one-way NDAs.
- How can legal receive an NDA request in Laravel?
- Listen for FilaForms\Core\Events\FormSubmitted, read the requester email, counterparty, and NDA type from submission data, then route that information into your legal workflow.