Configure launch actions for Indoors apps

Available for an ArcGIS organization licensed with the Indoors extension.

ArcGIS Indoors includes support for launch actions to third-party apps directly from the info panel in Indoor Viewer and the info card in ArcGIS Indoors for iOS and ArcGIS Indoors for Android. These launch actions enable Indoors organizations to easily integrate information related to Indoors items or items available in additional work order, asset, and other point of interest layers that may be included in the Indoors map, from other business systems by allowing users of the Indoors apps to directly launch third-party apps. A launch action can be configured to open a web page or native mobile app to allow people to submit incidents or requests against a selected item in Indoors and automatically populate form fields with information from the item or open the web page or mobile app directly to information related to the selected item in Indoors.

The ability to include launch actions makes it easy for Indoors app users to report against assets and other items in the Indoors map and find additional details related to these items without getting lost in the transition between apps supporting multiple business systems. This is available through the configuration of the APP_LAUNCH_ACTIONS parameter in the Indoors Configuration table in ArcGIS Pro.

When preparing your Indoors database for sharing web maps and mobile map packages for use in the Indoors apps, you may optionally provide launch actions for specific layers and/or categories by including a properly formatted JSON string in the APP_LAUCH_ACTIONS configuration parameter before sharing the web map or mobile map package.

Note:

If people in your organization that use Viewer don’t use the native Indoors mobile apps, you may choose to ignore this step and use the configuration panel provided by Viewer to configure the launch actions to be included in the instance of the configurable ArcGIS Indoors app. If you intend for people in your organization to use both Viewer and Indoors mobile apps, you may choose to take advantage of this configuration panel in Viewer by first configuring the launch actions in the web app and copy the resultant JSON string into the APP_LAUNCH_ACTIONS configuration parameter before sharing the mobile map package with the ArcGIS Enterprise portal.

JSON syntax

Launch actions are enabled by including a properly configured JSON string in the APP_LAUNCH_ACTIONS parameter in the Indoors Configuration table in ArcGIS Pro. When defining launch actions, you can apply these actions to either individual layers in your map and individual categories and sub-categories as defined in you Categories table.

The syntax for this JSON string is the following:

JSON keyDescription

actions

A list of actions made available for select layers and/or categories.

label

The name of a single action that is displayed in the list of available actions.

If only a single action is configured for use with the Indoors web map or mobile map package, a generic icon for an action is displayed. If multiple actions are configured, a “more” icon is displayed and the list of available actions will be available in a drop-down menu when the button is selected in the apps.

url

A properly formatted launch URL.

layers

A list of map layers to which the action will apply.

categories

A list of configured categories to which the action will apply.

Example:
{
  "actions": [
    {
      "label": "Fill out survey",
      "url": " https://survey123.arcgis.com/share/surveyformGUID?portalUrl=https://myportal.myorg.com/portal?field:room={Units.NAME}",
      "layers": [
        "Units",
        "Levels"
      ],
      "categories": [
        "Places + Things",
        "Fire Extinguisher"
      ]
    },
    {
      "label": "Report Incident",
      "url": "https://servicenow.com/report?username={user.username}",
      "layers": ["*"],
      "categories": ["*"]
    },
    {
      "label": "Make Request",
      "url": "https://servicenow.com/report?username={user.username}&room={Units.NAME}",
      "layers": ["Units"]
    }
  ]
}

You will notice in this example that there are three separate actions listed. The first category, “Fill out survey”, has been limited to only selected items that reside within the Units or Levels layers or the Places + Things level 1 category or the Fire Extinguisher level 2 sub-category. This is an important distinction as Indoors provides you with the flexibility to limit the integration of an action to very specific types of items. This is valuable when a given system is intended to support specific types of assets or activities.

The second action, “Report Incident”, includes key terms for all layers and all categories in its definition. Including the “*” term in the layers and categories list ensures that any item in any layer or category, when selected in the Indoors apps, supports this action type from the info panel.

The third action, “Make Request”, has been limited to items from a single layer and has no associated categories.

Note:
  • Actions may be assigned to either layers or categories or both. It's not required that an action be assigned to both a layer and a category. Assigning an action to a layer that is represented by categories will apply the action to all categories and sub-categories configured against that layer.
  • Actions assigned to a level 1 category are automatically available to its associated level 2 categories and don’t need to be replicated in the categories list. Actions assigned to a level 2 sub-category are only available to items in that specific sub-category.
  • Actions with no layers or categories configured will not be displayed in the Indoors apps.

URL syntax

Launch actions are enabled by URLs, and the syntax must follow common URL conventions. For example, special characters in the arguments must be URL encoded, and the argument or value pairs must be separated with standard URL conventions.

For Indoors, values must be contained in curly brackets and match the following syntax:

?arg={Layer.Attribute}&arg={Attribute}

Note:

The layer is optional and, if not included, defaults to the currently selected item in Indoors. Many use cases require passing attributes from a different layer in the map or scene. This is supported with the layer operator. Arguments and values are not case sensitive.

See the following samples:

Single value

?Name={KNOWNAS}&building={facility_name}&space={Units.Name}

Multiple values

?center={shape.y},{shape.x}

Value from another feature class

&site={FACILITIES.SITE_ID}

Pass value to a specific field

&field:room={units.name}

Supported argument and value formats

The launch action URL can support either passing a value with a generic argument (field={Units.UNIT_ID}) or pointing the value at a specific field in the Survey123 form (field:room={Units.Name}).

In addition, multiple arguments can be listed together, and text can be entered among them.

Example

https://<MySurveyURL>?Name={knownas}&office=office%3A%20{units.NAME}&loc={shape.x},{shape.y},{shape.z}

Integration with Survey123

Survey123 is included with your Indoors license. In the absence of any other supported work order or ticketing system, launch actions can be configured to use Survey123.

To customize the experience of the action button with Survey123, append valid argument or value pairs onto the URL.

Example: Base URL for default behavior

https://survey123.arcgis.com/share/surveyformGUID?portalUrl=https://myportal.myorg.com/portal

Example: Custom

This example overrides the default room input with the name field from the Units layer.

https://survey123.arcgis.com/share/surveyformGUID?portalUrl=https://myportal.myorg.com/portal&field:room={Units.NAME}

Example: Launch the Survey123 native app on mobile devices

"url": "arcgis-survey123://?itemID=surveyformGUID&portalUrl=https://myportal.myorg.com/portal&field:comments={Units.NAME}"

Note:

Be careful when using URLs specific to native mobile apps when configuring launch actions for use in Viewer as these are not supported for desktop users. Using a native app's URL when defining launch actions should be limited to workflows supporting the native Indoors apps or Viewer accessed from a mobile browser.

Integration with third-party systems

The action button can also be configured to open a third-party URL and pass attribute values to it, provided that the third-party system supports URL configurable forms or parameters to drive actions upon launch. In this case, use a URL that calls the system in the Indoors app configuration with an appropriate URL for the integrated system. Some common uses are linking to third-party work order management systems or asset management systems.

Consider the following when working with third-party systems:

  • The field: operator may be different.
  • Web forms that support URL arguments may require additional configuration.
  • Consult the integrated system vendor for details on whether and how this works.

Note:

In some cases, depending on the business system being used, some characters may not be supported, such as the # or + characters.

Integration with work order management systems

Indoors supports launching external asset and work order management systems. The action button on the info panel Viewer and info card in Indoors mobile apps can be configured to open either a web form or third-party native app to be used to record new information such as incidents or requests associated with a space, asset, or other item in Indoors or open an existing work order in a third-party work order management app.

Indoors supports passing work order and Indoors layer attributes as a query string in the URL. The syntax must follow the URL/URI schema for Indoors and work order app system to support launching.

The attribute value must be enclosed in curly brackets and match the following syntax:

?arg={Work order Attribute}&arg={Layer.Attribute}

The following are additional syntax samples:

Single value from work order layer

?arg={workorderid}

Multiple values from work order layer

?arg={workorderid}&arg={priority}

Value from work order and Indoors layer

?arg={workorderid}&arg={Layer.Attribute}

ServiceNow URL

The following sample passes the work order number as a parameter and opens an existing work order:

https://<MyServerURL>/nav_to.do?uri=task.do?sysparm_query=number={workorderid}

See more examples of configuring launch actions for ServiceNow.

Set the launch action configuration string in the Indoors Configuration table

One or more URLs to third-party apps must be added to the Indoors Configuration table to expose the action button on the info card of Indoors for iOS or Indoors for Android. Viewer launch actions can be configured in the configuration panel, but if a valid configuration JSON string is contained in the Indoors Configuration table, the configuration panel uses that value as the default setting. The Indoors Configuration table is a stand-alone table in the ArcGIS Indoors Information Model. It must be included when you create the mobile map package for Indoors mobile apps, but it's optional for the web map for Viewer.

Complete the following steps to configure the launch action with one or more URLs in the Indoors Configuration table:

  1. In the Contents pane of ArcGIS Pro, right-click the Indoors Configuration table and click Open.

    The Indoors Configuration table view appears.

  2. Double-click the Config Value field for APP_LAUCH_ACTIONS (under Config Key) and set the JSON configuration string for your configured actions.
    Note:

    If APP_LAUCH_ACTIONS isn't set, the launch action button is disabled in the info card in Indoors for Android and Indoors for iOS.