FieldproxyAI-native field service software

Subcontractors

How do I hide job pricing and client contact details from subcontractors in field service software?

Store two numbers on every subcontracted job, the client price and the sub's payout, and give subcontractors a role or portal that can only see the payout, the scope, the site address and an on-site contact, never the client's price, account contact or billing details. The restriction has to be enforced by the software's permissions on the server, not just left off a screen, because hidden fields that still reach the phone, a PDF or an API response can be read. Check the documents too: the work order, photos and PDFs a sub receives should be generated without prices, and the client's own work order should never be forwarded as it arrived.

  • Two prices per job: what the client pays and what the sub is paid. The sub only ever sees the second.
  • Give subs the site address and an on-site contact, not the account contact who buys the work.
  • Use a contractor role with no pricing access, not a technician role with pricing switched off on one screen.
  • Re-check every document the sub receives: work order PDF, forwarded email, attachments, invoices.
  • Permissions are a control, not a contract. Keep a non-solicitation clause in your sub agreement too.
Fieldproxy

Hiding data slows a sub down from going direct; it does not stop a sub who meets the client on site. The agreement and the relationship still do most of the work.

Facts checked as of November 2026. Sources at the end of the page.

Step by step

How it works, step by step

The setup is the same whether a sub does one job a month or fifty. What changes is whether they get a login or a link per job.

1. Split the job into a client side and a sub side

The client side holds the client price, the client's work order or PO number, the billing entity, the account contact and the margin. The sub side holds the payout (a fixed amount, an hourly rate or a not-to-exceed amount), the scope, the site address, the due date and the on-site contact. These are separate fields, not one price with a discount.

2. Decide what an on-site contact is

Subs need someone to let them in: a store manager on duty, a site phone, a gate code. They do not need the facilities manager who sends you the work. Put the on-site contact in its own field and leave the account contact on the client side.

3. Give subs a role with no pricing access

Most FSM tools have a contractor or limited role. Pick the one that removes quotes, invoices and pricing entirely, then check what it still shows: client name, client phone and email, other jobs at the same client, attachments.

4. Write the sub's work order from the sub side only

The document a sub receives (PDF, email or link) is generated from the payout, scope and site fields. It carries your PO number, not the client's price or their work order. If the client sends a PDF work order, keep it on the client side of the job and do not attach it to the sub's copy.

5. Keep messages flowing through you

Sub questions and updates come back to the job (a link, a portal or your office number), so the sub has no reason to ask for the client's details. Changes in scope or price go to you as a variation request, and you take it to the client.

6. Test it as the sub

Log in as a test sub, or open a sub link, and try to find the client price: on the job, in the line items, in attachments, in the job history, in a PDF and in the app after a pricebook sync. If you can see it, so can they.

Where it breaks

Why it goes wrong

These are the problems buyers described on our sales calls, from facility maintenance, property maintenance, cleaning and lift maintenance businesses that run on subcontractors.

The sub quotes the client directly next time

A commercial facility maintenance coordinator with about 200 subs on file said the sub must not know any pricing or have any way to contact the retail client. If a sub sees that the client pays $480 for a job that pays them $300, the next call goes straight to the client.

The role that hides prices from employees does not fit subs

A UK lift supplier with about 70 subcontractors wanted its own technicians to see job costs and pricing and its subs to see neither. Tools built for employees often have one field role, so the business ends up either hiding prices from everyone or showing them to everyone.

A contractor role that still shows prices

Some contractor roles are built for subs who quote and invoice the end client themselves. In ServiceM8, for example, the Contractor role can see sale pricing and quote and invoice clients; only the Strict Contractor role has no access to quotes, invoices or pricing. Picking the first one by name leaks exactly what you wanted to hide.

The client's price list leaks through a shared view

A property maintenance marketplace did not want property managers to see its full price book either, because they would shop it and hold the business to the lowest line. The same leak happens in the other direction when subs can browse the full price book from the app.

One permission unlocks more than you meant

Customer phone and email are often switched on together with something the sub does need. In Housecall Pro, the permission a field tech needs to approve jobs and take signatures is the one that also shows prices. Check every permission a sub needs for what else it unlocks.

Hidden on screen, still in the data

A price left off a screen can still be in the API response, the offline copy on the phone or a PDF. OWASP's guidance is that access control is only effective when it runs in trusted server-side code, and that anything that is not public should be denied by default.

The options

Ways to do it

ApproachWhat hides the priceWhat the sub can still seeGood for
Email or text a retyped work orderYou retype only the scope and payoutWhatever you forget to remove, including forwarded attachmentsA handful of sub jobs a month
ServiceM8 Strict Contractor roleRole has no access to quotes, invoices or pricing and cannot add items to jobsTheir own jobs and schedule, and clients on jobs allocated to themSmall trade businesses already on ServiceM8
Jobber Field crew permission levelField crew cannot see pricing or costs; Show Pricing is a separate permissionTheir own schedule; client access can be set to name and address only for assigned jobsSubs who work for you most days
Zoho FSM Limited Field Agent profileProfile without the Show Pricing permissionWork orders and appointments without pricingTeams already on Zoho
Sub portal or job link built from the sub side of the job (Fieldproxy)The sub's screens only contain the payout, scope, site and on-site contact; portal users see only rows tied to themExactly the fields you put on their screen or linkMixed networks of regular and one-off subs

As of November 2026, from each vendor's own help pages (sources below). Role names change between versions, so log in as a test sub before you trust any setting.

Worked example

A worked example: one retail repair, two prices

Say a facility maintenance company receives a work order from a retail chain's facilities manager to fix a back door that will not lock. It sends the job to a local handyman sub.

FieldOffice seesSub sees
ClientRetail chain, billed to its property services companyStore name only
Client work orderWO 77314 PDF from the facilities managerNot shown
Your job and PO numberJ-2208, PO 48812PO 48812
PriceClient price $480Payout $300, not to exceed $350 without approval
Margin$180 (37.5%)Not shown
Account contactFacilities manager, phone and emailNot shown
On-site contactStore manager on duty, store phoneStore manager on duty, store phone
ScopeReplace lock cylinder on rear exit door, test, photos before and afterSame

Worked example with made-up numbers. If the sub finds the frame is damaged and the job will cost more, they submit a variation of, say, $140 with photos. You decide what to charge the client and approve the sub's $140 separately; the sub never sees the client's revised price.

Before you buy

What to check before you buy

Good signs

  • Payout and client price are separate fields on the job, not one price with a markup
  • A contractor role or portal with no pricing access at all, separate from your own technicians' role
  • Client contact fields can be hidden while an on-site contact stays visible
  • Sub work order PDFs and links are generated without prices
  • The restriction holds in the mobile app after a sync and in the API, not only on the web screen
  • Subs do not need paid seats, so you are not tempted to share one login

Red flags

  • The only way to hide prices from subs is to hide them from your own technicians too
  • The contractor role lets subs quote and invoice the end client
  • Subs can browse the full price book from the app
  • The client's original work order is attached to the job the sub sees
  • Permissions are described as hiding a column on a screen, with no word about what the server returns

In Fieldproxy

Setting it up in Fieldproxy

Fieldproxy is set up around your process, so the client side and sub side of a job are fields and screens we build with you. Field names below are examples.

Two prices on the job

Each job carries the client price and the sub payout as separate fields (e.g. client_price, sub_payout, sub_nte), plus the client's work order number on the client side and your PO number on both. Reports show margin per job; subs never see the client side.

A portal for regular subs

Subs who work with you every week become portal users. They sign in with their own email and password to one web app whose screens show the payout, scope, site, on-site contact and PO, and they see only the jobs tied to them, enforced by Postgres row security. Fieldproxy is one price per company with unlimited users, so subs do not add seats.

A link for one-off subs

A record link opens one job for the person it was made for, with no login. You choose the fields on it, and the check before publishing gives a plain-English summary of who can open it, what they see and what a response writes, so you can confirm the client price is not on it. Links can expire and be revoked.

Your own technicians keep their view

Your employees use the Android and iOS technician app with its own screens, which can show pricing, quotes and payment links. The sub portal is a separate app, so hiding prices from subs does not hide them from your team.

Variations go through you

A sub submits a variation from the job with photos and an amount. It lands in an approval step; you approve the sub's amount and, separately, quote the client. Approval workflows (/solutions/approval-workflows) can require a manager when a variation passes the not-to-exceed amount.

Questions come back to the office

Sub replies to a job text reach your inbox, and the Text agent (/agents/text-agent) can answer job questions against the sub side of the record. The Document intelligence agent (/agents/document-intelligence-agent) reads the client's PDF work order into the client side of the job, so the original never needs forwarding.

How switching works

How switching to Fieldproxy works

We move your data over and set the system up to the way you already work. Fieldproxy replaces the old tool; it does not run alongside it.

  1. Show us a real sub job

    The client's work order, the price you charge, what you pay the sub, and what you send them today.
  2. We split the job into client and sub sides

    Client price, account contact and client work order on one side; payout, scope, site and on-site contact on the other.
  3. We build the sub portal and job link

    Regular subs get a portal login, one-off subs get a link. We test both as a sub and show you what they can and cannot see.
  4. Load your subs and go live

    Your sub list comes across in setup with trades, areas and rates. Your own technicians keep their app with pricing.

FAQ

Questions people ask

Can I hide pricing from subcontractors but show it to my own technicians?
Yes, if subs and technicians have separate roles or separate apps. Avoid tools where the only field role is shared, because you will end up hiding prices from everyone or no one.
What contact details does a sub actually need?
The site address, access notes and an on-site contact such as a store manager or site phone. They do not need the account contact who buys the work, the billing entity or the client's email.
What should the work order I send a sub show?
Your PO number, the scope, the payout or not-to-exceed amount, the site, the due date and the proof you need back. Not the client price, the client's own work order or their contact details.
Can a sub ask for more money without seeing the client price?
Yes. The sub submits a variation with photos and their amount. You approve their amount and separately decide what to charge the client.
Is hiding a field on the screen enough?
No. If the price still reaches the phone, a PDF or an API response, it can be read. OWASP says access control is only effective in trusted server-side code. Test as a sub after a mobile sync.
Can I stop subs from working for my clients directly?
Software only limits what they learn from you. A non-solicitation clause in your sub agreement does the rest; check it with a lawyer for your state or country. The US FTC rule that would have banned most non-competes is not in effect after a federal court stopped it in August 2024.
Should subs see my price book?
Only the items they are paid for, at their rate. If subs add parts, give them a sub price list or let them enter cost with a receipt, and price it to the client yourself.
Do subs need paid seats in Fieldproxy?
No. Portal users count as users, which are unlimited, and job links need no account. Fieldproxy is one price per company with unlimited users. See /pricing.

Sources

Competitor details on this page come from the vendors' own pages and documentation, checked as of November 2026. Plans and prices change, so check the vendor's current page before you decide.

See it built on your workflow

Tell us how your jobs run today. We build a demo on your stages, forms and pricing before the call.