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

Slack Notifier Laravel Package

symfony/slack-notifier

Symfony Slack Notifier integrates Slack messaging into Symfony's Notifier component. Send chat messages via a simple DSN with your bot token and channel, and add interactive Block Kit elements like buttons, sections, images, and dividers using SlackOptions.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for outbound Slack delivery. The package is a thin, MIT-licensed adapter over Slack's Web API and Block Kit, maintained inside the Symfony release train. It removes the need to hand-roll HTTP clients, JSON payload shaping, or DSN/config plumbing. Choosing "buy" here frees engineering to spend the sprint on the workflow logic instead of the transport.
  • ChatOps as a product surface. Interactive Block Kit elements (buttons, confirmation dialogs, section/header/context blocks, fields) let us move lightweight decisions into Slack: approve a deploy, acknowledge an incident, confirm a destructive action, dismiss a noisy alert. That is a genuine product capability, not just a notification pipe.
  • Live status artifacts instead of notification spam. SlackSentMessage exposes message and channel IDs, and UpdateMessageSlackOptions lets us edit a message in place. This directly enables "single evolving card" UX for deploy progress, incident status, or long-running job tracking — one message that mutates rather than twelve that scroll away.
  • Threaded conversation models. threadTs() supports reply-in-thread, which is the difference between an incident timeline and an unreadable channel. This should factor into any on-call or incident-response roadmap item.
  • Scheduled and batched delivery. postAt() supports digests, standup reminders, and timezone-aware nudges without building a scheduler-to-Slack shim.
  • Multi-channel notification strategy with an exit ramp. Because this rides on Symfony Notifier, Slack is one transport among many behind a shared Chatter/ChatMessage abstraction. That is a strong argument for standardizing on Notifier: adding Teams, email, or SMS later is a config change, not a rewrite.
  • Roadmap sequencing. Ship Slack first (highest internal adoption, lowest friction), prove the interaction patterns, then extend the same Notifier-based pipeline to other channels. The abstraction makes "Slack now, Teams next quarter" a credible roadmap commitment.

When to Consider This Package

Adopt when:

  • The application is already on Symfony (6.4 / 7.x / 8.x) or already depends on symfony/notifier. In that case this is effectively free — same versioning, same security policy, same LTS guarantees.
  • You need Block Kit interactivity, threading, in-place message updates, or scheduled sends, and you want those as typed PHP objects rather than hand-assembled JSON arrays.
  • You value the Notifier abstraction for future multi-channel expansion.
  • You want a dependency whose bus factor is the Symfony core team rather than a solo maintainer.

Look elsewhere or plan extra work when:

  • You are on Laravel proper. This is a Symfony bridge, not a Laravel package. Laravel ships its own Slack notification channel; adopting this means running two notification systems side by side or wiring Notifier in manually. That integration cost is real and should be scoped, not hand-waved.
  • You need inbound Slack. This package sends only. Socket Mode, Events API, slash-command receivers, and interactivity webhook handlers are all out of scope — you will build or buy those separately.
  • You need multi-workspace OAuth installation flows, file uploads, or Slack app manifest management. None of that is here.
  • You are pinned below PHP 8.4 and want the 8.x line. Version 8 requires PHP >= 8.4; the 6.4/7.x branches remain the fallback. Confirm the PHP floor before committing it to a roadmap.
  • You are signal-shopping on popularity. The 41 stars and zero listed dependents are misleading — this is a split package from the Symfony monorepo, so usage is concentrated upstream. Judge it on Symfony's release cadence and security policy instead. Note also that most point releases are explicitly "no significant changes," which is a good sign for a transport adapter: stable, low-churn, feature work arriving a few times per major.

How to Pitch It (Stakeholders)

For executives: This is a small, free (MIT), Symfony-maintained component that lets our product post rich, actionable messages into Slack — approvals, alerts, incident updates — without us building or maintaining a Slack integration ourselves. It is backed by the same team and release/security process as the framework we already run. Risk is contained: it sits at the edge of the system, touches no business logic, and can be swapped for another transport or vendor with limited blast radius. Cost is roughly days of integration, not a workstream.

For engineering: Configuration is a single DSN (slack://TOKEN@default?channel=...) with bot token auth, and channel names/IDs validated at config time. Message content is composed with typed block builders (SlackSectionBlock, SlackActionsBlock, SlackHeaderBlock, SlackContextBlock, SlackDividerBlock) and SlackOptions, so no raw Block Kit JSON in application code. We get interactive buttons with confirmation dialogs, threaded replies, message editing via stored message/channel IDs, and scheduled delivery. It plugs into symfony/notifier, so the same ChatMessage pipeline extends to other channels later. Two caveats to design around: it is send-only (no inbound events or interactivity handlers), and 8.x requires PHP 8.4 — we should pick the major deliberately. On Laravel we would be adding Notifier alongside Laravel's native notification channel; that decision needs a short spike before we commit.

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.
hsluv/hsluv
seampact/codegen
seampact/hooks
seampact/ir
mehedimi/laravel-amp-mail
happones/laravel-vue-i18n-generator
jwerd/inertia-table
siberfx/flysystem-wasabi
hollyit/token-replace
ippanelcom/laravel-sdk
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support