perfectdesign.

App use cases

Internal operations and field service app development

A field app is only worth building if the people holding the phone would rather use it than the paper it replaces. We scope the job, the evidence and the office handoff around that.

In short

Start with one recurring job, not with a feature list. Name the job as a record with a status, decide who assigns it and who may change it, decide what the person in the field can see and capture, and decide what has to work when there is no signal. Then decide what the office needs before the job is closed, because that is what the whole workflow exists to produce. The technical risk is real but manageable. The bigger risk is that your team does not use it.

Written for a business owner or operations lead replacing a manual field process with a connected workflow · 7 min read

Scope the field workflow before you choose the app

This page follows one sequence: a job is assigned, the permitted details reach a device, work is recorded in the field, connectivity comes and goes, records synchronise, a supervisor approves, and the office picks it up. Every step has a normal path and at least one exception, and the exceptions are where a field project is won or lost. Roles, records, retention, access and who owns each integration all have to be agreed for your actual business rather than assumed from a template.

One fictional scenario runs through the page: a maintenance visit to a customer site with intermittent mobile coverage. It is invented for illustration and represents no live system. Whether an installed app is the right surface at all is the parent question, answered on mobile app development.

The job is the unit of work

Everything hangs off one record. A job has an identity, a customer or asset it relates to, an assigned person, a status, a history of who changed what, and a definition of done. Get that right and the screens almost design themselves. Statuses should be few and unambiguous, because a technician standing in the rain will not distinguish between five shades of in progress. Assigned, accepted, on site, blocked, completed and approved is usually more than enough, and each transition needs a rule about who may make it.

Jobs arrive from somewhere, and that route is part of the scope. Odoo's field-service documentation, read on 18 September 2026, describes tasks created manually, generated from a confirmed sales order, or raised from a helpdesk ticket. That is one vendor's product rather than a universal model, but it is a useful prompt: decide every route a job can enter your system by, because each one brings its own data and its own gaps. Then decide what the field device is permitted to see, which is rarely the whole customer record.

A fictional maintenance visit with intermittent connectivity, worked through three steps
Workflow stepAssumed actorProposed system responseExceptionAcceptance evidence to collect
Receive a work orderAssigned technicianDownload only the job and customer details that role is permitted to seeReassignment or revoked access needs an explicit access decisionRole, assignment and device-access tests
Record work offlineTechnicianCapture scoped notes, materials used and permitted photos with event identitiesA damaged upload or a conflicting office edit stays visible and unresolvedOffline queue, conflict and attachment tests
Approve the completed visitSupervisorReview the synced work before the office handoffMissing mandatory evidence returns the job for correctionApproval, audit and downstream reconciliation records
A job, and the states it moves through. Keep a blocked state as well, and give every transition a rule about who may make it. A full text version follows.

A job, and the states it moves through

Editorial framework. Keep a blocked state as well, and give every transition a rule about who may make it.

Basis: Perfect Design: business systems explained. Reviewed .

Read the graphic as text
  • Assigned. To a named person, with permitted detail only
  • Accepted. The technician has taken the job on
  • On site. Work and evidence are being captured
  • Completed. The definition of done has been met
  • Approved. A supervisor released it to the office
Download this infographic (SVG)

Working with no signal

Coverage in a basement car park, a plant room or a rural site is not an edge case, it is Tuesday. So decide the offline boundary deliberately. Android's offline-first guidance defines such an app as one able to perform all, or a critical subset of, its core functionality without internet access, with a local data source acting as the canonical source of truth the app reads from. That is platform documentation rather than a universal architecture, but the framing is the right one: decide which subset is critical, and be explicit that the rest waits.

What has to work offline, and what can wait

Capture almost always has to work offline, because a technician cannot come back later to remember what they saw. Anything permission-sensitive, such as opening a customer record that was not downloaded with the job, can reasonably wait for a connection. Local records and queued changes need visible states so nobody guesses whether their work was saved. And a lost or stolen device needs its own decisions in advance: what data may sit on it, how access is revoked, how local data is protected, and what evidence you keep of the revocation.

The gap left is rural, not urban. If your customers, drivers or technicians work outside the cities, a heavy page and an app that needs a live connection are not neutral choices. A full text version follows.

The gap left is rural, not urban

Published statistic. If your customers, drivers or technicians work outside the cities, a heavy page and an app that needs a live connection are not neutral choices.

Source: Department of Statistics Malaysia: ICT Use and Access by Individuals and Households, 2024. Reviewed .

Read the graphic as text
  • All households: 96.8%.
  • Urban: 98.8%.
  • Rural: 90.3%. One in ten still without

Chart scale: Malaysian households with internet access, 2024.

Download this infographic (SVG)

How records get back to the office

Android's guidance distinguishes pull-based synchronisation, where the app fetches the latest data on demand, from push-based, where the local store mirrors the server and is told when data is stale, and notes that some apps use a hybrid of the two depending on the data. It says the choice depends on product requirements and available infrastructure, which is the honest answer. Let job urgency, coverage and how relational your data is decide it, rather than a preference.

Conflicts are the part to plan properly. When an office edit and a field edit disagree, something has to resolve them, and the same guidance points to versioning and a defined source of truth, with last write wins as one example rather than a default. Pick a policy per record, because the right answer for a job status is not the right answer for a free-text note. Whatever you choose, a conflict should be visible to a person rather than silently discarded.

Then define the handoff. A supervisor reviews the synced work, checks the mandatory evidence is present and approves, and only then does the job become an office record for invoicing, reporting or a warranty claim. The reporting inputs follow from that: the approved state, who acted, timestamps, materials used, permitted media, any exception raised and the reconciliation status. Decide those before the build, because they are what the whole workflow exists to produce.

Evidence people will actually trust

Photos, signatures and timestamps are the currency of field work, and they only settle a dispute if they are attributable. Decide what each photo has to be attached to, whether a caption or a type is required, how many are mandatory before a job can be completed, and what happens when a file is too large or the upload is damaged. A signature needs the same treatment: who signed, what they were shown when they signed it, and whether a printed name and a role are captured alongside.

Then decide the unglamorous half. Where the media is stored, how long it is kept, who may view it afterwards, and whether a customer can request a copy. Location adds another permission and another conversation with your team about what is being recorded and why. None of this is difficult, but all of it is expensive to add once people are already using the app.

What makes field evidence trustworthy. Evidence settles a dispute only when it is attributable, so decide this before launch. A full text version follows.

What makes field evidence trustworthy

Editorial framework. Evidence settles a dispute only when it is attributable, so decide this before launch.

Basis: IBM: What is field service management?. Reviewed .

Read the graphic as text

A completed visit

  • Photos. Attached to the job, typed, and counted
  • Signature. Who signed, and what they were shown
  • Timestamps. When the work happened, not when it synced
  • Retention. Where it is kept, and who may view it later
Download this infographic (SVG)

Staff adoption is the real risk

Field apps rarely fail on the code. They fail because the people using them find the paper faster, or because the app makes them look bad. Watch the job being done before designing anything. Count the taps. If completing a visit takes longer than the form it replaced, the workflow will be filled in at the end of the day from memory, and the evidence you built the whole thing for will be worthless. Involve two or three of the people who will use it, give them a build early, and take their complaints as requirements.

The numbers an interface has to hit. These are not opinions about taste. They are the published minimums, and they are what we check every screen against. A full text version follows.

The numbers an interface has to hit

Published statistic. These are not opinions about taste. They are the published minimums, and they are what we check every screen against.

Source: W3C: Web Content Accessibility Guidelines 2.2. Reviewed .

Read the graphic as text
  • Body text contrast: 4.5:1. Minimum ratio against its background, WCAG 2.2 Level AA
  • Large text contrast: 3:1. From 18pt, or 14pt bold
  • Tap target: 24px. Minimum 24 by 24 CSS pixels, or 24 pixels of clear space around it
Download this infographic (SVG)

What belongs in scope, and what does not

In scope: the job record and its statuses, the forms and evidence, the offline boundary, synchronisation and conflict policy, approvals, the office handoff, access and data ownership, retention, integrations, acceptance evidence and who owns it after launch. Out of scope on this page: generic business-process automation, stock and inventory ownership, the deeper mechanics of queues and retries, and detailed camera or location implementation. Each is a real subject with its own decisions.

And sometimes the honest answer is not a custom app. If an existing product already handles your core job flow and the gap is one integration or one report, configuring that is usually faster and cheaper. We would rather tell you which parts of your problem are already solved than build a second system beside a working one. Our VITALE build is a concept prototype rather than client work and is not a field-service app, but it shows the shape: separate role workspaces over one set of records, and an operator process that can be re-run and audited. It runs as a web platform, and nothing we have built is published on the App Store or Google Play yet.

Turning the workflow into a scoped next step

Bring one business problem, the people affected, a recording or walkthrough of how the job is done today, the tools already in use, the constraints you know about, the owner of each data source, and the evidence you would need to accept the result. That is enough for a useful first conversation. Send it as a scoped enquiry, and we will tell you which parts look solid and which need confirming. The workflow, the exceptions, the ownership and the evidence get agreed before anything is implemented, not during.

What you get

What is actually delivered

01

The job record and its states

A job with an identity, an assignee, a small set of unambiguous statuses, a definition of done and a rule for who may make each transition.

02

Assignment and permitted detail

How jobs are created and routed, and exactly what the field device may see, which is rarely the whole customer record.

03

A defined offline boundary

The critical subset that works without a connection, what waits for the network, and visible local, queued, pending and conflict states.

04

Synchronisation and conflict policy

A chosen pattern per record with version metadata and a declared source of truth, and conflicts surfaced to a person rather than silently discarded.

05

Evidence capture that holds up

Photos, signatures, timestamps and materials attached to the job, with mandatory-evidence rules, failure handling, storage location and retention agreed.

06

Supervisor approval and office handoff

A review step before a job becomes an office record, with missing evidence returning the job for correction and an audit trail of who approved what.

07

Device and access decisions

Who may use which device, what data may rest on it, how access is revoked when a device is lost, and what evidence of revocation is kept.

08

Acceptance evidence pack

Role and assignment tests, offline queue and conflict tests, attachment tests, and approval and downstream reconciliation records collected before sign-off.

How it runs

Watch the job first, then build for it

The scope that works comes from standing next to someone doing the work, not from a requirements meeting in an office with reliable coverage.

  1. 01

    Observe the current job

    We walk through how the work is done today, including the paperwork, the phone calls and the workarounds, and we count the steps the app would have to beat.

  2. 02

    Define the job record

    Statuses, transitions, permissions, mandatory evidence and the definition of done are written out, along with the exception at each step.

  3. 03

    Decide the offline boundary

    We agree what must work with no signal, what waits, how conflicts resolve and what the technician sees while a change is pending.

  4. 04

    Prototype with the people using it

    The field journey and the supervisor side go on a live link early, in front of two or three actual users, and their complaints become requirements.

  5. 05

    Build, integrate and test the exceptions

    We build the approved scope, connect the systems whose access and terms are confirmed, and test reassignment, revoked access, damaged uploads and conflicting edits deliberately.

  6. 06

    Hand over and maintain

    Accounts and code go to you, and we keep the app current against operating-system changes, crashes and dependency updates, scoped per project.

Proof

Work you can click through

PantryCue is our own React Native app, with live camera scanning, local notifications, an offline pantry and a Cook Mode that reads steps aloud. You can try the web build, and there is an installable Android build; it is not on the App Store or Google Play. VITALE is a concept prototype, not client work, and it is not a field-service app. It is shown because it demonstrates the structural shape an operations tool needs: separate role workspaces over one set of records, and an operator process that can be re-run and audited step by step. It runs as a web platform.

Concept prototypes are labelled as prototypes everywhere they appear. They demonstrate what we can build, not work delivered for that named client. More client work is going live and will be added as it does.

How we work

The parts people ask about before they commit

How we build

React first, other languages when a project needs them

We build in React by preference, on both web and mobile, and we work in other languages when a project genuinely calls for it.

App stores

The accounts stay in your name

Your business owns the Apple Developer and Google Play accounts. We set them up in your name, prepare certificates and signing, and submit builds for you.

  • Apple Developer and Google Play account setup in your name
  • Certificates, signing and provisioning
  • TestFlight and internal test tracks for review builds
  • Store listing preparation and submission on your behalf

Timeline

Project dependent, and often quicker than expected

Timelines are project dependent. A focused build can go live in about a week, while a larger platform takes longer once scope is agreed.

Ongoing care

Quoted with the project, not bolted on

For a more complex website or a system with a real backend, ongoing care starts from RM 250 a month, with the plan confirmed against what was actually launched. Care is quoted with the project, not bolted on afterwards.

Getting hold of us

Normally under one working day

We normally respond to a support request in under one working day, and we work to solve problems as fast as we can. That is how we normally work rather than a contractual guarantee, and responding is not the same as resolving. If your operation needs a formal response or resolution commitment, we can write one into your scope.

Ownership

Everything belongs to your business

You own everything we build for you: the code, the content, the domain, the hosting account and every third-party account opened for the project. There is no lock-in. If you move to another provider, everything goes with you and we help with the handover.

  • Source code, handed over in your own repository
  • Domain and DNS, registered to your business
  • Hosting and every service account, in your name
  • Analytics, search and ad accounts, with us as a manager you can remove
  • All content, media and data in the system

Questions

Asked about field service & operations apps

Straight answers to what people ask before they commit. Anything else, message us.

What does a field service app cost?

Website packages are published openly on the pricing page, but an operations app is quoted against its scope rather than sold as a package. The number moves with how many roles and statuses exist, how much must work offline, how much evidence is mandatory, and how many systems the office side has to reach.

Will it work where there is no coverage?

The critical part should, and we scope that boundary explicitly rather than promising the whole app works offline. Capture normally works without a connection because a technician cannot return later to remember what they saw, while permission-sensitive lookups can reasonably wait. Pending and conflicting changes stay visible so nobody guesses whether their work was saved.

Should we buy an existing product instead?

Sometimes, and we would rather say so early. If a product already handles your core job flow and your gap is one integration or one report, configuring it is usually faster and cheaper than a custom build. Custom makes sense when the job itself is unusual, when several systems have to agree, or when the evidence rules are yours alone.

How do we get our team to actually use it?

By making it faster than what it replaces, and by making sure it gives the person in the field something back: fewer calls from the office, no paperwork at the end of a shift, a record that protects them in a dispute. Involve two or three users from the start and treat their complaints as requirements rather than training problems.

What happens if a phone is lost?

That needs deciding before launch, not after. What data may rest on a device, how access is revoked, how local data is protected and what evidence of the revocation you keep are all scope decisions. They also shape how much of a customer record is permitted to reach the device in the first place.

Can it connect to our job or invoicing system?

Often, and the answer depends on four things we confirm before anything enters a scope: whether an interface exists, who can grant access, whether the data is clean enough to rely on, and what the vendor terms allow. Where a connection is not feasible, we design the handoff around it rather than promise it.

How long does it take?

Timelines are project dependent. A focused build can go live in about a week, while a larger platform takes longer once scope is agreed. For field work the slow part is usually agreeing the evidence and approval rules, because those decide what the office can rely on.

Where to go next

Sources

Tell us what you need built

We will show you the closest thing we have already built, then scope the real version against your requirements.