Skip to content
Release: Australia · Updated: 2026-03-12 · Official documentation · View source

Allow agents to start traveling before their scheduled work hours

Support flexible work types by allowing agents to start traveling before their scheduled work hours. For example, you may want to add travel time outside of an agent's scheduled work hours in case bad weather suddenly increases travel time.

Before you begin

If you are an administrator, you can run a script and add travel time outside of work hours for all users.

Role required: wm_dispatcher, wm_manager, wm_admin, or admin

Procedure

  1. Navigate to All > Field Service.

  2. Do one of the following actions:

    • If you are a dispatcher, go to Dispatching > My Agents.
    • If you are a manager, go to Manager > My Team.
    • Select a user profile.
  3. To add or update user records, do one of the following.

OptionDescription
Add a new record for this user
  1. Click the Work Parameters tab.
  2. Click New.
  3. Click the Travel outside of work hours drop-down menu.
  4. Click Yes
  5. Click Submit.
Updated an existing record
  1. Click the Work Parameters tab.
  2. Double-click the Travel outside of work hours column.
  3. Click the new parameter.
  4. Click Save (Enter).
  1. To add travel time as work hours for all users, do the following:

    1. Navigate to System Definition > Scripts - Background

    2. In the Run Script window, add the script to include travel time as work hours for all users.

sndocs is an independent community mirror and is not affiliated with or endorsed by ServiceNow.

ServiceNow, the ServiceNow logo, Now, and other ServiceNow marks are trademarks and/or registered trademarks of ServiceNow, Inc., in the United States and/or other countries. Other company and product names may be trademarks of the respective companies with which they are associated.

© 2026 ServiceNow, Inc. All rights reserved.

Documentation content is redistributed under the Apache License 2.0 from the ServiceNowDocs repository.

OptionDescription
Add travel time as work hours for all users
  1. Add this script:

    createWorkParamsForAllAgents("yes");</p>
    </li>
    </ol>
    <p>function createWorkParamsForAllAgents(travelOutsideWorkHours) {
        var gr = new GlideRecord("sys_user_has_role");
        gr.addEncodedQuery("role=26c324ba1b32200096f9fbcd2c0713c2"); // fetching users having wm_agent role
        gr.query();
        gs.info("total work agents found: "+gr.getRowCount());
        var agentWorkParameter = {};</p>
    <pre><code>    while (gr.next()) {
            var userId = gr.getValue("user");
            if (!agentWorkParameter[userId]) {
                var wp = new GlideRecord("wm_agent_work_configuration");
                wp.initialize();
                wp.setValue("user",userId);
                wp.setValue("travel_outside_of_work_hours", travelOutsideWorkHours); // setting default value for travel_outside_of_work_hours
                wp.insert();
                agentWorkParameter[userId] = true;
            }
        }
    }
    
    1. Click Run Script.
Update travel time as work hours for all users
  1. Add this script:

    ``` updateWorkParamsForAgents("yes"); // param1: default travel outside work hours value

function updateWorkParamsForAgents(travelOutsideWorkHours) { var gr = new GlideRecord("wm_agent_work_configuration"); gr.query(); gs.info("total agent work parameters found: "+gr.getRowCount()); var updateCount = 0;

while (gr.next()) {
    var canTravelOutside = gr.getValue("travel_outside_of_work_hours");
    if ( canTravelOutside != travelOutsideWorkHours) {
        gr.setValue("travel_outside_of_work_hours", travelOutsideWorkHours);
        if (gr.update())
            updateCount ++;
    }
}
gs.info("total agent work parameters updated: "+updateCount);

} ```

  1. Click Run Script.