Skip to main content
Flex Forms is built for Laravel hosts that need more than no-code feeds — custom CRMs, tenant-scoped models, OAuth-backed connections, and server-side logic on every submission. This page is the map. Each child page covers one extension surface with copy-paste examples.

Extension surfaces

Public API list

Canonical stable surface — prefer these classes over anything marked @internal.

Events & hooks

Listen for FormSubmissionCompleted, integration dispatch events, and form publish lifecycle. Prefer events over Eloquent observers.

Submission pipeline

Laravel-style middleware on answers before persistence — validate, enrich, or abort with a message.

Field mapping

Map form answers to integration payloads with transforms, nested paths, and static values.

Custom integrations

Register drivers for your API — config, discovery folder, or Artisan generator.

OAuth integrations

Two-tier model: OAuth driver + reusable Connections that store tokens per account.

OAuth token management

Redirect/callback routes, refresh lifecycle, encrypted credential storage.

Post-submit actions

Server-side actions after a completed submission — alongside feeds and listeners.

Custom models

Swap FlexForm, submission, connection, or delivery models for multi-tenant schemas.

Admin customization

Navigation, Studio branding, forms table columns, and permission overrides via the plugin.

Config entry point

Publish config to register pipeline middleware and integration drivers:
config/filament-flex-forms.php
Full env and config reference: Config & env.

Stability & deprecation

Public extension points are listed in PUBLIC_API.md. Classes outside that list may change without a major version bump — prefer documented APIs. When we deprecate a public method or event, we keep it working for at least one minor release and document the replacement in Upgrading notes and the changelog.
Last modified on September 7, 2026