By default, when you publish a survey in Survey123 Connect for ArcGIS, a feature service is created using the schema from your survey.
Prepare a feature service
To use a feature service with Survey123, it must be a hosted service from ArcGIS Enterprise or ArcGIS Online, or a service from ArcGIS Server (10.4 or later) that is federated with Portal for ArcGIS.
The owner and users of the survey must have access to the feature service.
Repeats cannot reference related layers or tables unless the child layer or table uses a GUID field for the relationship. Although not a requirement in versions of ArcGIS Server supported by Survey123, best practice is to use a GUID field for the relationship in the parent layer. The feature service must support applying edits with global IDs.
If you plan to edit your surveys, ensure that either your feature service allows null values or your survey uses required fields. Survey123 uses null values in editing when an answer is deleted and is not replaced; consequently, Survey123 will not submit a survey from a feature service that doesn't permit null values.
For a feature service to support applying edits with global IDs, the following requirements must be met:
- The layers in the feature service must have a globalid column with a unique index. The easiest way to do this is to enable sync when publishing your feature service.
- The data cannot be versioned.
- Global IDs must exist in a feature layer or table, prior to enabling attachments on either.
For more information on how to support editing in your feature service, see supportsApplyEditsWithGlobalId in Layer (Feature Service) of the ArcGIS REST API documentation.
To work with nonfederated feature services, some additional configuration is required, as you will need to manually create a feature layer item in your ArcGIS organization that represents the service. For details, see this knowledge base article on how to connect to nonfederated ArcGIS Server services.
Generate a survey from a feature service
The quickest way to create a survey that is linked to an existing feature service is to generate the survey from the feature service in Survey123 Connect for ArcGIS.
It's possible to use a survey generated from a feature service to edit existing attributes in polygon and polyline features. When doing so, the geometry field will not be added as a question in the survey, and one should not be added, as the question won't display properly. New features should not be added to these services through Survey123, as they will submit with null geometry. The process for generating and using your survey is otherwise the same.
In Survey123 Connect, choose New Survey, sign in to your ArcGIS organization, and select the Feature Services category. Browse to and select the desired feature service and click Create Survey. An XLSForm will be generated from your feature service. You can then publish this survey immediately or further customize it. For example, you can add more descriptive labels to the questions or group them into sections.
Surveys cannot be generated from public services. In the event that the feature service you've created your survey from has more than one layer, the survey will be generated based on the first layer. To base a survey on another layer of a feature service, you must create the survey manually and use the form_id and submission_url properties on the Settings tab of your spreadsheet. The process to do this is described in the section below.
If the survey you're creating requires image or audio questions, these will need to be added to your survey manually. After generating the survey, open the spreadsheet and add the questions. For more information, see Media. The feature service must also have attachments enabled.
Author a survey that matches a feature service
It is also possible, but not recommended, to author a new survey that matches an existing feature service. If you require a survey that does not include all the fields of an existing feature service, it is recommended to generate a survey from the feature service (as described above) and delete any of the questions that are not needed before publishing the survey. You will also need to use the submission_url property on the Settings tab of your spreadsheet to define a link between your survey and the feature layer's item in your portal or ArcGIS Online.
You need to provide the URL of the feature service item, as seen above. A common mistake is to use the feature service URL instead, which is not supported.
You also need to fill in the form_id property, a value that explicitly defines which layer is used by the survey. For details, see this knowledge base article on how to author a survey that matches a feature service.
This method can also be used to edit existing attributes in a polyline or polygon feature service. No geometry fields should be added to your survey when doing so, as the question won't display properly. New features should not be added to these services through Survey123, as they will submit with null geometry. The process for authoring and using your survey is otherwise the same.