Skip to content

Push Notifications

The Snippbot mobile app uses native push notifications to keep you informed about agent activity, approval requests, and insights even when the app is in the background.

The app registers six notification categories, each with actionable buttons:

CategoryActionsDescription
APPROVAL_NEEDEDApprove, Deny, View DetailsLegacy approval requests
security_alertApprove, Deny, View DetailsSession join approval requests
SESSION_JOINEDOpen Session, DismissNotification when a device joins your session
INSIGHTView, Dismiss, Snooze 1hProactive agent insights
TASK_FAILEDRetry, View ErrorFailed task alerts
CHANNEL_MESSAGEReply, Open ChatMessages from connected channels

When another device requests to join your session:

  1. A push notification arrives with the category security_alert
  2. The notification shows the requesting device name and platform
  3. You can respond directly from the notification:
    • Approve — requires device authentication (Face ID / fingerprint)
    • Deny — immediately rejects the request
    • View Details — opens the app to the chat with the approval banner

When the app is in the foreground and an approval notification arrives:

  • The notification is intercepted before display
  • An in-app approval banner slides in at the top of the chat
  • You can approve or deny directly within the chat UI
  • No system notification popup appears

Proactive insights from your agents arrive as push notifications:

  • View — opens the Insights tab
  • Dismiss — clears the notification
  • Snooze 1h — re-delivers the notification after one hour

When a task fails:

  • Retry — re-executes the failed task
  • View Error — opens the task detail with the error message

Messages from connected channels (Slack, Discord, etc.):

  • Reply — opens an inline text input to respond directly from the notification
  • Open Chat — opens the conversation in the app

Tapping a notification body (not an action button) navigates to the relevant screen:

Notification dataNavigation target
conversationId/chat/{conversationId}
session_id (approval)Chat tab
insightIdInsights tab
projectId/projects/{projectId}
(none)Chat tab (default)

On Android, notifications are organized into channels with configurable importance:

ChannelImportanceSound
DefaultHIGHDefault
Approval RequestsMAXDefault
Security AlertsMAXDefault
InsightsDEFAULTNone
Task UpdatesHIGHNone
Channel MessagesHIGHNone

You can customize notification behavior per channel in Android Settings > Apps > Snippbot > Notifications.

Push notifications are configured during initial app setup. To manage permissions later:

  1. Open device Settings > Snippbot > Notifications
  2. Toggle Allow Notifications
  3. Configure Sounds, Badges, and Banners as desired
  4. For approval notifications, ensure Critical Alerts is enabled

The app registers its push token with the daemon on login:

  • Provider: Expo Push Notifications
  • Token format: ExponentPushToken[...]
  • Registration endpoint: POST /devices/push/register
  • Unregistration: Automatic on logout, or manual in Settings > Connection > Unregister
  1. Check permissions: device Settings > Snippbot > Notifications must be enabled
  2. Verify daemon connection: Settings > Connection should show “Connected”
  3. Check push token: Settings > Connection should show a push token
  4. On Android, check that the relevant notification channel isn’t muted
  5. Ensure the daemon can reach Expo’s push service (requires internet access on the server)

Approval notifications not showing “Approve” button

Section titled “Approval notifications not showing “Approve” button”
  1. On iOS, ensure notification categories are registered (restart the app if needed)
  2. On Android, expand the notification to see action buttons
  3. Check that you’re running the latest app version
  1. iOS: Low Power Mode delays notifications — disable it for time-sensitive alerts
  2. Android: Battery optimization may defer notifications — exempt Snippbot in Settings > Battery > App battery usage
  3. Check your daemon’s push delivery logs