Event reminder widget not triggering browser notification on calendar event creation

I’ve built a custom event reminder widget for our sales team using the Zoho CRM Widget SDK. The widget is supposed to trigger browser notifications 15 minutes before scheduled events. It works perfectly in the test environment, but in production, notifications aren’t firing consistently.

The widget checks for upcoming events and should request notification permission, but users report missed reminders for critical client meetings. Here’s the notification code I’m using:

if (Notification.permission === "granted") {
  new Notification("Event Reminder", {
    body: eventTitle + " starts in 15 minutes"
  });
}

The permission handling seems correct, and I’ve verified event creation triggers are properly configured. Has anyone dealt with browser notification API issues in Zoho widgets? I’m particularly concerned about permission handling across different browsers and whether event triggers are reliably firing.

Don’t forget about browser tab visibility! Notifications might not fire if the tab isn’t active or if the user has multiple CRM tabs open. Chrome throttles background timers aggressively. Consider using the Page Visibility API to detect when the tab becomes hidden and switch to a different notification strategy, maybe even server-side push notifications through Zoho’s notification service instead of relying purely on browser APIs.

We had a similar issue and it turned out to be timing related. The widget was trying to fire notifications before the browser had fully registered the permission. Adding a small delay after permission grant and before the first notification attempt solved it for us. Also make sure your event polling interval isn’t too aggressive - we found 30 second intervals work better than 10 second ones for reliability.

Chrome definitely has stricter policies. One thing to check: are you handling the permission request asynchronously? Also, notification permissions can be revoked by users or reset by browser updates. You should implement a fallback mechanism that checks permission status before every notification attempt, not just once at initialization. I’d also recommend adding error logging to see if the Notification constructor is throwing any silent errors.