Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Filament Crisp Laravel Package

jeffersongoncalves/filament-crisp

Integrate Crisp live chat into your Filament panels with this simple plugin. Embed the Crisp chat widget in your Laravel admin dashboard with minimal configuration, enabling real-time customer support, messaging, and engagement directly inside Filament—no custom code needed.

View on GitHub
Deep Wiki
Context7

Getting Started

Install the package alongside filament-analytics-core (3.1+ required for this feature), publish any config or migrations, then register the plugin on your Filament panel:

use Vendor\Analytics\AnalyticsPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            AnalyticsPlugin::make()
                ->navigationGroup('Analytics'),
        ]);
}

Look first at:

  • Your PanelProvider — this is where the navigation group is set.
  • The package config file — for page registration, permissions, and widget defaults.
  • The plugin class — for available fluent configuration methods.

First use case: place the analytics settings page into an existing panel navigation group instead of the package’s translated default group.

AnalyticsPlugin::make()->navigationGroup('Reports')

Implementation Patterns

Use a string for static groups. This is the common case when you already have a group like “Analytics”, “Reports”, or “Settings” used by other resources and pages.

AnalyticsPlugin::make()->navigationGroup('Analytics')

Use a Closure when the group depends on runtime context. This is useful for panel-specific or conditionally named groups:

AnalyticsPlugin::make()
    ->navigationGroup(fn () => auth()->user()?->isAdmin()
        ? 'Administration'
        : 'Reporting')

Keep group names aligned with existing resources. The plugin page will sit alongside any Filament resources/pages using the same group label. Match spelling, casing, and translation keys consistently so navigation ordering and grouping behave predictably.

Configure per panel. If you run multiple panels, register the plugin separately in each panel provider and choose the appropriate group per audience. This avoids sharing a single global configuration across admin, customer, and internal panels.

Leave it unset to keep the translated default. The package retains its translated navigation group when no explicit navigationGroup() is provided. Only override when you specifically want the page to live in your own panel group.

Prefer plugin registration over post-hoc page mutation. Use the fluent navigationGroup() API rather than reaching into the page class after registration. This keeps upgrades predictable and works with the package’s own configuration flow.

Gotchas and Tips

  • Version alignment matters. navigationGroup() requires filament-analytics-core 3.1 or newer. If the method appears to have no effect, confirm the core dependency was actually upgraded and run composer update.
  • Closures must return a string. A Closure that returns null or an empty value may produce an unexpected navigation state. Return an explicit group name.
  • Group labels are not normalized. Filament groups are matched by label/translation key. A typo such as Analytics or a different translation key will create a separate group instead of merging with existing navigation items.
  • Clear caches after changes. If navigation changes do not appear, run php artisan filament:optimize-clear or your usual config:clear / cache:clear workflow.
  • Check panel context when using Closures. Closure-based grouping is evaluated during navigation construction. Avoid heavy queries or side effects inside the Closure.
  • Default behavior is intentional. Not calling navigationGroup() is not a misconfiguration — the translated default group is retained by design.
  • Extension point: the fluent plugin API is the intended place for navigation customization. If you need broader navigation control, combine this with Filament’s own navigationGroup(), navigationSort(), and resource/page configuration rather than overriding package internals.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core