TB Enterprises
TB Enterprises
Service portal

Sign in

TB Enterprises
TB Enterprises
Service portal

Choose your password

Nobody else will ever see this — not the office, not Steve. If you forget it, you get a new link, not your old password back.

There is a newer version of this app. Tap here to load it — what you are looking at now is out of date.
TB Enterprises
TB Enterprises
You have an unfinished work order from .

My Pay

Only your own earnings are visible here — the database enforces that, not this page.

Loading…

Work Orders

All open and recent jobs across every site.

Your scheduled work

The jobs already booked in your name — including every stop on a trip you committed. Open one of these rather than starting a new work order, or the visit ends up recorded twice.

Loading…

Need the office to call a customer?

For anything you can't settle on site — a billing argument, a quote they want, an account question. It lands in the office queue straight away. This doesn't count as having contacted them; office logs that when they actually make the call.

Flags you've raised
Loading…

Your AI assistant use

What the assistant has cost on your own calls. Only yours — the database scopes this to you, not the page.

Loading…
Loading…

New Work Order

Log work from the field. It'll be recorded under your name.

…or pick from the whole list
The office sets their agreement (PM or not) when they look it over.
It goes to the office for a quick look over. You don't wait for them — fill in and finish the work order as normal.
Extra contact detail for this visit. This used to get typed into Notes — it has its own field now.
Notification & contact
We aim to reach the customer within 24 hours of this. Going over doesn't stop you submitting — it just shows up on the office's review list.
Only reached them stops the 24-hour clock. If you leave a message, log it here and log the next try from the order later — the whole trail is kept.
The job
Nobody attended, so photos are not required, the machine lid is not asked for, and this job cannot bill travel.
Ticked, the PM visit goes on the bill when this is marked complete — at the customer’s PM price. The job type above stays what it is.
Diagnosis
Taken straight from Multiplex's FAQ & Troubleshooting sheet. If none of them fit, pick Something else and say what it was below — a wrong code is worse than no code.
Anything else it was doing?
A machine regularly has two things wrong with it. Tick every one that applies — the box above stays the main one.
Deliberately coarse. Which part went in is already on the parts lines; this is what kind of job it turned out to be. No fault found, Site issue and Escalated are three different answers and all three are honest ones.
Anything else that fixed it?
Steve, 2026-08-30 — a visit often puts two things right, and the second one used to end up in the prose where nothing could count it. The box above stays the main one.
Spellcheck is on. Your words are recorded exactly as you type them — this is the record of what was done to the machine, so nothing changes it behind you. Polish only ever offers a correction: you see both versions and press Use, or you don't.
Parts used
Visit dates & times
Travel
Leave it if you are not sure. Nothing is billed for the drive until somebody answers this.
Road on this job

What actually comes off the bill is your receipts — not these two numbers. They are how the office checks the receipts match the trip, so file everything. Nights away is separate from days: sleep in your own bed and there is no hotel to come off at all, and that money stays in the pot you get 65% of.

Most jobs are one day.
0 if you slept at home.
Reference numbers & billing
Collected on site & sales notes
Read off the machine. This zeroes on a screen change — tick the box below if you changed it, so the readings still add up.
Which lid is on the machine now. Goes away once everything is converted to black.
Photos

A before and an after are required. Take them now or pick them from your photos. They stay internal — customers never see them.

required
required
required for a new install
Photos are shrunk on your phone before they upload, so this works on a weak signal.
Anything you can't settle on site. It lands in the office queue the moment you submit. This doesn't count as having contacted them — office logs that when they actually call.

My Truck

What you carry, against what the office says a van should carry. Only yours — the database scopes this to you, not this page.

Stock on board

Need to restock

What you are short of, and what has never been counted. Ordered by what it costs to fill, so the top of the list is the expensive gap.

Loading…
On the truck

Everything you have counted, whether you are short of it or not. This is the inventory — it does not shrink when you have enough.

Receipts

Photograph every business expense, whether or not anyone is paying you back — that is how the business proves what it spent. The card statement says what left the account; the receipt says what it was for.

File a receipt

A photo, or the PDF a hotel emailed you.
The date printed on it — not today, if you are filing a stack.
The usual case.
Tie it to a job and the cost lands on that job. Trip fuel and hotels usually belong to the trip, not one work order — leave it blank for those. Leave blank for trip fuel or a hotel.

My receipts

Loading…

Waiting for review 0

What the AI read is shown as a suggestion. Check it against the photo before accepting — the numbers you confirm are the ones that reach the ledger.

Loading…

Everyone’s receipts

Loading…

Road — plan vs reality 0

The rate card is the plan that proved the model works; the receipts are that plan in motion. These are the jobs where the two are a long way apart. Under is the one that costs money quietly — the road comes off before the 65%, so a receipt nobody filed pays the tech more, not less.

Loading…

Who owes whom

A denied company-card charge does not un-spend itself — the money left, so the tech owes it back. Money a tech fronted works the same way in reverse.

Loading…

Payroll

The three numbers BBSI asks for, per person, for one pay period. TB does not pay anybody — BBSI does. This is what gets reported.

Pay period

Open a new period

What to enter

Hours and commission are wages. Reimbursement is not — BBSI adds its burden to the first two and passes the third through at par. Keep them in their own boxes: a reimbursement entered as commission gets taxed, so the tech gets back less than they spent.

PersonHoursCommission Reimbursement
Choose a period.

Check their invoice

What TB expects to be billed, so BBSI’s number is checked rather than paid on trust.

Ledger

Every movement of TB’s own money: the opening balance, expenses, income, and checks against the bank. This is an estimate, not a bank balance, and it is not accounting. Customer payments live on invoices and wages go through BBSI — putting either in here would count them twice.

Cash position

Loading…

Expected in and out

None of this is in the balance above, on purpose. Money that has not moved is not cash, and adding it here is how a balance quietly starts counting the same pound twice.

Loading…

Record a movement

What actually left or arrived in the account. There is no delete — a mistake is voided and rewritten, so both stay legible.

Check against the bank

Enter what the bank actually says. The difference is posted as its own entry, so the ledger agrees with the bank and the history explains why. Typing over the balance is not offered — the gap is the useful part.

The register

Newest first. Voided rows stay listed — the running balance skips them, but a correction people can see is worth more than a tidy list.

DateWhatType AmountBalance after
Loading…

Recurring bills

What TB expects to pay again. These predict cash out and never move it — nothing posts on a due date, because a date passing is not evidence that money left the account.

Loading…
Add a recurring bill

FreshBlends

The service tickets FreshBlends send us, and where each one has got to. 500 machines on trial — this queue is how the rest are earned. Internal: nothing here is shown to FreshBlends.

Record a ticket they sent

Their fields, in their order — copy them straight off the email. Only their ticket number is required; the rest can be filled in later, and a second send updates the same ticket rather than raising a new one.

⚠️ The one sentence that is a REQUEST lives in a person's forward, not in the automated block — and it is the line the tech needs.
⚠️ Their email repeats the report block twice, verbatim. Paste it once.
Loading…

Places

Where to stay and eat when you're working away from home — and where not to. Kept by town, not by customer, so anything written here shows up for every job in that town from now on. Internal only: customers never see any of this.

Loading…

Add a place

One entry per hotel or restaurant. Say what you'd tell the next tech driving in.

Map

Every site TB services or has sold into, drawn from the coordinates FreshBlends already holds — nothing here was geocoded, so nothing here costs anything to draw. Pins cluster until you zoom in. Internal only.

Sites with no coordinates

These are in the database but cannot be drawn — FreshBlends never recorded a position for them. Listed rather than dropped, because a map that quietly leaves sites out is worse than one that says which.

Build a Trip

Pick the machines, pin anything that is already promised to a customer, say roughly how long each stop takes — and the portal proposes an order and chains the drives from one account to the next. Nothing is charged until somebody presses Bill.

Trips

Start a trip

Who is driving, from where, and how long a working day is. The day length is not pre-filled on purpose — it decides how many stops fit in a day, and a number nobody chose would be deciding that quietly. Put in whatever day you actually want to work; nothing here caps it.

The stops

Moves the whole run — every stop, including pinned ones. To pull just one stop earlier, pin that stop instead and the trip opens up in front of it.

Installs to fit in

no address yet — on the list so it is not forgotten

What is due

Add a stop

Committing puts the date and the tech on every stop’s work order, and creates one where a stop has none. It does not change a work order’s status and it does not measure or bill anything.

The run

Each leg is measured from where the last one ended. A leg already measured costs nothing to measure again — the answer is cached, because the daily lookup limit cannot be raised.

Travel to bill

A leg bills the job it drives toward, one way, at the rate card’s $95 an hour — and the drive home is billed to the stop the day ended on. TB eats all PM driving, including the drive home when a day ends on one, so PM legs are absent from this list rather than shown at zero.

Troubleshoot

Ask about a machine you are standing in front of. The answer is built from the service manuals for that machine's product line and from what TB's own techs have written on that machine before — and it names the document and page, so you can open it and check.

It will tell you when the manuals do not cover something. That is the useful answer, not a failure — a confident guess sends somebody to a site for nothing.

Which machine?

Loading…

What is it doing?

What to try

Did that fix it? Saying so is what makes the next answer better — it is the only way TB learns anything from this.

What you have asked

Your own questions and what came back. Office can see everybody's, and what each one cost — that is how the AI spend is tracked, per person, and it always was.

Customers

Every customer and prospect, with where they sit in the funnel. The stage is computed live from service agreements, work orders and logged contact — nobody sets it by hand, so it can't drift.

Office queue

connecting…

Customers a tech has asked the office to call. New flags appear here the moment they're raised — no refresh needed.

Loading…

Contact changes to enter in FreshBlends

Site contacts a tech has added or corrected in the field. Nothing here reaches FreshBlends on its own — somebody has to key it in, and then mark it done. The old value is kept beside the new one so you can find the record over there.

Loading…

New sites and machines from the field

Added by a tech standing at the machine. Check the details, set a new customer's agreement on their customer page, and approve. The tech has not waited for you — the work order is already on it.

Loading…
Loading…

Add a prospect

A location with a machine that isn't a customer yet. They start at prospect and move up the moment you log a call or book work.

Billing

Turning finished work into money. Ready to bill is what nobody has invoiced yet; Invoices is everything that has been raised, and where you send it.

Ready to make into a job

Completed work orders that have not been priced into a job yet. Check the figure against the work order before you press — after this, it is what the customer gets billed.

This does not bill anybody. It creates the job and moves it down to Ready to bill, where raising the invoice is a separate press.

Open the work order to change what is on it. Labour lines and parts are edited there and the job just reads them — so anything that needs fixing is fixed before you press, not after.

Loading…

Ready to bill

Finished jobs that have no invoice yet. The amount shown is what the work order actually adds up to — check it before raising anything.

Raising an invoice does not send it. It records a draft in TB with its own number (INV-nnnnn) — nothing is emailed. Office then raises the bill in Square by hand from that number, and records the money here when it comes in (Record a payment on the Invoices card below).

Loading…

Invoices

Every invoice TB has raised. A draft is TB thinking out loud — the customer cannot see it. Pressing Send is the moment it becomes a bill on their screen, dated today and due in 30 days.

To change what somebody is billed, change the work order. The amount here is added up from the parts fitted and the charge lines — it is not typed, and it cannot be typed over. Each row links to the work order behind it.

Loading…

Office

The queues office clears. Everything here is a list that should be getting shorter — nothing on this page is a setting.

Parts to order

Parts a tech has flagged as needed. Techs record what the machine needs; ordering is yours. Nothing here is on the customer's bill until a tech marks it fitted.

Loading…

Waiting for the next visit

Parts a tech recorded as needed but not urgent. Nobody is being asked to buy these — they come back automatically the next time someone opens a work order on that machine. Shown here only so the backlog is countable.

Loading…

PMs due

Machines whose next preventive maintenance is due within 60 days or already past, soonest first. Six months after the last PM unless the customer’s signed agreement says otherwise; a machine already on an open work order is shown with it. Tick the ones you want and put them straight on a trip — an open draft, or a new one. Plan these on Build a Trip goes the other way, to the fuller picker with its own search.

Loading…

Not contacted within 24 hours

Jobs where more than 24 hours passed between us being notified and actually reaching the customer. This is a review list, not a block — the work order was still submitted, and nobody was stopped from doing their job.

Loading…

Missing photos

Work orders filed without a before and an after. The form asks for both — these are the ones that got through anyway.

Loading…

Equipment

What is out there and what is on the vans. "Nobody has looked" is its own answer on this page and never gets folded into "no" — a machine nobody has checked is a machine to go and check, not a machine you know about.

Lid conversion

Machines still on the old three-finger lid. A tech records the lid on a work order and the machine remembers it — nobody has to keep a list. "Not recorded yet" means nobody has reported on that machine, which is not the same as knowing it's old.

Loading…

Self-cleaning machines

Machines fitted with a self-cleaning kit need sanitizer and drain cleaner, which bill at $250 a visit. "Nobody has looked" is its own state and nothing is billed on it — a tech answers it at the machine. The ones flagged below have been billed for a kit in the past, which is worth checking but is not an answer on its own.

Loading…

Who services which machine

Assigning a tech to a machine lets them see the invoices for work done on it — including the amounts, so they can check their own commission. Taking them off removes that straight away.

A tech always sees the bill for a job they personally worked, assigned or not. This is for the machines they look after.

Loading…

Truck stock by tech

Each tech counts their own van on their My Truck tab. This is where you check on them — and, more usefully, see who has not counted in a while. Open a van to put a part on it.

Loading…

People

Who can get in, and where they work from. The two invite cards are deliberately separate — one mints a login inside TB, the other binds an outsider to a single customer, and those are very different things to hand somebody.

I-9s

Whether it is done — not the form itself. No document numbers, no citizenship or immigration status, no social security numbers are stored here or anywhere in TB. The I-9 is completed elsewhere; this records that it happened.

TB collects the I-9 itself — BBSI does payroll and the rest. The signed form stays on paper; this screen is the record that it was done, not the document. Note where the paper lives if that helps at audit time — but never a document number, and never an SSN.

Section 2 is yours and cannot be done here. An I-9 has two halves: the employee's, on or before their first day, and the employer's — within three business days, and it needs a person to physically examine original documents. Marking someone complete means that happened, not that a form was filled in.

Loading…

Invite an employee

Creates a tech login and gives you a one-time link to send them. They set their own password — you will never see it, and neither will Steve. Office logins are still Steve's to make.

Inviting a customer is the card below, deliberately separate. The two mint very different things: this one makes a login inside TB, that one binds an outsider to a single account.

Invites

Who has been invited and what became of it. A link that has gone stale is not a problem — withdraw it and send a new one.

Loading…

Who can sign in

Every TB login. Suspending one stops that person signing in and changes nothing else — their pay still works out, past work orders still say who did them, and their machines stay assigned to them. Somebody leaving is a suspension; taking them off the roster is a separate job.

Loading…

Invite a customer

Creates a customer login bound to one company, and gives you a one-time link to send them. They set their own password — you will never see it. They see their own sites, service history and invoices, and nothing of TB's.

Send a password-reset link

For somebody who already has a login — employee, customer or FreshBlends — and cannot get in: never set a password, forgot it, or their invite link was mangled by their mail program. Makes a one-time link that opens the Choose a new password screen. Tell them to open it in Safari or Chrome, not from inside Outlook.

Invite a FreshBlends contact

Creates a partner login. They see the tickets FreshBlends have sent TB and where each one has got to — and nothing of TB's: no tech, no parts, no notes and no bills. They set their own password and you will never see it. One person, one login — their own reports name the agent who filed a ticket and the person who asked for the visit separately, and a shared account throws that away.

FreshBlends logins

Who at FreshBlends can sign in, and whether they have. Tickets sent is the answer to "is this login being used" — an invite nobody took up looks identical to one somebody uses daily until you count something.

Loading…

Customer invites

Who has been invited at which company, and what became of it. "Has not signed the agreement" is the one worth watching: until somebody at that company signs, everybody there sees the agreement and nothing else.

Loading…

Where each tech is based

A town, not a street address — "Louisville, KY" is precise enough for a drive time and is not somebody's front door. Drive times are measured from here, so a tech with no home base cannot have travel quoted for them at all.

Loading…

Admin

Settings, records and the things you set up once. Nothing here is a daily queue.

AI assistant spend

What the assistant has cost, per person. The number that settles arguments is the average per call — check it before deciding this is worth attributing to anybody.

Loading…

AI limits

The brake. The assistant refuses before calling out, so a runaway loop costs nothing beyond a few database reads. Switching a feature off stops it instantly — no deploy, no waiting for anyone.

Loading…

Nightly backup

Everything in one press — all records, work-order photos and receipt photos — saved to a folder you choose, such as a plugged-in drive. Do this at the end of the day.

This is your copy to keep — spreadsheets and photos you can open on any computer, for an audit, a dispute, or if the portal ever went away. It is not the same thing as putting the portal back on its feet after a bad day; that is what the daily automatic backup on the hosting side is for. Keeping both is the point.

Download all records

Every table in the portal, as spreadsheet files, in one download. Uses your own login — you get exactly what you can already see, and nothing else. Keep one somewhere that is not the portal — that is the whole point of having it.

Download work-order photos

The actual pictures, filed under the work order they belong to. The table download above records that a photo exists; this one is the photo. Expect it to be large — it is images, not text.

Add a customer

Add a site

Add a machine

Add a customer contact (who to contact, not a login)

This records who to contact at the customer — a name, an email, a phone number. It does not create a login. Customer logins DO exist now (migrations 058 and 062): to give somebody at this company access to the portal, use People → Invite a customer, which mints a login bound to one company and hands you a one-time link. A row here is the address book; that is the door.

Adjust parts pricing & rate card →

← Back to Office

Pricing

Supplier costs change and rates get revised — this is where that happens. It doesn't touch how a price gets calculated for a job (used/branded/agreement math is untouched); it only edits the numbers that calculation reads from. Every parts change is logged automatically.

Edit a part's price

Add a new part

Rate card

Labor, travel, PM visits, and the rest of the 2026 rate card. Edit an amount and save just that row.

Sales commissions

Customer discount & agreement

Whether a customer has a signed twice-yearly agreement (for billing purposes) and their parts discount rate. Marking the agreement as legally signed still happens off this page.

Only twice-yearly earns the 10% off FreshBlends-branded parts. Annual costs more per visit and carries no parts discount — that's what the introduction letter tells customers.
TB Enterprises
Customer portal

Welcome to TB Enterprises

Before your portal opens, choose how you would like TB to look after your machines, and sign the agreement below. This takes a minute and you only do it once.

1. Choose your option

2. The service agreement

3. Sign it

TB records your name, the option you chose, the date and time, and the exact text of the agreement shown on this screen.

My Sites

Every address TB services for you, and the machines at each one.

Loading…

Service History

Every visit and every job on your account. What was wrong, what TB did, and when.

Loading…

Invoices

Invoices appear here once TB has sent them. A draft TB is still working on is not shown, because it is not a bill yet.

Loading…

Request a Service Call

Tell TB what is happening and somebody will be in touch. For a machine that is out of service or a health risk, phone 406-208-0317 — that reaches a person faster than this form.

TB Enterprises
FreshBlends — service requests

Your service requests

Every ticket your team has sent TB Enterprises, and where each one has got to. Completed ones stay on this list.

Loading…

Need someone at TB to ring you?

For anything that is not a machine to fix — an account question, a quote, something about an invoice, or a ticket you would rather talk through. It reaches TB’s office straight away. Nobody is dispatched and nothing is billed.

Calls you have asked for
Loading…

Send us a service request

These are the fields your Machine Cares Report already carries, in its order — copy them straight across. Only your ticket number is required. Sending the same number again updates that ticket rather than raising a second one.

Your reference

The machine and the site

Type it however your report has it. TB may not have this site on its books yet — that is normal, and nothing here needs to match anything on our side.

What you need from us

The sentence a tech reads first. Say it however you would say it on the phone.
⚠️ Paste it once — your email repeats the block twice.

Put TB on your home screen

Portal manual