Skip to main content

Notifications

RailPush has two notification layers: first-party inbox notifications for customers, plus workspace channels for deploys, alerts, and audit events.

Deep dive: Customer Alerts, Notification Inbox, and Support Tickets in RailPush.

Customer Notification Inbox

Every signed-in customer has a notification inbox behind the bell icon. Notifications can be marked as read, deleted, or left active until the user dismisses them.

  • Product messages -- onboarding, billing, and system updates delivered inside RailPush
  • Maintenance banners -- active maintenance and incident alerts also surface as top-of-app banners
  • User controls -- mark read, dismiss, or clear inbox items without losing account access

Customer Alerts

Ops can publish customer alerts globally or target specific users. Alerts support informational, warning, maintenance, and incident message types with optional start and end times.

  • Audience targeting -- send to everyone or just selected accounts
  • Operational context -- ideal for incidents, maintenance windows, or account-specific follow-up
  • Persistent visibility -- active alerts remain in the inbox until read or deleted

Workspace Notification Channels

Configure per-workspace outbound notification channels in Settings -> Notifications:

  • Slack -- paste an incoming webhook URL
  • Discord -- paste a Discord webhook URL
  • Email -- add recipient email addresses

Supported Outbound Events

  • Deploy events -- success, failure, rollback
  • Audit events -- service deleted, env vars changed, API key created, etc.
  • Log alerts -- triggered when log patterns match your configured rules
API
# Workspace notification channels
curl https://railpush.com/api/v1/workspaces/<ws-id>/notifications \
-H "Authorization: Bearer <token>"

# Update notification channels
curl -X PUT https://railpush.com/api/v1/workspaces/<ws-id>/notifications \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"slack_webhook_url": "https://hooks.slack.com/services/...",
"discord_webhook_url": "https://discord.com/api/webhooks/...",
"email_recipients": ["team@example.com"],
"deploy_events": ["success", "failed", "rollback"]
}'

# Customer inbox
curl https://railpush.com/api/v1/notifications \
-H "Authorization: Bearer <token>"

curl -X POST https://railpush.com/api/v1/notifications/<notification-id>/read \
-H "Authorization: Bearer <token>"

# Ops: publish a customer alert
curl -X POST https://railpush.com/api/v1/ops/announcements \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"title": "Scheduled maintenance tonight",
"message": "Expect brief interruptions between 02:00 and 04:00 UTC.",
"type": "maintenance",
"active": true,
"target_user_ids": []
}'