Hi, I have created a survey using Survey123 connect and am collecting data by embedding the survey within an Experience Builder page. I would also like to allow submitted surveys to be edited, but can't get this to work. I've tried switching every possible setting to allow editing (selecting 'allow sent surveys to be edited' in Connect, setting 'enable editing', 'editors can edit all features', 'editors can see all features' within the Feature Layer on ArcGIS Online) but when I try to set the mode on Experience Builder to 'edit an existing record' I always get the following error message:
'Editing is not possible because the globalId parameter was not provided'.
I notice the globalId has a capital I, while Connect seems to be creating my survey with a field 'globalid' - all lower case. Could this be causing the problem? Can I somehow force Connect to use GlobalId (capital I) instead?
I'm a beginner in Survey123/ArcGIS Online and at my wits end with this, so any advice would be much appreciated!
Thanks a lot!
Solved! Go to Solution.
Actually I just solved my problem, maybe this will help you @RayKidd :
I configured all of the actual widget actions correctly as it sounds like you did too. What I hadn't done was property configure the embed content by making sure that it was connected to the data!
So I toggled that on and it still didn't work, but that's because I needed to re-add {GlobalID} as dynamic content (as opposed to the plain text that it came in as when I copy-pasted the link from my functioning dashboard). So I just deleted {GlobalID} from the URL and then hit the dynamic content button and clicked the attribute, et voila!
Hi Ray,
I have not made a submitted survey editable in Experience Builder, but I have done it in ArcGIS Dashboard and I imagine the workflow is similar. You'll need to create a list widget that will show all your submitted surveys and an embed widget with the URL to your survey. When a user clicks a submitted survey from your list widget, it should pass the globalID attribute to your embed widget. You manually set the URL in the embed widget to be the appropriate case for your use. Yours would be something like
https://yoursurveyURL/share/surveyID?mode=edit&globalId={globalid from record you selected}
You can find more info in these blogs:
How is the selected record populating into the survey, for example, is this coming from a map widget or list widget? Double check that this widget is pointing to the same data layer as in the survey. Then, once a record is selected from this widget, the error message should go away.
The capitalization discrepancy in the global identifier has to do with the difference between the url parameter (globalId) and the field name (globalid), you can read more about this here.
I'm actually running into the same issue as RayKidd, definitely using the same data source and correct {GlobalID} field and getting the same error. I have it set up via list widget, Action->Filter Data-?Framework:
The layer in the map is the same one that gets populated by the survey. Works fine following Isamel Chivite's helpful article on Dashboards but can't seem to get the equivalent in ExB. My embed widget is using the same URL copy-pasted form the correctly working dashboard.
Actually I just solved my problem, maybe this will help you @RayKidd :
I configured all of the actual widget actions correctly as it sounds like you did too. What I hadn't done was property configure the embed content by making sure that it was connected to the data!
So I toggled that on and it still didn't work, but that's because I needed to re-add {GlobalID} as dynamic content (as opposed to the plain text that it came in as when I copy-pasted the link from my functioning dashboard). So I just deleted {GlobalID} from the URL and then hit the dynamic content button and clicked the attribute, et voila!
lol @ZachBodenner with the voila