Announcements Tool
Overview
Section titled “Overview”The Announcements tool allows Heads and Executives to broadcast important information to the team — process changes, client communications, company updates, and team news. All users can view announcements, and read receipts track who has seen each post.
Features
Section titled “Features”- Category filtering — Filter by Process, Team, Client, or Company
- Read tracking — Unread indicator (blue dot) on each announcement, unread count badge in sidebar
- Attachments — Optional link URL with display label
- Read receipts — Heads/Executives can see who has read each announcement
- Dashboard integration — 3 most recent announcements shown on the dashboard
Permissions
Section titled “Permissions”| Level | View | Create/Edit | Delete |
|---|---|---|---|
| Executive | Yes | Yes | Yes |
| Head | Yes | Yes | No |
| Manager | Yes | No | No |
| Lead | Yes | No | No |
| Employee | Yes | No | No |
Editing is restricted to the original author or an Executive.
Categories
Section titled “Categories”- Process — Workflow changes, new procedures, process updates
- Team — Team news, org changes, celebrations
- Client — Client-facing comms, merchant updates
- Company — Company-wide updates, strategy, announcements
Read Tracking
Section titled “Read Tracking”- Announcements are marked as read when a user views the detail
- The sidebar badge shows the unread count (refreshes every 2 minutes)
- Heads and Executives see a read receipt list on each announcement detail
Distribution
Section titled “Distribution”Authors and Executives can distribute announcements to external channels via the Post button (Megaphone icon) on the detail view. Supported channels:
- Slack — Posts a formatted Block Kit message to the configured announcements channel (or falls back to the leave channel). Configure in Settings > Connections.
- Google Calendar — Creates an event on the Tribe calendar. Supports all-day or timed events.
- Email — Sends the announcement as HTML email via Gmail API (domain-wide delegation). Configure the sender and destination addresses in Settings > Connections.
Distribution status is tracked per-channel — the dialog shows sent/failed status and prevents duplicate posting.
Components
Section titled “Components”| Component | Purpose |
|---|---|
announcements-page.tsx | Main page: category filter, list, detail routing |
announcement-card.tsx | List item with unread indicator, category badge, preview |
announcement-detail.tsx | Full view with read receipts, edit/delete/distribute actions |
announcement-form.tsx | Create/edit form in a slide-over Sheet |
distribute-dialog.tsx | Channel selection dialog for distributing to Slack, Calendar, Email |
URL State
Section titled “URL State”?category=process|team|client|company— category filter?id=<announcement-id>— selected announcement detail view
Data Model
Section titled “Data Model”| Table | Purpose |
|---|---|
announcements | Title, content, category, attachment URL/name, author, timestamps |
announcement_reads | Read receipts: announcement_id + user_id + read_at |
announcement_distributions | Distribution tracking: channel, status, external_id, error |