Pusher — live notification push

With Pusher the bell badge increments live in an open tab when a reminder or action notification arrives. Without it nothing breaks — the bell and email still work. Configured from the Pusher tab; one private channel per user.

Last updated: 2026-10-09

On this page

What is broadcast?

Only two notifications: due-date reminders and cheque action notifications — on a private per-user channel private-App.Models.User.{id} with the framework event BroadcastNotificationCreated and payload {cheque_log_id, type, id}. No public or presence channels. On receipt the browser increments the bell badge by one; details are read from the notifications page as usual.

Settings

Settings → General settings → Pusher tab (visible with Manage integrations):

Field Note
Enable Pusher off ⟹ broadcasting falls back to log (nothing is sent)
Broadcast connection Pusher · Log · Null
Use TLS recommended in production
App ID · App Key · App Secret · Cluster from the Pusher dashboard — the secret is write-only after saving
Host (optional) · Port (optional) · Scheme for a self-hosted Pusher-compatible server

The settings table is the source (not .env), read at boot. Double guard: enable off or incomplete credentials ⟹ connection log. The channel status line in the Notifications tab says it: “In-app bell: always on · Live push: disabled (no broadcast server configured) · Email: …”.

What the server needs

Broadcasting is immediate, from the request itself — no queue and no queue worker on the server: the recipient gets the notification at the moment of the action. (Before 1.9.0 broadcasts went through the queue and needed queue:work; updating to 1.9.0 clears the old broadcast rows piled up in the jobs table.)

The browser loads pusher.min.js from a CDN and subscribes to the user channel — and requires Cluster to be set (a self-hosted server with a host and no cluster broadcasts to nobody).

Effect of absence

Nothing breaks: database notifications, the bell and email all work — broadcasting is added only when the driver is real. The only loss: the badge does not increment live in an open tab. If Pusher is slow or down the action still completes normally (within 3 seconds at most), and the notification shows in the bell on refresh.

Common problems

  • Saving is refused unless the secret is retyped — in releases before 1.8.0: retype App Secret on every save; from 1.8.0 an empty field keeps the stored secret.
  • Enabled but nothing arrives — empty Cluster or wrong credentials (check the Pusher dashboard). The notification itself still shows in the bell on page refresh.
  • Works on one machine and not another — the channel is per user; the other user is not a target of the notification (visibility scope).
Get your free trial