Skip to main content

Push Notifications & Deep Links

Web vs mobile: Push notifications and deep links are mobile-native entry points. PanelOne web uses in-app notifications and browser URLs — mobile adds APNs delivery and panelone:// / universal link routing via DeepLinkRouter.

PanelOne Mobile routes push taps and external URLs into the correct tab, list, or detail screen — so on-call engineers land directly on the alert, ticket, or device that needs attention.


Push Notifications

Enabling Push

  1. On first launch (or when prompted), allow Notifications for PanelOne.
  2. Configure preferences in More → Account & push or Settings → Notifications.
  3. Choose which alert categories and event types trigger push delivery.

Push uses APNs (Apple Push Notification service). Your device registers a token tied to your user account and organization.

What Can Push

Event typeTypical action on tap
Critical / high alertsOpens Alerts tab → alert detail
Ticket updatesOpens More → Tickets → ticket detail
Assignment notificationsOpens relevant ticket or job
Digest summariesOpens Home or linked destination

Exact push categories depend on org notification settings and alert rules configured on web.

Tap Behavior

When you tap a push notification:

  1. The app opens (or foregrounds).
  2. DeepLinkRouter parses the payload URL or entity ID.
  3. The correct tab is selected and detail is pushed onto the navigation stack.

If the app was terminated, the router applies pending routes on next authenticated launch.


URL Schemes

PanelOne Mobile registers the custom URL scheme panelone:// (and bundle scheme com.ihelpitau.panelone://).

Tab Routes

URLDestination
panelone://dashboardHome tab
panelone://homeHome tab (alias)
panelone://clientsClients tab
panelone://devicesDevices tab
panelone://alertsAlerts tab
panelone://moreMore tab
panelone://settingsMore → Settings

Entity Detail Routes

URLDestination
panelone://clients/{id}Clients → client detail
panelone://devices/{id}Devices → device detail
panelone://alerts/{id}Alerts → alert detail
panelone://ticketsMore → Tickets list
panelone://tickets/{id}More → Tickets → ticket detail

Tickets always route through More, not a root tab — even when using panelone://tickets.

More Hub Routes

URLDestination
panelone://more/ticketsMore → Tickets
panelone://more/backupsMore → Backups
panelone://more/securityMore → Security & threats
panelone://more/m365More → Microsoft 365
panelone://more/usersMore → Users
panelone://more/networkMore → Network
panelone://more/marketplaceMore → Marketplace
panelone://more/documentationHubMore → Documentation
panelone://more/reportsSnapshotMore → Reports snapshot
panelone://more/reportsBuilderMore → Report builder
panelone://more/security/sentinelone/{section}S1 security sub-console

Use MoreDestination raw values as the path segment after /more/.

Settings Routes

URLDestination
panelone://settings/notificationsSettings → Notifications
panelone://settings/alert-rulesSettings → Alert Rules
panelone://settings/securitySettings → Security
panelone://settings/sessionsSettings → Sessions
panelone://settings/teamSettings → Team

Settings path segments match SettingsDestination raw values (e.g., alert-rules, audit-logs).


PanelOne Mobile supports Universal Links from:

https://app.panelone.dev/{path}

The app associates with app.panelone.dev via Apple App Site Association (AASA). Verified domains serve the correct app ID entitlements.

Universal links use the same path parsing as custom scheme URLs:

Web pathMobile behavior
/ or /dashboardHome tab
/clients/{id}Client detail
/devices/{id}Device detail
/alerts/{id}Alert detail
/tickets/{id}Ticket detail (via More)

Links opened in Mail, Messages, or Safari hand off to the installed app when available. If the app isn't installed, the link opens in the browser as PanelOne web.

AASA Requirements

For passkeys and universal links to work in production:

  • AASA files must be live on app.panelone.dev
  • App entitlements must match associated domains
  • PASSKEY_RP_ID must align with the web RP ID

Global Search Navigation

Global search results navigate via the same router:

Entity typeRoute
ClientClients → detail
DeviceDevices → detail
AlertAlerts → detail
TicketMore → Tickets → detail
User, backup, threat, etc.More → appropriate destination

Search requires 2+ characters and works on cached data when offline.


Dashboard Drill-Down

Internal dashboard drill-downs (not URL-based) also use DeepLinkRouter:

Drill-downBehavior
Devices by statusDevices tab + status filter
Alerts by severityAlerts tab + severity filter
Open ticketsMore → Tickets + open filter

On a simulator or device with the app installed:

  1. Open Safari.
  2. Enter a universal link (e.g., https://app.panelone.dev/alerts/{uuid}).
  3. Confirm the app opens to alert detail.

For custom scheme testing, use Notes or Terminal:

open "panelone://tickets"

Tips & Best Practices

  • Allow notifications before your first on-call shift.
  • Share universal links in team chat — they work on web and hand off to mobile.
  • Use ticket deep links in PSA automations for mobile-first engineers.
  • Verify AASA after infra changes — Broken association falls back to browser-only.