Customers call the office for four reasons during a job: when are you coming, who is coming, what will it cost, and how do I pay. The One Link answers all four on one page that changes as the job moves. It's one private link per job, sent in every text, so there's never a "which link was it?" moment.
The One Link, stage by stage
The header never changes: your company name, the job number, the address, a Call button and a greeting with the customer's first name. Below it, the page shows what matters right now.
| Job stage | What the customer sees |
|---|---|
| Not scheduled | "We'll text you when your visit is scheduled." |
| Scheduled | Day, arrival window and the techs' first names; "You confirmed this visit" once they reply C |
| On the way | Tech's first name, photo and bio, live arrival time and an approximate map dot |
| On site | "(Tech) is on site" |
| Options ready | Grouped options with lines, totals, rebates, proofs, add-ons and an approve box |
| Invoiced | Total, paid, balance due and a Pay button |
| After the job | Recap, shared photos, form reports, recommendations and the home passport |
Confirmations work by text reply. Booking and reminder texts ask the customer to reply C to confirm or R to reschedule, and the page updates when they do. The One Link itself has no reschedule, cancel or chat; those live in the portal, so the job page stays simple.
If you haven't connected texting, the tech shares the link from the phone's share sheet instead. The app never claims a text went out when it didn't.
On the way: a live ETA that respects your tech
When the tech marks the job en route, the page switches to "(Tech) is on the way" with an arrival time. The rules are deliberately conservative:
- Approximate, not exact. One dot, snapped to about 250 meters. Never a breadcrumb trail.
- Fresh or hidden. Refreshes every 30 seconds while the page is open; a position older than 10 minutes is hidden.
- Time-boxed. Stops at the arrival geofence or when work starts, and closes after 4 hours en route.
- Optional. The company can switch it off. Without map tiles, it shows the name, photo and ETA only.
The tech's photo and short bio matter more than the map. A homeowner opening the door to a face they've already seen is a calmer start to the visit.
Options and approvals on the page
When a tech sends options instead of closing on site, the One Link shows them under "Pick the option that works for you." Each option shows its lines, tax and total, any after-rebate price, an estimated savings figure if you added one, proof photos of what the tech found, and brochures. One option can carry a Recommended banner.
The customer can tick optional add-ons, such as an extended warranty, and the total updates as they do. If you've turned financing on, a "or $X/mo" estimate appears, with a footnote that monthly payments are estimates and subject to the lender's approval.
- 1
Pick an option
The customer chooses one option and any add-ons.
- 2
Type their full name
A typed name is the signature on the One Link.
- 3
Tick the approval
The box reads: I approve this work for the total. Typing my name counts as my signature.
- 4
Done
The option is sold, the others are dismissed, and the audit trail records the approval as Customer (One Link).
Every time the customer opens the link while options are open, the view is recorded for the follow-up board, at most once per 30 minutes. Staff previews never count, so "viewed 2 hours ago" means the customer looked.
If the customer wants to finance, the "Apply for financing" button starts an application your office handles. No lender is connected to TradesWork yet: the page tells the customer your company will help them apply on the lender's site, and your office gets a task.
Invoice, payment and the recap
The invoice appears only once it's sent; drafts and voided invoices never show. The page shows Total, Paid and Balance due, and a Pay button that opens the payment page for card or bank transfer. If you haven't connected Stripe, it reads "View invoice and how to pay" with your phone number instead.
Bank payments are honest about timing. While one is clearing, the page says it's processing and usually clears in about 4 business days, which matches Stripe's standard settlement window for ACH debits.1 The pending amount isn't asked for twice, and it doesn't count as paid until it clears. When it does: "Paid in full. Thank you!" with a receipt line for each payment, including any tip.
After the work, the customer can confirm it with a typed name under "The work was completed to my satisfaction." That sign-off is separate from approving the price, and it's useful when a dispute comes later.
Then the page becomes a recap: a summary and completion date, Photos from your visit (only the ones the tech chose to share, served through short-lived links), customer-visible form reports such as inspection checklists, What we recommend with severity, and a link to the home's equipment passport.
The home passport
The passport is a separate page per home, not per customer. It lists every system on record:
| Field | Example of what shows |
|---|---|
| Unit | Manufacturer, type, model, serial, tons, refrigerant |
| Age | Years old against "typical life ~N", highlighted at or past lifespan |
| Dates | Year made, installed, last serviced |
| Warranty | Parts and labor end month and year, with a shield when active |
| Care | Maintenance guidance for that kind of equipment |
| Open items | Recommendations not yet done, with severity |
The header reads "N systems on record" with the last updated date, and a Book service button that calls you. There's no customer name, phone or email on the page, and the copy invites the homeowner to share it, for example with a buyer when they sell. It doesn't depend on a membership, so it keeps working after a plan lapses. If the house changes hands, the office can rotate the link, or turn passports off entirely.
The passport doesn't list service history; job history lives in the portal and on each job's One Link.
The customer portal
The portal is for everything that spans jobs. Sign-in is passwordless:
How portal sign-in works
- The customer enters a mobile number or email and gets a one-time link, good for 15 minutes.
- Links the office shares last 72 hours, still single use.
- Opening the link doesn't use it up, so link previews in messaging apps can't burn it. The customer taps Continue.
- The session lasts 30 days and is tied to one company and one customer.
- The same answer is shown whether or not the contact matches, so nobody can probe for customers.
- The office can revoke every session and link for a customer at once.
Once in, the customer sees options waiting for approval, upcoming and past visits, invoices with Pay buttons and receipts, payment history, cards on file (brand, last four, expiry) with an Update card button on the processor's hosted page, memberships with status, visits left, price and repair discount, their equipment and passport, open recommendations with a Yes, I'd like this done button, a two-way message thread and referral details if you run a referral program.
Requests never move the schedule silently
"Ask for a new time" and "Cancel this visit" are available up to 24 hours before a visit by default; inside that window the portal asks them to call. Both become office tasks. Free-text service requests go to the lead inbox, or the customer can book online if you've turned online booking on. Messages go to the CSR inbox, or become a task when there's no phone on file. The customer sees each request move through We're on it, Done or Closed.
Reviews without gating
The portal can ask "How did we do?" with a private 1 to 5 star rating. Links to public review sites are offered to everyone, whatever they rated. Google's content policy for Maps reviews specifically prohibits businesses from selectively soliciting positive reviews,2 so TradesWork doesn't filter. A low private rating opens an office task instead, so someone calls.
Setting it up
- Brand the portal. Add your logo, welcome text and a brand color. The color must pass a 4.5:1 contrast check so buttons stay readable.
- Connect texting and Stripe. The link works without them, but texts carry it automatically and the Pay button needs Stripe.
- Add tech photos and bios. They appear on the live ETA. Two sentences is plenty.
- Decide on the live ETA. Leave it on unless you have a reason; switch it off company-wide if your techs object.
- Set the change window. 24 hours is the default for portal reschedule and cancel requests.
- Turn on reviews and referrals when you're ready. Both are off by default.
Where it falls short
The One Link is a customer page, not a chat app: there's no messaging on it, only Call and text replies. Approval is a typed name, not a drawn signature. Options don't show member prices. Links last until the office rotates them, which is convenient for customers and means the office should rotate one when it's been shared in error. And the Pay button, the live ETA and portal sign-in each depend on a connection you set up: Stripe, fleet tracking, and texting or email.
Footnotes
-
Stripe documentation, "ACH Direct Debit," settlement timing (standard settlement T+4). https://docs.stripe.com/payments/ach-direct-debit ↩
-
Google, Maps user contributed content policy, "Prohibited and restricted content," rating manipulation. https://support.google.com/contributionpolicy/answer/7400114 ↩
