Skip to main content
ShingleAI sends notifications about events that need your attention — billing failures, usage thresholds, lost integration connections, credit balance changes, and more. You receive each notification in the in-app bell and (optionally) by email; preferences are configurable per type and per channel.

In-app bell

The bell icon in the app header shows your unread count. Click it to open a panel with:
  • The most recent notifications, newest first, each with a relative timestamp (“2 hours ago”, or absolute date for older items)
  • A blue dot next to unread items
  • A Clear all button at the top
Clicking any notification marks it read immediately. Real-time updates are pushed over a WebSocket connection to the NotificationHub Durable Object — when that connection drops, the panel falls back to polling so you don’t miss anything.

Notification settings

To change which notifications you receive and where:
  1. Navigate to Settings > User > Notifications
  2. Toggle individual notification types on or off per channel
  3. Use Unsubscribe from all emails at the top to silence non-critical email globally — critical account-related messages (payment failures, security alerts) still send
Settings are per-user; each team member configures their own.

Channels

ChannelStatus
In-app (Web)Live
EmailLive
SMSDefined in the data model — not yet wired for delivery
Mobile pushDefined in the data model — not yet wired for delivery
The notification settings page only exposes the live channels (Web and Email). SMS and mobile push settings will appear when their delivery is enabled.

Notification types

Notifications are grouped by category in the settings UI. The full set of types currently emitted:

Domains

TypeTriggered when
domain_expiration_warningA registered domain is approaching expiration
domain_renewal_successAuto-renewal completed successfully
domain_renewal_failedA renewal attempt failed (non-payment reason)
domain_renewal_payment_failedRenewal failed because the payment method declined
domain_registration_succeededA new domain registration completed
domain_registration_failedA new registration could not complete

Email accounts

TypeTriggered when
email_address_connection_lostA connected email account stopped syncing (token revoked, password changed)
email_address_setup_failedA new email account couldn’t finish setup
gmail_connection_lostA Google Workspace / Gmail account specifically lost its OAuth grant

Email sending (Resend)

TypeTriggered when
resend_setup_initiatedResend domain setup has been started
resend_verification_successA sending domain finished DNS verification
resend_verification_failedA sending domain failed DNS verification

Phone and voice

TypeTriggered when
phone_number_connection_lostA connected number went offline at the carrier
phone_number_setup_failedA new phone number couldn’t finish setup
voice_call_errorA live voice call ended with an error

Usage

TypeTriggered when
usage_warningA consumable reaches 90% of its monthly allowance
usage_limit_reachedA consumable reaches 100% of its allowance
usage_limit_exceededA consumable goes beyond 100% (overages now apply or service is paused)

Billing and payments

TypeTriggered when
payment_failure_immediateA subscription or top-up payment was declined
payment_failure_24h24-hour follow-up if a failed payment hasn’t been resolved
payment_failure_48h_finalFinal notice — service may be paused if not resolved
trial_expiring_soonYour free trial ends in the next few days

Credits

TypeTriggered when
credit_purchase_successA one-time credit purchase completed
credit_purchase_failedA credit purchase attempt failed
credit_balance_lowYour credit balance dropped below the auto-recharge or default threshold
credit_balance_depletedYour credit balance reached zero
credit_auto_recharge_triggeredAn automatic credit top-up fired

System

TypeTriggered when
system_errorAn internal error affected your account and warrants attention

Critical notifications

A subset of notifications always send by email regardless of your preferences:
  • Payment failures (payment_failure_*)
  • Credit purchase failures (credit_purchase_failed)
  • Domain renewal payment failures (domain_renewal_payment_failed)
  • System errors (system_error)
These exist to make sure you can recover from situations that can interrupt service or lose data.

Next steps

Credits

Configure auto-recharge to head off credit_balance_low alerts

Usage and metrics

Track consumption that drives usage_* notifications