Permissions
How do role-based permissions work in field service software?
Each user gets a role (owner or admin, office, dispatcher, technician, subcontractor, customer portal user), and the role decides three things: which records the user can see (all jobs, their branch's jobs, or only jobs assigned to them), which fields on those records they can see or edit (prices, costs, margins, pay), and which actions they can take (book, reschedule, delete, export, take payment, change settings). Good systems enforce this on the server for the app, the web, PDFs, reports, the API and AI assistants, keep an audit trail of who changed what, and let you adjust a role once instead of user by user.
- Permissions work on three levels: records, fields and actions. Ask about all three.
- Technicians usually see only their assigned jobs; that is a record-level rule.
- Hiding prices is a field-level rule, and it often switches off quoting and payment too.
- Set permissions on the role, not the person, so new hires inherit them.
- Check that the API, exports and AI assistants obey the same rules as the screens.
A five-person shop where everyone does everything may only need two roles. This page is for teams with dispatchers, branches, subcontractors or clients logging in.
Facts checked as of November 2026. Sources at the end of the page.
Step by step
How it works, step by step
Most field service platforms follow the same model, whatever they call it. Microsoft's description of Dynamics 365 is the clearest: security roles grant record-level permissions per table, and column-level security locks sensitive columns on top.
1. Start from the roles you actually have
Typical roles: owner or admin, office or accounting, dispatcher or CSR, field manager, technician, helper, subcontractor and the customer's own portal user. ServiceTitan ships defaults for admins, dispatchers, accounting, field managers, technicians, sales managers, CSRs and general office.
2. Decide which records each role sees
Record level is about rows: all jobs, one branch's or region's jobs, or only the jobs assigned to me. In ServiceTitan's mobile app, technicians only have access to the jobs and customers assigned to them; Dynamics 365's Field Service Resource role lets frontline workers view and update only the work orders assigned to them.
3. Decide which fields each role sees
Field level is about columns on a record the user can open: selling price, cost, margin, technician pay, customer phone and email. Dynamics 365 calls this column-level security: a user can open an account but not see its revenue column.
4. Decide which actions each role can take
Book, reschedule, delete or cancel a job, delete a payment, take payment, edit forms, export, change settings and manage users. ServiceTitan technicians, by default, cannot book or reschedule jobs or delete payments; its dispatchers, by default, cannot view technician payroll or edit forms.
5. Decide where each role works
Some roles are mobile only. ServiceTitan technicians use ServiceTitan Mobile and cannot log in to the desktop; Housecall Pro field techs can only access their accounts through the mobile app, not the web portal.
6. Assign people to roles and test
Change the role, not the person, so a new technician gets the right access on day one. ServiceTitan manages this under Settings > People > Role Permissions, with a reset to its defaults, and says permissions added to one person outside a role are reset by system updates. Then log in as each role and check.
Where it breaks
Why permissions go wrong
These are the problems commercial service owners and operations leads described on our calls.
Hiding prices also hides the job's money steps
In Housecall Pro, field techs must have the Take payments & see prices permission to approve jobs and take signatures. In Jobber, the Show Pricing permission must be on to create or edit quotes and invoices or collect signatures on them. Switch prices off and someone else has to do those steps.
Roles but no regions
Facility maintenance and multi-branch buyers needed a regional manager to see only their region's customers and jobs. A role list shows what a dispatcher can do, not which dispatcher can see which branch. That is a record-level rule many tools only offer at the top tier or through custom work.
Workarounds that open everything
To let a field tech see the whole company schedule, a common workaround is to make them office staff with permissions turned off, which also opens the web portal. One shortcut quietly undoes the rules you set.
Changes that don't take effect
Housecall Pro permissions can't be edited in its mobile app, and after a change the team member has to log out and back in for it to apply. In ServiceTitan, permissions added to one person outside a role are reset by system updates. People assume a change is live when it is not.
The back doors
Screens are locked down, but a CSV export, an API key with full access, a scheduled report or an AI assistant connected with an admin's login shows everything. Permissions have to hold on every route to the data.
No record of who changed what
A job's price was edited, a customer deleted or a schedule moved, and there is only a last-modified date. Without an audit trail the permission model cannot be checked.
The options
How common platforms handle roles
| Platform | Roles | Technician sees | Notable rules |
|---|---|---|---|
| ServiceTitan | Default roles for admin, dispatcher, accounting, field manager, technician, sales manager, CSR, general office; custom technician roles | Mobile only; only jobs and customers assigned to them | Settings > People > Role Permissions; reset to defaults; techs can't book, reschedule or delete payments by default |
| Jobber | Permission levels: Field crew, Senior field crew, Crew lead, Manager, plus admin | Field crew can't see pricing or costs | Show Pricing is its own permission; without it a user can't edit quotes, invoices or line items or collect signatures |
| Housecall Pro | Admin/Owner, Office Staff, Field Tech, with permissions per person | Mobile app only; next job only or full schedule, by setting | Take payments & see prices needed to approve jobs and take signatures; edit permissions on the web |
| Dynamics 365 Field Service | Security roles: Resource, Dispatcher, Administrator, Inventory Purchase, plus custom roles | Only work orders assigned to them (view and update) | Record-level permissions per table; column-level security for sensitive fields; minimum privileges needed for the schedule board |
| Fieldproxy | Roles built from your own grid (e.g. helper, technician, dispatcher, branch manager, subcontractor, client) | The screens and fields their role allows, on Android and iOS | Role permissions per table, record history and recycle bin, scoped API keys, AI follows the asking person's permissions |
As of November 2026, from each vendor's help pages (sources below). Defaults change between versions; test by logging in as each role.
Worked example
A worked example: a permission grid for a 40-person team
Say a commercial service company with two branches, 28 technicians, 4 helpers, 3 dispatchers, 2 branch managers, an accountant and an owner, plus subcontractors and client portal users. This is an example grid, not a recommendation for every business.
| Role | Records | Prices / cost / margin | Key actions |
|---|---|---|---|
| Owner / admin | Everything | All three | Settings, users, exports, API keys, AI connections |
| Branch manager | Own branch's customers and jobs | All three for own branch | Approve discounts and NTE increases; branch reports |
| Dispatcher | Own branch's jobs and schedule | Selling price only | Book, reschedule, assign; no deletes, no pay data |
| Accountant | All invoices and payments | All three | Invoices, payments, sync to the books; no scheduling |
| Technician | Assigned jobs and their customer and site | Selling price, to quote and take payment | Complete forms, quote from the price book, take payment |
| Helper | Assigned jobs only | None | Checklists, photos, time; no quotes or payments |
| Subcontractor | Jobs offered or assigned to them | Their own agreed rate only | Accept, update and complete their jobs |
| Client portal user | Their company's sites only | Their quotes and invoices | Request work, approve quotes, pay |
Test it by logging in as a helper and a dispatcher from the second branch and trying to open a job, a price and an export that should be closed to them.
Before you buy
What to check before you buy
Good signs
- Record-level rules (assigned only, branch, region, customer), not just a role name.
- Field-level rules for price, cost, margin and pay, enforced on PDFs and reports too.
- Permissions set on the role and inherited by new users.
- API keys and AI connections with their own scopes, limited to the person's role.
- An audit log with who, when, old value and new value, and a way to restore deleted records.
- Subcontractors and clients can log in without full seats or office access.
Red flags
- One technician permission set for everyone, with no helper or subcontractor role.
- Regional limits only through custom development.
- Exports and reports that ignore the role.
- Permission changes that only apply after users log out, with no way to see who has which access.
- AI assistants that run with the admin's access no matter who asks.
In Fieldproxy
Setting it up in Fieldproxy
Fieldproxy is set up around your process, so the roles come from your own grid, like the example above. Role and field names are examples.
Roles from your grid
Who sees which jobs, who sees prices, cost and margin, who can close a job, delete or export, and what subcontractors and client portal users see are set per role. Jobs, quotes and invoices are the same records for everyone; only what each role sees and can do changes. See hiding prices from technicians.
Screens per role on the app
The Android and iOS technician app shows each person the screens and fields their role allows, and role changes reach every phone on next sync without an app store update.
Subcontractors and clients
Subcontractors work in their own portal or from a job link, without a paid seat and without your prices; customers use the customer portal and see only their own sites, quotes and invoices. See hiding pricing from subcontractors.
Audit trail and undo
Record history shows who changed which field, from what to what; deleted records go to a recycle bin and can be restored; workspace activity covers every change by source (app, automation, API or AI), and admins can set alerts on bulk deletes, off-hours activity and sensitive field changes.
API keys and AI follow the rules
REST API keys each have an expiry, the operations they may use and an optional table allowlist. Claude, ChatGPT or Copilot connect through the MCP server, see only the tools the key's scopes and the person's role allow, and every write is proposed and applied only after a person confirms. See /developers.
Pricing
One price per company with unlimited users, so adding helpers, dispatchers or client logins to get the roles right does not add seats. See /pricing.
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.
Write your grid
List your roles down the side and records, fields and actions across the top. A one-page grid is enough; bring it to the demo.We set up the roles
Your roles, record rules and field rules are configured before the demo, including subcontractor and client logins.Log in as each role
In the demo, sign in as a helper, a dispatcher from another branch and a client, and try to open what should be closed.Go live within a day
People are invited into their roles; when someone changes jobs, you change their role, not twenty settings.
FAQ
Questions people ask
- What is the difference between record-level and field-level permissions?
- Record level decides which jobs, customers or invoices a user can open at all, for example only jobs assigned to them or only their branch. Field level decides what they see on a record they can open, for example the selling price but not the cost or margin.
- Can technicians see only their own jobs?
- In most platforms, yes. ServiceTitan technicians only have access to the jobs and customers assigned to them, and Dynamics 365's Resource role only sees work orders assigned to them. Housecall Pro can limit a tech to their next job or their full schedule.
- Can I limit a manager or dispatcher to one branch or region?
- Ask each vendor to show it, because it is a record-level rule, not a role name. In a demo, log in as a dispatcher from one branch and try to open another branch's job.
- Do permissions apply to exports, the API and AI assistants?
- They should, and this is where most gaps are. Check that exports and reports follow the role, that API keys have their own scopes, and that an AI assistant answers with the asking person's access, not an admin's.
- Should I set permissions per person or per role?
- Per role. ServiceTitan notes that permissions added to an individual outside a role are reset by system updates. Roles also make onboarding a new hire one step.
- What does an audit trail need to show?
- Who made the change, when, from where (app, API, automation or AI), the old value and the new value, and for deletes, a way to restore the record. A last-modified date is not an audit trail.
- Do more roles cost more?
- In per-user pricing, every login costs a seat, which pushes teams to share logins and defeats the roles. 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.
- ServiceTitan Help: understanding employee and technician permission roles: https://help.servicetitan.com/docs/understanding-employee-and-technician-permission-roles
- ServiceTitan Help: set permissions for an individual employee or technician: https://help.servicetitan.com/docs/set-permissions-for-an-individual-employee-or-technician
- Housecall Pro Help: employee roles and permissions explained: https://help.housecallpro.com/en/articles/1073431-employee-roles-permissions-explained
- Housecall Pro Help: managing employee profiles (edit on web, log out to apply): https://help.housecallpro.com/en/articles/2865944-managing-employee-profiles
- Jobber Help Center: user permissions: https://help.getjobber.com/hc/en-us/articles/115009568687
- Microsoft Learn: Field Service security roles and column-level security: https://learn.microsoft.com/en-us/dynamics365/field-service/security-permissions
- Microsoft Learn: set up Field Service users, licenses and security roles: https://learn.microsoft.com/en-us/dynamics365/field-service/users-licenses-permissions
Related
Keep reading
- How do I hide prices from technicians?
- How do I hide pricing from subcontractors?
- Enterprise field service software evaluation checklist
- How do I control AI agents in field service?
- What is the best field service software for a 5-10 person HVAC team?
- Cheaper ServiceTitan alternatives for small plumbing and HVAC companies, without payment processor lock-in