Loading…
Fix now
Next 7 days
Owners
Every lead in all three divisions and every rep's sales appointments, in one place.
Today
Everything the sales team owes right now, pulled from AccuLynx and contact@ by one hourly feed. Weekly goal: 100 leads in, 100 contracts signed.
⭐ 5-star Google review link
Everyone · one tapLeads not booked yet
Appointments today
Signed but not submitted for approval
Hot list by rep
Feed notes
—Contracts
Customer, scope, sketch, photos, price — it prices itself off the 2026 guide as you add footage. Sign it on your phone or text the customer a signing link. Signed contracts file to the Lynx job on their own.
Who's on top
Sales leaderboard. Tap anyone to see the deals behind the number.
Trophy case
Gold is earned. Blue is the one nobody wants. Tap a trophy to see the receipts.
Who builds the most fence
Production leaderboard, by crew.
Reps
James and Kellen take new leads. Brysen Dial is off the rotation and, as of 10/7/26, owns operations (labor, crews, production, warranties, emergency / after-hours calls); his card below is operations, not sales — he is the Operations Manager, not a rep. Each card is what that rep's morning game-plan email used to say, kept current all day. Reps work their own list from here once you share the link; until then only you see it.
Commission sign-offs
Owner onlyEvery weekly statement per rep, whether you've approved it and whether the rep has e-signed. Signed PDFs open from here. Reps can't see this card.
The Front-End Playbook
Residential process (fencing and outdoor living). Seven stages. Sales owns a file from the moment a lead lands until the signed contract is submitted for approval. After that the back end (approval sweep, production, invoicing) takes over and this portal stops caring about it.
A lead lands
- Only contact@dfwfencepro.com is watched for new leads. Casey answers inbound calls and texts live any day, any hour. Outbound to a lead is by email only (10/2 rule). Supplier sales calls are handled too.
- New files are built under the DFW FENCE PRO AUTOMATION user, never under Blake. About 85% come from the website contact form.
- Customer-facing emails are signed "DFW Fence Pro / 972-469-3661 / www.dfwfencepro.com". Never give out info@ (it does not exist).
Get it booked on a rep's calendar
- Booking is by EMAIL only (since 10/2). One email per ask, never repeated. Customer emails may go Mon–Sun 7 AM–8 PM Central. Text only if the lead has no email on file and is not SMS opted-out.
- Nothing goes on a rep's calendar until the customer has actually agreed to the time and knows someone is coming. Unconfirmed appointments come off.
- Appointments are hard-set: an exact start time, never a window. If Blake set the time, never offer alternatives.
- Rotation (10/7): James and Kellen only. Kellen Mon–Fri 9 AM–4 PM; James Mon–Sat (Saturdays 9 AM–2 PM; he also covers weekend leads). Book by drive time. Brysen is off rotation — no new leads to him.
- If a customer asks for a call back, Casey calls back any day, any time (customer-requested callbacks are exempt from comms hours).
Rep runs the appointment
- Every quote is entered in AccuLynx before leaving the property. Photos/video of the job site go on the file.
- Price from the 2026 guide (see Pricing & Pitch). $1,500 minimum on small builds with a gate; fences 50' or under add $600; $2,500 minimum on financed jobs.
- Customer wants to come in under the price list? Offer Douglas fir / treated rails instead of a price cut. No discounts on financed jobs.
- Manager approval for custom work, oversized gates and specialty items.
Work the quote until it signs or they say stop
- Follow-ups are specific to what was actually quoted on that job. Ask: is it pricing, or what could we do to earn your business?
- Never kill a prospect until they say they went with someone else or ask us to stop. Then one confirmation and never again, on any channel.
- Files with no touch in 7 days are stale; files with zero touches in 30 days are the ones Blake cares most about. Target 25 stale-file touches a day per rep.
- Customer says they want to talk? Brysen gets an URGENT handoff (text + @Brysen Dial) to call back ASAP or at the time the customer named — never the sales rep (10/9 rule).
- Remind them: $5M general liability, A+ BBB, McKinney office, lifetime workmanship warranty, 0% financing 12+ months, free tear-out, stain at cost in some cases.
Contract signed
- Signed contract goes in the Contract (Signed) folder, renamed exactly like the job header, e.g.
4891: DAVID GIBSON (SIGNED CONTRACT). Old estimates come out of the file (kept retrievable). - Driveway slide gates: contract carries the LiftMaster VDC 24 package language (solar, backup batteries, premium upgrade package, 2 remotes).
- Finish is "Pre-Stained / Post-Stained / No Stain", never "Natural".
Submit for approval — same day
- Upload without SUBMIT FOR APPROVAL is the number-one miss. The rep gets told in all caps and repeat offenders are called out by name.
- The portal lists every signed-in-Prospect file until it is submitted.
Sales is done; the back end takes it
- Worksheet built and approved, 50% deposit link sent, checks logged as "DOWN PAYMENT / DEPOSIT", production notes in ALL CAPS, labor PO and Binford RFQ started.
- Reps are never tagged. If something on the contract or drawing does not add up, @Brysen Dial gets the question.
- Every scheduled install goes on Brysen's calendar only — nothing goes to the sales reps. Commission is paid on money collected, not on signing.
Hard Rules
Residential rules. Every rule set since 9/21, in one place and dated. Any automation that talks to customers or the team runs under these. If one of these is wrong, say so and it changes here first.
TX 811
A ticket goes in the day a dig job is approved, the homeowner gets an email, and the ticket is refiled every 7 days until the job leaves Approved. Approved jobs past 10 days with no install date get flagged to Brysen.
Ready to file
Brysen · 10+ days, no install date
Every approved job
—| Job | Approved | Install | 811 ticket | Legal dig · expires | Next refile | Homeowner | Status |
|---|---|---|---|---|---|---|---|
| Waiting for production data. | |||||||
How it runs
Blake · 10/8/26- Which jobs: fence installs, concrete, patio covers, pergolas, decks and anything else that sets posts or footings. Repairs only when they dig (new posts set in concrete, post or gate-post replacement). Stain, wash and panel-only work get no ticket.
- When: the day the contract is approved. Refiled every 7 days while the job is still in Approved, until it moves to Completed. Texas law: no digging until 2 business days after filing.
- Homeowner: one email from production@ when the first ticket goes in. It gives the ticket number, says utilities will mark public lines with paint and flags, and asks them to leave the flags up. 811 does not mark private lines like sprinklers, dog fence or lighting. No weekly emails to the customer.
- 10-day rule: any approved job over 10 days with no install date gets Brysen flagged here, tagged on the job in Lynx, and an email from ceo@ asking why it hasn't been scheduled.
- Filing: Texas 811 has no API, and its Portal needs a login that the cloud agent can't use. So the agent builds the whole ticket and parks it under Ready to file. To finish it:
- Copy the ticket.
- Open the Texas811 Portal, paste it and submit. It takes about a minute.
- Type the ticket # here.
Production
Every sold job waiting to be built, what's on the calendar, and what just finished.
Installs · next 14 days
Recently built
Backlog · every sold job not built
| Job | Rep | Value | Install | Crew | Material | Hold / status |
|---|---|---|---|---|---|---|
| Waiting for production data. | ||||||
Notes
Schedule
Every dated job in one list. Tap a job to open its file; from there you can mark it completed, move the date, or change the crew.
Warranty
Every open warranty and repair file, most urgent first.
Needs a decision or a call today
Warranty files
—| Customer | Issue | Reported | Days open | Status | Visit | Crew |
|---|---|---|---|---|---|---|
| Waiting for warranty data. | ||||||
Read this
Labor POs
Write the PO here, hand it to the crew from your phone, and the filer agent puts it on the AccuLynx job with the unpaid labor entry. Prices come from the Crew Pay sheet. One PO per crew per job — nothing gets paid without one.
New Labor PO
prices from the Crew Pay sheetPOs
Agents
Sub Invoices
Every invoice a sub crew sends us, logged the minute it lands. In by Thursday 4:00 PM Central pays Friday; after the cutoff it rolls to the next Friday. No completion photos, no pay. The invoice has to match the labor PO — extras need written approval first.
Log an invoice
newInvoices
| Crew | Job | Amount | PO | Received | Pay date | Status | Photos |
|---|---|---|---|---|---|---|---|
| No sub invoices logged yet. Tap Log an invoice when one lands in invoicing@. | |||||||
Pay Sheet
Every sub invoice and labor PO that pays on the Friday you pick, grouped by sub. A line is ready only when the invoice is in, the completion photos are in, and the invoice matches the labor PO. Anything else sits on hold with the reason next to it. Brysen runs Friday pay from this sheet.
Grand total
Pay rules
- Labor PO before any work starts. The PO amount is the price; extras need written approval first.
- One invoice per job to invoicing@dfwfencepro.com with the job # and PO #.
- Completion photos required: no photos = no pay.
- Thursday cutoff, paid Friday by Gusto direct deposit; a late invoice rolls to the next Friday.
- $600 job minimum is built into the labor PO total (the PO shows it when it applies).
- Every sub needs a COI naming DFW Fence Pro LLC as additional insured.
PO Tracker
Each approved job gets a labor PO with the crew unknown and a Binford order that's built but not placed. When Brysen books the install with a crew, the PO goes to that crew, pre-signed by Brysen, by text and email. The crew signs and dates it on their phone, and the signed copy lands in Lynx. Each PO is then checked against the crew's invoice, Gusto and any checks.
Every labor PO
| PO | Job | Crew | Install | PO $ | Sent | Signed | Lynx | Invoice | Paid | Diff |
|---|---|---|---|---|---|---|---|---|---|---|
| Waiting for labor POs. | ||||||||||
By crew
signed · invoiced · paid| Crew | POs | Signed $ | Invoiced $ | Paid $ | Open $ |
|---|---|---|---|---|---|
| Waiting for labor POs. | |||||
Gusto & checks
—Binford material orders
Material Orders
Every approved job gets its material list built from the signed contract. Check the list, tap Ask Binford for a price, log the quote, then tap Place order once the install is booked. Each tap sends Brent one clean email (copy to ceo@), updates the Builds board, and leaves a note for Lynx.
Binford settings
used on every emailCrew Pay · Labor Price Sheet
The one price list every labor PO is written from. Rates live here; the crews get a bilingual PDF made from these numbers. Four agents work off this sheet, and every one of them lines up here first — nothing is priced onto a job, emailed to a crew or changed on the crew PDF until you tap Approve.
Review before anything goes out
The crew PDF — exactly what a crew receives
—Included in the per-foot rate
Pay terms
Labor PO calculator
prices from the sheet aboveAgents working off this sheet
Check these before the sheet goes to crews
Crews & Text
Every sub crew in one place. Tap Text or Call and pick how: RingCentral (the business line, works on a computer with the RingCentral app) or your phone. The message is already typed — you hit send. Never a group text. Office line for crew issues: 972-469-3661.
Quick add a sub
Email only, phone only, or bothAdd a sub / crew
Saves to the crew list for everyoneMessage
—Read this
Fleet
Where the company trucks are right now, from the Bouncie GPS devices. The DFW FLEET — Bouncie sync task writes fleet/status and fleet/trips/<date> every 15 minutes during work hours; this page only reads them and never holds a Bouncie key.
Vehicles
—| Vehicle / driver | Status | Speed | Nearest job | Last ping | Map |
|---|---|---|---|---|---|
Waiting for the Bouncie sync — nothing has been written to fleet/status yet. | |||||
Today's trips
—Read this
Company vehicles only · work hours · drivers are told the vehicle is tracked.
The sync runs every 15 minutes, 6 AM–8 PM Central, Monday–Saturday. Outside those hours the last position stays on screen with its age; nothing is collected. Personal vehicles are not in this list.
Status: Moving = speed 3 mph or more · Idling = ignition on, not moving · Parked = ignition off · No signal = no ping in the last 30 minutes. "At a job site" needs job coordinates on the production board; until the board carries them, Nearest job shows "—".
Collections
Payrix card and ACH payouts to PNC, net of fees. Checks, cash and financing are not in these numbers yet.
By month · 2026
—| Month | Collected | Payouts | vs $350K target |
|---|
By week · last 13
| Week of | Collected | Payouts |
|---|
Chargebacks & reversals
Read this
Supplier Pay · FSG / Binford
Pay Fencing Supply Group (Binford Supply) invoices in Billtrust. The button opens their payment site in a new tab and you sign in there. No login is saved in this portal.
Open invoices · oldest first
—| Invoice | PO / job | Inv date | Days old | Amount |
|---|
Recent payments
FSG / Binford contacts
Read this
Payroll & Books
Live from your own Gusto and QuickBooks connectors. Every call runs with the viewer's claude.ai credentials, so nobody but you can ever see this data, even if they could unhide the markup. Nothing on this tab is saved in the portal.
Who can see this
Owner onlyConnections
not loadedPayroll
Contractors
| Name / business | Type | Status | |
|---|---|---|---|
| Open this tab to load contractors from Gusto. | |||
Match to crews
Portal crews (Crews & Text) matched to Gusto contractors by name, business or email. A crew that is not in Gusto can't be paid Friday until the office adds them.
Contractor payments · last 8 weeks
| Pay date | Payee | Amount | Status |
|---|---|---|---|
| No payments loaded yet. | |||
Payroll runs
| Pay period | Check date | Type | Status | Gross | Net | Taxes | Company debit |
|---|---|---|---|---|---|---|---|
| No payroll runs loaded yet. | |||||||
Books
PNC bank
PNC has no direct connection and logs everyone out after a few minutes idle, so the portal reads PNC through QuickBooks' bank feed (balance as QuickBooks has it, as of today). Keep PNC connected in QuickBooks › Banking and categorize the feed there — this card follows. Your PNC password is never stored here.
Profit & loss
A/R aging
| Customer | Current | 1–30 | 31–60 | 61–90 | 91+ | Total |
|---|---|---|---|---|---|---|
| No aging loaded yet. | ||||||
Balance sheet
Open invoices
| Invoice | Customer | Date | Due | Total | Balance | Status |
|---|---|---|---|---|---|---|
| No invoices loaded yet. | ||||||
Payment links
| Amount | For | Type | Status | Link |
|---|---|---|---|---|
| No payment links loaded yet. | ||||
Create payment link
QuickBooks PaymentsName a QuickBooks customer for a one-time link tied to them (you can email it after), or leave the customer blank for a reusable link anyone can pay.
Stats
Sales activity for the team, then the money. The team sees the activity. The money is owner-only: reps get no financial section at all, not even a blank one.
Sales activity · year to date
—By week · last 13 weeks
| Week of | Leads | Appts | Quotes | Signed | Close % | Signed $ |
|---|---|---|---|---|---|---|
| Waiting for the feeder. | ||||||
By month · 2026
| Month | Leads | Appts | Quotes | Signed | Close % | Signed $ | Avg ticket |
|---|---|---|---|---|---|---|---|
| Waiting for the feeder. | |||||||
By rep · year to date
| Rep | Signed 2026 | Signed $ 2026 | Avg ticket | Oct signed | Oct $ | Note |
|---|---|---|---|---|---|---|
| Waiting for the feeder. | ||||||
By lead source · year to date
| Source | Leads | Booked % | Signed | Close % | Signed $ |
|---|---|---|---|---|---|
| Waiting for the feeder. | |||||
Sold in October 2026
How these numbers are counted
By fence type · year to date
| Type | Quotes | Signed | Signed $ | Avg $/job |
|---|---|---|---|---|
| Waiting for the feeder. | ||||
By city · top 15 YTD
| City | Leads | Signed | Signed $ |
|---|---|---|---|
| Waiting for the feeder. | |||
Financials
Only you can see this section. The feeder refreshes it once a day from QuickBooks.
P&L by month · 2026
—| Month | Income | Job costs | Gross profit | GM % | Overhead | Net | Subs | Materials | Commissions | Marketing | Admin payroll |
|---|
Overhead · year to date
Collections & receivables
Targets & Pay
What the team is measured against and how they get paid. Reps see their own numbers only once this is shared; commission figures never go to the team page.
Daily pace per rep
Commission plan
Owner onlyowner/compplan, never in this page. Edit it from the Commissions tab (owner).Weekly scoreboard
—| Rep | Appointments | Signed | Touches logged | Leads worked | Unbooked | Stale 7+ |
|---|---|---|---|---|---|---|
| Waiting for the first feed. | ||||||
Commissions
Commission is paid on money collected, net of the card/ACH/financing fee, at your rate. The week runs Thursday 4 PM to Thursday 4 PM. Your statement shows up on this page with a tap-to-sign link; sign it within 7 days or it stands as agreed. You only ever see your own numbers here.
This week · what you got paid on
—| Job | Customer | Received | Amount | Method | Fee | Net | Commission | Status |
|---|---|---|---|---|---|---|---|---|
| Nothing collected on your jobs this week yet. | ||||||||
Your statements
Notes on your pay
Rep logins → who sees what
Each rep sees only the numbers written to their own login. Tie each portal login to a rep here; the Thursday statement task reads this list and writes each rep's page. Nobody is invited from here — you invite them from Share when you're ready.
Logins with access
—All reps · statements
Brysen's Line
Every call, text and voicemail on Brysen's RingCentral line (972) 314-2207 ext 109, grouped into conversations. Customers who want to talk to a person are sent here instead of getting texts from Casey.
Casey's Line
Everything on the main line (972) 469-3661 — calls answered by Casey (Retell) with her summary and the recording, every text in and out, and voicemails. Spam-blocked calls are shown so you can see what the filter is catching.
Commercial Line
The GC Commercial hot line (ext 4). Calls, texts and voicemails for the bid desk — never answered as Blake or Cory.
Pricing & Pitch
The official 2026 residential guide and the selling points every follow-up leans on. All prices include tear-out and haul-away, standard walk gates, professional install and a clean job site.
Wood (Japanese cedar)
Steel & chain link
Driveway gates
Floors & rules
Selling points
Automations Inventory
Every agent (scheduled task) on the account as of 10/9/26, with its schedule in Central time, what it does and how its last run went. Set your call on each row; it saves to the portal and I read it back before touching anything. Nothing is paused until you say so.
How It Runs
One feed, one page. A single scheduled task, DFW SALES PORTAL FEEDER v2, runs hourly at :05, 7 AM–7 PM Central Mon–Sat. It reads AccuLynx (Lead, Prospect and recently Approved files, appointments, documents) and contact@, then writes the boards into this page's data store. It is two-way with AccuLynx only: it posts the portal's pending edits (actions/<id> notes) into Lynx, then rebuilds the boards here. It never emails or texts a customer and never books anything.
What it writes. boards/today (the KPI strip and the four lists), reps/james, reps/kellen, reps/brysen (each rep card and the scoreboard row), stats/sales (the Stats tab: week, month, YTD, by rep, source, type, city) and, once a day, owner/financials (QuickBooks P&L and collections). Your keep/fold/retire calls live in automations/<task id>. Production › Crew Pay reads rates/labor (the labor price sheet, owner-written), crewqueue/<id> (every agent proposal; Blake or Brysen flips status to approved / held / dismissed and the agent marks done) and crewagents/<id> (each agent's last run). Those three are read by Editors and the owner only.
Who sees what. Everything under owner/ is locked to the artifact owner by a data rule: for anyone else it does not exist, and the page hides the Financials section, Supplier Pay, Automations and the commission card. Two exceptions open to Editors: owner/collections (the Collections tab) and money/<job#> (payments, balance and labor POs inside a job file). Brysen Dial (operations) signs in as production@dfwfencepro.com and is shared as an Editor; the page recognizes him and opens on Production. Reps get shared as Viewers. The rest is readable by whoever you share the link with.
Freshness. The dot in the header is green when the last feed is under 2 hours old, amber under 6, red beyond that. Red during the day means the feeder missed; tell me and I'll chase it.
Sharing later. Today the page is private to you. When you're ready, share it to the reps as Contributors (they need Contributor to save contracts; Viewer is read-only). The commission card is marked Owner view and is the first thing to split onto a team-only page before sharing.
Labor POs (added 10/7/26). Brysen (Operations Manager) writes POs in Production › Labor POs; each one is a document laborpos/LPO-<seq> (job, customer, address, crew, dates, lines priced from rates/labor, total with the job minimum, notes, status issued / invoiced / paid / void, lynx.status pending / filed / error, or na for an off-job PO — shop, yard, crew prep, no AccuLynx job; offJob: true, job blank, jobKey off-<seq>, skipped by the Lynx Filer — sent.status). The data rule on laborpos is read and write admin — the owner and Editors only — so sales reps (Viewers) never see a PO exist. The page prints the PO (Print / Save PDF), texts or emails it to the crew from your own phone, and four cloud agents work the collection: Labor PO → Lynx Filer (PDF to the job's LABOR PO folder + UNPAID labor entry + job comment, then lynx.status: filed), Crew PO send + e-sign (the PO goes to the crew for signature once Brysen books the install), Crew Invoice Checker (invoicing@ against the PO) and the Thursday Pay List. Their heartbeats are crewagents/pofiler, packet, posign, invoice, payrun (posend retired 10/8/26).
Contracts (added 10/7/26). Reps build a fence agreement on the Contracts tab: customer and job, scope priced live from the 2026 guide (DFWContract.PRICE_BOOK — the same numbers as the Pricing tab, with the $600 small-build add, the $1,500 / $2,500 financed minimums and no discounts on financed jobs), the yard sketch (the Site Sketch tool ported in as a full-screen overlay; its takeoff drops footage and gates into the scope), job-site photos (stored under contracts/<id>/photos, shrunk to 1000 px) and up to two style-gallery photos (gallery/<id>, uploaded by the owner or Brysen as artifact assets). The two-page agreement renders from DFWContract.html(); it can be printed, signed in person (customer and rep signature pads, PNGs stored on the document) or sent as a signing link (the contract packed into the link, signed on the customer's phone at the signing site). Documents live in contracts/<id> (read and write for Contributors and up — reps must be shared as Contributor, not Viewer, to save). Status: draft → sent → signed (or void); lynx.status goes pending → filed when the contract agent drops the signed PDF in the job's Contract (Signed) folder.
Talk-to-fill and booked appointments (10/8/26). On the Customer step reps tap the keyboard mic (or Talk) and say the job; DFWScopeParse fills the customer, runs, gates, extras and the site-plan sides, lists what it assumed and what it didn't catch, and offers outdoor items for pricing. The Contracts tab lists the rep's booked initial appointments from Lynx (boards/today appts + upcoming); Start contract fills customer, city, Lynx job #, link and rep, and phone / email / address from jobs/<jobKey> (written by the portal feeder), filling in later if that record arrives after the contract is opened. The Lynx lead note is offered as one tap.
Contracts v2 (10/8/26). The agreement now opens with the trust band ($5M general liability, A+ BBB, Google Guaranteed, the McKinney office, 20 years, lifetime workmanship warranty) and has a Your new fence page: for every fence type sold, an original front-view drawing generated from the exact options (DFWContract.elevationSVG — height, style, cap, trim, kick board, stain color) beside a real DFW Fence Pro job photo of that style (PHOTO_LIBRARY, hotlinked from dfwfencepro.com; style-tagged uploads in the gallery override it, tag = style on gallery/<id>). The site plan draws itself (DFWAutoDraw): from the scope (follows scope changes until someone draws by hand), from a typed description (“back 80, left 60, right 60, 4 ft gate left”), or by hand in the sketch tool; the house is drawn as a footprint (sketch.house). In-person signing records the same evidence as the signing site: e-sign consent (ESIGN-CONSENT-2026-10), viewed / consented / signed times, device, stroke count, the rep present, and a SHA-256 fingerprint of the exact agreement (signatures.customer.audit); a Signature record page prints with it. The signing site adds the full consent step, server-side fingerprint check, a Certificate of Completion and the customer copy; /api/inbox (HMAC-signed) lets the contract agent pull new online signatures.
Outdoor Living (added 10/8/26). Its own tab right after Contracts. Reps pick a category (Concrete, Patio Covers, Pergolas & Arbors, Outdoor Kitchens, Fire Features, Pavers, Landscape, Fans/Lights/Screens), tap an item and enter the size; DFWOutdoor.price() prices it (base × qty + options, item minimum, the DFW market band) and DFWOutdoor.toExtra() turns it into an ordinary contract line (extras[] with preset:"outdoor", qty × unit price, so DFWContract.price() needs nothing new) that carries its own spec, includes and options for the agreement's Your outdoor project page. The sell-side price book ships in the page and is overridden by outdoor/pricebook (everyone reads; owner and Editors write it from Edit prices). Labor and material per unit and crew pay live only in outdoor/costs (owner and Editors read and write), which the page only asks for when Blake or Brysen is signed in, so reps never receive a cost, a margin or a crew rate. Source of truth for the code: contract/outdoor.js, outdoor.css, outdoor-glue.js, patch_outdoor.py; research and the full book with costs: outdoor/pricebook.json, outdoor/research.md.
Review link. The ⭐ buttons (Today card and every job file's client bar) open the viewer's own texting or mail app with the message and the direct Google review link search.google.com/local/writereview?placeid=ChIJ2-yh2YIVTIYRrmk0ICRJU7k (verified against the DFW Fence Pro Maps listing 10/7/26). Nothing sends by itself; everyone with the link can use it.
Rebuild. The full spec (page, data shapes, feeder prompt, inventory and recommendations) is filed in the DFW SALES PORTAL project and in memory under areas/sales-portal; the Labor PO and review-link spec is in the DFW PORTAL project, so this can be rebuilt from scratch in a new session.
B2B Commercial
Direct commercial accounts: property managers, HOAs' management companies, businesses, churches, schools buying direct, co-op purchases (TIPS / BuyBoard / Choice).
Needs you
—commercial/b2b / commercial/gc once they are pointed at this page.Files
—commercial/gc/bids / commercial/b2b/bids, commercial/projects/items and commercial/accounts/items.Accounts
commercial/accounts/items.Commercial Portal
dfw-commercial-portal.vercel.appGC Commercial
General-contractor and public work: ITBs, bids, submittals, pay applications, retainage, compliance docs (COI, bonds, EMR).
Bid Board
Bids
—Estimator workload
open bidsBid contacts
—Needs you
—commercial/b2b / commercial/gc once they are pointed at this page.Files
—commercial/gc/bids / commercial/b2b/bids, commercial/projects/items and commercial/accounts/items.Accounts
commercial/accounts/items.