This page helps you fix a field service problem from the symptom you see: work that nobody receives, a console that shows the wrong people or jobs, a technician who can't start or end work, a missing position on the map, a slot that can't be booked, or a record that wasn't assigned to anyone. Each answer names the cause and the record or setting to check, then links to the page that explains that part of field service in full.
Overview
Field service decisions in xMatix follow fixed rules applied to records you can inspect. Most problems come from one of these places:
| Area | What decides the result | Full explanation |
|---|---|---|
| Queue routing | The queue's agent pool, each person's presence, skills and open load | Skills, capacity and work routing |
| Dispatch console | The console page's settings, attendance records and leave requests | The dispatch console |
| Technician's day | The mobile app configuration, the time sheet and the user's security profile | The technician's day |
| Location | The mobile app's Location Tracking tab, the phone's permission and who may read positions | Location and the travelled path |
| Bookings | Branch time slots and their per-date bookings | Resource availability and slot holds |
| Automatic assignment | Process Studio assignment rules and partner-resource rules | Automatic owner assignment |
Start with the section that matches what you see. If you still need help, collect the details in What to collect before you escalate.
Queue routing
Queued work stays Pending
Nobody passed the queue's checks at the moment the work was routed. The work is not lost: it stays Pending until someone picks it up or a supervisor assigns it. Check, in this order:
- Membership. The person's resource is a member of the queue's Agent pool (a resource group).
- Identity. The resource is active and linked to a user account.
- Presence. The person's presence is Available, and their browser renewed it in the last five minutes. A presence that wasn't renewed reads as Offline, even if it still says Available. This happens when someone closes the browser without going offline.
- Skill. Only on a Skill-based queue, and only when the route asks for a skill: the person needs a resource skill whose Name is exactly that skill, with Proficiency Level 1 or more.
- Capacity. The person's open work (assigned and accepted items) plus the new item fits within Max Work Items on their presence record. The default is 5.
The supervisor view shows each queue's pending backlog and each person's effective presence, maximum and current load. Compare it with the checks above.
Work on a skill-based queue never reaches anyone
Out of the box, every new resource skill is named from the RS number series, for example RS-21102025-000014, and starts at level 0. A skill-based queue compares the requested skill with that stored name, so nothing matches. Turn off Resource Skills Name Setting, give each resource skill the exact skill text your routes request, and set Proficiency Level to at least 1. See Skills, resource skills and skill requirements.
Work went to someone without the skill
Three things send work without a skill check:
- A decline routes the work again through the same queue, without the original skill.
- Transfer to a queue routes without a skill, and Transfer to a resource assigns straight to that person with no checks at all.
- A supervisor Reassign skips every check.
Inbound calls never carry a skill, so on a call a skill-based queue offers the call to the least-loaded available agent.
Work keeps arriving from a queue we switched off
Switching a queue's Active off does not stop a route that names it. Work routed there still creates Pending items. Also change the business rules and telephony routes that send work to that queue.
Two people were equally free, and the same one always wins
When candidates are tied, the winner is decided by an internal order, not by any priority you set. If you need a specific person first, use a Direct route that names them, or an assignment rule.
Dispatch console
I can't find the dispatch or allocation menu
Your security profile hasn't been granted the console page, or the page isn't in your app. In the shipped setup, Service → Settings → Service Order Dispatch can only be reached by System Admin. Ask your administrator to grant the page. The shipped pages and their grants are listed on the field service overview.
I dispatched a service order but the technician doesn't see it
Service Order Dispatch writes the order's Service Advisor, not its Technician. Open the order and use Time Sheet to put the technician on the labour lines.
Finished jobs still appear on the console
A console hides only items whose status exactly matches one of its closed statuses. The defaults are completed, cancelled, closed, expired and rejected, and none of the shipped pages changes them. No service order status matches those words, so Work Completed, Invoiced and Delivered orders stay. Converted and lost leads stay too. Ask your administrator to set the page's closed statuses, as described in the configuration reference.
Someone shows as Absent but is working
The console infers Absent when a person has no attendance record for the day while other people do. Attendance records are created when a person checks in on the field app, so the person hasn't checked in yet. Ask them to check in.
Someone marked Absent still gets work from Optimize day
Optimize day and Get candidates skip only people on leave, on a holiday or on a week off. People with an inferred Absent or a Half Day keep their lane. An attendance record whose type is Absent, or any other value the console doesn't recognise, is read as present. Review those lanes before you accept the result. See How the dispatch console reads attendance.
A person is on leave for the day, but the leave isn't approved yet
Any leave request that overlaps the day takes the person off it, unless its status contains "reject" or "cancel". A pending request already counts. Reject or cancel the request if the person is working after all.
"No available resources in scope"
Every person in scope is on leave, on a holiday or on a week off that day, or the scope is empty. Check the scope chips and any pending leave requests.
"No free slots in the visible window"
Every available lane is full up to the end of the window you are looking at. Switch to a longer window, add people to the scope, or move to another day.
A Gantt drop changes the owner but not the time
The console page has no schedule field. Without one, a drop only reassigns, and Get candidates and Optimize day aren't offered. Of the shipped pages, Service → Allocation Console is set up this way.
Every card is the same length on the Gantt
The page has no duration field, so every item is drawn as a 90-minute block. Your administrator can set one in the page's console settings.
"Update failed — reverted" or "Reschedule failed — reverted"
The record refused the change: you can't edit it, a field is read-only for you, or a validation or business rule rejected it. Select Open record →, make the same change on the record, and read the message it shows.
The Map view isn't there
The console page has no location setting, or its views exclude the map. Your administrator sets both on the page.
Work I expect isn't on the console
Check the period (Day, Week or Month), the scope chips, the Unassigned toggle and any Showing a subset warning. Work assigned to someone outside your scope isn't shown.
The technician's day
"This action requires a connection"
The technician ran Start, Pause, End, Time Sheet, Check In or another server action while the phone was offline. These are never queued. Run the action again once connected. It records the time it actually ran, so tell the service advisor if the work really started earlier.
My service orders aren't available offline
The shipped mobile app doesn't download service orders or time sheets for offline use. Open your jobs while connected. An administrator can add Service Order, with its lines and time sheets, on the mobile app's Offline & Sync tab. See The technician's day.
Start, Pause or End isn't offered, or is refused
The user's security profile has no grant for the action. In the shipped profiles, only System Admin, Standard User and Sales Manager hold Start, Pause and End on the time sheet. The Service and Sales Executive profiles don't. An administrator adds the grants on the profile's Actions tab. See Security profiles.
A time sheet action is refused with a message
The action checks every ticked line before it changes any, so one wrong line refuses the whole action. For Start and End the heading reads Work Start is not allowed on one or more selected time sheet lines. (or Work End …). For Pause it reads One or more validation errors occurred. Each line then shows its reason:
| Message | Cause | Fix |
|---|---|---|
| Work has already started on this line. | The line is running | Use Pause or End instead |
| Work has already ended on this line; it cannot be started again. | The line is finished | Nothing more to record on it. Add a new labour line if more work is needed |
| Work has not started on this line yet, so it cannot be paused. | The line hasn't started | Select Start first |
| Work on this line is already paused. | The line is already paused | Select Start to carry on |
| Work Pause Reason is required when the work is set to Paused. | No pause reason was given | Choose a pause reason |
| Work End cannot be marked before Work Start: start the work on this line first. | The line hasn't started | Select Start, then End |
| Work on this line is paused and that segment is closed. Start it again before marking Work End. | The line is paused | Select Start, then End |
| Work has already ended on this line. | The line is finished | Nothing to do |
The service order still says work is running
The service order's work flags follow all the lines on its time sheet. One line that hasn't ended keeps the order from showing work ended. Open the time sheet, find the line that is still running or paused, and end it.
There is no Resume button
Use Start on the paused line. It opens a new stretch of work for the same task. A Resume action exists on the time sheet, but it has no server implementation and fails if someone adds it to a page.
My offline check-in shows a warning
An offline punch was recorded with warnings — some check-in rules were not met. The check-in was saved but flagged, for example because the phone was outside the branch radius. Offline check-ins are recorded at the phone's time. Tell your supervisor.
Location and the map
Check-in is disabled and asks for "Allow all the time"
Location tracking is on for the mobile app, and this Android phone doesn't allow background location. On the phone, set the xMatix app's location permission to Allow all the time, then return to the app. If the phone's policy won't allow it, an administrator can switch tracking off for that mobile app. There is no exception for one user.
A technician's position is hours old
Check that the person is checked in and hasn't paused the session, that the phone is online, and that the app was opened recently. Positions are uploaded in batches, so the latest position is only as recent as the last upload. On an iPhone the app records only while it is open on screen.
A resource is missing from the map
Check each of these:
- The console page has a location setting. Without it the map isn't offered.
- Enable location tracking is on for the mobile app, and the person is in a profile with Check-in required. People who don't check in are never tracked.
- The resource is linked to a user and has uploaded at least one position.
- You are allowed to read that person's position. You see your own position, the positions of people below you in the role hierarchy, and everyone's position if one of your security profiles has View All on Resource. See Who can see positions.
The path has gaps, or doesn't line up with the check-in
Gaps are expected while an iPhone app is in the background, during a pause, while standing still (the minimum-distance setting), or after a long offline stretch. The last batch of a session and batches that waited offline are uploaded without a link to the check-in, so compare a path with attendance by person and time.
Bookings and slots
A branch time slot isn't offered
The booking wizard lists only Active slots for the branch, with the exact Transaction Type being booked and a matching item, item group or service type where the slot names one. Check these, in order:
- Active is switched on. A slot created without it is never offered.
- The date isn't a branch holiday or in the past.
- That weekday's capacity isn't 0. An empty weekday capacity is saved as 0, which closes the day.
- Places are left. Places left are the date's booking Capacity (or the slot's weekday capacity) minus Capacity Utilized.
See Branch time slots.
"The time slot '…' is fully booked on …"
Someone else took the last place while you were filling the form. The places shown in the wizard are a guide, and the check that counts is made when the appointment is saved. Pick another slot or date.
"The selected time slot is inactive."
The slot's Active flag is off. An administrator switches it on in the branch's time slots, then you can save again.
"Booking an appointment requires a connection."
The mobile booking wizard needs a connection. Book again once the phone is online.
No appointment slots appear in the appointment-scheduling engine
The engine's background jobs run only when Enable appointment scheduling sweeps is on, under Setup → Feature Hub → Sales → Settings → Scheduling. It is off by default. The demo and service bookings made from the booking wizard don't use this engine. See Scheduling appointments.
Automatic assignment
A new record didn't get an Executive
Partner-resource rules fill the Executive only when a Lead, Opportunity or Appointment is created, never on edit and never on other records. Check, in order:
- No active Setup → Process Studio → Assignment rules entry writes the Executive on create for that entity. If one does, it decides instead.
- A partner resource exists with a Resource, the record's Partner Account, and either no branch or the record's Branch.
- Its Rule Success Criteria is empty or exactly
All Rules Are Met,Any Rule Is MetorAlways (No Criteria). - It has at least one rule, unless its criteria is
Always (No Criteria). - Each rule's Operation stores one of
equals,notEqual,lessThan,greaterThan,lessOrEqualorgreaterOrEqual. The shipped Equal option never matches. - Each Field Name is the internal name of a standard field on the record.
The full procedure, including the form fields an administrator must add first, is on Automatic owner assignment.
The wrong person was assigned, or my choice was replaced
On a new lead, opportunity or appointment, the first matching candidate replaces the Executive on the form. Candidates with no Assignment Sequence Number are tried before every numbered one. Look for those, for duplicate numbers, and for a broad fallback placed too early. Change the Executive after the first save: assignment doesn't run again on edit.
Service orders never get a technician automatically
Partner-resource rules don't run on service orders. Use a Setup → Process Studio → Assignment rules entry that fills the service order's Technician, or assign technicians with Time Sheet on the order.
A Process Studio assignment with a skill never picks anyone
Each candidate must hold every skill in Must hold every one of these skills: active, within its dates and at or above At proficiency. Names are compared ignoring capitals, but spaces and spelling must match. Use the assignment's Dry run to see who qualifies.
What to collect before you escalate
A screenshot rarely shows why a decision was made. Write down, or export where you are allowed to:
- the record type and number, and the date and time with your time zone;
- the partner account and branch on the record;
- the person you expected and the person (or nobody) who received the work;
- for queues: the queue, its routing model, and each candidate's presence, open load and Max Work Items, and the exact skill text requested;
- for the console: the page, the scope chips, the period and window, and each affected person's attendance type and leave request status for that day;
- for time sheets: the lines selected and the exact message;
- for location: the mobile app, the person's last upload time and whether they were checked in.
Common questions
Why does the console show someone as available when attendance says Absent?
The console reads attendance by keywords: leave, half day, holiday and week off. A record typed Absent, or any other value, is read as present. Only an inferred Absent, when a person has no record for the day while others do, shows the Absent marker. Even then, Optimize day doesn't skip that lane: it skips only leave, holiday and week off. Treat the marker as a warning, move work by hand where needed, and correct the attendance record if it is wrong.
Can a supervisor give work to someone who is offline or lacks the skill?
Yes. Reassign and Transfer to a resource are deliberate overrides and run none of the routing checks: not membership, presence, skill or load. That is intentional, so a supervisor can deal with an exception, but it means the supervisor owns the check. Before you reassign, look at the person's presence and current load in the supervisor view, and their resource skills. A declined or transferred item that is routed through a queue again also loses its original skill requirement.
Is anything decided by AI in field service?
No. Queues offer work by a fixed routing model, assignment rules follow the conditions you write, and Optimize day fills free time back to back on the lane that becomes free earliest, at most 20 items per run. It doesn't consider skills, travel or customer preferences. Every result is an ordinary field value that a person can review and change, so check an optimized day before you rely on it.
Who can see where a technician has been?
The technician, the people above them in the role hierarchy, and users whose security profile grants View All on Resource. In the shipped profiles, System Admin, Standard User, Sales, Sales Executive and Service have View All on Resource, so they see everyone's position. Sales Manager doesn't. To limit position access to the role hierarchy, remove View All on Resource from a profile. A visit plan's path is visible to anyone who can read that visit plan.
Related topics
- Field service overview
- Skills, capacity and work routing
- Skills, resource skills and skill requirements
- Resource availability and slot holds
- The dispatch console
- Automatic owner assignment
- The technician's day
- Location and the travelled path
- Field service configuration reference
- Queues and omni-channel routing
