Easily find previous survey submissions

142
7
Jump to solution
01-20-2022 01:54 PM
Dfrevola
New Contributor II

Hello!

I'm designing a survey for volunteers to monitor bluebird boxes. The volunteers will visit the same boxes each week and record data each time. Some volunteers monitor up to 30 boxes a week. We used Survey123 last year with a lot of success, however, the biggest frustration was not being able to easily see the previous week's survey. Knowing what was in the box the week before is useful for knowing what to look for in the current week. 

Right now, the best solution I can think of is to use the search bar to search for specific boxes. However, doing this for 30+ boxes each week will be tedious. Is there a better solution to view a submitted survey in a sea of sent surveys?

Thank you!

0 Kudos
1 Solution

Accepted Solutions
DerrickWestoby
Occasional Contributor III

Not necessarily, no.   You could handle exporting a CSV for only the newest repeat/inspection entry a few different ways, but using the "Export Data" option in your item details page is going to export the who dataset at once. 

If you ONLY want to show your most recent inspection in a CSV, here's some off-the-cuff ideas. 

  • Put a table in a word document to use as  your feature report template and then filter the portion that prints out your repeat.  (Something along the lines of only printing max(${$inspection | getValue: "position"} or ${if inspection_status='new'}${inspection}${/}.     (I know the latter example would work in the feature report if that's way your workflow is set up.  Not sure on the first example, but you could handle that in the form itself  too).   This process would make it so you can just copy the table out of the feature report and past into a CSV file.   If you're not all that confident with any of the other recommended workflows, this is probably one of the easier ones to get working. 
  • Display your results in a dashboard and enable CSV export.   (Layer 0 is your bird box/geolocation info and is displayed in a "list" element. Layer 1 is your inspection table and displayed in a "list" element.  Selecting a bird box in the first list filters the inspection table in the 2nd list, which has the option to export directly to a CSV built into it.  Filter to the most recent inspection by default, or let people flip a toggle switch to filter to the most recent inspection).  This one is also fairly easy to set up once you have your feature layer published, but formatting the CSV a specific way can be a bit of a pain if you weren't  thinking about that when you set it up. 
  • Use webhook automation (like microsoft flow or integromat) to auto-export a CSV on every survey submission.  If you wanted, you could have it update a running tally spreadsheet each time, but also export a different CSV that only contains the most recent inspection.  (I have a few surveys doing this now, exporting to a google sheets document that can be downloaded as a CSV)
  • Connect to your feature layer in ArcGIS Pro and manually export selected records to a CSV as needed. 

 

That's just a handful of ideas, but it'll depend on how you want it to be set up.   Making each bird box a feature on layer 0 and each inspection a record on layer 1 will automatically build a "relationship" between the layers when you publish it.  This can make working with the data -a lot- easier in many cases, but slightly more difficult in a few I suppose. I try to give myself both options by copying over some of the layer 0 data over to my repeats behind the scenes.  For instance: 

(integer)${birdBox_number}

(integer)${birdBox_size}

begin_repeat

(hidden, integer field type)${birdBox_number_copy} = ${birdBox_number}

(hidden, integer field type)${birdBox_size_copy} = ${birdBox_size}

end repeat

 

This way, I have the built-in relationship and can link dashboard actions with stuff like GlobalID & ParentGlobalID and restore backups easier, but I also have a simple, human-readable spreadsheet for layer 1 that I can use easily for simple tasks. 

 

View solution in original post

0 Kudos
7 Replies
Katherine_Clark
MVP Regular Contributor

Have you considered using Survey123's Inbox feature? And you could also format an instance name that would be more easily read, including probably just the "Date Monitored" and "Box Number", something like that.

 

0 Kudos
Dfrevola
New Contributor II

Hi Katherine! Thanks for your quick response. How does the inbox feature differ from viewing a survey in the sent folder?

0 Kudos
Katherine_Clark
MVP Regular Contributor

If I remember correctly, the outbox will show you records that you've submitted. But the inbox shows all records for the feature layer and you can select the record to edit the existing point.

Check out the "Enable Editing" section of this documentation: https://doc.arcgis.com/en/survey123/desktop/create-surveys/prepareforediting.htm

Hope it helps!

DerrickWestoby
Occasional Contributor III

How about a survey with a repeat (allow adds, but read only access for existing) + inbox?  

Layer 0 - Bird box location, description, etc. 

Layer 1 - Your repeat where each repeat record represents an inspection. 

 

Users can use the inbox to find the bird box closest to them, open it up and view existing records, and then add a new inspection.  

Dfrevola
New Contributor II

This is a great idea! Thanks, Derrick. 

Doing this approach will lead to the data being exported in a difference .csv for each repeat, correct?

0 Kudos
DerrickWestoby
Occasional Contributor III

Not necessarily, no.   You could handle exporting a CSV for only the newest repeat/inspection entry a few different ways, but using the "Export Data" option in your item details page is going to export the who dataset at once. 

If you ONLY want to show your most recent inspection in a CSV, here's some off-the-cuff ideas. 

  • Put a table in a word document to use as  your feature report template and then filter the portion that prints out your repeat.  (Something along the lines of only printing max(${$inspection | getValue: "position"} or ${if inspection_status='new'}${inspection}${/}.     (I know the latter example would work in the feature report if that's way your workflow is set up.  Not sure on the first example, but you could handle that in the form itself  too).   This process would make it so you can just copy the table out of the feature report and past into a CSV file.   If you're not all that confident with any of the other recommended workflows, this is probably one of the easier ones to get working. 
  • Display your results in a dashboard and enable CSV export.   (Layer 0 is your bird box/geolocation info and is displayed in a "list" element. Layer 1 is your inspection table and displayed in a "list" element.  Selecting a bird box in the first list filters the inspection table in the 2nd list, which has the option to export directly to a CSV built into it.  Filter to the most recent inspection by default, or let people flip a toggle switch to filter to the most recent inspection).  This one is also fairly easy to set up once you have your feature layer published, but formatting the CSV a specific way can be a bit of a pain if you weren't  thinking about that when you set it up. 
  • Use webhook automation (like microsoft flow or integromat) to auto-export a CSV on every survey submission.  If you wanted, you could have it update a running tally spreadsheet each time, but also export a different CSV that only contains the most recent inspection.  (I have a few surveys doing this now, exporting to a google sheets document that can be downloaded as a CSV)
  • Connect to your feature layer in ArcGIS Pro and manually export selected records to a CSV as needed. 

 

That's just a handful of ideas, but it'll depend on how you want it to be set up.   Making each bird box a feature on layer 0 and each inspection a record on layer 1 will automatically build a "relationship" between the layers when you publish it.  This can make working with the data -a lot- easier in many cases, but slightly more difficult in a few I suppose. I try to give myself both options by copying over some of the layer 0 data over to my repeats behind the scenes.  For instance: 

(integer)${birdBox_number}

(integer)${birdBox_size}

begin_repeat

(hidden, integer field type)${birdBox_number_copy} = ${birdBox_number}

(hidden, integer field type)${birdBox_size_copy} = ${birdBox_size}

end repeat

 

This way, I have the built-in relationship and can link dashboard actions with stuff like GlobalID & ParentGlobalID and restore backups easier, but I also have a simple, human-readable spreadsheet for layer 1 that I can use easily for simple tasks. 

 

0 Kudos
Dfrevola
New Contributor II

Thank you for the details! I start looking into these options. I appreciate your response!