FieldproxyAI-native field service software

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.

Book your demo

60 minute video call ยท Step 1 of 2: your details, then pick a time

Number of employees

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

PlatformRolesTechnician seesNotable rules
ServiceTitanDefault roles for admin, dispatcher, accounting, field manager, technician, sales manager, CSR, general office; custom technician rolesMobile only; only jobs and customers assigned to themSettings > People > Role Permissions; reset to defaults; techs can't book, reschedule or delete payments by default
JobberPermission levels: Field crew, Senior field crew, Crew lead, Manager, plus adminField crew can't see pricing or costsShow Pricing is its own permission; without it a user can't edit quotes, invoices or line items or collect signatures
Housecall ProAdmin/Owner, Office Staff, Field Tech, with permissions per personMobile app only; next job only or full schedule, by settingTake payments & see prices needed to approve jobs and take signatures; edit permissions on the web
Dynamics 365 Field ServiceSecurity roles: Resource, Dispatcher, Administrator, Inventory Purchase, plus custom rolesOnly 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
FieldproxyRoles built from your own grid (e.g. helper, technician, dispatcher, branch manager, subcontractor, client)The screens and fields their role allows, on Android and iOSRole 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.

RoleRecordsPrices / cost / marginKey actions
Owner / adminEverythingAll threeSettings, users, exports, API keys, AI connections
Branch managerOwn branch's customers and jobsAll three for own branchApprove discounts and NTE increases; branch reports
DispatcherOwn branch's jobs and scheduleSelling price onlyBook, reschedule, assign; no deletes, no pay data
AccountantAll invoices and paymentsAll threeInvoices, payments, sync to the books; no scheduling
TechnicianAssigned jobs and their customer and siteSelling price, to quote and take paymentComplete forms, quote from the price book, take payment
HelperAssigned jobs onlyNoneChecklists, photos, time; no quotes or payments
SubcontractorJobs offered or assigned to themTheir own agreed rate onlyAccept, update and complete their jobs
Client portal userTheir company's sites onlyTheir quotes and invoicesRequest 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.

  1. 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.
  2. We set up the roles

    Your roles, record rules and field rules are configured before the demo, including subcontractor and client logins.
  3. 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.
  4. 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.

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.