Skip to main content

Flex Forms public API

Stable extension points for host applications integrating with Filament Flex Forms.

Model customization

  • Bjanczak\FilamentFlexForms\FlexForms
    • useFormModel(), useSubmissionModel(), useConnectionModel(), useDeliveryModel()
    • formModel(), submissionModel(), connectionModel(), deliveryModel()

Filament plugin

  • Bjanczak\FilamentFlexForms\FilamentFlexFormsPlugin
    • registerIntegration(string|IntegrationDriver $driver)
    • discoverIntegrations(string $path)
    • registerPostSubmitAction(string $class)
    • configureFormsTable(Closure $callback) / getConfigureFormsTable()
    • configureSubmissionsTable(Closure $callback) / getConfigureSubmissionsTable()
    • modifyFormsEloquentQueryUsing(Closure $callback) / getModifyFormsEloquentQueryUsing()
    • modifySubmissionsEloquentQueryUsing(Closure $callback) / getModifySubmissionsEloquentQueryUsing()
    • modifyConnectionsEloquentQueryUsing(Closure $callback) / getModifyConnectionsEloquentQueryUsing()
    • resolveConnectionTenantIdUsing(Closure $callback) / resolveConnectionTenantId()
    • pushSubmissionMiddleware(string $class)

Integrations

  • Bjanczak\FilamentFlexForms\Integrations\IntegrationRegistry
    • register(IntegrationDriver|string $driver)
    • registerMany(iterable $drivers)
    • discover()
    • all(), get(string $key), has(string $key)
  • Bjanczak\FilamentFlexForms\Integrations\Contracts\IntegrationDriver
  • Bjanczak\FilamentFlexForms\Integrations\Contracts\SupportsInboundWebhooks
  • Bjanczak\FilamentFlexForms\Integrations\Contracts\SupportsScheduledSync
  • Generic driver bases:
    • Bjanczak\FilamentFlexForms\Integrations\Support\Generic\GenericApiIntegrationDriver
    • Bjanczak\FilamentFlexForms\Integrations\Support\Generic\GenericOAuthIntegrationDriver (PKCE S256 by default)
    • Bjanczak\FilamentFlexForms\Integrations\Support\Generic\GenericSignedWebhookDriver
    • Bjanczak\FilamentFlexForms\Integrations\Support\Generic\VerifiesFlexFormsInboundSignature
  • Field mapping:
    • Bjanczak\FilamentFlexForms\Integrations\Mapping\FieldMapper
    • Bjanczak\FilamentFlexForms\Integrations\Mapping\FieldMapping
    • Bjanczak\FilamentFlexForms\Integrations\Mapping\LegacyFieldMappingAdapter
    • Bjanczak\FilamentFlexForms\Integrations\Mapping\FieldTransformRegistry
  • OAuth helpers:
    • Bjanczak\FilamentFlexForms\Integrations\Support\OAuth\OAuthTokenData
    • Bjanczak\FilamentFlexForms\Integrations\Support\OAuth\OAuthTokenManager
    • Bjanczak\FilamentFlexForms\Integrations\Support\OAuth\DeviceCodeOAuthFlow
  • HTTP / auth helpers:
    • Bjanczak\FilamentFlexForms\Integrations\Support\Http\GraphQlClient
    • Bjanczak\FilamentFlexForms\Integrations\Support\Saml\SamlAssertionConsumer
    • Bjanczak\FilamentFlexForms\Integrations\Support\ConnectionCredentialResolver
    • Bjanczak\FilamentFlexForms\Integrations\Support\InboundWebhookResult
  • Credential mode enum:
    • Bjanczak\FilamentFlexForms\Integrations\Support\CredentialMode

Post-submit actions

  • Bjanczak\FilamentFlexForms\Contracts\PostSubmitAction
  • Bjanczak\FilamentFlexForms\Support\PostSubmit\PostSubmitActionRegistry
Form schema hook:

Submission pipeline

  • Bjanczak\FilamentFlexForms\Contracts\SubmissionMiddleware
  • Bjanczak\FilamentFlexForms\Support\Pipeline\SubmissionPipeline

Submission context

  • Bjanczak\FilamentFlexForms\Support\SubmissionContext

Events

  • Bjanczak\FilamentFlexForms\Events\FormSubmissionCompleted
  • Bjanczak\FilamentFlexForms\Events\FormSubmissionPartialSaved
  • Bjanczak\FilamentFlexForms\Events\FormSubmissionDeleted
  • Bjanczak\FilamentFlexForms\Events\FormCreated
  • Bjanczak\FilamentFlexForms\Events\FormUpdated
  • Bjanczak\FilamentFlexForms\Events\FormDeleted
  • Bjanczak\FilamentFlexForms\Events\FormPublished
  • Bjanczak\FilamentFlexForms\Events\FormUnpublished
  • Bjanczak\FilamentFlexForms\Events\IntegrationDispatchSucceeded
  • Bjanczak\FilamentFlexForms\Events\IntegrationDispatchFailed
  • Bjanczak\FilamentFlexForms\Events\IntegrationDeliveryReplayed
  • Bjanczak\FilamentFlexForms\Events\IntegrationInboundReceived
  • Bjanczak\FilamentFlexForms\Events\IntegrationInboundFailed
  • Bjanczak\FilamentFlexForms\Events\PostSubmitActionSucceeded
  • Bjanczak\FilamentFlexForms\Events\PostSubmitActionFailed
  • Bjanczak\FilamentFlexForms\Events\PaymentCaptured
  • Bjanczak\FilamentFlexForms\Events\PaymentFailed
  • Bjanczak\FilamentFlexForms\Events\PaymentRefunded

Artisan

  • flex-forms:upgrade — Bjanczak\FilamentFlexForms\Commands\UpgradeCommand
  • flex-forms:make-integration {name} {--api} {--oauth} {--webhook} {--inbound} — scaffold host integration drivers
  • flex-forms:sync-integrations {--driver=} {--connection=} — run scheduled remote sync for drivers implementing SupportsScheduledSync

Testing helpers

  • Bjanczak\FilamentFlexForms\Testing\IntegrationDriverTestCase
  • Bjanczak\FilamentFlexForms\Testing\AssertsIntegrationDriverContract (Pest-friendly trait)

Configuration

config/filament-flex-forms.php:

OAuth / inbound routes

  • GET /flex-forms/connections/oauth/redirect/{connection} (flex-forms.connections.oauth.redirect, auth required)
  • GET /flex-forms/connections/oauth/callback (flex-forms.connections.oauth.callback; connection id in signed state)
  • POST /flex-forms/integrations/{driver}/webhook (flex-forms.integrations.inbound.webhook) — drivers implementing SupportsInboundWebhooks
Last modified on September 7, 2026