Web push notifications

New

Send push notifications to your website visitors' browsers, the same way you send push notifications to iOS and Android apps. Customer.io sends them directly through each browser's push service, so you don't need a third-party push provider.

Web push is turned on per account

Web push is available to accounts that Customer.io has turned it on for. If you don’t see a Web tab under Settings > Push, contact your account manager.

Alpha: one website per workspace for now

During the alpha, set up web push on one website per workspace. Customer.io records which website each browser subscribed on, but you can’t target a website yet: a web push action sends to a person’s browsers no matter which of your websites they subscribed on. Support for more than one website per workspace is coming.

How it works

Web push is a third platform of the Push channel, next to iOS and Android. A browser that a person allows to show notifications becomes a web device on their profile. You send to it with a Web Push action, which only sends to browsers, and you get the same delivery history and metrics that you use for app push. Push actions set to iOS & Android, and transactional push, only send to iOS and Android devices.

You don’t need an Apple, Firebase, or other push provider account. Customer.io generates a key pair for your workspace (the Web Push Protocol, or VAPID, keys) and sends notifications directly to each browser’s push service. Your website does three things:

  1. Loads the Customer.io web push plugin alongside your JavaScript source.
  2. Serves a small Customer.io service worker file from your own domain. The browser runs this file in the background to show notifications, even when your site isn’t open.
  3. Asks a signed-in visitor for permission when they click a button, like Turn on alerts. When they allow notifications, the plugin adds a web device to their profile.
sequenceDiagram participant v as Visitor participant s as Your website participant c as Customer.io participant p as Browser push service v->>s: Signs in, clicks "Turn on alerts" s->>v: Browser asks for permission v->>s: Allows notifications s->>c: Plugin adds a web device to the person c->>p: Your automation sends a web push p->>v: Browser shows the notification v->>c: Click opens your link and reports "opened"

To get started, set up web push, then send a web push.

Web push replaces web push with webhooks

Before Customer.io supported web push directly, you could send web push through a third-party provider with webhooks. You don’t need a third-party provider for web push anymore.

Browser support

Web push works in current versions of these browsers, as long as your site uses HTTPS.

BrowserSupportedRequirements
Chrome (desktop and Android)YesNone
EdgeYesNone
Firefox (desktop)YesNone
Safari on macOSSafari 16 and later on macOS 13 and laterYour site must ask for permission directly in a click. See subscribe in a click.
Safari on iOS and iPadOSiOS and iPadOS 16.4 and laterThe person must add your site to their Home Screen and open it from there. A normal Safari tab can’t receive web push. See iOS and iPadOS.

When a browser can’t receive a notification, for example because it’s closed or offline, the browser’s push service holds the notification for a limited time. By default that’s one day. If your broadcast has a send deadline, the push service holds the notification until that deadline instead, up to 28 days. A notification that’s still waiting when that time runs out never arrives. If you send several notifications from the same action while a browser is offline, the person gets only the newest one.

Whether a browser can show notifications while it’s closed depends on the browser and operating system. For example, Firefox shows a held notification when it opens again, while Chrome needs to be running to show notifications.

What each browser shows

Browsers and operating systems decide how to draw a notification, so the same message looks different from one device to the next. Every browser shows your title and message. Other fields depend on the platform.

PlatformIconImageBadgeAction buttons
Chrome on WindowsYesYesNoYes, up to 2
Edge on WindowsYesYesNoYes, up to 2
Chrome on AndroidYesYes, when expandedYesYes, up to 2, when expanded
Chrome on macOSYes, as a small thumbnailNoNoYes, up to 2, in the notification’s More menu
Firefox (Windows, macOS, Linux)YesNoNoYes, up to 2, in Firefox 152 and later
Chrome and Chromium on LinuxYesNoNoYes, up to 2
Safari on macOSNoNoNoNo
Safari on iOS and iPadOSNo, uses the Home Screen app iconNoNoNo

What this means for your messages:

  • Put the important information in the title and message. They’re the only fields every platform shows.
  • Make the main link do the most important thing. Safari doesn’t show action buttons, so people on Safari can only click the notification itself.
  • Keep text short. Most platforms show one or two lines of title and a few lines of message, and cut off the rest.
  • Expect the browser to label the notification. Most browsers show your site’s domain or the browser’s name on the notification, and you can’t change it.
Updated October 23, 2026