jeffersongoncalves/laravel-whatsapp-widget
Add a customizable WhatsApp chat widget to any Laravel app. This package offers an easy-to-configure floating button with a pre-filled message, flexible positioning, and simple Blade integration so visitors can start a conversation instantly.
whatsapp_agents table (name, phone, text, image, active) gives you Sales / Support / After-hours buckets with an "Online" indicator out of the box. That is a routing capability you would otherwise spec as a mini-feature.position (left/right), audio, and play_audio_daily (cookie-gated, once per 24h) are config flags. Position and sound-on-load are legitimate A/B variables on a conversion surface you can ship in an afternoon.wa.me link and for keeping the data in a model you can later serve to a headless front end or mobile app.Adopt when:
Look elsewhere, or build, when:
?token={key} as a query parameter — fine for a public agent listing, wrong for anything with PII, and it will land in access logs. Don't reuse it as a pattern.wa.me link in a partial is less code and less dependency than this package.For executives: A one-sprint, no-contract experiment to open WhatsApp as an inbound channel on our public site. Because it is click-to-chat, there are no per-conversation messaging fees and no WhatsApp Business API onboarding — we are handing the visitor off to their own WhatsApp client. It ships already localized into 17 languages, so it doubles as a low-cost signal for expansion markets. Success criteria to agree up front: incremental qualified conversations and a measurable dip in contact-form/ ticket volume, with a kill decision at 60 days if neither moves.
For engineering: One Composer dependency built on spatie/laravel-package-tools, following the standard Laravel package conventions — service provider, publishable config/migrations/views, named routes, signed-URL redirect. Blast radius is two @include partials in the layout; removal is an afternoon. Two things to plan for: (1) treat it as vendored code and be ready to fork — it has no meaningful downstream adoption, so we are the test suite; (2) it is not a foundation. Analytics, consent, and the admin UI for agents are our work, and the query-param token on the JSON endpoint should not become a house pattern. Recommended posture: adopt behind a small internal wrapper so we can swap the implementation without touching layouts.
How can I help you explore Laravel packages today?