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

Google Chat Laravel Package

laravel-notification-channels/google-chat

Send Laravel notifications to Google Chat with this dedicated channel. Post messages to Google Chat spaces via incoming webhooks using a simple, familiar notification API—no custom HTTP code required.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. Unchanged. The package remains a thin adapter over Laravel's first-party notification system: a channel class wired through via(), a fluent message builder returned from toGoogleChat(), and webhook resolution via routeNotificationForGoogleChat(). It composes with existing Notifiable models, queues, and event/listener flows and introduces no competing abstraction. It is an outbound HTTP edge, not a subsystem.

Integration feasibility. Still low effort once the compatibility gate is cleared. The integration work itself is unchanged — composer require, a via() entry, a builder method, a webhook URL. But v4.0.0 is a breaking release that changes the prerequisite, not the work: it drops PHP 8.1/8.2 and Laravel 9/10/11, and adds PHP 8.4/8.5 and Laravel 13. Confirm composer.json declares PHP 8.3+ and Laravel 12+ (inferred from the drop/add lists — verify, do not assume) before the half-day spike is even schedulable.

Technical risk. The protocol risk is unchanged; the package-level risk profile shifts in two directions at once.

  • Compatibility is now a hard gate, not a question. This is the material change. If our platform baseline is Laravel 11 or PHP 8.2, v4.0.0 is simply not installable, and the fallback is pinning 3.3.x — a line the maintainer has now signalled is out of support. That converts a low-stakes trial into either a framework upgrade prerequisite or an accepted-unmaintained-dependency decision.
  • Maintenance signal improves. A maintainer cutting a deliberate major that tracks PHP 8.4/8.5 and Laravel 13 is evidence of active stewardship; the "last commit cadence" question in the prior assessment is substantially answered. This partially offsets the 59-star / zero-dependent adoption signal, which is otherwise unchanged.
  • But the cut is aggressive and forward-leaning. Support for Laravel 13 — a framework major that is not yet the stable baseline — suggests the release was cut against an unreleased or freshly released framework. Check the CI matrix for whether Laravel 12 is genuinely exercised and whether any jobs run against framework dev branches. A channel that only proves itself against a pre-stable framework is a different risk than one tested against the current stable line.
  • Upgrade treadmill. v4.0.0 dropped three framework majors and two PHP minors in a single release. Expect future majors to move similarly. That is fine for a greenfield app on current Laravel; it is a recurring cost for anything pinned behind.
  • Unchanged risks carry over. Google-side card schema drift (v1 vs v2), Workspace admin policy blocking webhooks in production, webhook-URL-as-credential appearing in debug logs, and silent non-2xx handling all remain unverified by these release notes. A major version bump is not evidence any of them were addressed.
  • Reversibility is still high, and now more relevant: if v4 forces a framework upgrade we don't want, writing a first-party channel is still roughly a day and removes the constraint entirely.

Key questions to resolve before committing.

  1. Does composer.json in v4.0.0 declare PHP 8.3+ and Laravel 12+? Which exact constraints — and is Laravel 12 still in the matrix?
  2. Does the release change any code, or is it purely a constraint/CI bump? Diff 3.3.0...v4.0.0 — if it's metadata only, the runtime behaviour risk of upgrading is near zero once compatible.
  3. What is our platform baseline today, and what is the planned Laravel upgrade date? This decides v4-pin vs 3.3.x-pin.
  4. Is 3.3.x now formally EOL, or will it receive security/bug fixes? If EOL, the unmaintained-dependency window opens immediately for teams that cannot move.
  5. Carried over and still unanswered: Cards v1 or v2 and thread-key support; throw vs swallow on 4xx/429/5xx and NotificationFailed dispatch; per-notifiable routing to multiple spaces; testing helpers and whether it uses the fakeable Http client.
  6. Does the release note's omission of any feature or fix work mean the card-schema and error-surfacing gaps are unchanged?

Integration Approach

Stack fit. Native, unchanged. Recommended posture is still secondary delivery channel: PagerDuty/Slack remain the paging path; Google Chat carries low-severity ops signals, deployment events, and chatops.

Migration path. There is no data migration — this is net-new capability — but there is now a version migration decision:

  • On Laravel 12+ / PHP 8.3+: adopt v4.0.0 directly. No upgrade work beyond the normal install.
  • On Laravel ≤11 or PHP ≤8.2: either (a) pin ^3.3 and accept an out-of-support dependency with a fork contingency, or (b) sequence the Laravel/PHP upgrade first and adopt v4 after. Do not adopt v4 as a forcing function for a framework upgrade unless that upgrade was already planned. Whichever path, keep wrapping the builder in an internal factory (App\Support\ChatMessage) so payload construction and the eventual v3→v4 or package→first-party swap touch one file, not dozens of notification classes.

Compatibility. This is now step zero rather than a verification step. Check three things concretely: the PHP constraint against the runtime image; the Laravel constraint against our framework line; and whether the channel still uses Laravel's HTTP client so Http::fake() remains a valid test seam. Also confirm the CI matrix actually passes on Laravel 12 stable and not only on 13.

Sequencing.

  1. Gate: read composer.json and the CI matrix. Confirm PHP/Laravel constraints against our baseline. If incompatible, stop and decide pin-vs-upgrade before any engineering time is spent.
  2. Diff: review 3.3.0...v4.0.0. If it is constraints and CI only, record that and treat runtime risk as equivalent to 3.3.0.
  3. Spike: install in a scratch branch, deliver to a dedicated test space, capture the exact JSON for cards, threads, and text-only — and confirm card version while doing it.
  4. Harden: webhook URLs through the secrets manager; ShouldQueue on every notification using the channel; confirm failures surface as events.
  5. Instrument: assert on non-2xx, log outcomes without the URL, dead-letter/fallback to email.
  6. Pilot: one or two low-stakes types (CI results, deploy announcements) for a sprint.
  7. Decide: promote, or replace with a first-party channel.

Do not make this the sole path for anything a human must see within minutes.

Operational Impact

Maintenance. Improved on cadence, worsened on churn. The v4.0.0 cut is evidence of an engaged maintainer tracking current PHP and framework releases, which answers the prior abandonment concern better than the star count did. The trade is a higher upgrade cadence: one major in this release dropped five support targets, so budget for a version bump roughly annually rather than treating this as install-and-forget. Still no vendor SLA, still pin the version, still accept fork as the contingency. Add one new line item: a written decision on the 3.3.x pin if any service cannot reach Laravel 12 — including who owns the fork if that line goes quiet.

Support. Internal burden stays low but lands on the platform team, and now includes a version question. Extend the runbook to distinguish: incompatible-dependency install failure (Composer constraint), revoked webhook (4xx), rate limit (429), transient (5xx), and policy block (delivery succeeds to Google, message never appears). Add a note recording which services are on 3.3.x versus 4.x so triage doesn't chase a bug already fixed — or already removed — in the other line.

Scaling. Unchanged. Throughput is bounded by Google's per-webhook rate limits, not our application. Keep the channel on a dedicated queue so a throttled Google endpoint cannot starve transactional mail. Retries remain our responsibility; verify the major didn't silently change retry or timeout defaults — a constraint-only release won't have, but confirm from the diff rather than the release note.

Failure modes. Re-ranked for this release:

  • Compatibility dead-end — new top risk. Adopting v4 on a Laravel ≤11 platform fails at install; adopting it as a driver for an unplanned framework upgrade is worse. Cheap to detect, expensive to discover late.
  • Silent non-2xx — still the highest runtime concern and unaddressed by these notes. Revoked webhooks fail invisibly. Verify and wrap.
  • Credential leakage — webhook URL in logs or exception traces. Enforce redaction.
  • Card schema drift — formatting degrades after a Google-side change; messages still arrive. Cosmetic, self-detecting.
  • Rate limiting (429) — bursty alert storms during incidents. Queue plus backoff.
  • Admin policy change — unrelated Workspace policy silently disables delivery. Add a daily synthetic canary.
  • Stranded on 3.3.x — no fixes if that line is EOL. Detectable via upstream release watching; mitigated by the one-day fork.
  • Package abandonment — low impact given reversibility.

Ramp-up. Unchanged. A Laravel-fluent engineer is productive in under a day; the via() / to{Channel}() contract is a couple of hours for everyone else and transfers to every other channel. Add a small, non-obvious cost: engineers must now know which major the service is on, so record the constraint and the reason in the repo rather than leaving it to composer.json archaeology.

Recommendation: Trial, conditional on the compatibility gate. On Laravel 12+ / PHP 8.3+, v4.0.0 is a straightforward adopt for non-critical, internal-facing notifications behind a queue, with a first-party fallback identified in advance — the release improves confidence in maintainer engagement without changing the runtime risk picture. On Laravel ≤11, treat this as a dependency-strategy decision first: pin ^3.3 with a named fork owner, or schedule the framework upgrade, and do not adopt for paging or compliance-relevant alerting in either case until the error-surfacing and card-version questions are answered.

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.
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox