Skip to content

Events

FilamentCraft fires six events you can listen to — four lifecycle events plus two storefront form-submit events:

EventFired whenPayload
FilamentCraft\Events\SiteCreatedA new Site row is persisted (factory or manual).Site $site
FilamentCraft\Events\TemplateDraftSavedThe editor writes a new draft revision — the Save button and every autosave.Template $template, TemplateRevision $revision
FilamentCraft\Events\TemplatePublishedA revision is promoted to published_revision_id.Template $template, TemplateRevision $revision
FilamentCraft\Events\SectionAddedA section is inserted via the Add-section modal or the preset picker.Template $template, string $sectionId, string $sectionType, string $locale
FilamentCraft\Events\ContactFormSubmittedA visitor submits the built-in Contact section.string $name, string $email, string $message, ?Site $site, string $sectionId
FilamentCraft\Events\NewsletterSubscribedA visitor subscribes via the built-in Newsletter section.string $email, ?Site $site, string $sectionId

All payloads are public readonly constructor properties. On SectionAdded, $sectionId is the editor-assigned instance id (e.g. hero-1a2b3c) and $sectionType is the registered section slug (e.g. hero). The form-submit values are already validated by the section's own action before the event fires.

php
use FilamentCraft\Events\NewsletterSubscribed;
use FilamentCraft\Events\TemplatePublished;
use Illuminate\Support\Facades\Event;
use Illuminate\Support\Facades\Log;

Event::listen(TemplatePublished::class, function (TemplatePublished $event): void {
    Log::info("Published {$event->template->name} (revision {$event->revision->id})");
});

Event::listen(NewsletterSubscribed::class, function (NewsletterSubscribed $event): void {
    Newsletter::subscribe($event->email, list: $event->site?->slug);
});