You can extend Survey123 in the following ways:
- Embed a survey form in a web app.
- Embed a report page in a web app.
- Turn your survey response into richly formatted printable documents.
- Use Python to work with data captured with Survey123.
You can also do the following:
- Use a link to open the Survey123 field app or web app in a custom state. See Integrate with other apps.
- Build custom JavaScript functions to use in the field app or web app. See JavaScript functions in survey forms.
Embed a survey form in a web app
You can embed a form in your custom web app and customize its style and interaction with other elements.
With minimum configuration, you can embed a survey using an iframe, or you can embed a survey using JavaScript, which provides additional properties and methods you can use.
For a complete list of JavaScript properties and methods, see the web app API reference.
Embed a report page in a web app
You can embed a page from which a report can be generated, in your custom web app.
With minimum configuration, you can embed a report page using an iframe, or you can embed a report page in Experience Builder.
Turn survey responses into richly formatted printable documents
The reports that you generate for survey results in the Survey123 website can also be triggered from your own web app using the Survey123 REST API. The most common workflow is to submit a report generation job and retrieve the results. The following steps are required:
- Submit a report request using the
create
endpoint. The response includes aReport job
to track this request.Id - Make a request at
jobs/
to check the status of the job. Once finished, the job hasjob
ofStatus esri
,Job Succeeded esri
, orJob Partial Succeeded esri
.Job Failed - Repeat the previous step at intervals of 5 to 10 seconds until one of the identified
job
values appear.Status - If
job
is eitherStatus esri
orJob Succeeded esri
, you can then download the output file. Either a file URL is present in theJob Partial Succeeded result
property for each file or an itemID for the file located in your ArcGIS organization is given.Info
For a complete list of properties and methods, see the REST API reference.
Use Python to work with data captured with Survey123
You can automate data capture workflows using the ArcGIS API for Python Survey123 module. With this module, you can identify properties of surveys, download your survey results, display survey results in a Pandas data frame, create reports, and manage report templates. Other modules in ArcGIS API for Python also allow you to share your surveys, link content to your surveys, clone surveys between organizations, and work directly with their underlying feature services.
To learn more, see the sample notebooks listed in this guide under Automation with Python. These sample notebooks can also be downloaded from the Survey123-tools repository.