I am developing a standalone application in ArcGIS Experience Builder that integrates with ArcGIS Online for geospatial workflows. I have successfully set up the Experience Builder client and server locally and established connectivity with ArcGIS Online, which allows me to access hosted datasets and perform basic processing tasks. However, I need help creating a simple page within Experience Builder that enables users to either draw polygons or upload a polygon file, calculate the mean value of a raster dataset for the selected area, and pass that result into a predefined equation. This equation will then automate the generation of a final output, such as a CSV file. My primary challenge lies in designing this workflow in a way that minimizes user interaction while maintaining functionality. Ideally, I want users to perform these operations with as few clicks as possible, making the interface intuitive and efficient.
I’m looking for advice on implementing this workflow in Experience Builder. Specifically, how can I build a custom widget or page that seamlessly combines these tasks—polygon creation or upload, raster analysis, and automated output generation? Are there best practices for simplifying user interaction, such as bypassing unnecessary steps or combining multiple processes into a single action triggered by a button? Additionally, how can I efficiently handle backend processes like zonal statistics and equation calculations while ensuring smooth integration with hosted datasets? If anyone has experience designing streamlined workflows in Experience Builder or creating custom widgets for similar use cases, I would greatly appreciate your guidance, examples, or resources to help me move forward. Thank you in advance for your insights!
Have you made any custom widgets before? This is going to be a hard one to develop. I think there is potential that the final user interface for your widget could be click a button to start drawing, draw, and results are downloaded to your computer, but it's going to take a lot of work getting there.
In case you didn't know, Experience Builder is mostly just a skin over the Javascript API and any methods and widgets in the API are available to Experience Builder through Developer Edition. I would start making this widget with the Sketch Widget from the API and watch the create event for the complete state to capture the drawn graphic and begin the geoprocessing task.
https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#event-create
Thanks Jeffrey, some others ive chatted with online have said the following. What are your thoughts?
ANOTHER GUY ON REDDIT:
So you've got two options as far as I can tell, one is writing your own widget, I think you'd need to learn how to build a custom widget using the ArcGIS Javascript SDK. That is an option and good luck to you in your learning journey.
The other option is to create a python geoprocessing tool and then using the out of the box geoprocessing widget as the interface between the user and the gp tool.
As you're using Arcgis Online, you'd have to use the arcgis online notebook functionality, and probably with an elevated engine (costs more credits to run).
This option could work though,and to my mind is probably a much simpler thing to do than building your own client side widget to do this process.
Widgets are, to my mind, fairly complex things to build, especially as you'd have to build a fair bit of custom functionality to get it working. Not just in the frontend but also building out whatever analysis you need it to do - I don't know how much raster analysis can be easily performed via the functionality of the SDK.
A geoprocessing tool published from a notebook does not require end users to use the notebook, the notebook powers the tool and the analysis widget delivers a nice frontend to the end user.
ANOTHER GUY VIA DISCORD:
That all sounds like... a lot to try and have Experience builder do. You might be better off just working with the JS api directly
I've found experience builder to be pretty hard to customize and you have to get really familiar with the JIMU spec I believe.
I don’t know if there’s an easy way to bundle all of that in experience builder - it’s really a pretty limited tool, unless you’re planning to develop a custom widget
Maybe you could do something with an AGOL hosted Python notebook? (edited)
I RESPONDED WITH:
I believe the plan is to develop a custom widget, and I’d like some guidance on how to proceed based on the workflow I’ve outlined earlier. While I understand there might be easier options, like using an AGOL-hosted Python Notebook, I don’t think I can pivot in that direction at this stage. Our goal is to deliver this tool to a client by the end of May, and a custom widget seems to be the most practical solution to meet their needs. I recognize that developing a custom widget may require extra effort, but given the circumstances, I don’t see another viable option. If you have any advice, tips, or best practices to help me move forward efficiently, I’d greatly appreciate it. Thank you in advance for your assistance!
Six months is a long time. You should be able to figure it out by then. I don't know where you are starting from so I can't really tell you what to do next. Do you know Javascript? What about React? Have you worked with the ArcGIS Javascript API before? You'll need to have some familiarity with all of these topics to make this work.
Here is an outline for a completed widget:
If you build this correctly, the user should be able to make a drawing a few seconds later have an output file on their computer without any further input.