Broadcast
Deprecated
This feature has been deprecated as of 2026-06-11 and is no longer available. See Sunset Decision for details.
Overview
The Broadcast feature allows administrators to send messages to all auditors or a targeted subset of users within an organization. Messages can be sent immediately or scheduled for a future date and time, and can be targeted to specific users, sites, or departments.
Purpose & Value
- Mass Communication: Send messages to all users in an organization in one action
- Targeted Messaging: Send to specific users, sites, or departments
- Scheduling: Queue messages to be delivered at a future date and time
- Draft Support: Save messages as drafts before sending
- Message History: View all sent, scheduled, and draft broadcasts in one place
Current Status & Compatibility
| Category | Details |
|---|---|
| Status | Deprecated (2026-06-11) |
| Platform | Web (admin.hellonimbly.com) |
| Route | /admin/broadcast |
| Sidebar Location | Broadcast |
| Feature Flag | MESSAGE_BROADCAST |
Access & Permissions
| Category | Description |
|---|---|
| Authenticated Users | Users must be logged into the Nimbly web application |
| Role-Based Access | Controlled by admin.broadcast.all.permissions (view, create) |
| Feature Flag | Must have MESSAGE_BROADCAST enabled for the organization |
System Architecture & Workflow
graph TB A[Admin opens Broadcast] --> B[BroadcastManager] B --> C[Firebase RTDB listener] C --> D{Target type} D --> E[All Users / Selected Users] D --> F[Sites / Departments] E --> G[organizationBroadcast orgId] F --> H[messageBoard orgId siteKey] subgraph Delivery I[Send Now] --> J[broadcasted: true, status: complete] K[Schedule] --> L[broadcasted: false, status: pending] M[Draft] --> N[broadcasted: false, status: draft] end
Key Components
1. Broadcast List (BroadcastList)
Paginated list of broadcasts organized into three tabs:
- Broadcasted — Already sent messages
- Scheduled — Queued for future delivery
- Draft — Unsent drafts
Each card shows: recipient list, message text, creator name, and sent/scheduled time.
2. Create / Edit Modal (BroadcastModal)
Form for composing and scheduling a broadcast:
- Message text input (280 character limit)
- Receiver type selector: Departments, Sites, or Users
- Multi-select dropdown for specific recipients
- “Send to all users” toggle (Users tab only)
- Delivery options: Send Now or Specific Date and Time
- Actions: Send, Save as Draft, Cancel
3. Delete Confirmation (BroadcastModalDelete)
Confirmation dialog before permanently removing a broadcast.
Core Workflows
Sending a Broadcast
- Navigate to Broadcast in the sidebar
- Click New Broadcast
- Enter message text (max 280 characters)
- Select receiver type: Departments, Sites, or Users
- Choose specific recipients or toggle “Send to all users”
- Select Send Now or pick a scheduled date and time
- Click Send
Saving a Draft
- Follow steps 1–6 above
- Click Save as Draft instead of Send
- The message appears in the Draft tab
Editing or Deleting
- Edit: Available for Draft and Scheduled broadcasts only (not Broadcasted)
- Delete: Available for all statuses; requires confirmation
Data Storage
Broadcast data is stored in Firebase Realtime Database (not MongoDB):
| Path | Used for |
|---|---|
organizationBroadcast/{orgId} | User-targeted broadcasts |
messageBoard/{orgId}/{siteId} | Site/department-targeted messages |
userUnreadBroadcast/{userId} | Per-user unread tracking |
Broadcast statuses: draft → pending → complete
System Integrations
| System | Integration |
|---|---|
| Firebase RTDB | Primary data store for all broadcast messages |
| Organizations API | Organization and timezone context |
| Users API | Recipient user lookup |
| Sites API | Site-based targeting |
| Departments API | Department-to-site resolution for targeting |