Updated August 10, 2023
Updated April 23, 2024 {globalId} to {field/globalId}
In this post you will find step by step instructions to help you embed a survey within an ArcGIS Dashboard. This is a commonly used used to support QA/QC and review workflows. The animation below illustrates what this could look like. In this dashboard, a list of mosquito spray exclusion requests is shown in the left panel. These requests are added through a separate online survey open to the public. A request review survey has been embedded in the right panel. As requests from the list are selected, the survey is automatically populated so the request can be reviewed and updated.
The above example provides a compact user experience for browsing and updating existing data. This same idea can be applied to many workflows, where one survey is used to submit jobs or requests of some sort, and a dashboard with an embedded survey is used to review the incoming information.
If you would like to give the above sample application a go, you can try it live:
In this scenario, you need two surveys targeting the same feature layer. One survey is used to submit requests, and the other to review them. The surveys share a common set of questions, but they are not exactly the same: the request review survey, for example, has an extra section to approve or deny the request. Generally, the surveys are also shared differently: the one to submit requests is shared with a group of people, even with the public, whereas the survey to review requests is shared with a smaller group.
Assuming that you already have the survey you want to embed into your dashboard ready to go, and that you are somewhat familiar with ArcGIS Dashboards, here is a step by step guide to get you going:
- Before we start, make sure your dashboard has a Map element and that the web map in it has a refresh rate set.
- In your ArcGIS dashboard, add a List element and configure it to target your survey layer. You can apply a filter to this list in case there are survey records you do not want to show. In our example above, a filter could help us hide any request that has been already been approved and closed. You can also use the sorting options in the List element to present the most relevant records at top of the list.
- Next, add an Embedded Content element.
- In the Data Options panel, first set the Type to Features and target your survey feature layer.
- Paste the URL of your survey web form into the URL property.
- Set the Maximum Features Displayed property to 1.
At this moment, a preview of your survey should be shown in the right panel. Next, we are going to modify the URL with some extra parameters to load content and adjust the look and feel. If you are not familiar with the Survey123 web app parameters, check out https://community.esri.com/groups/survey123/blog/2019/02/06/survey123-tricks-of-the-trade-web-form-u... and https://community.esri.com/groups/survey123/blog/2019/05/24/survey123-tricks-of-the-trade-editing-re...
- Right at the end of the URL you just pasted, add the following:
- ?mode=edit&globalId= If using a survey from ArcGIS Online
- &mode=edit&globalId= If using a survey from ArcGIS Enterprise. (This should include the portalUrl parameter before. Ex. https://survey123.arcgis.com/share/<itemID>?portalUrl=<portalUrl>&mode=edit&globalId= )
- Use the fields collection to add the GlobalID variable into your URL.
- Optionally, add the following parameters to hide the navigation bar and footer: &hide=footer,navbar
The following animation shows the last three steps.
Note (April 2024): In the most recent version of ArcGIS Dashboards, the GlobalID field is referenced as {field/globalId} instead of just {globalID}. Be aware!
- Save your changes and go back into the dashboard design.
At this moment you have the List, Map and Embedded Content elements in your dashboard, but they do not talk to each other. We are going to configure actions to make them work together.
- Open the List element configuration dialog and add a new filter action targeting the Embedded Content element
- Optionally, you can also configure actions in the List element to zoom to and flash the selected record.
- From the design preview, select an element from your list and wait for the embedded survey to load the corresponding record. Now you can make changes to the record and submit!
Common problems
If you get a "Leave site?" dialog every time you try to load a new survey into your dashhoard, add leaveDialog into the hide parameter of your survey url. For example, from &hide=footer,navbar to &hide=footer,navbar,leaveDialog
Limitations
The filter action in the Embedded Content element can also be triggered from a selection in the map. However, it is not possible to configure your dashboard to trigger the filter from both the Map and List elements. That is, you need to choose either to load a survey from a selection in the list or from a selection in the map, but you cannot do both.
The Survey123 web app does not support editing surveys with repeats. You will get an error when attempting to initialize the form if it includes a repeat.