Overview
Victoria’s Activity & Notification System keeps your firm informed about what’s happening across all cases in real-time. Know instantly when clients log in, track their progress through the portal, receive alerts for important events, and maintain a complete activity timeline for every case.Key Benefits
Real-Time Client Visibility
Never Miss Important Events
Complete Activity Timeline
Configurable Alerts
Why Activity Tracking Matters
| Scenario | Without Activity Tracking | With Victoria Activity Tracking |
|---|---|---|
| Client uploads financial docs | Discover days later during case review | Instant notification + badge alert |
| Client completes FA draft | Manually check portal periodically | Real-time alert to review |
| Client having difficulty | Don’t know until they call frustrated | See “stuck” on same page for 20+ min |
| Opposing counsel deadline | Track manually in calendar | Auto-extracted + case activity log |
| Client portal engagement | No visibility into usage | Full timeline of every action |
Getting Started
For Firm Users
The Activity & Notification System is automatically enabled for all firm users. Here’s how to access it:Notification Bell
- Badge shows unread notification count
- Click to see recent notifications
- “View all activity” link opens Activity Center
Activity Center
/activity or click “View all activity” from the notification dropdown.- Active Clients Panel: See who’s online right now
- Notifications Tab: Your personal notification inbox
- All Activity Tab: Firm-wide activity feed across all cases
Case Activity Tab
- Client presence indicator (if currently online)
- Complete timeline for that specific case
- Filter by activity type
- Real-time updates as events occur
Notification Preferences (Firm Admin)
Firm administrators can configure email notifications:- Navigate to Settings → Notifications (coming soon)
- Toggle email notifications globally on/off
- Enable/disable specific notification types:
- Client logins
- Document uploads
- Financial Affidavit submissions
- Task completions
- Client messages
Core Features
Real-Time Client Presence
Victoria tracks when clients are actively using the portal and what they’re doing.Active Client Sessions
Active Client Sessions
- Client name
- Current page (Dashboard, Documents, Financial Affidavit, etc.)
- Current action (Viewing, Uploading, Completing, etc.)
- Time since last activity
- Activity Center → Active Clients panel (green highlight)
- Case Activity Tab → Top banner when client is online
- Notification badge animation
- Client portal sends heartbeat every 30 seconds
- Session considered “active” if heartbeat within 5 minutes
- Automatic detection when client leaves or goes idle
Presence Status Examples
Presence Status Examples
| Status | What Client is Doing |
|---|---|
| Viewing Dashboard | Browsing case overview |
| Viewing Documents | Looking at uploaded files |
| Completing Financial Affidavit | Filling out FA form |
| Uploading Document | Actively uploading files |
| Reviewing Tasks | Checking their task list |
| Viewing Parenting Plan | Working on custody details |
| Reading Messages | Reviewing attorney communications |
Notification Bell
The notification bell provides instant access to important alerts.Notification Types
Notification Types
| Type | Icon | Priority | Description |
|---|---|---|---|
| Client Login | LogIn | Low | Client accessed the portal |
| Document Uploaded | Upload | Normal | New document added to case |
| FA Submitted | FileCheck | High | Financial Affidavit completed |
| FA Approved | CheckCircle | Normal | FA reviewed and approved |
| Task Completed | CheckSquare | Normal | Client finished assigned task |
| Message Sent | MessageSquare | Normal | New message from client |
| Disclosure Progress | ListChecks | Normal | Discovery milestone reached |
| Onboarding Completed | UserCheck | Normal | New client finished setup |
Notification Actions
Notification Actions
- Click notification: Mark as read + navigate to related case/page
- X button: Dismiss notification (remove from list)
- Mark all read: Clear unread count
- View all activity: Open full Activity Center
- Created → Unread (blue highlight, counted in badge)
- Clicked/Viewed → Read (no highlight, removed from count)
- Dismissed → Removed from dropdown (still in database for audit)
Priority Levels
Priority Levels
- Urgent (red dot): Requires immediate attention
- High (orange dot): Important, review soon
- Normal (blue dot): Standard notification
- Low (gray): Informational only
- Urgent: Client message marked “Emergency”
- High: Financial Affidavit submitted for review
- Normal: Document uploaded, task completed
- Low: Client login, routine activity
Activity Center
The Activity Center (/activity) provides a comprehensive view of firm-wide activity.
- Active Clients Panel
- Notifications Tab
- All Activity Tab
- Animated green dot indicates live presence
- Shows client name, current page, and activity
- Click to navigate directly to their case
- Updates every 30 seconds automatically
Case Activity Tab
Each case workspace includes a dedicated Activity tab showing the complete timeline.Activity Timeline
Activity Timeline
- Vertical line connecting events
- Icons representing activity types
- Actor badges (Client, Attorney, Victoria, System)
- Timestamps with full date/time
- Descriptions of what happened
Actor Types
Actor Types
| Actor | Badge Color | Examples |
|---|---|---|
| Client | Green | Uploaded document, submitted FA |
| Attorney | Blue | Approved FA, assigned task |
| Staff | Purple | Filed document, sent message |
| System | Gray | Deadline reminder, auto-archive |
| Victoria | Indigo | Generated document, analyzed FA |
Real-Time Updates
Real-Time Updates
- New activities appear instantly (no refresh needed)
- Client presence updates automatically
- Smooth animation when new items appear
- Activity logged to database
- Postgres triggers realtime broadcast
- Frontend receives via WebSocket
- UI updates with animation
Activity Types Reference
Client-Triggered Activities
client_login
client_login
- Session start time
- Initial page visited
- Device/browser info
document_uploaded
document_uploaded
- Document name and type
- File size
- Upload location (which folder)
fa_submitted
fa_submitted
- Submission timestamp
- FA version/draft number
- Completion percentage
task_completed
task_completed
- Task title
- Time to complete (from assignment)
- Any notes added
message_sent
message_sent
- Message preview
- Thread context
- Urgency flag (if set)
System-Generated Activities
case_created
case_created
- Case name and type
- Assigned attorney
- Jurisdiction
disclosure_progress
disclosure_progress
- Milestone name
- Completion percentage
- Items remaining
onboarding_completed
onboarding_completed
- Onboarding duration
- Sections completed
- Initial documents uploaded
Email Notifications
Configuration Options
Email notifications are controlled at the firm level by administrators. Available Email Toggles:| Setting | Default | Description |
|---|---|---|
email_enabled | Off | Master toggle for all email notifications |
email_client_login | Off | Notify when clients log in |
email_document_upload | On | Notify on new document uploads |
email_fa_submitted | On | Notify when FA is submitted |
email_fa_approved | Off | Notify client when FA approved |
email_task_completed | Off | Notify when tasks are done |
email_client_message | On | Notify on new client messages |
email_onboarding_completed | Off | Notify when client completes onboarding |
Email Format
When enabled, emails are sent via Resend with professional formatting:Client Portal Integration
How Client Presence Works
The client portal automatically tracks presence without any action needed from clients.Login Detected
client_login activity is logged.Heartbeat Starts
- Current page (Dashboard, Documents, FA, etc.)
- Current action (Viewing, Uploading, etc.)
- Client name
Page Changes Tracked
Session Ends
- Session marked as ended
- No longer shown in “Active Clients”
- Total session duration logged
Privacy Considerations
- Presence data is firm-isolated (multi-tenant RLS)
- Clients cannot see their own presence history
- No location tracking beyond page visited
- Data retained for audit purposes per firm retention policy
Technical Architecture
Database Schema
- notifications
- client_sessions
- notification_preferences
- case_activities
idx_notifications_user_unread- Fast lookup of unreadidx_notifications_user_created- Chronological feedidx_notifications_case- Case-specific notificationsidx_notifications_firm_created- Firm-wide feed
Row Level Security
All activity data is protected by RLS policies:notifications RLS
notifications RLS
client_sessions RLS
client_sessions RLS
Real-Time Subscriptions
Victoria uses Supabase Realtime for instant updates:Best Practices
Client Engagement
Client Engagement
- Follow up with stuck clients - If you see someone on the FA page for 30+ minutes, send a quick message offering help
- Time your communications - Send important messages when you see the client is online for immediate visibility
- Track engagement patterns - Clients who haven’t logged in for 7+ days may need a check-in call
- Celebrate completions - When you see a client complete their FA, send an encouraging message
Notification Management
Notification Management
- Process daily - Don’t let notifications pile up; review and dismiss daily
- Use filters - Focus on high-priority items (FA submissions, urgent messages)
- Mark as read - Click notifications you’ve handled to keep the count accurate
- Dismiss old items - Remove notifications you’ve already addressed
Email Configuration
Email Configuration
- Start with in-app only - Enable emails selectively based on need
- Essential emails - FA submissions and urgent client messages are good candidates
- Avoid overload - Don’t enable client login emails unless you have very few clients
- Daily digest option - Consider enabling digest mode for non-urgent activity (coming soon)
Case Timeline Review
Case Timeline Review
- Pre-meeting review - Check recent activity before client calls
- Document client participation - Activity timeline proves client engagement for fee disputes
- Identify bottlenecks - See where cases are stalling based on activity gaps
- Audit trail - Complete record for malpractice defense if ever needed
Troubleshooting
Notifications Not Appearing
Notifications Not Appearing
- Not logged in - Notifications require authentication
- Wrong user - Notifications are user-specific; check you’re logged into correct account
- All dismissed - You may have dismissed all notifications
- No new activity - Check Activity Center for overall firm activity
- Click notification bell to refresh
- Check Activity Center → All Activity tab
- Contact support if issue persists
Client Presence Not Showing
Client Presence Not Showing
- Client not active - Sessions expire after 5 minutes of inactivity
- Heartbeat failure - Network issues on client’s device
- Different firm - Multi-tenant isolation (correct behavior)
- Check Activity Center → Active Clients panel
- Review Case Activity tab for recent “client_login” events
- Confirm client is actively using the portal
Email Notifications Not Sending
Email Notifications Not Sending
- Email disabled - Check notification preferences
- Specific type disabled - Each type has its own toggle
- Spam filter - Check client’s spam folder
- Invalid email - Verify email address in user profile
- Settings → Notifications → Enable email_enabled
- Enable specific notification type toggle
- Check Resend dashboard for delivery status
Activity Tab Empty
Activity Tab Empty
- New case - No activity logged yet
- RLS restriction - May not have access to this case
- Loading issue - Click refresh button
- Perform an action on the case (add note, upload doc)
- Check you have access to this case
- Click the refresh icon in the Activity tab
Security & Compliance
Data Protection
- RLS Policies: Database-level access control
- Firm Isolation: Activity data partitioned by firm_id
- JWT Authentication: All API calls require valid Clerk token
- Audit Trail: Complete history preserved for compliance
- Encryption: Data encrypted at rest and in transit
Retention & Compliance
| Data Type | Retention | Purpose |
|---|---|---|
| Notifications | 90 days | User experience |
| Client Sessions | 1 year | Engagement analytics |
| Case Activities | Case lifetime + 7 years | Audit trail, malpractice defense |
- Bar Ethics: Complete documentation of client interactions
- SOC 2: Audit logging requirements satisfied
- GDPR: Activity data included in data export requests
FAQs
Can clients see their own activity history?
Can clients see their own activity history?
How long does presence stay 'active'?
How long does presence stay 'active'?
Can I turn off all notifications?
Can I turn off all notifications?
Do notifications work on mobile?
Do notifications work on mobile?
Can I get notifications for specific cases only?
Can I get notifications for specific cases only?
What happens to dismissed notifications?
What happens to dismissed notifications?
dismissed_at timestamp and hidden from the UI, but retained in the database for audit purposes.Can opposing counsel see my client's activity?
Can opposing counsel see my client's activity?
Roadmap
Coming Soon:- Notification Preferences UI - Self-service configuration in Settings
- Daily/Weekly Email Digests - Summary emails instead of individual alerts
- Case-Specific Subscriptions - Watch/unwatch individual cases
- Mobile Push Notifications - Native alerts on iOS/Android
- Activity Analytics - Client engagement reports and insights
- Custom Alert Rules - Create your own notification triggers
- Slack/Teams Integration - Forward notifications to team chat
Support
Need help with Activity & Notifications? We’re here:- Email: [email protected]
- Live Chat: Click support icon in bottom right
- Office Hours: Monday-Friday, 9am-5pm PT
- Response Time: Less than 2 hours during business hours
- Configure email notification preferences
- Troubleshoot missing notifications
- Export activity data for compliance
- Custom notification rules setup