1 Notification Center
2 Settings
3 Push & In-App

1 / Poster Notifications — Active
9:41
Notifications
All 7
Bids
Messages
Payments
System
Today
New Bid from Marcus Rivera
Kitchen Remodel — $4,200. Includes cabinet refacing, countertop install, and backsplash.
12 min ago
Contract Ready to Sign
Roof Repair contract from Summit Roofing is ready for your signature.
1h ago
Payment Processed
$3,850.00 escrow funded for Bathroom Renovation at 445 Oak St.
3h ago
Yesterday
New Bid from Jake Morrison
Fence Installation — $2,750. Cedar privacy fence, 6ft, includes all materials.
Yesterday, 4:32 PM
Job Completed
Gutter Cleaning at 221 Maple Ave has been marked complete.
Yesterday, 11:15 AM
Earlier
Message from Tom Davis
Can we schedule the inspection for Thursday morning?
Feb 21
System Update
New feature: Track your contractor's progress in real-time.
Feb 20

PosterNotifications screen with filter tabs, grouped by date. Uses useQuery(api.poster.notifications.list)

2 / Contractor Notifications — Active
9:41
Notifications
All 5
Unread
Important
Today
New Job Near You
Roof Repair in Akron — 3.2 miles away. Posted by Sarah Chen.
8 min ago
Bid Viewed
Lisa Wilson viewed your bid for Kitchen Remodel — $4,200.
45 min ago
Bid Shortlisted
You're in the top 3 for Bathroom Renovation at 445 Oak St.
2h ago
Yesterday
Payout Processed
$1,847.50 has been sent to your bank account for Deck Build job #4270.
Yesterday, 6:00 PM
Verification Approved
Your contractor license has been verified. You can now bid on all job types.
Yesterday, 10:22 AM
Earlier
Voice Agent Call
Your voice agent booked an appointment with Mike Johnson for Thursday.
Feb 21

ContractorNotifications with SegmentedControl (All/Unread/Important). Uses useQuery(api.contractor.notifications.list)

3 / Notifications — Empty State
9:41
Notifications
All
Bids
Messages
Payments
System

All Caught Up!

You'll be notified when there's activity on your jobs.

Empty component with IconCircle hero + hint chips showing notification types.


4 / Poster Preferences
9:41
Notification Settings
Push Notifications
Receive alerts on your device
Email Notifications
Updates sent to your inbox
SMS Notifications
Text messages for urgent updates (coming soon)
Bid Activity
Push
Email
New Bid Received
Bid Updated
All Bids In
Job Updates
Push
Email
Status Changes
Contractor Messages
Payments
Push
Email
Payment Processed
Escrow Updates
Marketing
Push
Email
Tips & Guides
Promotions
Quiet Hours
Enable Quiet Hours
Pause push notifications during set times
From
10:00 PM
Until
7:00 AM
Save Preferences

PosterNotificationSettings with per-channel toggles. useQuery(api.poster.settings.getNotificationPreferences)

5 / Contractor Preferences
9:41
Notification Settings
Push Notifications
Receive alerts on your device
Email Notifications
Updates sent to your inbox
SMS Notifications
Text messages for urgent updates
Job Opportunities
Push
Email
SMS
New Job Leads
Job Matches
Bid Updates
Push
Email
SMS
Bid Viewed
Shortlisted
Bid Won
Bid Lost
Payments
Push
Email
SMS
Payout Sent
Commission
Voice Agent
Push
Email
SMS
Calls Received
Bookings Made
Quiet Hours
Enable Quiet Hours
Pause push notifications during set times
Save Preferences

ContractorNotificationSettings with 3-channel toggles (push/email/SMS). useQuery(api.contractor.settings.getNotificationPreferences)


6 / Push Notification Previews
9:41
9:41
Monday, February 24
3Bids
Sarah accepted your bid for Kitchen Remodel — $4,200
now
3Bids
New job near you: Roof Repair in Akron — 3.2 mi away
12m ago
3Bids
Payout of $1,847.50 sent to your bank account
1h ago
3Bids
Your voice agent booked an appointment with Mike Johnson
2h ago
3Bids
Contract for Bathroom Renovation is ready to sign
3h ago

iOS lock screen push notifications via Expo Push Notifications. registerPushToken mutation stores FCM/APNs token.

7 / In-App Toast & Banners
9:41
My Jobs
Bid submitted successfully!
New bid from Marcus Rivera
Kitchen Remodel — $4,200
Kitchen Remodel
3 Bids
445 Oak St, Akron, OH
$3,500 – $4,800
Roof Repair
In Progress
221 Maple Ave, Cuyahoga Falls, OH
$2,100
Fence Installation
Pending
78 Elm Dr, Hudson, OH
$2,750
New message from Mike Johnson
Home
Jobs
3
Messages
2
Alerts
7
Profile

In-app notification patterns: top banner (success), floating card (new bid), bottom toast (message), badge counts on tab bar.

8 / Notification Deep Links
9:41
Notifications
Payout Processed
$1,847.50 sent to your bank for Deck Build job #4270.
Yesterday, 6:00 PM
Payout Receipt
Job #4270 — Deck Build — 78 Elm Dr, Hudson OH
Job Total $2,150.00
Platform Fee (8.5%) −$182.75
First Payout (40%) $786.90
This Payout (60%) $1,180.35
Deposited to Chase Bank ending in 4821. Typically arrives within 2-3 business days.
View Full Receipt
Deep Link Routes
Message Notification
Opens chat thread with the sender
/(contractor)/messages/{jobId}
Bid Notification
Opens bid detail for the specific job
/(poster)/jobs/{jobId}
Contract Notification
Opens contract signing flow
/(poster)/contracts/{contractId}

Notification tap routes to destination screen via data.actionUrl. handleNotificationPress checks type and routes accordingly.


Data Architecture
Schema Tables
notifications — userId, userType, type, title, message, data, isRead, createdAt
Index: by_user [userId, userType]

alerts — userId, userType, type, title, screen, tab, entityType, entityId, route, isRead
Indexes: by_user_unread, by_user_screen, by_user_screen_tab, by_entity

contractorSettings — pushTokens, notifications (push/email/sms per type)
posterSettings — notifications (push/email per type)
Hooks & Queries
poster.notifications.list — paginated, filter by type
contractor.notifications.list — paginated, filter by status
*.notifications.getUnreadCount — badge count
*.notifications.markRead — single notification
*.notifications.markAllRead — batch mark
*.settings.getNotificationPreferences
*.settings.updateNotificationPreferences
contractor.notifications.registerPushToken
Notification Types
bid_received · bid_viewed · bid_won · bid_lost · payment_processed · payout_sent · message_received · contract_ready · job_completed · voice_call · system · new_job_match
Push Infrastructure
Expo Push Notifications — FCM (Android) + APNs (iOS) via Expo SDK
registerPushToken — stores token per platform in contractorSettings.pushTokens
createInternal — internal mutation called by other Convex functions to create notifications
geocodeAndNotify — geocodes job, finds matching contractors, sends push + email notifications
Notification Center
9:41
Notification Center
Overview
7
Unread
23
Today
+5
Bids
3
Urgent
Recent Notifications
New bid on Kitchen Remodel
Jennifer Adams submitted $11,200
2m
Payment received — $3,400
Escrow funded for bathroom job
1h
Message from Robert Chen
Can we reschedule to Thursday?
3h
Settings & Preferences
9:41
Settings & Preferences
Push Notifications
New bids
Messages
Payments
Email Preferences
Daily digest
Bid alerts
Marketing
In-App Settings
Badge count
Sound
Vibration
Notification Dashboard
https://app.3bids.io/contractor/notifications
3Bids
Notifications ⌘1
Preferences ⌘2
History ⌘3
Filters ⌘4
Analytics ⌘5
Settings ⌘6
MK
Mike Kowalski
Contractor
Settings ⌘,

Notification Dashboard

7
Unread
23
Today
156
This Week
98%
Read Rate
Recent Activity
New bid received
2 minutes ago
Payment confirmed
15 minutes ago
Urgent message
1 hour ago
Notification Volume