Field Service Mobile Showing Only the Last Visit: Getting Full Asset Service History in Front of Technicians
A troubleshooting guide for Dynamics 365 Field Service: offline profile scope and filters, mobile form subgrids, the customer asset relationship chain, retention jobs that purge history, and the offline data volume trade-off.
The Field Service mobile app shows what the mobile offline profile and the forms' related-record configuration allow it to show, not everything in Dataverse. Check four things in order. First, the offline profile: work orders are usually filtered to rows related to the technician's bookings, often within a date window, so older visits for the asset never reach the device. Second, the work order and customer asset forms: whether a history subgrid exists and which view filters it. Third, the customer asset chain: visits recorded against incidents, parent or replaced assets. Fourth, retention or bulk deletion jobs that removed older records. Then widen the profile deliberately, weighing data volume, and preserve history immediately if a job is deleting it.
Why does the Field Service mobile app show only the last visit?
Because the technician is looking at the copy of Dataverse that was downloaded to the device, through forms and views someone configured, not at the whole database. In the office, the same asset opened in a browser can show years of work orders, while the phone shows one. Both are working as configured.
The Field Service mobile experience is a model-driven app running in the Power Apps mobile app, with a mobile offline profile deciding which rows of which tables are downloaded. The profile is designed for the next few days of work, which is exactly right for sync time and battery, and exactly wrong for a technician who needs to know what was done to this machine three years ago. How we scope the profile during a rollout is on our Field Service implementation partner page; this page is the troubleshooting path when history is missing.
- The offline profile only downloads work orders tied to the technician's own bookings or a recent date range.
- The form has no subgrid for historical work orders, or the subgrid uses a view that shows only active or own records.
- Past visits are linked to the asset through work order incidents, a parent asset or a replaced unit, not the field the subgrid follows.
- The older records no longer exist in the active database, because a retention policy or bulk deletion job removed them.
How do you check the mobile offline profile scope and filters?
Open the mobile offline profile used by the Field Service mobile app in the Power Apps maker portal or the app's offline settings, confirm which profile the affected technicians actually use, and read the filter on each table that holds history. Profile names, defaults and where the settings live have changed across releases, so check current Microsoft documentation for your version rather than assuming the out-of-the-box filters.
| Table | What to look for | Why it hides history |
|---|---|---|
| Bookable resource booking | A filter for the current user and a date window around today | Bookings outside the window, and other technicians' bookings, are not downloaded |
| Work order (msdyn_workorder) | A filter such as "related to bookings" or a modified or created date bound | Past work orders on the same asset done by other people, or before the window, never reach the device |
| Customer asset (msdyn_customerasset) | Whether assets download only when related to downloaded work orders | Component and parent assets, and assets for other sites, may be missing |
| Work order incident and service task | Whether they follow downloaded work orders only | The detail of past visits is missing even when the work order header is present |
| Notes, attachments and service reports | Whether they are included at all, and any size limits | The technician sees that a visit happened but not what was found |
Is the app in offline mode or online mode when history is missing?
It matters, because the two modes read from different places. In offline mode, or in an app configured as offline-first, forms, views and subgrids read from the data on the device, so a row outside the profile is simply not there, even if the phone has a signal. In online mode the app queries Dataverse directly, subject to the user's security role, so the same subgrid can show full history.
A quick test: open the same asset on the same device with a signal, once with the offline profile active and once in online mode or in a browser session with the same user. If history appears online and not offline, the profile is the cause. If it is missing in both, look at the form, the relationship chain or retention. If it is missing only for some technicians, compare security roles and business unit access. How offline-first apps treat tables and rows outside the profile has changed between releases, so confirm the current behaviour in Microsoft documentation before relying on an online fallback.
Does the work order form actually have a service history subgrid?
Often it does not, or it has one that filters out what the technician needs. The mobile forms used in Field Service are separate from the forms office users see, so a history tab added to the desktop form does not appear on the phone.
- Check the form the mobile app actually uses for work order and for customer asset, including form order and security role assignment, not the one you edit most often.
- On the work order form, look for a section showing other work orders for the same customer asset or functional location, rather than only the incidents of this work order.
- On the customer asset form, add or check a subgrid of related work orders and a subgrid of work order incidents, since those two relationships hold different visits.
- Open the view each subgrid uses: views such as active, open or "my" work orders hide closed and completed visits, which are exactly the history. Use a view that includes completed and closed statuses, sorted newest first.
- Check the number of rows the subgrid shows and that "see all" opens a view the technician can use on a phone.
- Publish the customizations and resync the device; the app caches metadata, so a change may not appear until it refreshes.
Is the history linked to the customer asset the way the subgrid expects?
A subgrid follows one relationship, and service history in Field Service rarely sits on one relationship. When a subgrid on the asset lists work orders through the primary customer asset on the work order header, every visit that recorded the asset only on a work order incident, or not at all, is invisible.
- Header versus incident: a work order has a primary incident customer asset, and each work order incident can carry its own customer asset. Multi-asset visits often only link the extra assets on the incident.
- Parent and component assets: a visit recorded against the top-level machine does not appear on the component asset, and the reverse. Decide which level the technician opens and show history for the hierarchy where it helps.
- Replaced units: when a unit is swapped, its history stays on the old asset record. A functional location, or a link from the new asset to the one it replaced, keeps the history of the position visible.
- Legacy history: visits imported from a previous system may sit in notes, a custom table or on the account, not as work orders linked to the asset.
- Visits with no asset: work orders created against an account or site without choosing an asset never show on any asset. Make the asset required on the incident types where it matters.
Could a retention policy or bulk deletion job have removed older records?
Yes, and it is worth checking early, because every day a recurring job runs, more history goes. In the Power Platform admin center and advanced settings, review system jobs for recurring bulk deletion jobs on work orders, bookings, incidents, notes or activities, and check who created them and their criteria. Also check Dataverse long term data retention policies: where configured, retained rows move out of the active tables into a read-only long term store, which means they no longer appear in app views, subgrids or on the mobile device. Look for flows, scheduled integrations or storage cleanup scripts that delete completed records too. Long term retention capabilities and how retained data can be viewed change by release, so check current Microsoft documentation.
Storage pressure is the usual reason these jobs exist. Which records are safe to clean up, and which should never be bulk deleted, is covered in our Dataverse storage capacity cleanup guide.
What should you preserve immediately if a job is deleting service history?
Stop the loss first, then decide the policy. Deleted Dataverse rows are not something to count on recovering later.
- Pause or cancel the recurring bulk deletion job, or disable the flow or integration doing the deleting, and record its criteria and schedule before changing anything.
- Export what remains of the affected tables now, including work orders, incidents, service tasks, products used, notes and attachments, to a store you control, such as Azure Synapse Link for Dataverse, Microsoft Fabric or a plain export.
- Check whether recently deleted rows can be restored through the Dataverse recycle bin feature, if it is enabled for your environment, and within its retention period.
- If important history is gone, restore a system backup into a separate environment, never over production, and extract the missing records from there. Check current Microsoft documentation for backup retention for your environment type.
- Agree a written retention rule for service history with the service owner and, where relevant, compliance, before re-enabling any cleanup.
Which configuration changes surface multi-year history without custom development?
Most teams can get full history in front of technicians with configuration alone. Pick the combination that suits how often technicians need it and how much the devices can hold.
| Change | What it does | Trade-off |
|---|---|---|
| Add a profile filter for work orders related to downloaded customer assets | Past work orders for the assets on the technician's jobs come down, regardless of who did them | More rows to sync; bound it by completion date, such as the last few years |
| Include work order incidents and service tasks for those history work orders | The technician sees what was found and done, not just that a visit happened | Multiplies volume; include only the tables technicians read |
| Add history subgrids to the mobile work order and asset forms, using completed status views | History appears where the technician already is | Keep row counts and columns short for small screens |
| Leave attachments and older reports out of the offline profile | Keeps sync fast while structured history stays offline | Photos and PDFs need a signal to open |
| Show deep history online only | A tab or view that queries Dataverse when a signal exists, for visits older than the offline window | Not available in basements or remote sites; check current behaviour in offline-first apps |
| Summarise history in a curated service history table per asset | One compact row per completed visit, cheap to download | Needs a process to write rows on completion; see our asset history guide |
How much service history can the offline device realistically hold?
Less than the database, and the limit you hit first is usually sync time rather than storage. Every extra year of work orders, incidents, tasks and notes multiplies the rows synchronised for every technician, and first sync on a new or reset phone is when a wide profile hurts: technicians wait at the depot, sync is interrupted, and people stop trusting the app.
Bound history by what a technician actually uses on site. For many operations that is a few years of completed visits for the assets on the next few days of jobs, as structured records, with photos and documents left online. Test with the technician who has the largest territory on the oldest supported device, measure first sync and incremental sync, and adjust the window from that. Why offline records sometimes fail to arrive at all is a different problem, covered in our guide to offline field apps that do not lose data.
Where does customer-facing asset history fit in?
If customers also need to see the service history of their equipment, the same underlying questions of one canonical asset, reliable links from visits to assets and a curated history table apply, with portal security on top. That design, including the curated service history table that also makes a compact offline download, is covered in our guide to Field Service asset history customers can see. For manufacturers in Germany and DACH, the offline and works council context is on our manufacturing industry page, and the choice between the standard mobile app, a canvas app and a custom app is on our Dynamics 365 mobile app options page.
Should service history for field technicians run on Dynamics 365 Field Service or a custom build?
For most organisations already on Field Service, this is a configuration fix, not a reason to change platform. We recommend the right solution - whether that's Microsoft Dynamics 365, Power Platform, or a custom-built CRM. Some businesses need the Microsoft ecosystem. Others need full control without licensing. We deliver both. Where technicians outnumber office users by a wide margin, per-user licensing does not fit, and the workflow is simple, a custom-built CRM with a mobile interface on React, Node.js, PostgreSQL or .NET is the alternative we build.
Should field technician service history run on Dynamics 365 or a custom build?
Can afford licensing and want the Microsoft ecosystem
Dynamics 365
Microsoft 365, Teams and Outlook integration, a mature partner ecosystem, Copilot, and apps for sales, service and field operations that are configured rather than built.
Need full control and zero licensing
Custom CRM
A CRM built on React, Node.js, PostgreSQL or .NET that you own outright: your data model, your hosting, no per-user subscription, and features shaped exactly to your process.
Not sure which fits
We help you decide
A short discovery weighs licensing budget, process complexity, integrations and long-term ownership, then recommends one path. We deliver both, so the recommendation has no reason to lean.
How does Solzet fix missing service history on the Field Service mobile app?
We run the checks on this page against your environment: the profile each technician uses, the mobile forms and views, how visits link to assets, and any retention or deletion activity, and we stop any job that is removing history before anything else. Then we widen the profile with bounded filters, add history subgrids to the mobile forms, fix the asset links on incident types, and test sync on real devices with your largest territories.
The work is done by senior consultants and full-stack developers delivering remotely from Yerevan, Armenia, with 8+ years of Dynamics 365 Customer Engagement and Power Platform work, directly for your team or white-label for Microsoft partners.
What do people ask us?
Why does the Field Service mobile app not show full service history for an asset?
Because it shows what the mobile offline profile downloaded and what the mobile forms are configured to display. Work orders are commonly filtered to the technician's own bookings or a recent date window, and many forms have no history subgrid or use a view of active records only. Retention or deletion jobs can also have removed older records.
How do I show past work orders for an asset in the Field Service mobile app?
Add a filter to the offline profile that downloads work orders related to the customer assets already on the device, bounded by completion date, and add a subgrid of those work orders to the mobile asset or work order form using a view that includes completed and closed records. Publish, then resync the device.
Why does service history show in the browser but not on the phone?
The browser queries Dataverse directly, while the phone in offline mode or an offline-first app reads the rows the offline profile downloaded. Mobile forms are also separate from desktop forms. Compare the same asset online and offline with the same user to confirm whether the profile or the form is the cause.
Will adding more history to the offline profile slow down sync?
Yes, every extra table and year adds rows for every technician, and first sync on a new device is where it shows. Bound history by completion date, include only tables technicians read, leave attachments online, and test first and incremental sync with the largest territory on the oldest supported device.
Why are some visits missing from the customer asset history?
Visits may link the asset only on a work order incident rather than the work order header, sit on a parent, component or replaced asset, come from a legacy import stored elsewhere, or have no asset at all. A subgrid follows one relationship, so check each link and make the asset required where it matters.
Can Dataverse retention or bulk delete remove Field Service history?
Yes. Recurring bulk deletion jobs, cleanup flows and scripts delete rows, and long term data retention policies move rows out of active tables so apps and mobile devices no longer show them. Review system jobs and retention policies, and check current Microsoft documentation for how retained data can be viewed.
What should I do if a job is deleting service history right now?
Pause or cancel the job or flow and record its criteria, export the remaining history to a store you control, check whether the recycle bin can restore recent deletions if enabled, and restore a backup into a separate environment to recover older records. Agree a written retention rule before any cleanup runs again.
Where should you go next?
Dynamics 365 Field Service implementation partner
Asset model, offline profile scoping and the feasibility sprint for a Field Service rollout.
Dynamics 365 for manufacturing
Field Service for manufacturers, including offline mobile technicians in Germany and DACH.
Field Service asset history for customers
One canonical asset record, a curated service history table and a customer portal.
Offline field apps that do not lose data
Sync conflicts, missing technician records and reconciling offline edits.
Dataverse storage capacity cleanup
Which data is safe to clean up and what never to bulk delete.
Custom CRM Development
Field operations and mobile interfaces on React, Node.js, PostgreSQL and .NET without Microsoft licensing.
Which solution is right for your business?
Tell us what you need. A senior consultant replies within one business day with a recommendation - Dynamics 365, Power Platform, or a custom-built CRM - not a sales script.