
The TCPA was written before SMS existed, then the FCC stretched it to cover text messages, then 10DLC carrier rules layered on top, and the result is a regulatory stack that’s specifically hostile to high-volume operators who don’t pay attention. Construction businesses get hit harder than most: you maintain two distinct sending audiences (homeowners and subs), you operate across multiple state legal regimes, and your past-client list is exactly the population plaintiffs’ firms love to recruit from.
Statutory damages run $500 per violation, trebled to $1,500 for willful violations. A single careless workflow that texts 800 past clients without proper consent is a $400,000–$1.2M exposure on its face. The good news is that none of it is hard to get right if you build the compliance scaffolding before you send the first message, which is what this guide covers.
Construction Snapshot for GHL ships with the consent capture, suppression handling, and audit logging pre-wired. This guide explains what those pieces do and what you, the operator, still have to confirm — because the snapshot can enforce the rules but only you can register your EIN, sign the campaign attestation, and audit the consent record.
Step 1 — Register A2P 10DLC and lock your sending brand
Every carrier in the US now requires Application-to-Person (A2P) 10DLC registration before a 10-digit long code can send SMS at any meaningful volume. Unregistered numbers get rate-limited to a trickle and then blocked entirely. For construction operators the registration is one of the first things you do, because carrier approval averages 1–3 business days and sometimes a week.
Submit through the GHL Settings > Phone Numbers > Trust Center interface. You’ll need: legal entity name (matching your EIN letter exactly — “ABC Construction LLC” is not the same as “ABC Construction”), EIN, registered address, website URL, and a campaign description. For construction, register a single Mixed-use campaign with sample messages drawn from your three real flows: homeowner appointment reminders, project status updates, and subcontractor dispatch.
Step 2 — Capture written consent before the first SMS
The TCPA standard for SMS marketing is “prior express written consent.” For construction operators the safest interpretation is: every phone number you text must have a timestamped record showing that the person agreed to receive SMS from your business, specifically. There are three legitimate consent paths for a construction operator, and you should use all three depending on the relationship:
- Homeowner intake form. A checkbox above the submit button (never pre-checked) with consent language naming your business and the SMS purpose.
- Contract clause. A consent paragraph inside the signed contract for active projects, separately initialed if your state requires it.
- Verbal-then-written. For past clients, a phone call where you ask permission, followed immediately by a confirmation SMS that requires a YES reply to activate the contact.
The snapshot ships the homeowner intake form with TCPA-compliant consent language already in place. The contract clause template is in your document library. The verbal-then-written workflow is the “Past Client Reactivation” workflow — do not enable it until you’ve trained your team on the verbal script.
Example consent language for the homeowner intake form:
By checking this box and submitting this form, I agree that [Company Name]
may contact me at the phone number provided, including by automated SMS
and calls, about my project inquiry, scheduling, estimates, project
updates, and related services. I understand consent is not required to
receive an estimate. Message and data rates may apply. Reply STOP to
opt out at any time. Reply HELP for help.
Step 3 — Separate homeowner and subcontractor sending lists
Homeowners consent to one thing (their project, scheduling, your services). Subs consent to a different thing (dispatch, jobsite logistics, payment notifications). The two audiences cannot be merged for sending purposes — if you send a subcontractor dispatch (“Need you at 1421 Maple at 7am Tuesday”) to a homeowner audience, you’ve sent an unsolicited message under a consent scope that didn’t authorize it, even if the homeowner is technically opted in.
The snapshot enforces this with two top-level tags (homeowner and sub) and a workflow-level guard that checks the tag before every send. If you import contacts without tagging, the guard fails closed — nothing sends — which is the right default but it will look like the system is broken. Always tag at import time.
Operationally, run two separate SMS templates libraries: one for homeowner-facing messages (warm tone, full company name, estimator name) and one for sub-facing messages (terse, job number, address, time). Mixing template libraries is how cross-audience leaks happen.
Step 4 — Wire STOP, HELP, and quiet-hour handlers
Carriers require STOP and HELP keyword support on every campaign. The snapshot wires this automatically but you have to verify it works. From a personal phone, text STOP to your registered number and confirm three things happen in under 60 seconds: (1) you receive the carrier-mandated unsubscribe confirmation, (2) your contact record gets the dnc-sms tag, and (3) every active SMS workflow targeting that contact suppresses immediately.
Then text HELP and confirm the response includes your company name, support email, and a reminder of how to opt out. The HELP response is mandatory and carriers will flag campaigns that don’t have it.
Quiet hours are TCPA-mandated: no marketing SMS before 8am or after 9pm in the recipient’s local time zone. The snapshot’s quiet-hour gate uses the contact’s stored time zone, which defaults to your business time zone if the contact record doesn’t have one. This is the single most common compliance miss in construction — out-of-state past clients getting texted at 6am their time because the contact record has the wrong zone. Audit your past-client list for missing or wrong time zones before you enable any outbound workflow that targets them.
Step 5 — Scrub against the national DNC and reassigned-number databases
The National Do Not Call Registry covers calls more than SMS, but the FCC and several state regulators have extended DNC protection to text messages. More importantly, the FCC Reassigned Numbers Database (RND) exists specifically to protect operators from accidentally texting someone who inherited a phone number from a past client.
Run a DNC and RND scrub weekly. The snapshot includes a “Suppression Refresh” workflow that pulls fresh DNC and RND data and tags any matching contact with dnc-suppressed. The workflow runs Sunday at 11pm by default. Confirm it’s enabled and check the run history every Monday morning for the first month.
Reassigned numbers are the most expensive class of TCPA violations because they’re easy to prove: the recipient has documentation showing they got the number after your last consent date, and your records show you kept texting. The RND lookup is a defense (a “safe harbor”) only if you actually queried it before sending — so the weekly scrub is doing two jobs, suppressing bad numbers and creating the audit trail that protects you.
Step 6 — Maintain audit-ready consent logs for seven years
TCPA claims have a four-year statute of limitations federally and longer in some states. The standard advice is seven years of retention so you’re covered against late-arriving claims and any tolling arguments. The snapshot stores consent evidence on every contact: form source, IP address, user agent, timestamp, the exact consent language shown, and any subsequent opt-in/opt-out events.
Export the consent log monthly. The snapshot has a “Consent Export” workflow that drops a CSV into the connected Google Drive or S3 bucket on the first of every month. Keep both the live CRM record and the monthly exports — if you ever migrate off GHL, the exports are your only durable record.
When (not if) you receive a TCPA demand letter, the first thing the plaintiff’s lawyer asks for is the consent record. Operators who can produce a timestamped form submission with the consent language, IP, and opt-out history almost always get a quick dismissal or nuisance-value settlement. Operators who can’t produce records pay statutory damages.
Common pitfalls
- Texting past clients without a fresh consent. A signed contract from three years ago is not durable SMS consent. Run the verbal-then-written workflow first.
- Reusing a phone number for multiple campaigns without re-registering. The 10DLC campaign you registered for homeowner intake doesn’t cover subcontractor dispatch. Register a Mixed-use campaign or two separate campaigns.
- Letting PMs text from personal phones. Off-platform texts have no consent log, no opt-out handling, and no audit trail. Every PM-to-homeowner text routes through the GHL number assigned to that PM.
- Ignoring the FCC’s 2024 one-to-one consent rule changes. The rule was vacated by a federal appeals court in early 2025, but several state laws codified similar restrictions. Consent should still name your specific business, not a bundle of unrelated marketing partners.
- Forgetting that voicemail drops are calls under TCPA. If you use ringless voicemail to past clients, it requires the same prior express written consent as a live autodialer call.
What to do next
Once your A2P registration is approved and consent capture is verified, the next priorities are the change-order workflow (because that’s where SMS gets used most heavily mid-project) and the launch guide if you haven’t completed the full snapshot deployment yet. Both are in this library.
If you have a past-client list larger than 500 contacts that hasn’t been touched in 12+ months, do not bulk-send to it. Run the verbal-then-written reactivation flow in batches of 50 per week. It’s slower but it protects you and produces higher reply rates than a cold blast.
Build TCPA-clean SMS into your construction CRM
Construction Snapshot ships with consent capture, STOP/HELP handlers, quiet-hour gating, and DNC scrubbing pre-wired — deployed to your GHL sub-account in 24 hours.