Skip to main content
注目のグループ

* Salesforce Field Service *

Welcome! This group is dedicated to your success with Salesforce Field Service. Join the conversation here to stay up to date on the product, learn best practices, and everything in between. Use this group to review resources, ask questions, help each other, and share experiences. --------------------------------------- This group is maintained and moderated by Salesforce employees. The content received in this group falls under the official Forward-Looking Statement: http://investor.salesforce.com/about-us/investor/forward-looking-statements/default.aspx

Hello everyone,  

 

We have a custom Service Appointment list view which is visible in the Field Service mobile app. No matter how I sort the list view on the desktop, the changes are not reflected in the Field Service mobile app. How can I sort this list based on a custom number field (priority) on the Service Appointment object? 

 

Thanks in advance. 

5 件の回答
  1. 8月24日 16:58

    Hi @Heiko Lindner yes that was my workoaround, becasuse Salesforce support said that is not posibble. Chronological order cannot be changed. Thanks. 

0/9000

Is there a way to modify the Service Appointment Popover? I found the side panel design, but not this one.  

Service Appointment Popover Layout

 

 

5 件の回答
  1. 昨日、8:33

    I'm checking with the team regarding the Schedule Start/End times why it's hardcoded and not derived from the fieldset. 

     

    You're right about the assigned resource that you can view it on the gantt but the popover can also be opened from the map and list where the resource data is not available.  

     

    I'll speak with the team and see if we can add settings to remove these fields, I can understand why it's not needed by some customers.

0/9000

Hello everyone,

 

As I understand it, users with a Contractor License do not have access to the SFS mobile app. The Contractor license is more a Salesforce Cloud Experience license. Can Contractor users be exposed to Work Plans and Service Appointments?

6 件の回答
  1. 2022年10月19日 9:12
0/9000

Hi everyone,

I am trying to remove/replace a button (specifically the native Add Products Consumed / Products tab action) from the Salesforce Field Service (SFS) Mobile App, but none of my changes are taking effect on the mobile app.   

Here is what I have tried so far:   

  1. Page Layouts: I edited the assigned Work Order and Service Appointment page layouts via Object Manager, removed the related action/buttons from the Salesforce Mobile and Lightning Experience Actions section, and saved.
  2. Salesforce Article Workaround: Followed the official SF documentation (removing Products Consumed and Required Products related lists from Page Layouts), but the button/tab still appears on the mobile app.
  3. Field Service Mobile Settings: Checked Setup > Field Service Mobile Settings, but we are currently using the default system configuration (no custom Mobile Setting record exists yet, and I would prefer not creating a new one if possible).
  4. Mobile Cache: Forced a full Data Sync and cleared cached metadata on the technician's mobile device (and re-logged).

Questions: 

 

  1. Is there a specific hidden dependency or Page Layout assignment required to override standard mobile actions on Service Appointments / Work Orders?
  2. Can native SFS mobile buttons/tabs be hidden or swapped without creating a custom Field Service Mobile Setting record?
  3. Has anyone successfully removed/replaced this button recently on the SFS Mobile App?

Any advice or pointers would be greatly appreciated!

Thanks in advance!    @* Salesforce Field Service * 

2 件の回答
  1. Heiko Lindner (Privat) Forum Ambassador
    8月17日 14:21

    hey @Simbil Nessek

    sometimes you have to logout and re-login again to see page layout changes. Most of the time, you have to remove the actions and related lists from the classic layouts. If the actions or buttons still visible, you can remove permissions of objects and/ or fields. If you don't need the inventory on your mobile, you can remove the read on the location field on service resource records of the current users. 

    In addition, you can use the Field Service Mobile App Builder to create you own configuration without the inventory tab.

0/9000

Hello everyone, good morning! 

 

I'm using the Overlapping Flow, but I've noticed that when the overlap is caused by an absence, the flow doesn't run. Does anyone know if this is expected behavior or if there is any configuration required for it to work with absences?

I've already handled the logic in the Flow. We have the Absence Type

variable available in the Flow, so if the overlap is caused by an absence, I would like the Flow to execute as well. However, it only runs when the overlap is caused by another appointment. 

 

Thanks in advance!  

 

@* Salesforce Field Service *

6 件の回答
  1. 8月17日 12:08

    Hi Raj, I’ve uploaded screenshots of the part of the flow I customized; it works for Service Appointments, but it doesn't follow the flow for Absences 

    Hi Raj, I’ve uploaded screenshots of the part of the flow I customized; it works for Service Appointments, but it doesn't follow the flow for Absences

     

     

    Captura de tela 2026-08-17 090542.png

     

     

    Captura de tela 2026-08-17 090532.png

     

     

    Captura de tela 2026-08-17 090521.png

     

     

0/9000

Our business has Service resources at Country Level an that is the lowest level of service territory hierarchy we follow. Shall we implement the same in FSL, what I understand is: 

 

1. Salesforce recommends to setup territories at much lower level. 

2. Which helps in better optimization to keep the less resources per territory. 

3. Setting up at country level will have greater impact on time zones and job happening at a particular site. 

 

What are the other downsides of setting up service resources at country level? 

 

What time zone should I setup when defining Service territory at Country Level? 

 

Thanks. 

 

 

3 件の回答
  1. 7月22日 3:37

    Hey Michel, 

     

    Beyond your three points, here are some additional downsides of doing country-level territories 

     

    1. Poor optimizer performance: Large geographic scope inflates travel time estimates and produces unbalanced schedules
    2. SLA risk: Hard to guarantee response time SLAs when the nearest resource could be hundreds of miles away
    3. Operating hours conflict: A single territory can't accurately represent multiple time zones
    4. Weak reporting: No regional granularity to identify underperforming areas

    For Time Zone: Set it to your primary operations hub for that country. If the country spans multiple time zones, a single choice will cause scheduling inaccuracies. This is the strongest argument for splitting into sub-territories by region/time zone, which also resolves most of the issues above. Good luck!

0/9000

Hi, 

 

I have a Service Appointment in Greenville, SC. I have two techs one in Atlanta, GA and the other one is in Schenectady, NY. When I use "Candidates" option, using my custom Scheduling policy where Minimize Travel carry the high weightage compared to ASAP, first it showed the tech from Atlanta , GA which is the closest to the appointment. I switched the addresses of the techs, but this time still it showed the tech who had Atlanta GA earlier but now he has Schenectady as his address. Shouldn't it look at the resource which is closest? 

 

Thanks, 

Michel

6 件の回答
  1. 8月10日 4:17

    Gday, 

     

    Minimize travel doesn' work that way :) 

     

    Minimize travel looks at the team's collective travel time on a given day. It then prioritizes who ever has the least amount of travel on, NOT which is the shortest distance. 

     

    TECH A = 5 minutes to the job + already doing 60 minutes of other travel 

    TECH B = 50 minutes from job + no other travel 

     

    Minimize travel actually books on TECH B based off the policy.

0/9000

We want to use the mileage in FSL to assign a cost. Is there anything in FSL currently to do this? I have had a look at the Assigned resource? Are there definitions for these fields and whether they are in Miles or KM and Minutes, hours or seconds?

 

EstimatedTravelTime FSL__calculated_duration__c  FSL__EstimatedTravelDistanceFrom__c  FSL__EstimatedTravelDistanceTo__c  FSL__EstimatedTravelTimeFrom__c

4 件の回答
  1. 8月13日 22:42

     FSL__calculated_duration__c  = SA.FSL__Sheduled_Duration * SR.Efficiency__c

0/9000

Hi everyone,

I’m working on a custom LWC in Salesforce Field Service Mobile and have two related requirements.

1. Trigger LWC JavaScript when Standard Data Sync runs

I have a Work Order in Field Service, and based on that Work Order I need to fetch dynamic data from an external API.

My current flow is roughly:

Work Order → LWC → External API → Build data packet → Download packet → Store in IndexedDB

I would like to know if there is any supported way to trigger/execute my LWC JavaScript automatically when Field Service Mobile’s standard offline data sync runs or completes.

For example:

Field Service Standard Data Sync

          ↓

      Work Order synced

          ↓

   Trigger my LWC JS

          ↓

 Start external API process

Is there a supported Field Service Mobile event, hook, callback, or extension point that allows an LWC JavaScript process to be triggered by the standard data sync?

I am specifically looking for a solution using LWC/JavaScript, without requiring a native SDK if possible.

 

2. Continue processing when the user closes Field Service Mobile

The external API takes some time to build the data packet. Once the packet is ready, my LWC downloads it and stores it in IndexedDB for offline use.

The problem is that the API processing/download can take a significant amount of time.

Ideally I want:

User starts sync

      ↓

API starts building packet

      ↓

User closes/minimizes Field Service Mobile

      ↓

API continues processing

      ↓

Packet becomes available

      ↓

Packet is downloaded/stored

      ↓

User opens Field Service again

      ↓

LWC detects that the data is ready

I understand that an LWC/Web Worker cannot necessarily remain alive after the mobile application is completely closed, but I’m wondering if there is any Field Service Mobile-specific mechanism that can support this use case.

I have considered using a Web Worker for the API polling/download process, but I understand that a Web Worker is still subject to the mobile WebView lifecycle and may be terminated when the application is closed or suspended.

Questions

  1. Is there a supported way to hook into Field Service Mobile Standard Data Sync from an LWC?
  2. Can an LWC JavaScript process be triggered automatically when offline sync completes?
  3. Is there any supported mechanism for executing JavaScript/background processing when the Field Service Mobile app is closed?
  4. Can a Web Worker be used reliably for this scenario?
  5. Is there a recommended Field Service Mobile architecture for downloading external API data into IndexedDB based on Work Order data?

Any guidance or examples would be greatly appreciated.

 

@* Salesforce Developers * @* Salesforce Field Service * 

1 件の回答
  1. Heiko Lindner (Privat) Forum Ambassador
    8月13日 5:43

    To be honest I cannot anwser these questions. I assume it's not possible. The question is, what is your  business requirement to do it?  

    There is an option in field service mobile settings to automatically change the status of an appointment. Maybe this can be used to trigger your automations.

0/9000

We are using Enhanced Scheduling and Optimization and are trying to make customer appointments schedule earlier within their respective arrival windows, ahead of most non-customer work when feasible.  

 

Our customer appointment windows are generally: 

  • 8:00 AM to 12:00 PM
  • 12:30 PM to 5:00 PM
  • 8:00 AM to 5:00 PM

 

For example, if a customer has an 8:00 AM to 12:00 PM window, we would prefer the optimizer to schedule the appointment closer to 8:00 AM rather than 12:00 PM, provided the earlier placement is feasible. 

  

The business reason is that non-customer work is generally more flexible. If an emergency such as a gas leak or damaged gas line occurs later in the day, we would like more customer appointments to have already been completed, allowing non-customer work to move later or remain unscheduled. 

  

It would also improve customer satisfaction because customers would be less likely to wait until the end of their appointment windows while technicians perform non-customer-facing work, such as reading meters or disconnecting service. 

  

We understand that prioritizing customer appointments in this way will probably increase overall travel, may cause technicians to backtrack when returning to non-customer work, and could reduce the total amount of work scheduled. Management understands and accepts those potential tradeoffs. We are specifically looking for technical solutions that will favor earlier customer appointments, even when the resulting schedule is not the most travel-efficient option. 

  

What we have tried

 

We created a customer-specific ASAP objective using a Service Appointment relevance group based on IsCustomerAppointment__c = TRUE. 

  

Our current pilot policy includes approximately: 

 

  • Customer Appointment ASAP: 90
  • General ASAP: 10
  • Same Site: 15
  • Preferred Resource: 10
  • Minimize Travel: 5

 

We have significantly increased the customer-specific ASAP weight and reduced Minimize Travel, but customer appointments are still frequently scheduled near the end of their arrival windows, after several non-customer appointments. 

  

In a sandbox, we also created an additional Boolean formula field named IsNotCustomerAppointment__c, which identifies non-customer appointments. We then created a separate ASAP objective using that field in a relevance group and assigned the non-customer ASAP objective a much lower weight than the customer-specific ASAP objective. The intention was to give customer appointments a much stronger ASAP preference while still giving non-customer work some scheduling importance. We did not see significant improvement from that configuration either. 

  

Our understanding is that when multiple appointments are evaluated during optimization, the ASAP objective scores candidate times across a range of up to 30 days. On that scale, the scoring difference between scheduling an appointment at 8:00 AM and 12:00 PM is extremely small. Even a low-weight objective such as Minimize Travel can outweigh several hours of earlier placement. 

  

We are also testing a Match Time rule that prevents a customer appointment’s Scheduled End (SchedEndTime) from being later than 30 minutes before ArrivalWindowEndTime. This eliminates some very late placements, but because it is a rule, it is a hard constraint rather than a preference. We are concerned that tightening it further could cause otherwise schedulable customer appointments to remain unscheduled. 

  

Dynamic Priority appears useful for determining which appointments are included when capacity is limited, but we have not found evidence that it controls where an appointment is placed within its arrival window. Based on our understanding and testing, it primarily influences which Service Appointments make it onto the Gantt, not the chronological order in which the scheduled appointments are placed. 

  

Questions

 

  1. Has anyone successfully configured Global or In-Day Optimization to prefer customer appointments earlier within their individual arrival windows?
  2. Is there an out-of-the-box objective, work rule, scheduling-policy configuration, or ESO setting that we may have overlooked?
  3. Can the ASAP objective’s 30-day scoring range be shortened or customized, perhaps through Salesforce Support?
  4. Has anyone successfully used multiple customer-specific ASAP objectives to amplify the ASAP score beyond the normal maximum weight of 100?
  5. Is the FSL__Service_Goal__c Custom Objective record type supported for customer configuration? When we attempt to create one, Salesforce requires FSL__Custom_Logic_Data__c and FSL__Custom_Type__c, but we cannot find documentation explaining the supported format or authoring process.
  6. If Custom Objectives are supported, can they evaluate each hypothetical candidate’s scheduled start time? We would like to calculate something similar to:

 

WindowPosition = (CandidateStart - ArrivalWindowStartTime) / (ArrivalWindowEndTime - ArrivalWindowStartTime)

  

A candidate at the beginning of the window would receive the best score, while a candidate at the end would receive the worst score. The important requirement is access to the optimizer’s hypothetical CandidateStart, not the Service Appointment’s currently persisted SchedStartTime. 

 

  1. Are there other successful approaches, such as staged optimization, separate policies, tighter preferred subwindows, or another method that favors an earlier placement while still allowing a later placement when no reasonable early option is available?

 

We would appreciate hearing from anyone who has solved a similar requirement, especially with Enhanced Scheduling and Optimization. We are open to an out-of-the-box configuration, a Salesforce-supported custom objective, or another practical design. 

  

We recognize the travel and productivity tradeoffs, so our primary question is not whether customer-first sequencing is the most efficient routing strategy. We are looking for ways to configure or extend the optimizer to accomplish this stated business requirement. 

2 件の回答
  1. Heiko Lindner (Privat) Forum Ambassador
    8月13日 5:35

    Hey @Mark Pennel lot of questions and I mean there is not that one option, rule or objective. You have to combine, play a bit and test. You could also think about the option to book over lower priority  "Prioritize Field Service Appointments for Optimization" details you find here

     

     

0/9000