Survey123 Edit Mode - Custom URL Scheme

11-18-2019 01:31 PM
Status: Open
New Contributor III

The ability to have your own custom URL Scheme when creating records is one of the most powerful components of Survey123! With the ability to now edit existing records within Point, Polyline and Polygon feature classes it would be beneficial to extend this functionality to be able to pass field attributes when Editing.

Currently the largest limitations of Edit Mode are that you cannot have pre-populated answers, capture start and end times and pass attributes into the form. Tackling the ability to pass attributes would address all of these issues and greatly increase the functionality of this mode.

The most critical drawback of not having the ability to pass attributes in Edit Mode is in my opinion, that you cannot pass in Coordinates and automatically set the location of Geopoint questions. What lead me to post this idea was testing the ability for Survey123 to simultaneously create a record in one table and edit a record in a related table within the same database at the same time. In my testing this worked, but without the ability to pass attributes within the url scheme I cannot automatically set the location of the record that is being created within the repeat of the survey.

If people are curious as to how to set this up I can post a more detailed How-To on how this works. In short your create a File Geodatabase in ArcMap/ArcPro with two tables or features classes, which are related using GlobalID and GUID and create a relationship between them. Then upload the database to AGOL. In Survey123 Connect you create a survey pointed to the first feature class or table within that Geodatabase via the form_id and submission_url within the settings. Within that survey you will create a repeat with the name field having the same name as the second feature class or table. You can then use the following guide to setup the URL to be in Edit Mode and when you hit submit the survey will edit the record in the first dataset and create a record in the second dataset. 




I just try to set a field: parameter with the edit mode and yes there is a limitation. url could overpass the feature service initial value called. it is a good and usefull idea.


I agree this would be helpful. As another example:

I have a map and list of records from Survey123 in a Dashboard. There are some cases where a person who submitted records might want to make the same set of edits on different records from links in the dashboard - for example set a number field to zero, change the status, change some things back to defaults, and then resubmit. 


I would love to have this feature too. Here is my example.

I have a featureclass. The user needs to add a point (fieldmaps), add an address + signature. Adding a signature is only possible through survey123. That's why I use an survey123 URL in my pop-up to edit the newly created point. 

The URL is based on a the globalID of the new feature. I also want to automatically add the address. This saves the user a lot of time. I use arcade expressions to extract location details like address, zip-code from different layers. After that I create an url using the field:<fieldname>=<value> parameters. All works fine, the address information even show up in the fields. But unfortunately the information is not saved to the layer after the form is send.

This is what my url looks like:{GlobalID}&field:St...}