Skip navigation
All Places > Survey123 for ArcGIS > Blog
1 2 3 Previous Next

Survey123 for ArcGIS

131 posts

In this blog post I will explore a few techniques to take your use of Survey123 within Integromat to the next level.  I am going to assume that you already know the basics of working with Survey123 and Integromat. If not, you may want to start with Getting Started with Survey123 and Integromat

 

Many more posts like this could be written, because what you can do with Survey123 and Integromat deserves an entire book, but we need to start somewhere. So here are a handful of ideas. I hope you discover some new things:

 

Working with Survey123 attachments

 

I will start with this one because the topic of working with photo attachments from Survey123 in Integromat has come up many times before, and it is not entirely obvious how to deal with them.  Say your Survey123 smart form includes a photo and a signature question. Can you work with them in Integromat? Can you include the photo and signature images as attachments in an e-mail? Can you back-up the images in OneDrive or Box? Yes to all of that and here is how.

 

The trick is using the Integromat HTTP module, which includes an action called 'Get a file'.  This action takes the URL of an image as an input, which you can get from the payload of a Survey123 record.

 

  1. Feed the Survey123 'watch survey' module with a smart form that includes one or more photo/signature questions.
  2. Use the Get a file action in the HTTP module to download your attachment.

 

 

The payload of 'Watch a survey' includes a collection of attachmentInfo objects. They are uniquely identified with the name of the question generating the attachment and include a url property that can you use to invoke 'Get a file'.

 

Once you have the file, you can do a handful of things with it. Of course, you can now include it as an attachment to an email.... That is a classic one!

 

 

But you can do more interesting things too. For example:

 

  • Back-up your photos and attachments in Google Drive, Microsoft OneDrive, DropBox.
  • Upload images to Flickr, Instagram, Twitter or other social media.
  • Reduce the size of an image before storing it.
  • Extract metadata from the photo, including its name, size or format.
  • Process the photo with Google Cloud Vision to identify elements within the photo or simply extract text from it.

 

 

 

Automating Survey123 custom reports

 

The Survey123 module includes an action to help you automate Survey123 feature reports. Not familiar with reports in Survey123? We have a video for that here and an introductory blog post too. The Create Feature Report action is pretty much self-explanatory: it takes an input survey, a report template and the objectId of the survey record you want to include in the report.  If the trigger of your scenario is a 'Watch a survey' trigger, then you can use again the payload of your Survey123 web hook to extract the objectId. In this case, it is within the Feature-Result object as shown in the next animation.

 

 

The use of the HTTP module to download files as described above also applies to the outputs of the Survey123 report action. That is, after you create a custom report file, you can download it and include it as an attachment in an email, or upload it to cloud storage or FTP site.   Since many cloud storage solutions include options to automatically synchronize the contents of local and cloud folders, I like to upload the Survey123 report files I create to the cloud so they show up in my computer right away. I know, I am old fashioned, but that feels like magic.

 

When configuring the Create Feature Report action you will notice that at the bottom of the dialog you can expand a window with advanced settings. In there, you will be able to configure the UTC-Offset. This setting will be your friend if you plan to include dates and times in your reports.  Keep in mind that all data within Survey123 -and ArcGIS- is stored in UTC time. Since Integromat has no real context as from where in the world the report is being invoked, you will need to adjust the UTC offset yourself.

 

The Survey123 Custom Report service is currently in Beta and scheduled to be generally available in version 3.5

 

Back to the HTTP module

 

Earlier, we looked at the 'Get File' action in the HTTP module. This time we will revisit the HTTP module but this time to describe its 'Make a request' action. I personally find this action extremely useful, because it allows your scenarios to interact with pretty much any external web service you want. Using the 'Make a request' action you can for example invoke the ArcGIS REST API to update an attribute in an existing feature, or to simply query a feature service. Lets get down to very specific scenarios:

 

  • Make a point- in-polygon query to an ArcGIS feature service to get the postal code of the submitted Survey123 record location. Then make another request to add the postal code value as an attribute of the submitted feature.
  • Use information from a submitted Survey123 record to automatically create a new assignment in a Workforce for ArcGIS project (make a request to add a new feature into the Workforce assignments feature layer).
  • After having invoked Google Cloud Vision to categorize the contents of a photo submitted via Survey123, update the attributes of the Survey123 feature accordingly.
  • Update an image_url attribute in the submitted survey so you can later create a popup in ArcGIS that shows your image directly when the popup is open.

 

 

The mechanics for using the 'Make a request' action imply good knowledge of the target web service your are invoking. I will use next a simple scenario to illustrate the essence of this technique. Say for example we want first to get the location of a submitted survey record, get the current temperature at that location using a weather service and store that temperature value as a GIS attribute of the feature that was originally submitted.

 

Here is how you get the current temperature. OK: so far we are not using 'Make a request' anywhere. We are just setting this up.

 

 

Next, we are going to 'Make a request' to the survey feature layer using the ArcGIS REST API to add the temperature to the temperature field of the submitted record. Specifically, we are going to make a request to the Update Features REST API operation. This operation, as described in the Updates Features ArcGIS REST API Developer documentation, is located at:

https://<featurelayer-url>/updateFeatures

All information needed to construct the URL above is included in the survey web hook payload. It is a matter of combining the surveyInfo.serviceUrl and the feature.layerInfo.id properties, followed by updateFeatures.

 

 

Again according to the doc, this operation only supports POST requests and the encoded parameters include:

 

  • f to define the output format as json or html. This is optional but handy so we can debug, if needed, the output within Integromat.
  • features to define the actual updates we want to make in the layer. The content of this parameter is a json object with information about the records and fields we want to change.
  • token to specify a valid token we can use to securely access the feature layer. This parameter is not needed if the feature layer is shared publicly.

 

All of that, translates into Integromat as follows:

 

 

The most error prone step is adding the exact JSON value for the features parameter. I like to copy the sample JSON that comes in the developer documentation, and then modify it for my own purposes.  It is very important to note that the sample JSON in the documentation must be enclosed with extra curly brackets. In my case, this is the JSON string that will go in the features parameter. Note that the objectId in green, and the temperature in brown are dynamically populated using outputs from other modules in the scenario.

 

{

    "attributes" : {
      "OBJECTID" : objectId,
      "Temperature" : "temperature"
    }

}

 

You will see yourself going through some trial and error until you get it right, but since you can easily look at the output of the 'Make a request' operation, it typically does not take very long before you figure things out.

 

Using the 'Make a request' action you can do a lot of things. Updating attributes is one of them, but you can really do many others.

 

A nice complement to the 'Make a request' action in the HTTP app are the many out of the box tools included in Integromat to parse XML, JSON, HTML and the many functions to handle text, dates, arrays and much more. They will help tremendously when you need parse responses from the web services you are invoking.

 

Handling Errors

 

This is all getting very interesting, but as you create more sophisticated scenarios you will face situations where you need to handle run-time errors.  If you are dealing with attachments, what happens if the end-user does not submit one? Or what happens if you hit an external web service and you get a bad output, or a time-out?

 

By default, when an unexpected error occurs, the execution of the Integromat scenario is stopped at that point but you can handle errors in other ways. You can for example ignore the error and continue executing, or you can choose to branch off the execution to do different things. This is all described in the Introduction to error handling tutorial in the Integromat Help Center.

 

The following animation shows how you can add an error handler in case the 'Get file' action fails downloading a non-existing ArcGIS attachment. In this case I chose to simply invoke the Gmail connector to send an e-mail without attachments. If an ArcGIS attachment is found, it gets added to an e-mail, otherwise the email is sent without attachment.

 

 

To learn more about error handling in Integromat, I recommend reading the Advanced error handling help topic.

 

Connecting Integromat to an ArcGIS Enterprise instance

 

By default, the Survey123 modules in Integromat will connect to ArcGIS Online, but you can actually make Integromat work against your own instance of ArcGIS Enterprise.

 

Before we start, it is important to highlight that Integromat will to communicate with your own ArcGIS Enterprise instance, and this will not be possible if ArcGIS Enterprise is running completely behind your firewall.  You need to make your ArcGIS Enterprise instance available to Integromat over the internet. ArcGIS Enterprise administrators are familiar with this concept, which is often resolved by exposing ArcGIS Enterprise through a reverse proxy in the DMZ, although there are other options.

 

A second step, involves explicitly registering Integromat as an app in your ArcGIS Enterprise instance. This step is necessary for Integromat to be able to securely access information in your ArcGIS Enterprise. Follow these steps:

 

  • Log into your portal and go to Content.
  • Add a new Item of type Application.
    • Type: Application
    • Title: Integromat (Really, you can call this anything you want)
    • Tags: Survey123 (Same here, any tag you want)

 

 

 

 

All the above is necessary for Integromat to be trusted before you can initiate a secure connection to your Enterprise instance.

 

Now, it is time to create a new Connection within Integromat to your ArcGIS Enterprise instance.  While adding a new web hook in the Watch a survey or Create a report modules, choose to create a New Connection:

 

  1. In the Create a New Connection dialog, expand the advanced settings.
  2. Add the https URL of your ArcGIS Enterprise instance, including the web adaptor name.
  3. Populate the AppID and AppSecret properties using the App Registration information from the Application item you created before in your portal.
  4. Click on continue to authenticate against your ArcGIS Enterprise instance.

 

 

You will be able to re-use this connection again and again when creating new web hooks.

 

Add and Edit Trigger Events

 

Initially, we added support for Add trigger events, meaning that the Survey123 web and field apps would be able to trigger a web hook when a new record was submitted from a smart form.  We are progressively adding support for edit trigger events as well, so you can launch your Integromat scenarios when a record is updated too.

 

Support for edit trigger events was added in the Survey123 web app in our Comet Halley Update (May 23, 2019). The Survey123 field app will catch up starting with version 3.5 (scheduled  to be released on June 27, 2019).

 

If you do not now how to update records using the Survey123 web app, check the Survey123 Tricks of the Trade: Editing records in a web form blog post.

 

While you can configure your Integromat scenarios to be triggered by Add and Edit events, please be aware that the Survey123 field app will not honor this setting until version 3.5. As of 3.4, only the Survey123 web app supports web hook edit triggers.

 

Below, you can see how you can configure Integromat to define which triggers you want to activate in your web hook.

 

 

If you happen to activate both of them, you can use the output of the Watch survey module output to tell which event triggered your scenario. This is handy in case you want to build a single scenario and add branching logic to handle adds and edits differently.

 

The trick here is that the eventType property is only included in the payload once there is an actual submission of data. You will actually not see the eventType property pre-populated in the output, until you send data.  When working with eventType, I typically put the scenario in listening mode (Run once) and submit data to populate the property. This helps me build the rest of the scenario more easily. Once the scenario is running for good, this property will change accordingly.

 

 

 

Blueprints

 

Did you know you can export your scenarios as a JSON file and import them later?

 

 

I included as a simple blueprint of the weather sample as an attachment to this blog so you can play with it. All you need to make it work is a survey with a geopoint question and an additional field where you can store the temperature. Make sure you adjust the name of your temperature field in the features parameter of the 'Make a request' module. By now I am guessing you do not need that I create another gif. I am completely "giffed-out" for today.

 

As I said at the very beginning, there is so much to write about Survey123 and Integromat, so this is just a starting point. If you feel there is a particular topic of your interest that should be covered in more detail, do not hesitate asking. Now,  let me anticipate that we still have not figured out just yet how to work comfortably with repeat data within Integromat.

 

Despite the repeat debacle, I hope this blog post will give you some ideas to have more fun with Survey123 and Integromat. I also wish some of you will share some of your creations. Share a screenshot of your scenario and a brief description of what you accomplished with it, or even better the blueprint.  Add them as comments below to inspire others!

Integromat is a powerful tool for automating manual processes. With Integromat, you can easily connect Survey123 with many other apps and services. For example, you can configure a scenario in Integromat to perform an action immediately after data is submitted or edited via a Survey123 smart form: send an e-mail or an sms, copy the data into a spreadsheet or database, create an assignment in Workforce for ArcGIS or simply perform a reverse geocode to associate that address with the record that was just submitted.

 

Integromat includes well over 300 different out of the box 'integrations' (and growing), which you can combine visually in scenarios to automate specific tasks. You will find integrations for everything ranging from Office365 to Box, PayPal, SQLServer, Google Calendar, Apple Push Notifications, InvoiceNinja, Instagram, Google Cloud Print, and of course, Survey123 for ArcGIS!

 

 

The basics, in four minutes

 

To get started with Survey123 and Integromat I strongly suggest you watch this four minute video-tutorial. It will give you a good overview of the whole thing, plus enough detail to follow along and build your first Integromat scenario.

 

 

You can create a free Integromat account to test the waters. Note that for production use you may want to upgrade to a paid subscription plan. There are multiple options, with increasing levels of support, operations, data transfer, etc.

 

Get a kick-start with a template

 

Also for starters, you can go with the different templates we have created. With them, you can automate common tasks with minimum effort. If you find a template that fits what  you want to do, you can create a scenario out of it with a simple click. Integromat will guide you, step by step, so you can configure the template with your own Survey123 smart forms and other apps as appropriate.

 

 

Integromat Survey123 Templates

 

Once you bring a template into your own scenario, you can also extend it to do even more...

 

One hour for more details

 

Derek Law and Brandon Armstrong recently delivered a free Live Training Seminar focused on automating e-mail notifications.  This seminar was recorded and features Integromat. This is good material as well if you are getting started.  You will need to sign in with your Esri credentials to access the recording.

 

Automating e-mail notifications with Survey123 Live Training Seminar

 

Integromat Help Center

 

To get the best of Survey123 and Integromat you need to know them both. As you work with Integromat and Survey123 you will realize soon that this is more than just about sending an e-mail notification when survey data is submitted.   Integromat is actually a very powerful visual environment where you can model common business workflows. Integromat is also more than 300 out of the box integrations. It includes quite flexible options to control the flow of data and decisions within a scenario, with iterators, routers, filters and error handlers.  You can also configure your scenarios to execute at regular intervals and perform operations in bulk. 

 

What I like the most about Integromat is that it makes it possible to do lots of things for which in the past you would need programming skills. This makes more people, more productive. Having said this, if you have developer skills you will also be impressed with all the things you can do.  The more  you know, the better.

 

Spend some time roaming around the Integromat Help Center. Check out their video-tutorials and technical articles to learn new techniques. It will pay off!

 

Once you get on the basics, check out theSurvey123 Tricks of the Trade: Integromat blog post for additional info!

We do not seem to observe the stars as much as we used to, but it is fascinating to look up and think how much our life as a species has depended on a good understanding of the sky. We have dedicated this update to the comet Halley. Tomorrow, over 2,250 years ago, the first documented sighting of comet Halley was made by Chinese astronomers. It was sighted May 24, 240 B.C.  There are potentially earlier accounts from 467 B.C when Chinese and Greek astronomers logged the sighting of a comet, which could also have been comet Halley. We will go with the more certain date of May 24, 240 B.C and celebrate it along with this update of Survey123.

 

The passing of comet Halley has been very well documented since these initial accounts. Initially there was no evidence that all these sightings were of the same comet. The comet's periodicity was first determined in 1705 by English astronomer Edmond Halley, after whom it is now named. It visits us regularly every 75 years. It came last in 1983 and will return in July 2061.

 

This update is focused exclusively on the Survey123 website. Clear your browser cache!

 

Here is what is new:

 

Enhanced Integromat support

 

Integromat is an amazing online automation platform. With it you can easily automate tasks, visually connecting all sorts of apps together. We strongly believe that facilitating your work with platforms like Integromat can tremendously help you embed Survey123 within larger enterprise workflows, making sure your Survey123 data flows nicely into the way people work within your organization.

 

Many of you have been experimenting with Integromat and Survey123 since we first added support for webhooks in 2018. The uptake of webhooks with Survey123 has been pretty spectacular!  Some of the most common task automations we have seen include:

 

  • Automatically send an email or SMS when an inspection or incident report is submitted from Survey123.
  • Instantly add a new row into an Office 365 Excel spreadhseet when data is submitted from Survey123
  • Create a Workforce for ArcGIS assignment and a Google Calendar event when data is submitted from Survey123
  • Automatically reverse geocode the location a submitted survey and store the address in a GIS attribute of the submitted survey

 

We have worked closely with our friends at Integromat to add a new Survey123 Integromat module. This means that you can now bring your Survey123 data into Integromat much more easily and do much more with it than before. Jim Moore put together this brief but informative video to give you a quick overview of this new Survey123 Integromat module. Here it is:

 

 

In our Getting Started with Survey123 and Integromat blog post you will find a brief guide with resources to learn  the basics of working with Survey123 and Integromat.

 

For those of you already familiar with Survey123 and Integromat, you will find that this new module, lets you do some more advanced things you have been asking for.  For example:

 

  • Easily work with photo, signature and markup attachments. Include them as attachments in emails, upload them to Box, Microsoft OneDrive or Google Drive.
  • Automate report generation through the Survey123 Feature Report service. For example, for every survey submitted, automatically trigger a new  report using a custom template and then email or update that final report.
  • Trigger Integromat scenarios when Survey123 is used to update existing records*. Add a router in your Integromat scenario to do certain things if a record is submitted, and other things if the record has been updated.
  • Setup an Integromat scenario on top of ArcGIS Enterprise.

 

All of the above are covered in the Survey123 Tricks of the Trade: Integromat blog post.

 

* Please note that the field app will not trigger web hooks on edit events until our upcoming 3.5 update.

 

Delete and update submitted records (Survey123 website)

 

You can now use the Data tab in the Survey123 website to delete and update submitted records. This comes very handy if you need to do some quick cleanup of test data during your survey design process, or to make adjustments to already submitted data to your survey.

 

This is how it works: First login to the Survey123 web site, select a record in the table shown in the Data tab and then use the Edit button in the panel on the right to enable editing on the individual response form. Make your changes and submit.  The following animation shows the key steps:

 

 

You can use the Edit and Delete options for both surveys created in Survey123 Designer as well as Survey123 Connect. However, if your surveys were created in Survey123 Connect, be aware that the Edit button will be disabled when working against a survey with a repeat.

 

Update submitted records from a Survey123 web form

 

You may be already aware that you can update existing records in your feature layers using the Survey123 field app. Starting with this update you can update existing records with Survey123 from your web browser too! This is possible by opening your web form with URL parameters.  TheSurvey123 Tricks of the Trade: Web form URL parameters blog post introduces the concept of web form URL parameters. Now you can use URL parameters to edit existing records.

 

The syntax is fairly straight-forward:

 

  • Set the mode to edit: mode=edit
  • Pass the objectId of the record you want to update: objectId=13 for example.

 

For example:

https://survey123.arcgis.com/share/815b69a16e2f474e93da7e2eb0255e5d?mode=edit&objectId=13

 

Editing is not supported in web forms published prior to this update. If you want to edit records with surveys you published in the past you have two options:

 

    1) Dynamically upgrade your survey at run-time by adding the version=latest URL parameter

    2) Republish your survey to force a version upgrade at publishing time.

 

The key to all of this is to somehow dynamically construct the URL with the objectId of the record you want to update. In the Survey123 Tricks of the Trade: Editing records in a web form blog post this is all discussed in more detail.

 

Other enhancements and fixes

in the Survey123 website and Survey123 web app

 

 

  • Save Survey As... now works also against surveys that you do not own. 

 

This is very handy if you want to clone survey designs within your ArcGIS organization. Create a survey first using Survey123 Designer, then share the survey with someone else by granting access through the Viewer group sharing settings in the Collaborate page. Next, have that second person login into the Survey123 website and show 'Surveys I can view results for' in the survey gallery. The Save As option will be available on the survey tile menu to clone the survey. 

 

 

The Save As... option in the Survey123 website is only available for surveys authored in Survey123 Designer. If you want to clone a survey authored in Survey123 Connect, use the Save As... option in Survey123 Connect

 

  • You can now quickly switch between ArcGIS accounts in the Survey123 website without having to logout.

 

  • An option to optionally propagate selection filters between the Data and Analyze pages has been added.

 

Filter Options in Data Page

 

  • BUG-000113962 Unable to type certain Japanese character in the hints and explanations of headers in the Survey123 for ArcGIS Web Designer.
  • BUG-000120077 Unable to export data from Survey123 website when logged in as a member having 'User' Role and ‘Creator’ User Type.
  • BUG-000120887 When opening an existing Survey123 for ArcGIS form from ArcGIS Online using the 'Manage in Survey123 Website' option, the error message, "Your account () is not licensed for Survey123. Please ask your organization administrator to assign you a user type that includes Field/Essential Apps..." is returned.
  • BUG-000120055 Reports may fail to generate from a survey response that contains a repeat with many high resolution images.
  • BUG-000120222 Unable to generate a Survey123 for ArcGIS Report if there is an IFstatement containing a choice with an apostrophe.
  • BUG-000120851 Survey123 for ArcGIS web app displays the World Geocoding Service (WGS) on geopoint questions, despite removing WGS from the organization's Utility services.
  • ENH-000115658 Allow for the functionality to configure right to left labels and choices in Survey123 forms.
  • BUG-000113592 Questions label disappear from the survey when default language is changed from English to French or Spanish in a browser.
  • BUG-000112106 Survey123 for ArcGIS web app does not respect the language settings of date type questions in the browser.
  • BUG-000114761 Field Matching and string-length(.) constraints cause a green "It's an invalid answer." subtext to persist in Survey123 for ArcGIS web site under the questions that are constrained that does not disappear after fulfilling the constraints or leaving the fields blank.
  • BUG-000115247 Survey123 for ArcGIS web application does not respect the default language settings in the browser.
  • BUG-000117184 Submitting an Image through the Image Upload Question in Survey123 through the Web Designer in a Desktop Browser fails if the Survey was created with the Web Designer
  • BUG-000116320 The Survey123 for ArcGIS web app displays Image and Geopoint questions in English even if the web browser is set to another language in Internet Explorer.
  • BUG-000120426 Conditional calculations do not populate as expected for select_one questions in the Survey123 for ArcGIS web app.
  • BUG-000118413 Reverse geocoding results are different between Survey123 Connect and Survey123 web application.
  • BUG-000120387 Survey123 web app fails to record time when a time between 12PM and 1PM is selected
  • BUG-000121290 Loading a survey in a web browser with a Toolbar Background Color assigned causes the default color scheme to show momentarily before switching to the chosen color.
  • BUG-000120589 When editing surveys published in Connect the prompt to save changes on exit is not necessary if changes were published, does not work if changes were not published.

 

 

About the next update

 

 

As mentioned above, this update is exclusive to the Survey123 website. As usual we wanted to release both updates for the website and Survey123 field app together, but we decided to pull back on the Survey123 field app at this time. We are doing our best to bring some important fixes you have reported to the Survey123 field app soon. The current schedule is set for an update in 5 weeks (late June 2019). Our Survey123 for ArcGIS Early Adopter Program is making early beta builds of our next update available for testing.  The Survey123 website will also be updated in late June.

Today we will explore how you can edit existing records using the Survey123 web app, also known as a web form. The idea is quite simple, we will populate the contents of a Survey123 web form using an existing record from a feature layer and let users update (edit) that information. When working this way, the submit button in the survey will update an existing record, as opposed to creating a new record for a new survey response.

 

This technique for editing data in a web form be quite handy. You can use it for example to let people review and modify existing submitted data, or to simply let them finish an uncompleted form. You can also incorporate web forms into QA/QC and data validation workflows.

 

Before we start, be aware that the editing of records in web forms is only available in the Survey123 web app after May 23, 2019 (version 3.4 and newer). I will describe later in this blog how you can make your surveys run in this latest version, even if you published it in the past in an earlier version.

 

The Basics

 

Editing of existing data in a web form is possible through the use of web form URL parameters. If you are not familiar with web form URL parameters in general, I strongly suggest you read the Survey123 Tricks of the Trade: Web form URL parameters first.

 

Here is an example:

https://survey123.arcgis.com/share/1cb28b212b5542acbbdbaa35feba0765?mode=edit&objectId=9

Note the two URL parameters:

 

  • objectId=9, this parameter loads the record in your feature layer with objectId 9 into your form. Of course, you can replace 9 with the specific objectId of the feature you want to load.
  • mode=edit, puts the web form in edit mode. This essentially ensures that when the user hits the submit button, the current record is updated. If the mode is not set to edit, the form will create a new record when submitted, even if the form was initialized with data from a particular record.

 

URL parameters are case sensitive. For example: objectId is not the same as ObjectID or objectID. If you see that your form is not loading the record you want, double check the spelling of the parameter, and also ensure the objectId you are trying to load exists.

 

As described above, the editing mode in web forms was incorporated in version 3.4. If you want to edit records using a survey that was published in the past, you can bring things up to speed in two different ways:

 

  • Upgrade your survey by simply re-publishing it. If you originally published your survey using Survey123 Web Designer, then use Designer to publish it again. You do not need to make any changes other than simply clicking the Publish button. The same goes with Survey123 Connect for ArcGIS: If you originally published your survey with Connect, go back to Connect and hit publish.
  • Upgrade your survey at run-time: You can alternatively add the version=latest URL parameter to force the survey to be loaded using the latest available Survey123 web app. Something like this:

 

https://survey123.arcgis.com/share/1cb28b212b5542acbbdbaa35feba0765?mode=edit&objectId=9&version=latest

 

My recommendation is that whenever possible you upgrade your surveys by re-publishing them. It will improve the initial loading time of the survey in the web browser, and it will guarantee that the behavior of your web form remains unchanged even if the Survey123 release changes.

 

From a practical perspective, the technique described above is useless unless you somehow present a ready-to-use link (URL) to the end user; A link that already includes the appropriate objectId to edit. Do not expect end users to modify that objectId manually in the web browser URL address!  I will next describe three scenarios to illustrate how you could apply this technique.


Launching an edit web form from a feature popup

 

Our first scenario allows users to navigate a map, and launch an edit web form from the popup of an existing record. The key is to customize the feature layer popup so it dynamically generates the correct URL to launch the survey. Once the popup is configured, you can use the web map within the ArcGIS Map Viewer, custom Web AppBuilder apps, Explorer for ArcGIS and any app that supports web maps.

 

Here is a brief step by step guide to configure your popups:

 

  1. Using the ArcGIS map viewer, add your survey feature layer (or hosted feature layer view) into a web map.
  2. Open the configure popup dialog for your survey feature layer.
  3. In the popup contents section, select a custom attribute display.
  4. Add the URL of your web form into the attribute display. Then add the mode and objectId parameters.
  5. Dynamically populate the objectId parameter using the OBJECTID field from your feature layer.
  6. Use the full web form URL with its parameters to create a link.
  7. Save the popup and test it out.

 

And here are the same steps in a short animation.

 

Editing Web Forms and Popups

 

Embedding an edit web form within Operations Dashboard for ArcGIS

 

The idea with this one is to add an embedded content element within the dashboard, and configure it to display your web form.  The URL of the web form will include the mode parameter set to edit and the objectId will be dynamically populated.  Using a filter action triggered by other element within the dashboard, such as a list, the embedded content element will refresh your web form with the relevant record to be edited.

 

At a high level, the steps are as follows:

 

  1. Set a refresh rate on a web map displaying your survey feature layer.
  2. Add your web map to a new dashboard and configure a list element to display survey records.
  3. Add an embedded content element. In the Data options, set the Type to Features and add the URL of your web form with the mode=edit  and objectId parameters. Make sure the objectId parameter is set to pull a value from the ObjectID column in the fields collection.
  4. Next configure a filter action on the list element and target your embedded content element.
  5. Click on a record in the list, and your web form in the embedded content element will display your record in edit mode.

 

The animation will guide you through the whole process. Click on the animation to make it larger.

 

Editing Web Forms in Dashboard

 

Including an edit web form link in an e-mail.

 

In this scenario, we will use a web hook to automatically send an e-mail to the user submitting the survey. This email will contain a link for the user to complete or make modifications at any time.  To do this you must be familiar with web hooks in general or with either Microsoft Flow or Integromat.   Like in the examples above, the trick is to be able to dynamically populate the objectId of the record you want to edit. Luckily enough, the payload of a Survey123 web hook includes information about the user submitting the data (if logged-in) as well as responses to questions in the survey. So as long as the user is logged-in or a specific question in the survey captures the contact e-mail, you can make this work.

 

Here are the high level steps:

 

  1. Create a new survey. If you plan to share your survey publicly, include an e-mail question and make it required. If  you plan to keep your survey secured, you will be able to get the e-mail from the logged in user's profile.
  2. Use Microsoft Flow or Integromat to automate e-mail notifications when your survey is submitted.  The objectId of the record submitted is included in the payload of the web hook. Simply add the objectId to the URL of your edit web form when you add the link in the body of your e-mail.

 

Here is some visual aid in case you are using Integromat.

 

Integromat

 

If you are using Integromat or Zapier, the pattern is pretty much the same: use the webhook payload to retrieve the objectId of the submitted record and use if for your edit web form url.

In this blog post, I describe some common techniques that will help you better understand and hopefully improve the quality of location data you get from field users.  Location data quality depends on multiple factors, including field conditions, field user skills and the hardware used. Having said this, a good smart form design can do a lot to help get the best possible quality location data.

 

This post focuses particularly on field data collection workflows where you will rely on integrated or external GNSS receivers to capture location data. It assumes familiarity with XLSForms, Survey123 Connect and the Survey123 field app.

 

Persisting Location Accuracy (Part 1)

 

If location quality matters to you, you should consider systematically storing the location accuracy of every record captured.  This is just as true for formal high accuracy field data collection workflows by professionals, as it is for casual field data collection by volunteers.  Horizontal accuracy is about the simplest and most important quality indicator of your location data.  Having field users understand the horizontal accuracy while they collect data is not enough; you need to persist it for every record captured, so you can analyze it later.

 

In XLSForm, you can store the horizontal accuracy as reported by your field device as follows:

 

typenamelabelcalculationbind::esri:fieldType
geopointlocationGPS Location
calculateaccuracyHApulldata("@geopoint",${location},"horizontalAccuracy")esriFieldTypeDouble

 

The key is the calculation in the second question of the survey.  It automatically gets the horizontal accuracy from the geopoint question and stores it in a field named accuracy. Since you do not want end users to overwrite this value, the sample above keeps the output of the calculation in a question of type calculate. Calculate questions are not presented to the end-user in the form, but their values can be be stored in ArcGIS.  In this particular case, since the horizontal accuracy is expressed in meters, the bind::esri:fieldType column has been set to esriFieldTypeDouble.  If the esri:fieldType value is not set explicitly, Survey123 will automatically store the calculated value as text.

Horizontal accuracy values are always expressed in meters.

        

I like to add a calculate like the above to every survey I prepare for field data collection. Looking at a dataset from field users without location accuracy information is not very comforting.  Without location accuracy information in a GIS dataset, what level of confidence can you have on those points in the map?  Capturing the horizontal accuracy like described here adds absolutely no overhead, and it always pays off.

 

In the next screenshot, locations captured along a trail have been buffered to visually represent the reported horizontal accuracy.  This simple visualization can provide you with great information about the quality of locations in your dataset. Before performing GIS analysis, you can set criteria to filter out records that do not meet a location accuracy threshold of your choice.

 

 

You can also use the location accuracy information to better understand in what conditions poor location data is created. You can analyze spatial patterns, identify particular users or devices that do not meet minimum standards.

 

Persisting Location Accuracy (Part 2)

 

The horizontal accuracy that Survey123 returns from a geopoint value is provided by the location sensor you are using.  On top of the actual value (say 6.2 meters for example), it is important to understand the level of confidence level for that value. That is, with what level of confidence will the location be within a radius of the horizontal accuracy reported (say within a radius of 6.2 meters of the point for example)? 

 

The Google Developer documentation, defines horizontal accuracy as the radius of 68% confidence. This is like saying that for Android devices, there is a 68% chance that the true location is within a radius equal to the reported horizontal accuracy. Apple has not documented their definition of horizontal accuracy.

 

When using external high accuracy GNSS receivers with Survey123, the confidence interval can be more accurately be defined if the receiver is able to report what is known as root mean square (RMS) accuracy. For RMS accuracy, the default CL (Confidence Level) is 68%. Some organizations require reporting accuracy with a 95% CL. If this is the case, the United States Federal Geographic Data Committee (FGDC), through its National Standard for Spatial Data Accuracy, establishes that the following factors should be applied:

 

  • 1.7308 for horizontal accuracy.
  • 1.9600 for vertical accuracy.

 

The conversion between RMS 68% CL and 95% CL applying the factors above should only be calculated, again, if the GNSS receiver is reporting horizontal accuracy using RMS.  In the Direct GNSS external receiver support in Survey123 3.3 blog post you can find an example of how you can use RMS horizontal accuracy values into a 95% confidence level.

 

For both built-in and external GNSS receivers, you can complement the reported horizontal accuracy with other commonly available location metadata such as the speed and also the position source type (Integrated GPS, external GPS, user-defined, etc). For a quick reference of other location metadata fields available, have a look at the Pulling data from geopoint questions blog post.

 

If you use external location sensors, such as high accuracy GNSS receivers, then you will be able to get a lot more location metadata with Survey123 such as the fix type (GPS, differential GPS, RTK fixed, RTK float, SBAS...), differential age, number of satellites used, etc. The complete reference guide of all location metadata you can extract is in our Geopoints—Survey123 for ArcGIS | ArcGIS help topic.

 

Persisting the location accuracy as a GIS attribute is generally a good idea, but it does not help field users understand how to to get a better location with Survey123.  Next, I will discuss a handful of techniques that will help end users actively contribute to higher location quality data.

 

 

Location Accuracy Threshold

 

The location accuracy threshold is an XLSLForm value expressed in meters.  When the accuracy threshold is not met, the map panel in the survey will be automatically highlighted in red and the location icon will spin.  This will give the field user a visual clue indicating that (1) a better location is desired and (2) that the Survey123 app is actively trying to get new locations to meet the threshold. 

 

Setting the location accuracy threshold in your smart form is a very simple way to visually alert end users when the location is not considered accurate enough.  A red map panel is an indication to end users that it is best to stay put and wait until the device is able to get a better location.  If for whatever reason the device cannot get the desired accuracy, the end user can manually tap on the spinning location icon to fix the geopoint.

 

The accuracy threshold is set, in meters, in the body::accuracyThreshold XLSForm column as shown below.  This column accepts integers and decimals, but not XLSForm expressions. That is, the accuracy threshold is a fixed value.

 

typenamelabelbody::accuracyThreshold
geopointlocationGPS Location5

 

It is important to train end users so they understand exactly what is happening when the map panel is red and the location icon spins.  While the location icon is spinning, Survey123 is actively retrieving new locations from the device. If the end user moves, the location will change!  This is very different to the typical behavior of the Survey123 field app, which by default will immediately fix the location after the form is open.

 

A conservative value on your accuracy threshold, can help reduce situations where field users report location data that is clearly below the capabilities of their device.  For example, when a device has been off for a while, the GPS may need some extra time to warm up before getting the best results.  If you know that in normal conditions, you can get your devices to report horizontal accuracy in a range between 5 and 10 meters, then you can conservatively set the accuracy threshold to 20 meters. This will cause the map panel to turn red only in exceptional cases, letting the user know that it is best to stay put and wait a bit in order to let the device get a better fix.  In normal conditions, the accuracy threshold will be met after a few seconds, the map panel will turn green and the location will be fixed. Figuring out such conservative value for the accuracy threshold requires some trial and error. It will vary depending on the range of devices used and average field conditions. 

 

You can also go with a more aggressive approach where the accuracy threshold is set closer to the limits of what field conditions and your hardware can typically provide. In this case, you will be using the accuracy threshold to constantly remind end users of the importance of getting the best location possible. With an aggressive accuracy threshold value, some users may not be able to get a horizontal accuracy value below the threshold.

 

Always be aware that the location accuracy threshold value by itself will not prevent users from submitting data below the threshold. If you do not want data to be submitted unless a specific accuracy threshold is met, then you will need to use constraints. We will describe this later in this blog.

 

Location Quality Expressions

 

Using XLSForm syntax you can build sophisticated validation rules for location data.  These XLSForm expressions can take into account the horizontal accuracy, and many other properties of your location data. You can also use other form data in your expressions. Here are some examples of location quality expressions you can build:

 

XLSForm expressionDescription
${speed}<0.2Speed is less than 0.2 meters per second.
${positionSourceType}=3Location has been captured with an external location sensor
${fixType}=4 and ${positionAccuracy}<1Location is RTK fixed and mean radial spherical error is less than 1 meter.
${differentialAge}<3Location's differential age is less than 2 seconds

 

You can use XLSForm expressions like the above in different contexts. For example, you can use them to show visual warnings to the field user using notes. See the Understanding Notes in Survey123 for details on using notes for this purpose.

 

You can also use apply these expressions to the constraint and bind::esri:warning columns of a geopoint question. If you apply them to the constraint column, the end user will not be able to submit the survey unless the expression evaluates to true and the map panel will be highlighted in red.   This is what is known as a hard constraint.  If you apply them to the bind::esri:warning column, the map panel will be highlighted in yellow when the expression is not met.  This will simply give end users a visual clue indicating that something is wrong with the location data.  That is a soft constraint.

 

 

The contraint_message and bind::esri:warning_message columns are used to provide users with a specific error or warning message. Here is a complete example illustrating how to use the bind::esri:warning column to display a warning if the location has been captured while moving at a speed larger than 0.2 meters per second.

 

typenamelabelcalculationbind::esri:warningbind::esri:warning_message
geopointlocationLocation${speed}<0.2Please do not move while fixing the location
calculatespeedSpeedpulldata("@geopoint",${location},"speed")

 

Typically, a location quality expression is going to validate some properties of your location data. For example, its speed, accuracy, etc. These properties are obtained through the pulldata() function. It is not good practice to combine the pulldata() function with any other XLSForm operator or function.  In the example above, I created a calculate question to get the user speed from the geopoint object first, and then I referenced that value in the bind::esri:warning column. In this way, the pulldata() function is left alone in its own question avoiding any potential issues.

 

Expressions in bind::esri:warning define soft constraints. Even if the condition is not met, users will be allowed to submit the survey.

 

In the next example, I use the constraint column to apply a hard constraint. The user will not be able to submit the survey unless the accuracy is less than 1 meter and the fix type is RTK.

 

typenamelabelcalculationconstraintconstraint_message
geopointlocationLocation${fixtype}=4 and ${pa}<1RTK fix and sub-meter accuracy are required.
calculatefixtypeFixpulldata("@geopoint",${location},"fixType")
calculatepaPApulldata("@geopoint",${location},"positionAccuracy")

 

In this example, I use a constraint to force users to use a GPS to set the location of the geopoint. If the user manually changes the location in the map, Survey123 will not let the submission go through.

 

typenamelabelcalculationconstraintconstraint_message
geopointlocationLocation${source}!=1
You can't manually set the location. Use the GPS.
calculatesourceSourcepulldata("@geopoint",${location},"positionSourceType")

 

Expressions in the constraint and warning columns are evaluated every time the value of the question changes. If you add expressions to these columns in a geopoint question, they will get evaluated as soon as the location is updated. 

 

Summary

 

A good smart form design can help field users capture better location data. Using XLSForm expressions we can actively check the quality of location data in the survey and provide users with clues to help correct issues.  XLSForm expressions can also be used to prevent users from submitting location data that does not comply with our own business rules.  Finally, XLSForm expressions allow us to store many location quality indicators as GIS attributes.  This information is very valuable to support QA/QC workflows and before analysis and visualizations of the data are performed.

///swimming.cycling.running. Is it a triathlon or a 3m x 3m grid reference - somewhere in New South Wales, Australia?

WHAT3WORDS is a really simple way to talk about location. The world has been divided into a grid of 3m x 3m squares and assigned each one a unique 3 word address. It means anyone can accurately find any location and share it more quickly, easily and with less ambiguity than any other system.

And thanks to what3words' free API and some of Survey123's new functionalities (Dynamic Labels and JavaScript Functions), I was able to develop a simple app to share ///your.three.words with a recipient of your choice.

 

Click below to watch the app in action.

 

Whether you are responding to emergencies or navigating uncharted territory; what3words can help you.

If you're interested in further developing this solution please download the files attached. And be sure to share how it helped your business in the comments below.

 

Cheers! - Gee

UPDATE - Reverse Geocoding using Survey123

Since writing this report, it was brought to my attention that the above procedure could be simplified by using Survey123's Reverse Geocoding feature. Steps to get this working are outlined below;

  1. Get what3words API key
  2. Once you have an API key - request for ArcGIS access
  3. Once you receive your password - add the following service to your portal - https://arcgis.what3words.com/w3w/rest/services/what3words_EN_English/GeocodeServer
    1. refer to this post for - how to connect to secure services
  4. Give the geocoder item's URL to one of the admins to add it as a Geocoder to your organization
  5. Write a similar expression in xls form's calulation field - which will return - what3words' location as a JSON object
    pulldata("@geopoint",${location},"reversegeocode","geocoder item's URL")
    1. Refer to this blog post - for more details around reverse Geocoding in Survey123

Hi! I would like to share a little solution that I made on my own, to help other people and to receive commentaries about it.

 

In our project sometimes the people will fill a survey in a holiday (in Colombia we have many), at Sunday or after work hours; but we needed to calculate the next workday to register the exact day that the office received the information. Therefore I had to make some calculations to add a day if the hour was after 4 pm, or add # days when we have holidays or if it Sunday, but also I had to make double-check to see if the result of the calculation was another holiday or a Sunday, and add more days. Part of the inspiration came from a response by James Tedrick in the question Weekday Date Calculation

 

I will show you three examples (in a world where the office does not open at Saturdays nor Sundays:

I won't display the sheet because too long is, but it is attached - feel free to use it

 

1) today is Wednesday at 4:17pm

2) today is Friday at 4:23pm and we have holiday on Monday

3) today is Wednesday 17 of April at 4:21pm and in Colombia 18 and 19 are holidays

 

To make it, I made some formulas that I am going to upload and I had a cvs. with the holidays of Colombia (so I used pull data).

 

Now I would like to make these calculations better. For example, I do not want to have 20 lines of code, maybe there is a way to make it shorter. And Second, I had to repeat the formulas to make this double-check to prevent us to have as a final date a holiday, but I would know if there is a way to make it more beautiful.

 

Have a nice weekend!

 

Maybe there was already a solution to this problem and I only lost 2 days of my life, I hope no :/

To date, many users who require high accuracy location capture have found ways to do so with Survey123 – typically by using additional software to make the position from their external receiver output data through to their device’s internal position source. From version 3.3 onward, Survey123 can directly communicate with many external GNSS receivers, significantly improving both the connection experience and the quality of data captured.

 

 

The most common type of receiver available for Survey123 users is a Bluetooth GNSS receiver, but you can also connect to USB receivers and receivers that are available over a network connection. The key requirement is that the receiver outputs NMEA sentences.

 

In general, direct GNSS support is the same in Survey123 on all platforms (Windows, Android, iOS, Mac, Ubuntu) but for iOS we also need to liaise with each hardware manufacturer individually. So far we have worked with our friends at Bad Elf, Eos, Leica and SXBlue to ensure that Survey123 on iOS will work with their receivers. If you have other receivers that you need to use with Survey123 on iOS please let us know, but in the meantime, please get started by using your receiver with Windows or Android.

 

Prepare for high-accuracy data collection

Before choosing to use an external receiver with your survey, think about what additional metadata you need to display or collect. In some cases, it might be enough to incorporate accuracy into a constraint so that data cannot be captured unless a certain level of accuracy is met.

 

In other cases, you may want to show the accuracy on the survey so the user can decide what to do, and in others, you might want to just capture all the data behind the scenes showing nothing to the user and keeping it for someone to analyze at a later data.

 

You can use note, decimal or hidden questions to show or store metadata values in a survey. For more information see https://doc.arcgis.com/en/survey123/desktop/create-surveys/high-accuracy-prep.htm

 

Connect your receiver to your device

Steps to connect:

  1. Turn on your receiver and place it near your device.
  2. Go to your devices Bluetooth settings, and wait for your receiver’s name to appear in the list.
  3. Tap the receiver to pair it with your device.

 

Warning: During our testing, we have found the biggest contributor to success (or failure) when using an external receiver, is connection to your device. Whilst you’re testing you may be tempted to try connection on a few devices, possibly swapping receivers around. If you have having any trouble connecting within Survey123 – we strongly recommend checking the Bluetooth connection in your device settings. Most receivers will only connect to one device at a time – take a look around your office and be sure no one else is trying to connect to your receiver!

Of course, in the real world these issues shouldn’t arise – typically you will have one receiver that you connect to one device - but it’s hard not to tinker with new toys in the office before going out in the field and I wouldn’t want experimentation to be your downfall!

 

Configure Survey123 to use the receiver

Steps to configure:

  1. Open Survey123 and on the main menu choose Settings
  2. Choose Location
  3. Choose Add Provider, and wait for your connected receiver’s name to appear in the list
  4. Tap the receiver to add it

 

 

Once the receiver is selected you are shown the settings for that receiver. You can give it a recognizable name, change how you are alerted when a connection is poor or is lost, and configure antenna height and preferred altitude measurements. We have found changing the name very useful, we all have our preferred alerts and once you set up your hardware on a pole, the antenna height is great to set and forget. Altitude is a tricky one – frankly - only touch this if you really know what your doing. In most cases, the external receiver will sort this out for you.

 

Go back to the location page and see that your receiver is now connected.

 

 

 

If you want to see more information about the data being received, press the satellite icon in the title bar. This icon is also visible whilst you’re in the survey. Here you get three pages: location data, skyplot and the NMEA data stream.

 

 

Use external receiver to capture location in a survey

This is the easy part. Once your receiver is connected, location is captured in exactly the same way in a survey as before. Only now you might notice the satellite icon flashing in the title bar. The satellite icon changes based on it the connectivity state. This icon initially only displays a satellite, adding three beams when searching for a position.

 

 

When positions are being received, the satellite periodically blinks.

 

 

We have had feedback where users have captured data and their location was unexpectedly captured at location 0,0. Waiting just a brief moment longer – until the satellite icon is blinking - will ensure you get a reasonable location recorded even when you don’t have a geopoint question in your survey.

 

Accuracy reporting

Some organizations require reporting of the accuracy of location data to specific standards. You can use Survey123 to report whatever metadata (and subsequent accuracy calculations) you like. The attached sample survey demonstrates how to not only record the 95% confidence interval of a location, but also to constrain location capture to only when a minimum accuracy is achieved. The calculations in this survey are based upon conversion factors from the National Standard for Spatial Data Accuracy (pages 3-10 and 3-11).

 

RTK and post processing

This section is intended to point you right back to the GNSS hardware supplier of your choice. In some cases, hardware suppliers will direct you to use an app on your device to process the positions before they are passed through to Survey123. In these cases, you will need to continue using the internal location provider setting in Survey123.  The GNSS hardware suppliers’ app will pass the corrected location information through to Survey123 where you would record the corrected information. In these cases, there may be limited metadata you can record in the survey.

Some GNSS hardware outputs all available information through their NMEA data stream and you can extract the metadata into your survey for analysis at a later data.

For post-processing, you may also need to save additional files from your receiver along with the metadata that you can record in Survey123. Please check your post processing solution of choice for what data will be required.

New Britain is the largest island in the Bismark archipelago of Papua New Guinea. William Dampier, takes credit for being the first British man to land on this island. This happened on February 27, 1700. Since then we call this island New Britain (Nova Britannia at the time). Both Wiliam Dampier and New Britain are fascinating. This island, of volcanic origin, was populated by two main indigenous groups: the Papuans who arrived tens of thousands of years ago, and the Austronesians, who joined the party around 2000 years ago. The island hosts remarkable traditional cultures. Still today, over 10 different Papuan languages  are spoken in the island and as for the Austronesians languages, we count more than 40! William Dampier is known for being the first man to circumnavigate the world three times. He grew as a pirate attacking Spanish ships in America and then became a successful navigator and explorer. Dampier documented winds, tides and currents that were critical for future explorations by James Cook and Horation Nelson. His natural history observations were also highly influential on works of Alexander Von Humboldt and Charles Darwin.

 

With our 3.3 update, we celebrate the adventures of William Dampier and his landing over 300 years ago to the island today known as New Britain.

 

 

Enhanced support for GNSS receivers in the Survey123 field app

 

Starting with version 3.3, you can establish a direct connection between the Survey123 field app and your GNSS receiver. This is useful for several reasons:

 

  • More accurate location data:  By leveraging dedicated high accuracy GNSS hardware, you can substantially improve the quality of the location data you capture with your smart forms.  There is a wide range of GNSS receivers, some of them able to produce, if used properly, sub-meter and sub-centimeter accuracy. 
  • Better understanding of the quality of the data: Having more accurate location data is not enough. It is also important to understand how accurate that data is.  Most GNSS receivers are able to provide important information that describe how the locations you are getting were produced. This includes things like the type of fix (RTK Fixed, RTK Float, GPS, Differential GPS, SBAS...), the differential age, reference station ID and many others.  With version 3.3 of Survey123 and above, you can select which of these properties are important to you and store them as GIS attributes in the feature layer columns of your choice. For a complete list of all the location metadata you can extract from your location data with Survey123 refer to the extract geopoint values help topic.
  • Custom validation rules: You can use all the GNSS metadata described above to create custom data validation rules that get triggered while the data collection is happening. This is critical, as it can save many trips back to the field! It is important to note that you can use all the power of XLSForms to build sophisticated expressions that take advantage of this metadata.

 

In this initial release, we have thoroughly tested GNSS receivers built by a number of vendors including Leica, Eos Positioning Systems, Bad Elf, SXblue, and Trimble, although it technically can work with other receivers as long as they output NMEA sentences. Our choose a receiver help topic includes more information regarding currently supported hardware.

 

To support direct connections to external GNSS receivers, you will notice we have introduced several changes in the Survey123 field app. The Settings dialog in the app now includes options to connect to external location sensors via Bluetooth and network ports. For each connection you can also set user preferences such as a custom name for your device, the height of the antenna and handy visual and audio alerts to warn users in case the connection between the GNSS receiver and your device is interrupted.

 

Our XLSForm support has also been expanded so you can include in your form expressions to help work with the GNSS metadata in real time.  This really opens a wealth of possibilities for you to use this information to design soft and hard data validation constraints in your forms.  The geopoint help topic in our doc describes in more detail how to take advantage of this.

 

Point to Point Measurements with Spike® and the Survey123 field app

 

We introduced support for the Spike laser range-finder in March 2018.  Spike is an excellent complement to Survey123, allowing you to quickly bring laser-accurate measurements into your forms. Jim Moore and Brett Stokes, who recently joined the Survey123 team, put together this video to demonstrate the basics of bringing measurements from Spike into Survey123.

 

 

In this release, we are bringing support for the Point to Point (P2P) measurement mode which was missing in our initial implementation. P2P is a very handy way to calculate distances between two objects because it does not require you to identify a 2D plane on which to measure. In P2P mode you can simply aim Spike at the first object, such as the side of a house, and take a photo. Then, aim at the second object, such as a tree or fence, and take a second photo. Spike will calculate the distance between those two objects and bring that value into your Survey123 form. You can also use Point to Point to measure the height of an object such as a tree, streetlight or building.

 

If  you are already using Spike with Survey123 and wish to try Point to  Point measurements, make sure you upgrade your Spike app from the store  with the latest version.

 

For more details on how Spike and Survey123 work together, check out theUsing Spike® with Survey123 for ArcGIS blog post.

 

Date/Time question type in web designer

 

A new Date/Time question type has been added in web designer.  This will help you capture both a date and a time in one single row, saving vertical space in your forms. Within web designer you can set a default value for this question, either selecting a static value, or the exact time when the form is open.  You can also set validation rules to constrain inputs to a time window.

 

Date-Time Question type in Survey123 web designer

 

Better field and choice naming in web designer

 

If you never liked auto-generated field names such as field_0, field_1... in your Survey123 feature layers, you will want to pay attention to this one. Let me start with a bit of context first:  When you publish a survey in web designer, we create on your behalf a feature layer field for every question in your form.  These fields are used later to store responses to your survey. Up until this release, the name of these fields followed a simple field_0, field_1 pattern. This was typically never an issue when using the Survey123 web site to inspect your data, but it was not ideal when exporting results into Excel, CSV, or when configuring web hooks.

 

Starting with this update, a more friendly name will be given to these fields based on the label of your questions. The following animation compares what an auto-generated feature layer schema looked like before, compared to what you will get now.

 

 

Field and choice names are now derived from your question and choice labels. Given that there are some constraints that apply to the names that can be given to fields in a feature layer, you will notice that your labels will not be used literally. For example, spaces will be replaced with underscores (_), very long labels will be shortened and special characters will be eliminated.

 

Using the Modify Schema dialog you can optionally fine tune the names of fields and choices to your liking, although remember that you will not be able to make adjustments in the schema once the fields have been added to the feature layer.

 

The option to Modify Schema in the Publish Survey Dialog has also been made more visible as a reminder of this important step before you publish your survey.

 

 

Delete and edit existing records for survey owners

 

As a survey owner, I am sure you always submit a couple of records to test out your survey designs, immediately checking values in the Data tab. You can now easily delete, and even edit values right from the Survey123 web site. You no longer need to use a separate tool to do that. All you need to do is to select the records in the table view, and then choose the Delete or Edit options in the right panel to make the changes you want.

 

Edit and delete records, right from within the Survey123 web site

 

At  this moment in time, the option to edit records will not be available  for surveys published from Survey123 Connect, but we are looking to  relaxing this limitation in the future.

 

 

 

Other fixes and enhancements

 

Survey123 web site:

 

  • ENH-000107831 Provide the ability to edit the survey submission "Thank you" screen seen in the browser when the survey is published from Survey123 Connect
  • Import custom themes from other surveys.
  • For text questions, in the Analyze tab, you can now choose to display a list of word counts or complete responses.
  • Much improved user experience for configuring custom report templates.
  • BUG-000119133 Field aliases in a survey in the Survey123 for ArcGIS application are not respected in single choice and drop-down lists.
  • BUG-000098360 When downloading data from a Survery123 survey that was made using Survey123 web designer, the field names are converted to {field_1}, {field_2}, ... instead of honoring the name in the data table.
  • BUG-000103150 Surveys created in Survey123 web designer using drop-down choices display 'choice1, choice2, ...' when exported to a CSV file or a shapefile.
  • BUG-000105778 Survey question choices from single choice questions do not correctly translate when exported to CSV or shapefile from surveys that were created via Survey123 web designer.
  • BUG-000114116 When using a custom template that writes out results from related and non-related attributes from a survey, the non-related records do not populate the template table.
  • BUG-000113548 When an audio attachment is included in the survey, the Survey123 for ArcGIS website fails to generate a report.

 

Survey123 field app and Connect

 

  • Allow users to zoom beyond level 18 if the tile package includes more detailed levels.
  • BUG-000119481 When creating a Survey123 for ArcGIS survey with an existing feature service, the float or single field types do not auto populate in the XLSForm created
  • BUG-000110786 When signing in to the Survey123 for ArcGIS (iOS) app configured with an IWA portal, the app uses the username and password entered at the beginning of the app session for all subsequent sign-in attempts.
  • BUG-000119847 Date questions in certain languages are not displaying the calendar correctly
  • BUG-000119899 Integer type questions with the "spinner" appearance type do not work
  • ENH-000105170 In Survey123, allow users to change the Location Provider, from the internal receiver to an external receiver.
  • ENH-000109937 Provide an indicator within the Survey123 interface to display which GPS unit the app is using.

In this blog post I will describe how you can integrate Survey123 with Spike. Spike is a laser-based measurement solution by Esri partner ikeGPS.   What makes Spike unique is that it allows you to easily measure the dimensions of remote objects, such as areas and lengths, all from a photo.

 

Say, for example, while doing a property inspection you need to calculate the height of a balcony, or the size of a garage door.  Rather than using a ladder and measuring tape, you can simply take a photo of the building, and then calculate dimensions by drawing on top of the photo.  You can similarly use Spike to calculate the size of road signs, billboards, poles, etc.   

 

You can embed Spike questions within Survey123 and automatically bring all measurements from Spike into your form: Tap on a Spike question, snap a photo, measure on it… and your measurements will get persisted in ArcGIS along with the rest of the survey data.

 

The integration of Survey123 with Spike is exciting news, because it has the potential to boost the productivity of certain data capture workflows tremendously.  This short video tutorial describes the basics of how Survey123 and Spike work together:

 

 

Lets next get into the details...

 

 

About Spike®

 

The Spike laser: The most visible aspect of Spike is the laser instrument. It is an eye safe Class-1 laser, designed to measure distances in a range between 2 and 200 meters with an accuracy of 5 centimeters. The laser is designed to be attached to your smartphone or tablet and paired using a Bluetooth connection.

 

Spike units have a retail price of $499 and are sold online and through a network of resellers.

 

The Spike app: Once the laser is paired, the Spike app uses the camera on your smartphone or tablet so you can take a photo of your object of interest. Using the distance to the photographed object captured by the laser, the Spike app can accurately calculate lengths and areas as you draw lines and polygons over the photo.

 

The Spike app is available for iOS and Android operating systems and is certified for use against a wide collection of smartphones and tablets

 

Getting familiar with Spike: Spike is straight-forward to use, but knowing a handful of tips and good practice in the field is key to get the best out of it.  The best reference to take your first steps is the Spike User Manual

 

Spike can be operated through two main modes:

 

  • Photo Measurement: When working in New Photo Measurement mode, you take a single photo, and then derive all measurements from it.  You can for example simply get the distance from your location to the object, or extract lengths and areas by drawing on your photo.
  • Point-to-Point Measurement: In this mode you can calculate the distance (horizontally and vertically) difference between two objects by taking a separate photo of each object.

       

Photo Measurement mode:In its simplest form, the Photo Measurement mode will allow you to simply snap a photo of an object, and get back the exact distance to that object form your current location.  This alone can be useful in multitude of use cases.  Say for example you need to document the width of a road: stand on one side of the road and take a photo targeting at the other end across. After taking the photo, Spike will give  you the exact distance. Not only you can get an accurate measurement, but you can do it without risking your life; safely from one side of the road. 

 

With Photo Measurement mode you can also measure distances (and areas) on objects by simply drawing on top of the photo you just took. For example, say you want to know what is the height of a building. Well, you take a photo of it, and then you extract the height by drawing on that photo.  If you want to derive measurements from a photo in this way, certain conditions need to be met.  When used correctly and in ideal conditions, you can expect a measurement with an accuracy of 1%.  For example, if you measure the height of an object to be 10 meters, you can expect the accuracy to be around 10 centimeters.

 

Let’s describe next what used correctly and ideal conditions means:

 

  • Measurements against a flat surface: You should only perform measurements on flat surfaces, such as a wall or a sign. The specific shape you want to measure should be on a rectangular plane. This is because you will need to define the plane in the photo before you can measure anything. 
  • Face your target front-on: For the most accurate measurements, you should take your photo while facing your target perpendicularly. That is, you need to be right in front of the plane on which you will do your measurements. If you need to take your photo at an angle, the expected accuracy of the measurements will be reduced progressively as you get further from being perpendicular.

 

 

  • Ideal target range: The ideal working range of the laser is between 6 and 100 meters, although technically you can push the limits and measure objects between 2 and 200 meters away.
  • Center your target: You also want to make sure that the object you want to measure is right in the center of the camera bulls eye, because the laser always calculates distances through the bulls eye.
  • Draw accurately: Once you have taken the photo, you will want to make sure you accurately draw your lines and areas for measurement. The Spike app has a handy magnifying window that will help you with that task.   If your photo is taken following all the tips above, but you do not take pride in carefully drawing the exact shapes you want to measure… the measurement will not be as accurate as it could be.

 

So far all of this may sound a little bit intimidating, but once you have the Spike device in your hand things are much simpler. Not just simpler, but also fun. Next you can see Brandon having a good time while ‘spiking’ outside Esri.

 

 

From our own experience, the Photo Measurement mode works best with man-made structures: walls, signs, billboards, doors, straight poles, streetlights etc.  Measuring the height of trees, rocks etc is much more challenging because you often do not have a good plane to reference your measurements.  If you do not have a good 2D plane to make your measurements on, then you should consider using the Point to Point measurement mode.

 

Point to Point Measurement mode: Point to Point or P2P is very useful when all you need is to measure the distance between two objects in front of you and you either cannot fit the two objects within a single photo, or when you do not have a good 2D plane on which to base your measurements. With P2P, you simply need to center your camera on your first target, say for example a tree and take a photo. Then you turn from that same location to take a photo of your second target, say for example a wall. Spike will compute the horizontal and vertical distances between the two photographed objects.

 

Like with any tool out there, it takes a bit of practice to fully understand what is the best measurement mode for the job.  Spike can greatly boost the productivity of field workers saving valuable time. It also can provide a much safer way to make measurements. For hard to reach objects, Spike can make it possible to perform measurements that could not be done otherwise.

 

Now that I have described the basics of Spike, it is time to go into the details of how Survey123 and Spike work together.

 

Integrating Survey123 with Spike (Photo Measurements)

 

Starting with Survey123 version 2.6, you can incorporate Spike functionality into your form. This allows you to streamline the use of Spike within your data collection workflows. For example,

if you have a survey to help map the presence of graffiti in the city, you will want to capture many things including the location, typology (Tag, Throw-up, Blockbuster…), surface, photo and size.  Spike can help you capture the size accurately, so you can estimate the cost of removal.

 

Adding Spike questions into a survey: You can add Spike questions to a survey using Survey123 Connect for ArcGIS. In your XLSForm, add a question of type image, and then set the appearance to either spike-full-measure, spike or spike-point-to-point:

 

  • spike: With this appearance, Survey123 will launch the Spike app so you can simply aim at your object of interest and snap a photo of it.  The spike appearance is useful when you simply want to get the distance to the photographed object and its estimated location.
  • spike-full-measure: This appearance sets the Spike app in New Photo Measurement mode as described in the previous section. When using this appearance, you will be able to get the measured lengths and areas, into your form.
  • spike-point-to-point: Launches Spike in Point to Point mode so you can calculate the horizontal and vertical distances between two photographed objects.

 

When using the spike-full-measure, spike-point-to-point and spike appearances, Survey123 will let users easily launch the Spike app from within the form.  Once the photo has been taken and measurements added, Spike will return back to Survey123, so all measurements of interest can be extracted and stored in the survey.  The measure object with Spike help topic describes step by step how Survey123 and Spike work together.

 

Spike photos will be stored as an attachment automatically.  This is a great feature because photos will become a verifiable record persisted with your data. Photos will show how accurately the measurement was made in the field, and if needed, the photo itself could be used in the back-office to make additional measurements.

The use of Spike within Survey123 is only available to logged-in users. Spike questions can be used while online or offline, but you must be logged-in.

                            

 

Extracting Spike measurements with pulldata(): Spike uses EXIF photo headers to store information such as the location from which the photo was taken, the direction, distance and measurements made in the Spike app.  In a previous blog post we explored how to extract EXIF metadata from an image in Survey123 using the pulldata() function. This same technique can be used to extract Spike metadata.

 

The Spike metadata in the EXIF of the image is split between standard EXIF tags and custom information stored in the ImageDescription tag. The following table describes standard tags populated by Spike:

 

 

EXIF tagDescription
gpsdestlongitude

The estimated X coordinate of the photographed object

gpsdestlatitude

The estimated Y coordinate of the photographed object

gpsdestcoordinate

The XY coordinate pair of the photographed object

gpstimestamp

The time when the photo was taken

gpsdatestamp

The date when the photo was taken

gpsdestdistance

The distance between the photographed object and your device

imageDescription

A JSON string including measurements captured by the Spike app

 

This expression will extract the distance in meters between the photographed object and the device:

 

pulldata("@exif", ${spike}, "gpsdestdistance")

 

In order to extract photo-measurements from Spike, your pulldata() function will need to first get the ImageDescription EXIF tag, and then parse the returning JSON string to extract the specific dimensions you are looking for.

 

For example, the following expression assumes the first measurement made in Spike was of type length, and gets its value in meters:

 

pulldata("@json",  pulldata("@exif", ${spike }, "ImageDescription"), "Spike.objects[1].dimensions")

 

The next expression assumes the first measurement made was of type area and extracts its value in square meters:

pulldata("@json",  pulldata("@exif", ${spike_full}, "ImageDescription"), "Spike.objects[1].area")

 

This expression gets the horizontal distance between two objects as measured through the Point  to Point measurement mode:

 

pulldata("@json",  pulldata("@exif", ${spike }, "ImageDescription"), "P2P.horizontal_distance")

 

 

Spike returns many other properties through the ImageDescription EXIF tag including: the pitch, roll and direction of your device when the photo was taken, the unique identifier of the specific Spike laser unit that captured the distance measurement etc. The Spike section of the Media help topic describes in detail the contents of the JSON object stored in the ImageDescription.

 

Another way to explore the contents of the ImageDescription tag is to simply add a text question to your form and have it populated with the contents of the ImageDescription tag through a calculation.  When you do this, it is important that you set the esriFieldLength column of your text question to 1000 characters. The ImageDescription JSON string can be quite big.

 

A great starting point to experiment with all the things you can do with XLSForms and Spike is our Spike sample. I strongly recommend that you have a look at it:

 

1.    Open Survey123 Connect for ArcGIS
2.    Click on Create New Survey
3.    Search for the Spike survey in the Samples category
4.    Publish it and test from your smartphone
5.    Look into the XLS file to learn all the techniques used in the sample.

 

Integrating Survey123 with Spike (Estimate Locations)

 

While the heart of what Spike excels at is helping you measuring dimensions over photos, you can also use Survey123 to roughly estimate the location of remote objects.  For example, you can map the location of a building without stepping out of your car, or the location of a streetlight across the street.

 

Before we go into the details of estimating the location of remote objects, I want to emphasize that Spike is not a high accuracy surveying device.  It can measure accurately distances to objects, but when estimating the location of remote objects there are several sources of error that will come into play outside of what Spike is designed to do.

 

To define the location of a remote object, Spike relies on the following:

 

  • The location of your own phone or tablet: This is the first source of error. A typical smartphone is not going to give you a highly accurate location for your phone. Your location accuracy may vary depending on many factors and if your location is off, the estimated location of the remote object will be off too.  To correct this problem, you can connect an external GNSS receiver to your own phone or tablet via Bluetooth. If used correctly, external GNSS receivers will improve the source location used by Spike in its calculations. In the side photo, for example, Survey123 is combined with Spike and Juniper Systems Geode Sub-meter GNSS antenna.
  • The distance to the remote object: This is going to be very accurate as long as you keep yourself within the working range of Spike (2 to 200 meters) and you aim at the remote object using the bull’s eye in the Spike app. Measuring distances to objects is what Spike is designed to do, and does it very well.
  • The azimuth to the remote object as measured from your own device location: The azimuth is another important source of error. The azimuth is obtained from the compass in your own smartphone or tablet. The compass in your smartphone must be calibrated before use by Spike. It is critical that you follow steps in this compass calibration video-tutorial before you estimate remote locations. Even with your compass calibrated, it is normal to get deviations of a few degrees, which will increase the error as the distance to the remote object increases.

 

The gpsdestlongitude and gpsdestlatitude properties will be populated with both the spike and spike-full-measure appearances.If you do not plan to capture any length or area measurements and all you want is the location of the photographed object, then the best is to use the spike appearance.

 

To extract the estimated latitude and longitude of the photographed object, you will use the pulldata() function within a calculation. For example, the following expression will extract the latitude:

 

pulldata("@exif", ${spike}, "gpsdestlatitude")

 

You can store the latitude and longitude as attributes in your survey, and then create an XY Event Layer with them in ArcGIS Pro or other tools.  

While it should be possible for you to calculate a geopoint question with the latitude and longitude values extracted from the Spike photo, there is currently a known limitation in Survey123 preventing the successful calculation when applied. This is in our backlog and we will work towards resolving the problem as soon as possible.

          

As stated before, it is best that you exercise Spike in the field in all its capabilities. To fully understand its potential and limitations you must experience it in the field in real working conditions.

 

If you need some ideas, here is an informative video by IkeGPS further describing some common use cases for Survey123 and Spike.

 

Our Developer Summit conference is approaching fast.  We at Esri always put a lot of energy into this event. It is an opportunity to meet face to face with many of you, share our work, discuss new features and road map plans. 

 

2019 will be very special for us as we will make 4 years since we announced the graduation of Survey123 from an Esri Labs proof of concept into a full fleshed ArcGIS Product. This year we will announce details on ambitious plans for the new releases to come: direct connections to external GNSS receivers in the field app, added support for polygon and line features, a release date for our Survey123 report services, enhanced integration with Spike laser measurement tools, a new extensibility framework and many more great news. Members of the Survey123 team from our offices in Beijing, Australia and Redlands will come to Palm Springs. We are really excited for the opportunity to meet you again.

 

Today we want to share with you some tips and a guide for anything Survey123 at these events.

 

The Events App

 

I highly recommend that you download the Esri Events app, so you can always be on top of last minute changes and manage your schedule.  As of the time when I write this post the detailed schedule is not yet up in the app, but it will be available shortly.  This app will be a good companion throughout the entire conference.

 

Pre-Summit Hands-On Training

 

Our Esri Pre-Summit Hands-On training sessions take place on Sunday 3 and Monday 4. These are full day sessions with a mix of lessons and practical challenges. You bring your own laptop, so you can take all homework home. Massive learning guaranteed!   Our sessions start at 8:30 sharp. You can register starting at 7:30 at the Hotel Riviera.

 

  • Mastering Smart Form Design with Survey123 and XLSForm.
    • Sunday, March 3 from 8:30am to 5:00pm
    • Royal II at Hotel Riviera Palm Springs.
  • Extending Survey123 for ArcGIS.
    • Monday, March 4 at Royal II from 8:30am to 5:00pm
    • Royal II at Hotel Riviera Palm Springs

 

Esri Showcase and GIS Solutions Expo

 

The GIS Solutions Expo area opens Monday from 2:00pm to 7:00pm at the Primrose Ballroom. This is a great place to meet many partners who work closely with Survey123.  Here are a few:

 

  • Microsoft. Diamond sponsor this year. Showcasing the Survey123 Microsoft Flow connector.
  • Bad Elf, EOS Positioning Systems, Trimble, GENEC:  Providing GNSS receivers for which Survey123 3.3 will provide direct connectivity capabilities.
  • Zebra Technologies: Manufacturing rugged devices compatible with Survey123.
  • Geo Jobe: Custom software development services.

 

During this time, you can also swing by the Esri Showcase area to visit the Survey123 team in the Apps area.

 

On Tuesday from noon to 8:30pm, Wednesday from 1:00pm to 6:30pm and Thursday from 9:00am to 4:00pm the Esri Showcase will continue open in Oasis 1 and 2. Come to the Showcase and look for the Survey123 booth. This is your chance to meet people from the Survey123 team, have a relaxed conversation, ask questions and network with other Survey123 users.

 

Meet the Teams

 

The Meet the Teams event will take place from 6:00pm to 8:30pm in Oasis 1 and 2 on Tuesday. In other words, at the Esri Showcase area. Drinks, food and GIS to spare.

 

Esri Dev Summit Technical Workshops

 

These are 60 minute sessions. All take place in the Palm Springs Convention Center. A good place to learn from the best, ask questions and meet other Survey123 users.

 

Other related Technical Workshops

 

If you plan to extend or customize Survey123, the AppStudio sessions are a must.

 

 

Survey123 Demo Theaters

 

Short and to the point sessions focusing on very specific topics. Live demos and time for questions are guaranteed. All Demo Theaters take place at the showcase area.

 

 

Survey123 Special Interest  Group (SIG)

 

This session is a great place to mingle with other Survey123  Ninjas and members of the Survey123 team. Keep your own lunch box because this SIG takes place at noon. We will break the ice with help from a special guest who will share his own work deploying Survey123. Then we will open an interactive Q&A session.

 

  • Survey123 SIG
    • Thursday, March 7 from noon to 1:00pm
    • Primrose A at the Palm Springs Convention Center

Many web applications support the notion of URL parameters; Survey123 web forms are no exception. URL parameters allow you to dynamically pass data into your survey. This data can be used to prepopulate questions, hide questions, change the language of a form and many other things with your survey form. In this blog post, I will explore the options available in detail.

 

Before I start, I want to clarify that in the past we already covered how to use the Custom URL Scheme in the Survey123 field app. The concept of a Custom URL Scheme is similar to URL parameters, but they are two different things: the Custom URL Scheme applies to the Survey123 field app and the URL parameters discussed in this post only apply to web forms. That is, to forms loaded within a web browser, as opposed to loaded into the Survey123 field app in your device.

 

With that, lets get started:

 

The Basics

 

Lets first get familiar with how surveys get loaded into the Survey123 web app. Take the following URL:

 

https://survey123.arcgis.com/share/1cb28b212b5542acbbdbaa35feba0765

 

The first part of the URL refers to the Survey123 web app: https://survey123.arcgis.com/share/ We host the Survey123 web app in our ArcGIS Online servers, and it is used to render your surveys as web forms.  The second part of the URL is the unique identifier of your survey. In this particular case, it is: 1cb28b212b5542acbbdbaa35feba0765. The complete URL will open the Survey123 web app in your web browser and immediately present the survey 1cb28b212b5542acbbdbaa35feba0765, in this case it is an Oak Tree Health survey.

 

So far, no URL parameters have been used, but now we are going to add one parameter to automatically populate one of the questions. Try the following:

 

https://survey123.arcgis.com/share/1cb28b212b5542acbbdbaa35feba0765?field:submittedBy=Fernando Paredes

 

You will notice that now the Submitted By question is automatically adding the name Fernando Paredes in the survey.  Well, that was a URL parameter!  Note that immediately after the basic URL of the web form, I added a question mark (?). The question mark indicates that what follows are URL parameters. Next, I added the name of the parameter, which in this case is field:submittedBy and a value for that parameter: Fernando Paredes.

 

You can add multiple parameters by simply separating them with an ampersand (&). For example:

 

https://survey123.arcgis.com/share/1cb28b212b5542acbbdbaa35feba0765?field:submittedBy=Fernando Paredes&field:commonName=Oak

 

Next, lets learn about the different URL parameters you can pass to Survey123 web forms.

 

Some of the URL parameters described here are supported in surveys published with 3.2 or newer versions. If your URL parameters do not seem to take effect, re-publish your survey so it gets upgraded to the latest version, and then try again.

 

Setting values on questions (field:fieldname)

 

In the previous section you saw how a URL parameter can set a value to a question in your form, but lets take a closer look at how it works. The syntax is simple:

 

field:commonName=Oak

 

The name of the parameter is made  out of two distinct parts. First, you have the field: suffix and then you have the name of the question where you want to put a value.  Figuring out the name of a question can be tricky. The question name should not be confused with the label of the question. The label is what users see in the form. The question name represents the column in your feature layer  where the response will be stored. 

 

If you author surveys in Survey123 Connect, I am sure you already know what  I am talking about: The question name is represented by the name column in the survey worksheet of your XLSForm.  If you design your forms in Survey123 web designer, then finding out the exact name of your questions deserves a more detailed explanation.

 

After adding a question into your survey in web designer, you need to set its label and other properties, but not the name. The name of your question is automatically assigned by Survey123 web designer.  Assigning a valid question name needs to follow very strict rules (the name cannot start with a number, cannot have special characters, or  spaces and must be unique within your entire form) and that is why we put that out of your way in designer. This simplifies  authoring for beginners, although in cases like this it obscures what is really going on.   In any event, you can look at the question names by using the 'Modify Schema' link during the publishing process. 

 

Modify Schema in Survey123 web designer

 

The Modify Schema dialog will let you define the exact names of your questions only when you add your questions to the form for the first time. Once you publish your survey, questions that already exist in your survey will appear as read-only in the Modify Schema dialog.   In my case, I really did not want to change anything, I simply wanted to get the names so I could use them with my URL parameters.

 

Question names are case sensitive. You must pass the exact name. For example, in the oak survey, field:commonName=Oak will work, but field:CommonName=Oak will not work.

            

 

Centering geopoint questions (center)

 

The center parameter lets you set the default location of the geopoint question in your survey.  It looks like this:

 

https://survey123.arcgis.com/share/1cb28b212b5542acbbdbaa35feba0765?center=34.1,-117

 

This parameter accepts a latitude/longitude coordinate pair where the values are separated by a comma.  Now. there are a couple of important things to remember when using this parameter:

 

  1. This URL parameter only takes effect if the geopoint question is flagged as required, AND
  2. If authoring from web designer, the option to 'Ask user's location when opening this question' must be disabled'.

 

If the geopoint question is not required or the user location is used, the values from this URL parameter will be overridden at runtime when the end-user opens the question.

 

Hiding questions and survey elements (hide)

 

The hide parameter is handy when you want to control visual aspects of your survey. You can load a survey and hide questions, the navigation bar and more.  This parameter takes as an input more or more values, separated by a comma.

 

Parameter ValueDescription
navbarHides the navigation bar. That is, the bar at the top of the survey that includes options to login/logout and to change the language. This is particularly useful when you embed your survey within a website. Example.
headerHides the survey header. The header typically includes the title of the survey or alternatively a banner image. This is particularly useful when you embed your survey within a website. Example.
descriptionThe description element is optionally included if you author your survey in web designer.
footerHides the footer element, which includes the Powered by Survey123 link, or an alternative link if you modified it. Also useful when embedding your survey within a website. Example.
themeUse the theme value to disable any custom theme applied to your survey.  Example.
field:fieldNameThis value is used to hide specific questions within your survey. If you want to hide multiple questions, simply add their names separated by a comma. Example hiding the Submitted by and Survey Date questions.

 

The hide parameter is very flexible, allowing you to hide multiple elements at once. That is, you can hide the navigation bar, the footer, description and as many questions in the survey as you like.   To hide multiple elements, you simply need to keep adding comma separated values to hide the different components. For example:

 

...?hide=field:submittedBy,field:surveyDate,theme,footer

 

Another interesting thing you can do is hide a question and at the same time set its default value through a URL parameter. For example, you can hide the Submitted by question in the Oak survey and also set a value for it through your URL parameter.

 

Redirect the Survey123 web app to your own ArcGIS Enterprise (portal)

 

While the Survey123 web app is hosted in ArcGIS Online, there is no reason why you can't load surveys from your own ArcGIS Enteprise instance.  You do this through the portal URL parameter, which takes as a value the URL of your own ArcGIS Enterprise  Web Adaptor. For example:

 

https://survey123.arcgis.com/share/acb28b212b5542acbbdbaa35feba0765?portalUrl=https://acme.com/gis

 

The above URL will load into your web browser the survey with identifier acb28b212b5542acbbdbaa35feba0765 as found in the https://acme.com/gis ArcGIS Enterprise instance.

 

Set the app that will open your survey (open)

 

You can use the open URL parameter to determine the app to use with survey. Valid values for this parameter include: web, native and menu.

 

https://survey123.arcgis.com/share/1cb28b212b5542acbbdbaa35feba0765?open=menu

 

Parameter Value Description
webOpens your survey in the Survey123 web app, as a web form. This is the default. Example.
nativeWill open your survey in the Survey123 field app. This option will only work if the Survey123 field app is already installed in the device. Example.
menuWill open web page to let the end user decide if the survey should be open in the Survey123 field app or within a web browser. Example.

 

Set the language of your survey (lang)

 

The lang parameter switches the language of your survey dynamically. This parameter only will work if you have included language translations for your survey.  For more details on mutiple-language surveys refer to Introducing Multiple Language Surveys 

 

The lang parameter accepts ISO language codes. For example: lang=zh-cn  and lang=en.

National Weatherperson's Day, also known as National Weatherman's Day, is observed on February 5 primarily in the United States. It recognizes individuals in the fields of meteorology, weather forecasting and broadcast meteorology, as well as volunteer storm spotters and observers. It is observed on the birthday of John Jeffries, one of the United States' first weather observers who took daily measurements starting in 1774. Jeffries also made the first balloon flight over London in 1784 with the purpose of gathering data for a scientific study of the air at high altitudes.

 

Our forecast for the 3.2 release is as follows: Bright like the sun, new features and enhancements in the morning, particularly in the Survey123 website and web designer. A joyful rain of fixes for the Survey123 field app at night, including massive improvements to repeats and nested repeats. 

 

Pages for your web forms

 

In this update you can organize questions in your surveys across multiple pages. Pages are particularly useful when working on very large forms, helping you logically organize your questions and giving end users a sense of progress across the entire survey.

 

 

In the example above, I added a welcome image and text on the first page to create a cover for  my survey. Note that the first page does not expect any input from the survey. It is just a welcoming page, or cover.  Next, I organized the actual questions within my form into pages, giving each page a descriptive title at the top.  As users move from page to page, a progress bar at the bottom shows how close they are to the end of the survey.

 

You can combine groups and pages to further help organize questions within your survey!

 

If you use web designer to create your surveys, you will find that we have added a Page option in the main panel. Just like you do with other question types, simply click on Page, and it will be added to your form. You will be able to drag and drop questions into your new page, move questions from one page to another and even merge and duplicate pages!

 

 

If you want to work with pages in Survey123 Connect, you need to do two things:

 

  • First, in the settings worksheet of your XLSForm, you will set the value of the style column to pages.
  • Then, in the survey worksheet, you will use the field-list appearance for any XLSForm begin_group question type that you want to turn into a page. 

 

Also note that when using the pages style, pages will be automatically created for any question outside field-list groups.

 

Whilst the implementation for pages is complete in our web form, currently in the field app constraint and required checks will not be performed when you leave a page.  These checks will only be done when you attempt to submit the survey. In some scenarios this can make it difficult for end users to identify the exact question in the form where the validation rules were broken. Make sure you define good error messages for your required and constraint rules. Other than that, pages work pretty well in the field app!

 

Embedded public web forms

 

You can now embed public web forms in your own web site. As shown below, the Collaborate tab of your survey will now include an Embed option from which you can copy the HTML code needed to embed your survey within a web site.

 

 

A handful of embed options let you quickly configure your embed HTML code to hide elements of your survey that you may want to hide, such as the header, sign-in, multiple language options, footer, etc.  You can even disable the theme colors to provide a more neutral presence of your embedded survey within the web site.

 

Below is an example showing a Survey123 form embedded within a web page.  Note that the header, footer and themes have been disabled to make the survey fit better within the web site.

 

 

Better word clouds

 

The Survey123 website includes a number of reporting capabilities to help you understand data captured through your surveys. The Analyze page, for example, aggregates responses for categorical, date and number questions and creates charts and maps to more quickly identify trends on your data. 

 

Questions with free text are always trickier to aggregate, but that is where word clouds come to help. A word cloud takes the most common words found in your data and sizes them according to popularity. The bigger the word, the more repetitions. It is a simple concept but it often gives great insight.  Unfortunately, the most common words in our language are far from interesting in this context. Think about it: this, that, of, a...  all pretty useless stuff in a word cloud, don't you think?  These words are known as stop-words, and now you can set a filter to ignore them. In English at least.

 

Here you can see how word cloud filters made a difference for our friends at City of Lakeland, in Florida:

 

In this particular scenario, the survey asked people in the city 'What are your thoughts on how can we better educate drivers to pay attention?'. The most popular words among the responses are 'the', 'and', 'to' and 'of', but if we  apply the stop word filter, much more relevant words will come out:  speed, signs and people.  With stop word filters you can more easily understand certain relevant trends in your data.

 

More on custom themes

 

We introduced Custom Themes not long ago. Definitely a good addition to give your surveys a nice final touch! If you haven't already, I highly recommend you watch this video-tutorial or read the Introducing Custom Themes blog post.

 

 

In this update 6 new theme templates have been added. 5 of them will help you quickly switch through different color combinations. You can also make tweaks in them, of course, but they provide a nice start.  The sixth template is more interesting, in that it will mirror the Shared Theme of your ArcGIS organization.  If you are not familiar with this concept of Shared Theme, have a look at Ian's blog post Introducing Shared Theme: a new app styling capability in ArcGIS Online.  The Shared Theme is set by the administrator of an ArcGIS Organization defining the basics for styling configurable apps in it: text and background color, etc.  Now, you can easily match that style!

 

Web designer: Option to automatically center map at the device's location in web forms

 

A new option has been added in web designer to automatically center the map at the user's location when a geopoint question is open within a web form.

 

 

Lets describe in more detail what is going on here, because this option only makes sense once differences between the behavior of geopoint questions across web forms and the Survey123 field app are understood. 

 

Geopoint questions in the Survey123 field app are by default centered at the user's location. In a Web Form, the behavior is very different.  When your geopoint questions are shown within a web browser, the location of the map remains as set by the author of the survey. The Survey123 web app by default will not attempt to gather the user's location. Otherwise, as soon as the survey is loaded, the web browser will automatically present a dialog to the end user asking for permission to gather the device's location.  Without proper context on why that  message is appearing, this would cause distrust in many users.

 

The user can change the location of the map by either manually panning the map or centering it at a particular address or at the user's location. By enabling this new option, the map, once in edit mode, will automatically center to the user's location.  This will trigger the web browser to require confirmation before handing over the location to the Survey123 web app, but this will happen in context.  Users will understand at that point why the survey is attempting to gather their location.

 

For the reasons described above, this new setting has no effect when the survey is loaded in the Survey123 field app.

 

Other enhancements and fixes

 

Survey123 Website

 

  • BUG-000112899 Publishing a survey on survey123.arcgis.com connected to a Portal for ArcGIS using Integrated Windows Authentication (IWA) returns the error message, "Unable to publish the survey. Unexpected token < in JSON at position 0".
  • BUG-000116898 Renaming the survey under 'Edit Survey Info' in survey123.arcgis.com will cause the feature service to change the name from _fieldworker to _stakeholder.
  • BUG-000117623 When survey123.arcgis.com is accessed via Portal and only one record is present in the service, the default extent and zoom level configured on the survey are not honored when viewing from the Data tab.
  • BUG-000116269 When printing a web map in a custom report from the Survey123 for ArcGIS website, at least one element of the web map must be public, otherwise the error message, "An error occurred while generating report(s)" is returned.
  • BUG-000117239 Survey123 does not honor survey’s viewer collaboration with a group in ArcGIS Online if the survey has been authored through Survey123 Connect using an ArcGIS Server secured feature service added to ArcGIS Online as item with Credentials stored.
  • BUG-000116800 Reports generated from the Survey123 for ArcGIS website show the Object ID as a date.
  • BUG-000116268 When printing custom reports from survey123.arcgis.com, the web map in the report fails to display all layers in the map.
  • BUG-000118284 In Survey123 for ArcGIS, the map scale setting is not honored when including a map in a report.
  • BUG-000118703 Surveys with calculate type questions that use pulldata() on a geopoint question within an if statement display the error "Error: Initialing Form... FormLogicError: pulldata with incorrect number of parameters found: pulldata('@geopoint', // , '')" and load without form logic when opened in the Survey123 Web App.
  • Custom Reports can now access all fields within the underlying feature service.
  • Custom Report syntax in Microsoft Word documents is now checked immediately after uploading the template.
  • Added support for the XLSForm function @property in Web Forms.

 

Survey123 Connect

 

  • Survey123 Connect will no longer overwrite survey settings (such as web hook configurations) updated through the Survey123 website.
  • BUG-000111392 Survey123 Connect installed on a Windows 2012 R2 machine crashes when publishing a survey to Portal for ArcGIS 10.5.1 configured with enterprise logins.
  • BUG-000119026 Delete refresh token stored in SecureStorage if auto login fails with invalid refreshtoken error.
  • BUG-000097165 - Copy images used for form background into the media folder.

 

Survey123 Field App

 

  • Various fixes affecting repeats and nested repeats (BUG-000117852, BUG-000117987, BUG-000118094, BUG-000118449 and many others).
    • BUG-000117852 : Surveys for geopoint, picture and select one questions are not displayed for the second and subsequent repeat questions/related tables in sent folder if those questions are relevant questions.
    • BUG-000117987 : Calculation fields fails to retain submitted values in Inbox if the field are part of "Repeats".
    • BUG-000118094 Relevancy questions within repeats do not save the information when the survey is saved as a draft.
    • BUG-000118449 : When including a signature field in a relevancy controlled group within a repeat in Survey123 Connect, the first signature entered is not displayed in the outbox (drafts).
  • BUG-000117493 "SSL Handshake failed (6)" error is generated in Survey123 app when using Android 7.0 or higher and using non-CA certificates for Portal.
  • BUG-000110786 - Survey123 cannot change from an Windows Authentication (IWA) portal to another.
  • BUG-000113293, BUG-000113294 - User signed out when losing network connection.
  • BUG-000098854: Survey123 App Portal cannot be added after tapping "Add Portal" in Windows Mobile.
  • BUG-000118375 Mathematical calculations from Inbox do not trigger when NaN or null values are used.
  • BUG-000106578, BUG-000112873 - When choice_filter used, the name text is saved as the data value, instead of the label text.

 

Did you know that using XLSForm you can choose to save the label of the selected item in a list instead of the name? For more details see: Survey123 Tricks of the Trade: XLSForm functions for lists 

 

  • ENH-000109073 - Include a comma (thousands separator) in decimal questions.
  • Various bug fixes for localization issues.

 

For more details on the 3.2 release, check out our What's New Help Topic, which also includes an archive of all new features added in previous releases.

[Last updated January 23, 2019]

 

In this blog post I will describe how you can configure your Survey123 smart forms to support multiple languages.  With multiple language support, end-users can pick the language for the questions presented in the form and you can get all their responses into a single feature layer. Multiple language surveys are authored in Survey123 Connect, but once published, they are supported in both the Survey123 Web and Field apps.

 

Multiple language surveys are created in XLSForms with Survey123 Connect

 

In order to add multi language support into a survey, you will use Survey123 Connect for ArcGIS. Survey123 Connect is a desktop tool that you can download into your Mac and Windows machine. Survey123 Connect works in combination with Microsoft Excel and lets you author smart forms following the XLSForm specification. Multiple language support is one of the many features of the XLSForm standard, and Survey123 works with it. If you are not familiar with XLSForm yet, I would strongly recommend you start with our XLSForm essentials, XLSForm video tutorials or this beginner exercise.

 

You can use Survey123 Connect to start a new survey from scratch, or to modify a survey you may have authored on the Survey123 web site.

 

How-to: A first look

 

The easiest way to understand how multiple language surveys are built is to look at an example.

 

  1. Open Survey123 Connect for ArcGIS
  2. Click on New Survey and select the Samples category
  3. Choose the Multiple Languages sample and open it

 

Note that in the Connect preview you will already see the language switcher in the top-right corner of the preview.  You can use the language switcher  to flip through the different languages.  If you publish the survey, the language switcher will also be present in the Survey123 Field app as well as in Web Forms.

 

Next, open the XLSForm spreadsheet by clicking on the top icon of the left toolbar. This will open your XLSForm in your spreadsheet editor.

 

Multiple columns have been added into the XLSForm to translate the labels of questions. Each language is notated using a descriptive string for the language followed by its corresponding ISO 639-1 code enclosed in parenthesis. For example, the XLSForm column with the question label in Spanish will be label::Español (es), and the label in English will be label::English (en).

 

You can add translations to labels, but also to hints (hint::Español (es), hint::English (en)...), constraint messages and even images! For example, if you want to include an image with a diagram along with your question, you can use the image::Español (es) column to reference a diagram that has text in Spanish and the image:: English (en) column to include that same diagram with text in English.

 

typenamelabel::English (en)label::Greek (el)hint::English (en)
textnameWhat is your name?Ποιο ειναι το ονομα σου?Type your name
select_one ananimalWhat is your favorite animal?Ποιο είναι το αγαπημένο σας ζώο;Choose one animal

 

Note: If you start adding language columns for your labels, make sure you add a language qualifier to all of them.

      

 

Similarly to how questions are translated in the survey XLSForm worksheet, choices in lists can also be translated. If you turn into the choices worksheet you will note that the same technique is used to translate the choice labels. Similarly to questions, if  you are using the image column with your choices, you can translate it too.

 

list_namenamelabel::English (en)label::Chinese (zh)label::Greek (el)label::Español (es)
andogdogσκύλοςperro
ancatcatγάταgato
anbirdbirdπουλίpájaro
anfishfishψάριpez

 

By default, Survey123 will get the language code of your device’s locale settings and try to find the right column in your spreadsheet that matches that locale. In this way, the survey will by default open in the language that matches the device’s locale. You can overwrite this behavior by defining the default language in the settings worksheet of your XLSForm.  The language switcher in the Survey123 app will let users switch to any of the available languages defined in your form.

 

form_titleform_idinstance_namedefault_language
Multiple LanguagesEnglish (en)

 

All the above is also nicely described in this new video tutorial created by James Moore.

 

 

Other important things to know:

 

  • Not everything in a survey can be translated to multiple languages. The title of the survey, for example, only supports one language.

 

  • If you use select_one_or_other type of questions in your XLSForm, your translations will not apply to the ‘other’ choice. If you plan to use your survey in a language other than English, you should not use select_one_or_other and instead build that functionality manually by adding an 'other' choice into your list and then using a relevant statement to make visible the free text question for 'other' when that option is chosen.

 

  • The language of your form defines the format of Dates in the calendar control.

 

Learn more:

 

 

[Update November 20,2017] A new learn.arcgis.com lesson on Multiple Language surveys has been published.

[Update July 20, 2018] Included list of 2-character language codes. As of version 3.0 (update July 2018) you can no longer specify languages outside the official ISO 639-1 list of 2-character codes. For any previously published forms, language codes outside the list will continue to work.

[Update December 19, 2018] Minor adjustments  made  here and there to more consistently use ISO 639-1 codes throughout the text.

Webhook capability in Survey123 is very helpful to automate process without make a code. you can follow this link for the details : Automating workflows with Survey123 and Microsoft Flow 

I got some challenges when use it in Microsoft Flow especially about time and date. 

  1. originally time and date from survey123 is EPOCH format.
  2. by default time zone form survey123 is UTC.
  3. I have needs to display time and date in proper string format.

 

Convert EPOCH to YYYY/MM/DD HH:mm:ss

if you access time and date from field directly from dynamic content, it will display epoch time. to show time and date as YYYY/MM/DD HH:mm:sss you can use expression instead of dynamic content.

expression 

expression syntax :
addseconds('1970-1-1', Div(triggerBody()?['feature']?['attributes']?['dateTime'],1000) , 'HH:mm:ss')
this part ['feature']?['attributes']?['dateTime'] is time field in your featureservice.
it will return time and date like this : 2019-01-22 02:00:00 (please bear in mind this is UTC time zone)
Convert from UTC to My City Time Zone :
as you can see on the picture above, I added my time expression into add to time plugin. this plugin is default from Microsoft Flow to add interval time into your exisiting time. my city time zone is UTC +7. so I added 7 in interval form and select hour in time unit options.
the result will be like this : 2019-01-16T13:00:00.0000000
its return time and date with full string format. 
Reformat time and date string:
in my case, I want to extract time from converted time and display it as short time pattern.I added Convert time zone plugin provided by microsoft flow. basically this plugin used for converting time zone, however there is an options to display format time and date format string. so I used "short time pattern" in format string options then convert time zone to same time zone due to my time has been converted in previous step by adding interval manually. 
then I can use time in email body like this :
or use converted time in event calendar like this :
here is the whole diagram :
Any inputs are welcome
Regards
Amri