✦ Chrome Extension — Manifest V3
ZenNotif delivers persistent audio alerts for new Zendesk tickets — even when the tab is in the background. Built with Chrome Manifest V3, zero API tokens required.
Interface
The ZenNotif popup displays monitored Zendesk views, polling settings, tone selection, volume control, and recent notification history.
Last checked: 10:24:51
No notifications yet.
Process
Enter your Zendesk subdomain. The extension uses your existing browser session — no API tokens needed.
Choose which Zendesk views to monitor. Pick from any view available in your instance.
Set polling interval (10s / 30s / 60s), choose tone, and adjust volume to suit your environment.
When new tickets arrive, ZenNotif plays audio through Chrome's offscreen document — even in background tabs.
Features
Sound plays through Chrome's offscreen document system, so you hear alerts even when Zendesk is in a background tab or minimized.
Uses your existing Zendesk session cookie — no API tokens, no setup friction, no security risks for non-technical agents.
Choose from Fast (10s), Medium (30s), or Normal (1 min) polling intervals to balance responsiveness with resource usage.
Select from Default, Bell, Chime, Alert, or Soft tones. Adjustable volume slider to suit open offices or quiet environments.
Monitor only the Zendesk views that matter to your role. Pick from any view in your instance with a single click.
Track recent alerts in the popup dashboard. See ticket subjects, arrival times, and status at a glance with one-click navigation.
Enterprise Readiness
ZenNotif uses standard HTTPS to <subdomain>.zendesk.com/api/v2 with your existing session cookie. Any VPN or firewall that already permits agents to use Zendesk in the browser will permit ZenNotif too.
Custom Help Center domains (e.g. help.company.com) don't affect the agent workspace. ZenNotif always talks to the canonical Zendesk API subdomain, so host-mapped instances behave identically to standard ones.
Because auth relies on the browser's session cookie, whatever login flow your org uses — Okta, Azure AD, Google, password — just works. No tokens to rotate, no secrets to manage per agent.
If your corporate proxy intercepts HTTPS with a custom root CA, make sure that CA is trusted by Chrome's store. Blocks caused by CASB policies surface as a clear "Connection error" in the popup — no silent failures.
If IT uses ExtensionInstallBlocklist, agents need the extension ID added to the allowlist. Load-unpacked developer mode is blocked by default in managed fleets — a one-line policy change unblocks it.
All ticket snapshots, history, and preferences live in chrome.storage on the agent's machine. Nothing is transmitted to third-party servers. No analytics, no telemetry, no external dependencies.
Quick IT smoke test: open
https://<subdomain>.zendesk.com/api/v2/users/me.json
in a new tab. If JSON appears, the network path is clear for ZenNotif. If the request is blocked, loop in your security team — the extension surfaces the same error.
Technical
Keep-Alive Pinger
Background Polling
Audio Playback
Session Cookie Auth
Code
// Background polling with alarm-based scheduling chrome.alarms.create('zennotif-poll', { periodInMinutes: parseInt(interval) / 60 }); chrome.alarms.onAlarm.addListener(async (alarm) => { if (alarm.name === 'zennotif-poll') { const tickets = await fetchTickets(subdomain, viewId); const newTickets = filterNewTickets(tickets, lastCheck); if (newTickets.length > 0) { playNotificationSound(tone, volume); showBrowserNotification(newTickets); } } });
// Offscreen document for audio playback (Manifest V3) async function playNotificationSound(tone, volume) { await createOffscreen(); await chrome.runtime.sendMessage({ type: 'play-sound', tone: tone, volume: volume / 100 }); } async function createOffscreen() { if (await hasOffscreenDocument()) return; await chrome.offscreen.createDocument({ url: 'offscreen.html', reasons: ['AUDIO_PLAYBACK'], justification: 'Required to play ticket notification sounds.' }); }
Get Started
Clone or download the repository from GitHub. Extract the ZIP file to a folder on your computer.
Open Chrome and navigate to chrome://extensions. Toggle "Developer mode" on in the top-right corner.
Click "Load unpacked" and select the folder containing the extension files (the folder with manifest.json).
Click the ZenNotif icon in your toolbar. Enter your Zendesk subdomain, select views to monitor, and start receiving alerts.