SMS Inbox & Conversations
9:41
SMS Inbox
47
Conversations
12
Unread
156
Msgs Today
JM
Jane Morrison
Thanks! What time window should I expect the tech?
2m
RC
Robert Chen
Can I reschedule to next week?
15m
MB
Mark B. (Tech)
On my way to 1420 Elm St. ETA 10 min.
28m
LP
Lisa Park
I’d like to add upholstery cleaning too
1h
DT
David Torres
Do you clean oriental rugs?
2h
Pro Tip: SMS replies from customers create 2-way conversations. Tech messages relay between field techs and the office without exposing personal numbers.
SMS Inbox Live
sms/index.tsx — Summary stats, search, filters,
conversation cards with unread indicators
9:41
Jane Morrison
Hi Jane! Your carpet cleaning is confirmed for tomorrow 12/14 between 8-10 AM. Tech: Mark B. Please have furniture cleared from carpeted areas.
Yesterday 4:00 PM
Thanks! Do I need to move the couch?
Yesterday 4:12 PM
Our techs can move most furniture. Just electronics and items over 70 lbs need to stay put.
Yesterday 4:15 PM
Perfect. Also, any chance of getting a discount if I add upholstery too?
Yesterday 5:30 PM
Great timing! We can add upholstery at 30% off since we’re already on-site. A sofa is $154 and loveseat is $116.
Yesterday 5:45 PM
Thanks! What time window should I expect the tech?
2m ago
Type a message...
Conversation Detail Live
sms/[conversationId].tsx — Chat thread,
upsell inline, call button

Blast Campaigns
9:41
SMS Blasts
8
Campaigns
2.4K
Sent
18%
Response
Winter Carpet Special
Active
Sent Dec 10 • 450 recipients
450
Sent
412
Delivered
82
Responses
23
Booked
HVAC Season Reminder
Draft
Scheduled Dec 20 • 1,200 contacts
0
Sent
1,200
Target
Preferred Customer Callback
Completed
Sent Nov 28 • 800 recipients
800
Sent
144
Responses
67
Booked
Blast Campaigns Live
sms/blasts/index.tsx — Campaign list,
stats, status badges, response rates
9:41
Create Blast
Campaign Details
Audience
Previous Customers (1,200)
Preferred Only (340)
Custom List
1,200 contacts selected • 42 DNC excluded • 1,158 will receive
TCPA Compliance: All recipients must have express written consent. DNC numbers auto-excluded. STOP replies processed automatically.
Create Blast Live
sms/blasts/create.tsx — Template, audience,
DNC exclusion, TCPA validation
9:41
Winter Carpet Special
450
Messages Sent
412
Delivered
91%
Open Rate
23
Booked
Template
“Hi {name}! COIT Charlotte is offering 35% off carpet cleaning this month. Our certified techs use truck-mounted extraction. Reply YES to book or call (704) 527-3100. Reply STOP to opt out.”
Responses
YES replies
23
Questions
59
STOP (opt-out)
6
Delivery Note: 38 messages failed delivery (invalid numbers). Auto-cleaned from future campaigns.
Blast Detail Live
sms/blasts/[blastId].tsx — Campaign stats,
template preview, response breakdown

Tech Relay & Settings
9:41
Tech Messages
Mark B. (Route 301-01)
Arrived at 1420 Elm St. Customer not home. Neighbor says back at 10.
9:15 AM
Thanks Mark. Skip to next stop and circle back. Update ETA for Jane Morrison.
9:18 AM
Mark B.
Copy. Moving to stop 2 (Chen, HVC). Will return to Morrison by 10:30.
9:20 AM
Jake R. (Route 401-02)
Customer wants to add 2 rooms of carpet to the duct job. $320 upsell. Approve?
9:45 AM
Approved. Add as Build commission for Jake. Update the WO.
9:47 AM
Lisa T. (Route 101-03)
Finished stop 3 of 5. Running 20 mins ahead. Any add-on calls nearby?
10:02 AM
Reply to all techs...
Tech Field Messages Live
team/tech-messages/send.tsx — Office ↔ tech relay,
route-tagged, upsell approvals
9:41
SMS Settings
Platform Number
(704) 527-3100
All SMS sent/received through this number. Personal numbers never exposed.
TCPA & Compliance
Auto-STOP Processing
Auto-add STOP replies to DNC
Consent Required
Require express written consent
Quiet Hours
No blasts before 8 AM or after 9 PM
DNC List
42 numbers on DNC
Last updated: 6 STOP replies on Dec 10 blast
Pro Tip: DNC list syncs across all campaigns. Once a number is added, it’s excluded from all future blasts.
SMS Settings Planned
sms/settings.tsx — Platform number,
TCPA toggles, DNC management
Inbox & Conversations Live
9:41
SMS Inbox
47
Conversations
12
Unread
Search...
JM
Jane Morrison
Thanks! What time window...
2m
RC
Robert Chen
Can I reschedule to next week?
15m
MB
Mark B. (Tech)
On my way to 1420 Elm St.
28m
LP
Lisa Park
I’d like to add upholstery
1h
DT
David Torres
Do you clean oriental rugs?
2h
Jane Morrison
(704) 555-0142 • Carpet Cleaning • Dec 14
Hi Jane! Your carpet cleaning is confirmed for tomorrow between 8-10 AM. Tech: Mark B.
Yesterday 4:00 PM
Thanks! Do I need to move the couch?
Yesterday 4:12 PM
Our techs can move most furniture. Just electronics and items over 70 lbs.
Yesterday 4:15 PM
Perfect. Also, any discount if I add upholstery too?
Yesterday 5:30 PM
Great timing! 30% off since we’re already on-site. Sofa $154, loveseat $116.
Yesterday 5:45 PM
Thanks! What time window should I expect the tech?
2m ago
Type a message...

Blast Campaigns Live
9:41
SMS Blast Campaigns
8
Campaigns
2.4K
Sent
18%
Response
Winter Carpet Special
Active
450 sent • 82 responses • 23 booked
HVAC Season Reminder
Draft
Scheduled Dec 20 • 1,200 contacts
Preferred Customer Callback
Completed
800 sent • 144 responses • 67 booked
Black Friday Tile & Grout
Completed
600 sent • 108 responses • 41 booked
Winter Carpet Special
Sent Dec 10 • 450 recipients • 35% discount offer
Active
450
Sent
412
Delivered
82
Responses
23
Booked
Message Template
“Hi {name}! COIT Charlotte is offering 35% off carpet cleaning this month. Reply YES to book or call (704) 527-3100. Reply STOP to opt out.”
Warning:42 DNC numbers auto-excluded. 6 STOP replies processed. TCPA compliant — all recipients had express written consent.

Create & Detail Live
9:41
Create Blast Campaign
Campaign Details
Audience Selection
Previous Customers (1,200)
Preferred Only (340)
Custom List
1,200
Selected
42
DNC Excluded
1,158
Will Receive
TCPA Compliance:Express written consent required for all recipients. Quiet hours enforced (8 AM–9 PM). STOP processing automatic.

Tech Relay Live
9:41
Tech Field Messages
Active Techs
MB
Mark B.
Route 301-01 • 4 stops
JR
Jake R.
Route 401-02 • 3 stops
LT
Lisa T.
Route 101-03 • 5 stops
KP
Kevin P.
Route 201-04 • 6 stops
Mark B. — Route 301-01
4 stops today • 2 completed • ETA: 10:30 for next
Mark B.
Arrived at 1420 Elm St. Customer not home. Neighbor says back at 10.
9:15 AM
Thanks Mark. Skip to next stop and circle back. Update ETA for Jane Morrison.
9:18 AM
Mark B.
Copy. Moving to stop 2 (Chen, HVC). Will return to Morrison by 10:30.
9:20 AM
Reply to Mark B...

Settings & DNC Planned
9:41
SMS Settings
Platform Number
(704) 527-3100
All SMS routed through this number
TCPA Compliance
Auto-STOP Processing
Consent Required
Quiet Hours (8AM–9PM)
Do Not Contact List
42
Numbers on DNC
(704) 555-0388
STOP reply • Dec 10 blast
STOP
(704) 555-0291
Manual add • Nov 28
Manual
(704) 555-0177
STOP reply • Dec 10 blast
STOP
Pro Tip:DNC list syncs across all campaigns. STOP replies auto-process within 30 seconds.
SMS Command Center Live
https://app.3bids.io/contractor/sms
3BidsSMS Hub
Inbox ⌘1
Campaigns ⌘2
Tech Messages ⌘3
TCPA & DNC ⌘4
Settings ⌘,
KS
Karen Smith
CSR Lead

SMS Command Center

47 Conversations · 12 Unread
47
Conversations
12
Unread
2.4K
Sent Today
18%
Response Rate
Recent Conversations
47 total
JM
Jane Morrison
Thanks! What time window... · 2m
RC
Robert Chen
Can I reschedule to next week? · 15m
MB
Mark B. (Tech)
On my way to 1420 Elm · 28m
LP
Lisa Park
I’d like to add upholstery · 1h
Active Campaigns
8 total
Winter Carpet Special
450 sent · 82 responses · 23 booked
Active
HVAC Season Reminder
Scheduled Dec 20 · 1,200 contacts
Draft
Preferred Customer Callback
800 sent · 144 responses · 67 booked
Done

Campaign Dashboard Live
https://app.3bids.io/contractor/sms/campaigns
3BidsSMS Hub
Inbox
Campaigns
Tech Messages
TCPA & DNC
KS
Karen Smith
CSR Lead

Campaign Dashboard

8 Campaigns · 2.4K Sent
Campaign Status Sent Delivered Responses Booked
Winter Carpet Special Active 450 412 82 23
HVAC Season Reminder Draft
Preferred Customer Callback Done 800 784 144 67
Black Friday Tile & Grout Done 600 588 108 41

Tech Relay Hub Live
https://app.3bids.io/contractor/sms/tech
3BidsSMS Hub
Inbox
Campaigns
Tech Messages
TCPA & DNC
KS
Karen Smith
CSR Lead

Tech Relay Hub

4 Active Techs · 14 Stops Today
Active Techs
MB
Mark B.
Route 301-01 • 4 stops
JR
Jake R.
Route 401-02 • 3 stops
LT
Lisa T.
Route 101-03 • 5 stops
KP
Kevin P.
Route 201-04 • 6 stops
Mark B. — Route 301-01
4 stops today • 2 completed • ETA: 10:30 for next
Mark B.
Arrived at 1420 Elm St. Customer not home.
9:15 AM
Skip to next stop and circle back.
9:18 AM
Mark B.
Copy. Moving to stop 2. Return by 10:30.
9:20 AM
Reply to Mark B...

TCPA & Settings Planned
https://app.3bids.io/contractor/sms/settings
3BidsSMS Hub
Inbox
Campaigns
Tech Messages
TCPA & DNC
KS
Karen Smith
CSR Lead

TCPA & Settings

42 DNC Numbers · Fully Compliant
Compliance Settings
Auto-STOP Processing
STOP replies auto-add to DNC
Consent Verification
Express written consent required
Quiet Hours
8:00 AM – 9:00 PM only
Do Not Contact List
42
Numbers on DNC
(704) 555-0388
STOP • Dec 10
STOP
(704) 555-0291
Manual • Nov 28
Manual
(704) 555-0177
STOP • Dec 10
STOP

Data Architecture

Schema tables, queries, mutations, and status flows that power the SMS messaging system.

Source Files

sms/index.tsx
SMS Inbox — conversation list, search, filters, unread indicators
screen
sms/[conversationId].tsx
Conversation thread — 2-way chat, upsell inline, call
screen
sms/blasts/index.tsx
Campaign list — stats, status badges, response rates
screen
sms/blasts/create.tsx
Campaign builder — template, audience, TCPA validation
screen
team/tech-messages/send.tsx
Tech relay messaging — office ↔ field, route-tagged
screen

Convex Queries

listConversations
Filter by read/unread, customer/tech. Returns threaded conversation list.
query
getConversation
Single thread with all messages, contact info, linked job.
query
listBlastCampaigns
All campaigns with delivery stats, response rates, status.
query
getDNCList
All numbers on Do Not Contact with source and date.
query

Convex Mutations

sms.sendMessage
Send individual SMS, auto-thread to existing conversation.
mutation
smsBlasts.create
Create campaign — auto-exclude DNC, validate TCPA consent.
mutation
smsBlasts.send
Execute blast — per-recipient tracking, quiet hours enforcement.
mutation
dnc.addNumber
Add to DNC list — auto from STOP or manual. Syncs across all campaigns.
mutation

Message Flow

inbound_sms auto_thread csr_inbox reply_sent delivered
blast_created dnc_scrub queued sent
Terminal: stop_received undeliverable

Key Design Decisions

Two-Way Threading
Inbound SMS auto-threads into conversations. CSRs see full history. No personal numbers exposed.
TCPA Auto-Compliance
Blast campaigns auto-exclude DNC. STOP replies processed within 30 seconds. Quiet hours enforced.
Tech Relay
Office ↔ field tech messaging without exposing personal numbers. Route-tagged for dispatch context.
Inline Upsells
Tech upsell requests approved inline via SMS. Commission auto-tagged. Work order updated.
DNC Sync
Single DNC list across all campaigns. STOP replies, manual adds, and invalid numbers all unified.