Add, Map & Edit Data ETL Widget

169
3
Monday
Brian_McLeer
MVP Regular Contributor
4 3 169

Overview

GitHub: https://github.com/brianmcleer/add-edit-etl-widget

Add, Map & Edit Data is a customized widget that combines two of Esri's out of the box widgets, Add Data and Edit, and drops a field-mapping step in between them. It came out of a recurring headache I kept running into. Someone has a spreadsheet or a layer they want to get into an existing editable layer, but the incoming field names never line up with the target, so the data has to be reshaped outside Experience Builder before anyone can edit it. I wanted the whole thing, add, map, load, and edit, to happen in one widget without leaving the app.

The user adds data the same way the stock Add Data widget works, from a file, a URL, or ArcGIS content. Then they map the incoming fields onto the target layer's fields. The mapping handles one to one, many to one, one to many, and many to many, so you can concatenate a couple of fields into one, split one field into several, coalesce, drop in a constant, or write a small expression when you need it. After a quick validate and preview, it loads the records into the target layer in batches, and then they can edit what they just loaded on the map with the regular Edit tools.

As with my other widgets, the target layer and the options all live in the settings panel, so you point it at your own layer without editing code. Mappings also export and import as XML, which means a mapping you build once for a recurring load can be saved and reused instead of rebuilt every time.

Adding your data

The add step is the stock Add Data experience, so the source can come from three places:

  • A file from your computer. Supported uploads are shapefile, file geodatabase, CSV, GeoJSON, KML, and GPX. Shapefiles and file geodatabases have to be zipped. Esri's limits apply here: CSV is capped at 1,000 records, the other types at 4,000, with a 2 MB limit for shapefiles and 10 MB for everything else, and up to 30 files at once.
  • A URL to a web service. You can point at a feature service, map service, vector tile service, image service, scene service, WFS, WMS, WMTS, KML, GeoJSON, or CSV.
  • ArcGIS content. Search your own content, your groups, your organization, and public content, including ArcGIS Living Atlas of the World.

Whatever the source, once it is in, the mapping step lines its fields up with your target layer, so the format it arrived in does not matter by the time the records get written.

Features

Really this is a lightweight ETL tool that runs inside Experience Builder. Add is the extract, the mapping step is the transform, and writing to the target layer is the load, so the kind of reshaping you would normally do in a desktop tool or a separate ETL step happens right in the app instead.

  • A lightweight, in-app ETL workflow: extract with Add Data, transform with the field mapping, and load into your target layer, with no separate desktop or ETL step.
  • Add Data, field mapping, load, and Edit in one guided widget.
  • Field mapping across one to one, many to one, one to many, and many to many, with type coercion and validation before anything is written.
  • A validate and preview step, then a batched load with a progress readout.
  • Mapping export and import as XML for repeatable, reusable loads.
  • Optional add of the target layer to the map, with zoom to the loaded features and zoom to a feature when it is selected during editing.
  • A configurable zoom scale, so zoom to actually changes scale instead of only panning.
  • The Edit permissions, snapping options, and advanced editing tools surfaced in the settings panel.
  • Keyboard accessible controls and screen reader labels throughout.

Requirements

ArcGIS Experience Builder Developer Edition 1.19 or 1.20, which run React 19. EB 1.18 and earlier run React 18 and are not supported.

Install

Download the attached zip and extract it. Drop the add-edit-etl folder into client\your-extensions\widgets so its manifest.json sits directly inside client\your-extensions\widgets\add-edit-etl, not nested a second level deep. Run npm install in the client folder, then restart. The full steps, including the duplicate-name fix, are in the README on GitHub.

Feedback

This is the first version, so expect a few rough edges. If you run into a bug or have an idea for something it should do, please leave it in the comments on this post and I will take a look.

Credits and license

This is a derivative work based on Esri's Add Data and Edit widgets, both by the Esri R&D Center Beijing, published under the Apache License, Version 2.0. It has been combined, modified, and extended by the City of Grand Junction, CO. Licensed under Apache-2.0. Original work copyright Esri; modifications copyright City of Grand Junction, CO.

Changelog

June 23, 2026: Add multiple target layers and on-map symbology editing, move and restyle the symbology panel.

June 22, 2026: Initial release, now on GitHub.

(view in My Videos)

3 Comments
Contributors
About the Author
GIS Administrator/Developer at City of Grand Junction, CO.