ServiceWorks Academy

Sept 2026 Product Update

Website Enhancements

  1. Parts Prediction Triage Integration Enhancement
    Improvements to the Parts Prediction workflow and triage integration.
  2. Asynchronous Invoice Notification Processing
    Enhanced invoice notification processing to improve system responsiveness and reliability.
  3. Save & Add New Job Button Position Updated
    Improved the placement of the Save & Add New Job button for a smoother job creation experience.
  4. Customer Page Search – First Loading Enhancement
    Improved the initial loading experience when searching from the Customer page.
  5. Send Invoice – Attach Content Enhancement
    Enhanced the Send Invoice workflow with improvements to attached content.
  6. Service and Item Description – Expand/Collapse Enhancement
    Added an easier way to expand and collapse Service and Item descriptions for improved readability.
  7. All Estimates – Open Estimate in New Tab
    Estimates can now be opened in a new browser tab, making it easier to review multiple estimates without losing your place.
  8. Show in Schedule – Job Visibility Enhancement
    Improved the Show in Schedule functionality for better job visibility and scheduling workflows.
  9. Core Charge and Core Part Management
    Added enhancements for managing core charges and core parts.
  10. Purchase Order From POS
    Added functionality supporting Purchase Order creation from POS.
  11. Automated Messages Removed From Inbox
    Automated system messages are now excluded from the Inbox, helping keep customer communications cleaner and easier to manage.
  12. Marcone SSB for Purchase Orders
    Added support for Marcone SSB within the Purchase Order workflow.

Integration Enhancements

  1. Quo Integration – Integrated Text Messaging Enhancement
    Enhanced integrated text messaging functionality with Quo.
  2. Warranty Flag Added to LG Dispatch Ticket Details
    LG dispatch tickets now include a warranty flag for improved visibility.
  3. AHS DispatchMe Mapping
    Enhanced mapping support for AHS DispatchMe integrations.
  4. Comprehensive Data Mapping & Integration Specification
    Improved data mapping and integration specifications to support more reliable integration workflows.
  5. Duplicate Customer Handling for Auto-Accept Dispatch Jobs
    Improved duplicate customer handling when dispatch jobs are automatically accepted.

Mobile App Enhancements

  1. Mobile App Role Switching Enhancement
    Improved role switching within the ServiceWorks mobile app.
  2. Explanation of Service (EOS) Added to Route Page Notes
    Added Explanation of Service (EOS) information within the Route page Notes section for easier technician access.
  3. Return Purchase Order Option in the Mobile App
    Added the ability to work with Return POs directly from the mobile app.
  4. Enhanced Parts Pick List Scan Pop-Up
    Improved the Parts Pick List scanning pop-up for a smoother mobile parts workflow.
  5. Core Part Creation and Distributor Return
    Added mobile functionality supporting core part creation and distributor returns.

Website Enhancements

  1. Parts Prediction Triage Integration Enhancement 

‘Most Used Parts’ changed to ‘Parts Triage’

The functionality of Most Used Parts has been enhanced to provide direct access to Parts Prediction Triage in Service Panda.

  1. Asynchronous Invoice Notification Processing 

A new Asynchronous Invoice Notification Process has been introduced to improve the reliability and performance of invoice notifications. Invoice notifications are now queued and processed asynchronously, allowing invoice generation to continue without being blocked by notification processing. 

  1. Save & Add New Job Button Position changed 

The Save & Add New Job button has been repositioned within the Create New Job interface to improve its placement, alignment, and accessibility while maintaining the existing job creation workflow. 

  1. Customers Page Search-First Loading Enhancement 

The Customers page has been enhanced to improve initial page-load performance and provide a more controlled search experience. Customer records are no longer loaded automatically when the page is opened. Users can retrieve customer records by performing a search. 

  1. Send Invoice – Attach Contents Enhancement 

The Send Invoice functionality has been enhanced with a new Select Content File pop-up, providing users with an improved way to view and select attachments before sending invoice emails. 

  1. Service and Item Description – Expand/Collapse Enhancement 

The Service Description and Item Description fields on the New Job and Edit Job pages have been enhanced with an automatic expand/collapse behavior, making it easier for users to view and edit longer descriptions. 

  1. All Estimations – Open Estimate in New Tab Enhancement 

The All Estimations page has been enhanced to allow users to open estimates in a separate browser tab without interrupting their current search or navigation context. 

  1. Show in Schedule – Job Visibility Enhancement 

The Show in Schedule functionality has been enhanced to provide consistent control over job visibility across the Schedule Board, Route Sheet, and Mobile App. The enhancement also introduces automatic checkbox handling when jobs transition to Scheduled status. 

  1. Core Charge and Core Part Management 

The Purchase Order and Job workflows have been enhanced to provide comprehensive support for core-charge items, including core part creation, pricing, tracking, return processing, and synchronization between Purchase Orders and Jobs. 

Core-charge parts can now be properly managed throughout the complete lifecycle, from adding a part with a core charge to returning the core part to the distributor. 

The Core Parts feature automatically manages core-returnable parts by linking a parent inventory item with its associated Core Part

The enhancement includes the following capabilities: 

  1. An inventory item can be marked Has Core and have a defined Core Cost.  
  1. If Has Core is enabled, the system automatically creates/adds the associated Core Part.  
  1. The parent item is added first, and the Core Part is added as the second line item.  
  1. Core Parts are system-generated and cannot be manually created from the Job page.  
  1. Marcone: Automatically provides Core information through its response/Get Status.  

When Marcone returns Core information, the system: 

  1. Other Integrated Distributors: Core information is not automatically updated; existing Core configuration is retained.  
  1. Non-Integrated Distributors: Users must manually specify Has Core and Core Cost for new items. 

Purchase Orders 

  1. A parent item marked Has Core automatically includes its Core Part in the PO.  
  1. Parent and Core Part share the same PO Number.  
  1. For non-Marcone distributors, existing Core information is not automatically changed based on the distributor response.  

Core Part Return 

When a Core Part is returned: 

  1. Mark the Core Part as Return to Vendor.  
  1. Create a Return PO.  
  1. Submit the Return PO.  
  1. System validates the Core Part.  
  1. vendor credit equal to the Core Cost is generated upon successful processing. 
     
  1. PO From POS 

In ServiceWorks Purchase Orders (POs) can now be created and managed from the Customer Order (POS). The Purchase Orders can be created for in stock or out-of-stock items, either as one quantity or multiple, from the POS itself, using the Edit mode. Only those items and quantities that have been chosen by the user are included in the Purchase Orders. 

Another benefit of this enhancement is the increased efficiency in inventory and items tracking in the POS and PO process. Once a PO is created, all the tracking IDs or serial numbers get released and the inventory is made available for use. After the completion or partial receipt of the PO, the POS gets synchronized and the received items are made available in the inventory with correct tracking IDs and serial numbers. 

Other enhancements made are the proper recording of POS ReturnsVoid transactionsSerial Number Changes/ExchangesItem DispositionPO Assignment and Release, and Allocation. The PO Order Number is also appropriately attached to the POS and Job once there is a Delivery Ticket. 

The Item History & Tracking Log gives a complete overview of the history of the item with respect to its allocation, PO creation, receipt, return, void transaction, and inventory transactions. This makes for an improved accuracy in tracking the inventory quantities at various stages of the item’s cycle.  

Example 

Suppose you create a POS for a serialized item and create a regular Purchase Order (PO). After receiving the PO, open the POS in Edit mode and click Assign PO.  

In PO Details popup window select the Distributor and the required Purchase Order, then click Save.  

The PO is tagged to the POS, and a Tracking ID is generated as shown below. 

Go to the Item section to view the Tracking ID allocated to the POS associated with the Delivery Ticket. Because the Tracking ID is linked to both the POS and the Delivery Ticket, both the Job Number and POS Number are displayed against the Tracking ID.  

The same Tracking ID and Serial Number are also displayed on the Job page also. 

Creating another PO from POS page 

To create another PO from the POS, click Create PO (Beta). Create and submit the new Purchase Order. After the PO is submitted, a PO Invoice is generated. When the new PO is received, it is automatically tagged to the POS, and the previously assigned PO is released. 

The Tracking ID and Serial Number associated with the previous PO will also be released.  

After the new PO is received, the previously allocated Serial Number is released back to inventory, and a new Serial Number and Tracking ID are allocated as shown below. 

Reassigning the Previous PO 

If you want to assign the previous PO again, first click Release PO to release the currently assigned PO.  

Then click Assign PO, select the appropriate Distributor and Purchase Order, and click Save

Exchanging a Serial Number 

If you exchange the allocated Serial Number with another Serial Number, the new Serial Number is associated with the PO that is assigned to the POS at that time. The PO association is updated automatically based on the current assignment. 

Example 

Select Serial option from 3 dot menu in the POS page. 

Select Exchange from Action drop down and select the serial number to which you want to exchange and save. 

Now as the PO gets changed, the serial number also gets changed. 

The New PO gets attached with the serial numbers also. 

  1. Remove automated messages from inbox 

The message icon count has been updated to display the cumulative count of unread messages. Previously, clicking the message icon reset the universal count to zero, even when unread messages were still available. With this update, the universal count now reflects the total number of unread messages across the inbox, providing a more accurate view of pending messages. 

  1. Marcone SSB For Purchase Order  

SB (Self-Service Branch) is a specific warehouse/location option provided by Marcone for eligible customers. Instead of shipping a PO to a regular Marcone location, the order is placed against the customer’s designated SSB warehouse. 

How it is used for a Purchase Order 

In ServiceWorks, when creating a PO for Marcone

  1. Select Marcone as the distributor.  
  1. Select SSB (Self-Service Branch) as the ordering option.  
  1. Enter the customer’s SSB Warehouse ID/Number. This number is specific to the customer’s Marcone account.  
  1. Continue with the normal PO process, including selecting the required products and quantities.  
  1. ServiceWorks uses the configured warehouse ID to identify the correct SSB location when placing the order with Marcone.  

Example: If a customer’s SSB warehouse ID is 201, that ID is configured for the customer’s Marcone account. When a PO is created for that customer, the order is directed to SSB warehouse 201 rather than a standard Marcone location. 

Important setup requirement 

The customer must provide the SSB Warehouse ID along with their Marcone account credentials during setup. If the warehouse ID is unknown, it can potentially be identified from the Marcone ordering page by selecting the SSB location and inspecting the page element that contains the warehouse ID. 

In short: Marcone SSB allows a customer to place a Purchase Order through ServiceWorks and have it associated with their specific Marcone Self-Service Branch/warehouse. 

Bottom of Form 

Enhancements done in the Integration Part 

  1. Quo Integration – Integrated Text Messaging Enhancement 

A new Quo integration has been introduced to provide integrated text messaging capabilities within the application. Users can now view incoming and outgoing text messages through a dedicated Integrated Text tab and access message details directly from the interface. 

  1. Warranty flag added in LG Dispatch Ticket Detail 

             Warranty flag for LG tickets is now available. 

Warranty Flags and their Descriptions:  

  1. AHS DispatchMe Mapping 

The AHS DispatchMe Mapping enhancement improves how job, warranty, product, and billing information is mapped from AHS into ServiceWorks.  

The Problem Description in the DispatchMe Ticket is coming in the Job Description part in the Job in ServiceWorks.  

When the Warranty Status is Active, the is Job Type mapped as OEM Warranty in ServiceWorks. 

The warranty coverage details are added to the Job Notes.  

Unit links and knowledge base all are mapped as clickable links.  

Labour Expiration date, and warranty dates mapped to the corresponding ServiceWorks fields.  

Part Billing and Labor Billing information is mapped. 

The integration also maps Brand, Product Type as Product Details, Model number, 

  1. Comprehensive Data Mapping & Integration Specification 

Table of Contents 

A. Executive Summary 

B. Provider Inbound Mappings to Common Model 

1. NewLeaf Models Mapping 

2. ORHP Models Mapping 

C. Target Mapping: Common Model to PostNewJobData 

D. System Defaults & Generated Metadata 

1. Execution Metadata & Timestamps 

2. Populated Child Collections 

E. Unmapped Property Audit 

1. Unmapped Source Properties 

2. Unassigned Target Collections (PostNewJobData) 

  1. Executive Summary 

This document outlines the complete data lineage for service job ingestion. The system ingests payload structures from multiple dispatch providers (NewLeaf, ORHP, DispatchMe), normalizes them into a unified intermediate structure (CommonJobInputModel), and finally maps them to the system target entity (PostNewJobData). 

  1. Provider Inbound Mappings to Common Model 

1. NewLeaf Models Mapping 

(Applies to NewLeafServiceOrderModel and NewLeafServiceModel) 

Mapped Fields 

Source Property (NewLeaf) Intermediate Target (CommonJobInputModel) Mapping Rule / Notes 
CompanyId CompanyId Direct assignment. 
AssociationId AssociationId Direct assignment. 
ServiceOrderNumber DispatchNumber Primary order reference number. 
Contract ServiceContractNumber Service contract identifier. 
DealerGroupName Dealer Retailer/Dealer group name. 
CustomerFirstName FirstName Customer first name. 
CustomerLastName LastName Customer last name. 
PrimaryPhone ContactPhone Primary contact number. 
CustomerEmail ContactEmail Customer email. 
AddressLine1 Address Street address. 
City City City name. 
State State State code. 
ZipCode Zip Zip / Postal code. 
Manufacturer Brand Appliance manufacturer. 
ModelNumber ModelNumber Appliance model number. 
ProductSerialNumber SerialNumber Appliance serial number. 
ProductPurchaseDate DateOfPurchase Fallback to DateTime.UtcNow if empty/null. 
MfwExpirationDate WarrantyExpirationDate Expiration date timestamp. 
MfwCoverage IsWarranty Evaluated: true if equals “yes” / “YES”. 
UnderMFGLimitedCoverage IsOemWarranty Evaluated: true if IsWarranty is true AND value equals “yes” / “YES”. 
FailureDescription IssueDescription Summary of issue/failure. 
CoverageDescription, Status, Category CoverageDetailsNotes, WarrantyCoveragePlan Formatted string (API Method)
CoverageDescription, PolicySKU CoverageDetailsNotes, WarrantyCoveragePlan Formatted string (UI Method)
Hardcoded Value ProviderType Set to “NewLeaf”. 
Hardcoded Value ProductFamily Set to “Appliance”. 

 

  1. ORHP Models Mapping 

(Applies to ORHPEmailModel and ORHPEmailDataModel) 

Mapped Fields 

Source Property (ORHP) Intermediate Target (CommonJobInputModel) Mapping Rule / Notes 
CompanyId CompanyId Direct assignment. 
AssociationId AssociationId Direct assignment. 
WorkOrderNumber DispatchNumber Work order reference. 
FirstName / CallerName FirstName Prefers FirstName, falls back to CallerName. 
LastName LastName Customer last name. 
Phone ContactPhone Contact phone number. 
AddressLine1 Address Street address. 
City City City. 
State State State. 
ZipCode Zip Zip code. 
Brand Brand Product brand. 
ProductType ProductType Specific product type. 
ModelNumber ModelNumber Model number. 
SerialNumber SerialNumber Serial number. 
TradeCallFee PartsBilling Financial trade fee amount. 
PreferredDate PreferredDate Requested date. 
PreferredTime PreferredTime Requested time. 
CoverageStatus ServiceContractNumber Primary coverage status. 
EffectiveDate IsWarranty Evaluated: true if EffectiveDate + 1 year > Today. 
IssueDescription / Symptoms / Issue IssueDescription Evaluates IssueDescription -> Symptoms -> Issue. 
PlanVersion, CoverageStatus, Options CoverageDetailsNotes Formatted string (API Method)
CoverageStatus, AuthorizationLimit CoverageDetailsNotes Formatted string (UI Method)
Hardcoded Value ProviderType Set to “ORHP”. 
Hardcoded Value ProductFamily Set to “Appliance”. 
Hardcoded Value IsOemWarranty Set to false. 

 

  1. American Home Shield DispatchMe Models Mapping 

(Applies to DispatchMeModel and DispatchMeEmailDataModel) 

Mapped Fields 

Source Property (DispatchMe) Intermediate Target (CommonJobInputModel) Mapping Rule / Notes 
CompanyId CompanyId Direct assignment. 
AssociationId AssociationId Direct assignment. 
Company / Source ProviderType Derived from Company -> Source -> “DispatchMe”. 
TicketNumber DispatchNumber Falls back to JSON Job.DispatchConfirmationNumber. 
FirstName / CustomerName FirstName Prefers FirstName, falls back to CustomerName. 
LastName LastName Customer last name. 
Phone ContactPhone Primary phone. 
Email ContactEmail Customer email. 
AddressLine1 Address Street address. 
City City City. 
State State State. 
ZipCode Zip Zip code. 
Brand Brand Brand name. 
ModelNumber / ModelName ModelNumber Evaluates ModelNumber -> ModelName -> JSON Product.ModelNumber. 
SerialNumber SerialNumber Falls back to JSON Product.SerialNumber. 
ProductType ProductType Product category details. 
ProblemDescription / ProblemFullText IssueDescription Prefers ProblemDescription, falls back to ProblemFullText. 
UnitHistory UnitHistoryUrl External link string. 
KnowledgeBase KnowledgeBaseUrl External link string. 
Date PreferredDate Preferred calendar date. 
WarrantyStatus IsWarranty true if active or if JSON Product.MfgWarranty == “Yes”. 
WarrantyStatus IsOemWarranty true if active or if JSON Product.MfgWarranty == “Yes”. 
PartsWarranty / ServiceWarranty IsPartsWarrantyOnly true if PartsWarranty is active AND ServiceWarranty is not active. 
PartsWarranty / ServiceWarranty PartsBillingDate, LaborBillingDate Parsed as dates; falls back to JSON Contract.ExpirationDate. 
ObjectAsJson Dynamic Fields Extracted keys: Job.VendorId, Contract.CoveragePlanName, Coverage.AdditionalProvisions, Payment.Total, Payment.Paid, Contract.ContractId, Links.AuthorizationLink. 

 

C. Target Mapping: Common Model to PostNewJobData 

This table outlines how the unified CommonJobInputModel maps to the final destination entity (PostNewJobData). 

Target Property (PostNewJobData) Source Property / Expression Business Logic / Rules 
DispatchNumber input.DispatchNumber Primary dispatch identifier. 
serviceBenchId input.DispatchNumber Secondary service bench identifier duplicate. 
IssueDescription input.IssueDescription Cleaned short description of problem. 
Note Composite Function Formatted string containing CoverageDetailsNotes, UnitHistoryUrl, and KnowledgeBaseUrl. 
ServiceContractNumber input.ServiceContractNumber Contract or warranty reference. 
CompanyName input.CompanyName Defaults to string.Empty for third-party providers. 
ThirdPartyApiType input.ProviderType Defaults to “DispatchMe” if unassigned. 
CompanyId input.CompanyId Tenant ID. 
AssociationId input.AssociationId Association ID. 
FirstName input.FirstName Customer first name. 
LastName input.LastName Customer last name. 
ContactPhone input.ContactPhone Primary contact number. 
ContactEmail input.ContactEmail Primary email address. 
Address input.Address Street location address. 
Zip input.Zip Zip code. 
customerAddressCity input.City Customer city. 
customerAddressState input.State Customer state. 
Brandname input.Brand Primary brand string. 
Brand input.Brand Secondary brand string. 
ModelNumber input.ModelNumber Model number. 
SerialNumber input.SerialNumber Serial number. 
Dealer input.Dealer Dealer or retail origin. 
ProductFamily input.ProductFamily Defaults to “Appliance”. 
ProductDetails input.ProductType Detailed product categorization. 
serviceBenchApplianceName input.ProductType Appliance category for ServiceBench integration. 
IsWarranty input.IsWarranty System warranty status flag. 
JobTypeId Expression Assigned 1 if input.IsOemWarranty == true, otherwise 0. 
DateOfPurchase input.DateOfPurchase Date of purchase timestamp. 
AuthorizationNumber input.AuthorizationNumber Pre-approval authorization reference. 
PartsBilling input.PartsBilling Financial amount allocated for parts. 
LaborBilling input.LaborBilling Set to null if IsPartsWarrantyOnly == true, otherwise maps labor amount. 
SelectedCalendarDate input.PreferredDate Preferred appointment calendar date. 
SelectedTime input.PreferredTime Preferred appointment time slot. 
SourceOfCallId Lookup Function Resolved dynamically via _IMD.GetCallSource(input.CompanyId) using input.ProviderType. 

 

D. System Defaults & Generated Metadata 

These fields are programmatically created inside the binding method during mapping and do not originate directly from provider payloads: 

  1. Execution Metadata & Timestamps 
  1. Populated Child Collections 
  1. lstNotes (GetNotes)
  1. notes: Contains combined job notes formatted string. 
  1. createUserName: “System Binder” 
  1. timeStamp: DateTime.UtcNow formatted as “yyyy-MM-dd HH:mm:ss” 
  1. SecBrandApplianceDetailList (SecBrandApplDtls)
  1. Populated conditionally when IsWarranty is true and valid model/serial/dispatch numbers exist. 
  1. Maps: ModelNumber, SerialNumber, IsWarranty, AuthorizationNumber, DispatchNumber, Group, WarrantyEnddate, LaborExpirationDate, AssociationId, IsActive = true. 
  1. ListAddressBookTicket (AddressBookTicketAll)
  1. Maps: FirstName, LastName, Email, Address, PrimaryPhone, ZipCode, IsParent = “Y”, CountryCode = “US”, IsActive = true. 

E. Unmapped Property Audit 

The following model properties exist within the inbound DTOs or destination entities but are not mapped within this specific binder pipeline: 

  1. Unmapped Source Properties 
  1. Unassigned Target Collections (PostNewJobData) 
  1. Duplicate Customer Handling for Auto-Accept Dispatch Jobs 

Improved customer matching for auto-accepted dispatch jobs received from ServiceBenchServicePowerNSALG and FAHW. ServiceWorks now performs customer searches in the following order to identify an existing customer before creating a new record: 

  1. Name + Phone + Email + Address 
  1. Name + Phone + Email 
  1. Phone + Email 
  1. Phone only 

Phone numbers and email addresses are also searched within the Address field to improve customer matching. This enhancement helps ServiceWorks identify existing customers more accurately and prevents unnecessary duplicate customer records when auto-accepting dispatch jobs from the supported integrations. 

Enhancements done in the Mobile App 

  1. Mobile App Role Switching Enhancement 

The mobile application has been enhanced to provide the same role-switching functionality available in the web application. 

Users can now easily switch between available roles directly from their profile in the mobile app. By tapping the logged-in user’s name or profile, users can access the role dropdown and select Switch to Admin or Switch to Billing

The selected role is applied successfully, allowing users to access the mobile application based on the permissions and functionality associated with that role. 

  1. Added Explanation of Service (EOS) in Route page Note section 

The Mobile App has been enhanced to introduce Explanation of Service (EOS) along with Customer Note, Job Note, and Trip Note, providing technicians with quick access to the most recent service explanation recorded for a job. 

A new EOS option is now available in the dropdown list within the Mobile App. When the user selects EOS, the application displays the last Explanation of Service added by the most recent technician

The previous EOS is also displayed directly on the Job page, along with the other job notes, making it easier for users to review important service information without navigating away from the job. 

  1. Return PO option in Mobile App 

A new Return PO option has been added to the Mobile App under Inventory Management, allowing users to return items from a Purchase Order (PO) to the distributor from whom the items were originally received. 

Users can now initiate a PO return directly from the Mobile App. Within PO Return, users can use the filter to select the distributor to whom the items need to be returned. 

When processing the return, the Disposition must be selected as “Return to Vendor”. This ensures that the selected PO items are correctly identified as items being returned to the respective distributor. The tracking ID is also there, by clicking it is showing Tracking Details of the Item as shown below. 

If you want to return any item, select the item and tap the ‘Return’ button. It will successfully return the part to the vendor. 

  1. Enhanced Parts Pick List Scan Pop-Up 

The Parts Pick List barcode scanning pop-up has been enhanced to display additional item and transfer information. 

When a user scans an Item # barcode on the Parts Pick List, the pop-up now provides more detailed information about the scanned item and the transfer destination. 

The pop-up displays: 

Item # – Identifies the scanned part. 

Transfer Location – Displays the location where the item is being transferred. 

This enhancement provides users with greater visibility and confirmation of the item and destination before proceeding with the transfer. 

  1. Core Part Creation and Distributor Return 

The Parts module has been enhanced to support the identification and return of core parts associated with distributor items.  

When adding a part for a distributor, users can now designate the part as having a core by selecting the “Has Core” checkbox in the Quantity & Pricing section and entering the applicable amount in the “Core Cost” field.    

Once the part is saved, two part records are created on the Part Detail page: 

The EXCR part represents the core associated with the original part and should be returned to the distributor after the applicable service or replacement process. 

Author

Exit mobile version