xMatix
Sign in Request demo
xMatix
PRODUCTS
SalesField Sales & SFACRMRewardsClaimsInventoryProcurementWarehouse ManagementField ServiceServiceSupportTelephony & MessagingFinance & AccountingPayrollExpense ManagementCommercePortalsAnalytics & ReportingData StudioMobile AppSee all products →
PLATFORM
Platform overviewApp BuilderAutomationIntegrationsSecurity & GovernanceChange ManagementDevelopers
SENSE AI
Sense AI overviewSense AssistSense ControlSense VisionAI StudioTrust & governanceIn Claude & ChatGPTUse cases
SOLUTIONS
Auto DMSConsumer Goods DMSSales Force Automation (SFA) FMCG & DistributionManufacturing & Dealer NetworksAutomotive & DealershipsPharma & HealthcareConsumer DurablesAgri-InputsBuilding MaterialsService NetworksWarehousing & 3PLFinancial AccountingERP SoftwareIndia GST ComplianceUAE VAT & e-InvoicingSaudi ZATCA & VATAll solutions →
RESOURCES
Knowledge CenterDeveloper & CLIBlogGuidesWhat is xMatix?Company facts
COMPANY
AboutCareersPartnersEventsContactAuthorsLegal
Sign in Request demo
Home/Docs/Field Service/Field service configuration reference
REFERENCE · Last reviewed

Field service configuration reference

This page is the administrator's reference for the records that drive field service allocation: where each one is maintained, what it holds, and which allocation behaviour reads it. It also lists the fields that are stored but read by nothing, so a configured value is never mistaken for an enforced one.

Field service in xMatix is not a separate app. It is a set of shared records (resources, skills, groups, queues, bays, booking resources) that the Support, Service, CRM and Field Sales consoles and the mobile app read. Set these up first; then the dispatch console, work routing and the technician's day work on top of them.

Where the building blocks live

Apart from queues and assignment rules, none of these records has a dedicated Setup screen. They are ordinary entity screens reached from the apps below, and the Setup Copilot or the data API can maintain them as data.

RecordWhere to find it
ResourcesField Sales app → Resources (also listed in the Payroll, Rewards and Platform apps)
Resource AvailabilityNot in a standard app: the Resource Availability tab on a Resource record shows the calendar. Add the list to an app to open the records (see Mobile attendance)
Skills, Resource SkillsSupport app → Settings → Skills and Resource Skills cards
Resource GroupsSupport app → Settings → Resource Groups; also Rewards app → Resource Groups
QueuesSupport app → Settings → Queues, CRM app → Settings → Queues, or Setup → Feature Hub → Service → Telephony → Queues
Resource PresenceWritten by the agent's browser; readable as the Resource Presence entity
Appointment Types, Slot Templates, Bookable ResourcesIn no app in the shipped navigation, and no forms ship for them. Add them to an app (Setup → Design Studio → Apps) and design their layouts when you build on the appointment-scheduling engine — see Scheduling appointments
Service BaysService app → Settings → Workshop Operations → Service Bays
Dispatch consoleA widget placed on an app page by a designer. Shipped pages: Support → Case Allocation, Service → Allocation Console, Service → Settings → Service Order Dispatch and CRM → Lead Allocation; the visit-plan Allocation Console (its Field Sales menu entry is switched off) and Demo Allocation ship without a menu entry
Assignment rulesSetup → Process Studio → Assignment Rules (none shipped); Partner Resource rules for Lead, Opportunity and Product Demo inserts
Location trackingSetup → Design Studio → Apps → Mobile Apps → the app's Location Tracking tab

Set-up order

Work through the records in this order, because each step uses the one before it. Each step links to the page with the full procedure.

Step 1 — Create the resources

Create one Resource per person who carries work, link each to their User, and set Default Branch. A resource without a linked user is never routed work. See Resources and skills below.

Step 2 — Record skills

Build the Skill catalogue, then add Resource Skill rows for each person. Rename the resource skills if you route by skill through queues. See Skills, resource skills and skill requirements.

Step 3 — Build resource groups and queues

Create a Resource Group per pool and add the members by hand or by import, then create the Queue that uses the group as its agent pool. See Resource groups and Skills, capacity and work routing.

Step 4 — Set up workshop bays

For workshop service, create the Service Bays of each branch and set their capacities. Saving a bay also creates its booking resource. See Service bays.

Step 5 — Check the console pages

Open each console page you will use and check its closed statuses and schedule fields against the dispatch console table below. A designer changes them in the page's widget properties.

Step 6 — Turn on location tracking

If dispatchers need live positions, turn on location tracking for the mobile app. See Location tracking below.

Resources and skills

A Resource is the person master: anyone who carries work. The fields allocation reads are Is Active, the linked User (routing refuses a resource with no user, because accepted work must end in an owner), Default Branch and Default Partner Account (used to scope the dispatch console), Business Hours, Type and Manager.

A Resource Skill is one competency held by one resource: a Name, an optional link to the Skill catalogue, a Proficiency Level, Start Date and End Date, and Is Active. Four consumers read it differently:

ConsumerWhat it reads
Queue routing (Skill model)Name equals the requested skill and Proficiency Level is at least 1 — nothing else. New rows are named from the RS number series, so rename them before relying on this
Assignment rulesActive, within the start/end window, at or above At proficiency when set; the skill name may match the row's name or the linked Skill's name, ignoring capitals
Appointment candidate searchIs Active and the linked catalogue Skill's name — no proficiency, no dates
Technician allocation (Time Sheet on a service order)The linked Skill, Is Active, the start/end window and the level, checked against the work item's Skill Lines (the demand side: one skill a job requires at a minimum level)

The Skill catalogue carries a name, description and a free-text Policy note; nothing reads the description or policy, and queue routing does not read the catalogue at all. Step-by-step setup is on Skills, resource skills and skill requirements.

Resource groups

A Resource Group is a named pool with Resource Group Member rows. In field service it is the queue's agent pool and one of the dispatch console's scope chips; the same entity is also used by Rewards for incentive groups (Resource Group Type Scheme or Incentive), so keep field-service pools clearly named. Resource Group Type is a label only, and membership is always added by hand or by import. See Resource groups for the full procedure.

Queues and presence

A Queue holds the routing configuration. Administrators maintain queues under Setup → Feature Hub → Service → Telephony → Queues (or as records under Support → Settings); the New queue dialog is the whole record:

FieldMeaning
Name, DescriptionIdentification
Routing modelDirect, Round robin, Load balance (the default when blank) or Skill-based — see work routing
ChannelsThe channel types this queue serves (Voice, Email, Chat, SMS, messaging, Web). Recorded on each work item; the route itself does not validate the channel against this list
Agent poolThe resource group whose members are the candidates
ActiveFeeds membership checks and the supervisor snapshot; the route service does not refuse a route that names an inactive queue, so also stop rules and telephony routes from targeting it

Resource Presence is one row per resource, written by the agent's own browser: Status (Available, Busy, Away, Offline — only Available receives pushed work), a Status Reason, and Max Work Items (default 5), the load ceiling routing enforces. Presence is a lease renewed every minute; a row not renewed for five minutes is treated as Offline. There is no setup screen, menu entry or form for presence. To let a resource carry more or fewer concurrent items, change Max Work Items through the data API, as described in Agent presence.

Appointment types and bookable resources

These records belong to the appointment-scheduling engine, documented in full on Scheduling appointments. The everyday demo and service bookings made from leads, opportunities and cases use branch time slots instead (see Resource availability and slot holds). The engine's background jobs run only when Enable appointment scheduling sweeps is on, under Setup → Feature Hub → Sales → Settings → Scheduling (off by default).

An Appointment Type defines a bookable kind of work:

SettingRead by
Default duration (30 minutes), buffer before/afterAvailability and the resource claim: buffers extend every claim so back-to-back bookings stay apart
Resource requirements (JSON: role, kind, skill name, asset category, bay type, count, mandatory)Candidate search and claiming; malformed JSON reads as no requirements
Minimum lead time, maximum advance daysThe availability query trims what is offered
Cancellation cutoff, maximum reschedulesAppointment cancel/reschedule validation
Overbook percent (0–100)Applied when slots are released, and only to slots from templates scoped to this type: the allowance is ceil(capacity × percent / 100) on each slot
Auto no-show after (minutes)The 15-minute maintenance sweep
Location modes allowed (Branch, Onsite, Virtual)Appointment validation
Is ActiveNot checked when an appointment is booked
Requires customer confirmation, reminder offsets, applicable entitiesStored only — nothing acts on them

A Bookable Resource registers one schedulable unit — exactly one of a person (a Resource), an asset, or a facility (a Service Bay) — with Kind, home Branch (empty means organization-wide), Concurrent Capacity (at least 1), Is Active and an effective window. Its Business Hours reference is stored but not checked; working hours are not applied to candidates.

You will see bookable resources appear without anyone creating them:

  • Every saved service bay gets a facility row in the same save, and every later bay edit refreshes it: its name, branch and active flag follow the bay, and its Concurrent Capacity is the bay's Labour Capacity (1 when blank or zero).
  • Every technician the service order time sheet allocates gets a person row with the resource's default branch and active flag and a capacity of 1.

A retired bay or person keeps its row, with its booking history, and simply stops being a candidate. Do not delete these rows.

Service bays

A Service Bay is a physical workshop position. Fields: Name, Branch, Service Bay Type (Van, Plant, Workshop, Bin, Pallet, Washing Bay, Regular Bay, VHC Bay), Allow Inventory (the bay can hold stock), Is Active, and the occupancy settings the bay allocator reads: Allocation Mode (Vehicle, Labour or Both), Vehicle Capacity and Labour Capacity (default 1 each), Auto Release After (minutes), Occupancy Stretch Percent and Turnaround Minutes. The type is what an appointment requirement's bay type narrows on. Setting up bays, their capacities and how jobs claim them is documented on Service bays.

The dispatch console

The console is the AllocationConsole widget, placed on an app page by a designer — one page per work entity. Its design-time properties, by exact name:

PropertyEffect
entity, labelFieldThe work entity and its display field
assignFieldThe lookup to the resource that a Board or Gantt drop writes
scheduleStartField, scheduleTimeFieldThe date (and optional separate time) field a Gantt drop and Optimize day set; without scheduleStartField drops only reassign and Optimize day does nothing
durationFieldDuration in minutes; items without one get a 90-minute block
statusField, closedStatusesHide items in closed statuses (default: completed, cancelled, closed, expired, rejected)
branchField, partnerField, accountGroupFieldFields the scope chips filter on
geoMode, geoPointField, geoLookupField, geoRelatedEntity, geoRelatedPointFieldLocation configuration — a coordinate field on the entity, or a lookup to a record that carries one. Without it the Map view is unavailable
stopsEntity, stopsParentField, stopsSequenceField, stopsAccountFieldChild stops plotted on the Map
cardFieldsExtra fields of the work entity shown on every Board and Gantt card, one per line, and as labelled lines in the card's detail panel. A lookup shows the related record's name; the designer offers them as Card Fields
viewsWhich of map, gantt, board to offer
scopeChipsWhich of partner, branch, resources, resourceGroup, accountGroup to show; an empty list shows all five
refreshSecondsAuto-refresh interval; values under 5 are ignored
itemNoun, itemNounPlural, title, subtitleWording

The shipped console pages are configured like this:

PageWork entityDrop writesTimeline drop also setsViews
Support → Case AllocationCaseExecutiveFirst Response DueBoard, Gantt, Map (from the account's location)
Service → Allocation ConsoleCase (the page names no entity, so the console falls back to Case)ExecutiveNothing: no schedule field, so no Optimize dayGantt (opens here), Board
Service → Settings → Service Order DispatchService OrderService Advisor, not TechnicianNo timelineBoard, Map (from the account's location)
CRM → Lead AllocationLeadExecutiveLead Due DateBoard, Gantt
Demo Allocation (no menu entry)Product DemoExecutiveAppointment Date TimeBoard, Gantt, Map
Allocation Console (visit plans; Field Sales menu entry switched off)Visit PlanAssigned To ResourcePlan Start Date and planned start timeMap (opens here), Gantt, Board

None of the shipped pages sets closedStatuses, so each one hides only the default words, matched against the whole status value. These defaults hide cases that are Closed or Cancelled and demos that are Completed or Cancelled. They match no service order status and no lead status. So delivered and invoiced service orders, and converted or lost leads, stay on their consoles until you set closedStatuses on the page, for example Work Completed, Invoiced, Delivered.

Live positions come from the location-tracking service, not from the work entity. Operating the console is covered in The dispatch console.

Location tracking

Under Setup → Design Studio → Apps → Mobile Apps, open the mobile app record and its Location Tracking tab:

SettingDefaultMeaning
Enable location trackingOff (the shipped xMatix One App has it on)Off or absent means the app never asks for background location and check-in is not gated on it
Capture interval60 seconds (minimum 30)How often a fix is recorded while checked in
Batch size20 points (1–200)Fixes uploaded per request
Minimum distance25 metres (0 reports every fix)Movement required before a new fix is recorded

Behaviour and the privacy posture are documented in Location and the travelled path.

Automatic assignment

The Executive on new leads, opportunities and appointments can be stamped from Partner Resource records (sequence, success criteria and rules) unless a Process Studio assignment rule writes it. Automatic owner assignment documents both, including the form fields and Operation values an administrator must add before partner-resource rules can match.

Permissions

In the shipped security profiles, the settings apps that hold most of these records are visible to a narrow set of profiles:

AppRecords it holdsVisible to (shipped profiles)
Support settingsSkills, Resource Skills, Resource Groups, QueuesSystem Admin
Service settingsService Bays, Service Order DispatchSystem Admin
CRM settingsQueuesSystem Admin, Sales Manager, Standard User
Field SalesResourcesSystem Admin, Sales Manager, Sales Executive, Standard User

A user whose profile cannot see an app does not get its menu. Grant the app, and the entity's read and write access, under Security profiles — see Security profiles. The console pages have their own page grants, listed on the field service overview.

Common problems

A technician never receives routed work

Check that the resource is active and linked to a user, is a member of the queue's resource group, and shows Available presence. For a skill-based queue, the resource skill's Name must equal the requested skill exactly, with Proficiency Level at least 1. See Troubleshooting field service.

Delivered service orders stay on the dispatch board

The shipped pages hide only the default closed words, which match no service order status. Set closedStatuses on the page's console widget, for example Work Completed, Invoiced, Delivered.

A bay's bookable capacity is not what I set

The bay's booking resource takes its capacity from Labour Capacity, not Vehicle Capacity. Change Labour Capacity on the bay and save; the booking resource is refreshed in the same save.

No appointment slots appear

Enable appointment scheduling sweeps is off by default. Turn it on under Setup → Feature Hub → Sales → Settings → Scheduling and wait for the hourly slot release. The full checklist is on Scheduling appointments.

I cannot find Skills or Service Bays in the menu

The Support and Service settings apps are visible only to System Admin in the shipped profiles. Ask an administrator to grant your profile the app.

Training

Practice exercise

In a sandbox, create a resource linked to a test user, give it a resource skill linked to a catalogue skill, add it to a new resource group, and create a queue that uses the group as its agent pool. Then create a service bay with Labour Capacity 2. Expected result: the resource appears in the queue's pool, and a Bookable Resource of kind Facility with Concurrent Capacity 2 exists for the new bay.

Quick reference

  • One person = one Resource, always linked to a User.
  • Queue routing reads the resource skill's own name; appointments read the linked catalogue skill.
  • Resource groups are filled by hand or by import only.
  • Presence is set by the agent's browser; Max Work Items changes through the data API.
  • Saving a bay creates or refreshes its bookable resource; capacity follows Labour Capacity.
  • The scheduling sweeps are off until you switch them on.
  • Shipped console pages need closedStatuses for service orders and leads.
  • Location tracking is per mobile app.

Common questions

Why must a resource be linked to a user account?

Because allocation ends in ownership, and ownership belongs to users. Routing drops a resource with no linked user before any other check, since work it accepted could never stamp an owner.

One pool of people, both routing and booking — do I configure them twice?

The person is one Resource record, but the engines read different registrations. Routing reads resource-group membership, presence and the resource skill's name and level. The appointment engine reads a Bookable Resource with branch, capacity and effective window, plus active skills by catalogue name. Technician allocation reads Skill Lines against Resource Skills with dates. A technician who should be routable, bookable and allocatable needs all three kept in step.

A field on one of these records has no effect — is it broken?

Check the "read by" notes above first. On appointment types, Requires Customer Confirmation, Reminder Offsets and Applicable Entities are stored but nothing acts on them, and Is Active is not checked when booking. On bookable resources, Business Hours is stored but not checked. On skills, Description and Policy are not read.