Create App Extensions for the Field Service Mobile App
Create app extensions to let users pass data from the Field Service app to another app.
Required Editions
| Available in: both Salesforce Classic (not available in all orgs) and Lightning Experience |
| The Field Service core features, managed package, and mobile app are available in Enterprise, Unlimited, and Developer Editions. |
| To access the Field Service mobile app, users need the Field Service Mobile user license. |
| User Permissions Needed | |
|---|---|
| To create and modify App Extensions: | Customize Application |
| App Extension Type | Supported in Android | Supported in iOS |
|---|---|---|
| Android | Yes | No |
| iOS | No | Yes |
| Lightning Apps | Yes | Yes |
| Web apps | Yes | Yes |
| Flow | Yes | Yes |
To set up an app extension, follow the steps below.
- From Setup, enter Field Service Mobile Settings in the Quick Find box, then select Field Service Mobile Settings.
- Click Edit next to the mobile settings configuration that you want to create an app extension for.
- Under App Extensions, click Add.
-
Fill out the fields.
- Field Service Mobile Settings: Automatically populated. Represents the current Mobile Field Service Settings configuration.
- Type: A picklist of app extension types. The iOS and Android types will only show on their respective devices. Flow refers to a Flow (Setup | Process Automation | Flows) of the type Field Service Mobile Flow. Lightning App refers to an app that is exposed in Salesforce for Android or Salesforce for iOS (Setup | Mobile Apps | Salesforce | Salesforce Navigation).
- Label: The label as it appears to users in the app. The label isn’t localized automatically.
- Name: The extension’s name.
- Scoped To Object Types: The records from which a user can activate an app extension. Scoping an app extension to an object lets users activate that app extension from records of the specified type. The object names are entered as comma separated values and cannot include spaces. For example, to scope an extension to the Work Order object and the Service Appointment object, enter WorkOrder,ServiceAppointment. To create a global app extension so users can activate it from any record, leave this field blank.
- Launch Value: A launch value of "https://google.com" will launch a web browser on both iOS and Android. The value to use to launch the app or Flow. If type is Flow, then the launch value is the API name of the flow you want to use. If type is Lightning App, the launch value is the name of the tab in Salesforce for iOS and Salesforce for Android. The tab name represents a Lightning Component Tab and you can find the tab name in Setup | Salesforce Navigation. The launch values for types iOS, Android, and Lightning App support passing parameters.
Note Using a nickname in an app extension launch URL results in an error.
Note For Lightning App types: Salesforce for Android version 17.0 supports passing Lightning App parameters. Salesforce for iOS version 18.0 does not currently support passing parameters. To bypass this issue, use a type of iOS with a URL format of https://{orgURL}/lightning/n/{tab name}?params=... -
Click Save.
Note the Salesforce mobile app can launch and accept parameters for Visualforce pages exposed as a Lightning Page Tab. However, the Lightning Page Tab name can’t have any spaces in it.
Note The Salesforce app must be installed on iOS to display Lightning app extensions in the Actions launcher.
Note Open in Salesforce is available in iOS, but in Android, you need to create an Android app extension with the launch value of salesforce1://sObject/{!Id}/view
Passing Tokens Into the Launch Value
The launch value supports static URLs for web addresses, as well as dynamic values that can be used to pass contextual information to the other app in the form of tokens. These tokens can pass field information from any record that is visible on the Field Service app. For example, if the user is viewing a service appointment, the tokens can be used to pass the data from any field on that service appointment to the app extension. The basic format for these tokens is based on the names of the field, like so: {!Name}.
The field name is case sensitive and must match the field name exactly as it is defined on the object.
Values that aren't related to a record are called global variables. When you use a global variable in a token, use the format {!$User.email}.
| Supported Global Variables |
|---|
| Organization.id |
| User.displayName |
| User.email |
| User.firstName |
| User.id |
| User.language* |
| User.lastName |
| User.locale* |
| User.nickName |
| User.orgId |
| User.userName |

