Skip to main content

Integrating ArcGIS and Configuring Map Layers

Connect ArcGIS Online with OAuth, add ESRI Feature Layers, and import structures or sites into SwiftComply.

Overview

SwiftComply Stormwater integrates with ArcGIS Online so you can display your GIS feature layers on the interactive map and optionally import feature data (such as catch basins, culverts, BMPs, or sites) into SwiftComply. The integration uses OAuth 2.0 with a client ID and client secret. Sync runs manually from the feature layer list.

ESRI Feature Layers and Structure Types must be enabled on your account by the SwiftComply team before you can configure anything yourself. If the menus described below aren't visible, contact your SwiftComply representative.


Before you begin

  • You are an Instance Admin in SwiftComply Stormwater.

  • You have an ArcGIS Online (or ArcGIS Enterprise) account with permission to create content and manage OAuth credentials (typically a Creator-level user type or higher).

  • Your SwiftComply representative has confirmed ESRI Feature Layers and Structure Types are enabled on your account.


Step 1: Create OAuth credentials in ArcGIS

You need a Client ID and Client Secret from ArcGIS before connecting SwiftComply. If your organization already has these, skip to Step 2.

  1. Sign in to your ArcGIS Online or ArcGIS Enterprise portal.

  2. Go to Content > My Content > New Item and choose Developer credentials.

  3. Choose OAuth credentials as the credential type.

  4. Add at least one Redirect URL. Enter your SwiftComply instance URL (for example, [your_city].compli.cloud).

  5. Select Multiple or Server as the application environment.

  6. Assign privileges. Ensure Location Services is enabled.

  7. Under Grant item access, click Browse Items and select the specific Feature Layers SwiftComply should be able to read.

  8. Review the settings and click Create (or Generate) to produce the credentials.

  9. Keep the Client ID and Client Secret handy; you'll paste them into SwiftComply in Step 2.

A new access token is generated every time you change the OAuth credential's privileges. If you later add or remove layer access, the token refreshes automatically.


Step 2: Add the ArcGIS provider in SwiftComply

  1. In SwiftComply Stormwater, click the Settings (gear icon) in the upper right corner, then go to App Settings > Provider Configurations.

  2. Click Add Provider.

  3. Choose ESRI ArcGIS from the list of OAuth providers.

  4. Under Connection Details, set:

    • Protocol: HTTPS.

    • Domain: your ArcGIS domain (for example, [YOUR_ORG].maps.arcgis.com/). Do not include https:// in this field.

  5. Enter the Client ID and Client Secret you created in Step 1.

  6. Click Save.

  7. Click Connect to establish the connection.

  8. You'll be redirected to authenticate with your ArcGIS account. An ArcGIS Admin should sign in to authorize app authentication.

  9. Once connected, verify the connection.


Step 3: Add an ESRI Feature Layer

  1. Go to Settings > ESRI Feature Layers.

  2. Click Add Layer.

  3. Fill in the layer information:

    • Layer Title: the display name for this layer.

    • Structure Type: select from the list configured by the SwiftComply team.

    • Layer URL: the ArcGIS feature layer URL. Use the feature layer URL (ending with a numerical suffix like /FeatureServer/0), not the feature server root URL.

  4. Click Add Layer.

The new layer is added as View Only by default. View Only layers display on the map without importing data into SwiftComply. To import data, continue to Step 4.


Step 4: Configure import (optional)

If you want to import feature data from ArcGIS into SwiftComply rather than just display it:

  1. From the feature layers list, find your layer and click Edit in the Actions dropdown.

  2. Check the box for Import Structures.

  3. Choose an Import Type:

    • Structure-Based: use for municipally owned assets or standalone structures not tied to a specific site (for example, catch basins or culverts).

    • Site-Based: use when structures must be linked to a site record (for example, in Construction or Post-Construction programs).

Import Type and Structure Type become read-only once the layer has been synced. To change them later, you'll need to add the layer again and select the new Import Type at creation.


Structure-Based import

  1. After selecting Structure-Based, confirm the Structure Type for this layer. The selection is limited to types your SwiftComply Admin team has pre-configured.

  2. (Optional) Use Operations Filters to narrow which records are imported. Click + Add Filter and set a field, condition, and comparison value. Useful when a single GIS layer contains more than one asset type.

  3. Expand Layer Configuration to map your ArcGIS fields to SwiftComply fields. The table shows:

    • ArcGIS field name (first column).

    • A dropdown of the matching SwiftComply field (second column). Only fields you map are imported.

    • A sample data value from your layer (third column) to help you confirm the mapping.

  4. Click Update Layer to save.


Site-Based import

  1. After selecting Site-Based, select a Location Site Identifier: the ArcGIS field whose value matches an existing SwiftComply site identifier. This is how structures link back to the correct site record.

  2. (Optional but recommended) Select a Default Management Practice Type. If nothing is mapped from ArcGIS fields for a BMP type, this default is used. Configure BMP types under Settings > Best Management Practices before importing.

  3. Apply Operations Filters if your data contains more than one type of structure or BMP.

  4. Expand Layer Configuration and map each ArcGIS field to the matching SwiftComply field. For BMPs, the list of mappable fields is limited to fields that apply to the selected Management Practice Type.

  5. Click Update Layer to save.


Step 5: Sync the layer

Sync is manual; there is no automatic sync schedule.

  1. On Settings > ESRI Feature Layers, find the layer to import.

  2. Open the Actions dropdown and select Sync.

  3. The Status and Last Synced columns update as the sync runs.


Action options

Each layer has an Actions dropdown with these options:

  • Edit: modify the layer's configuration.

  • Sync: import and update data from the connected ArcGIS layer.

  • Disable: temporarily stop the layer from syncing without removing it.

  • Delete: opens a sub-menu with three choices:

    β€’ Delete only the layer (configuration removed; previously imported data stays in SwiftComply).

    β€’ Delete only the data (imported records removed; layer configuration kept so it can be re-synced).

    β€’ Delete both the layer and its imported data.


Status values

After a sync, the Status column shows one of two values:

  • Synced: the most recent sync completed successfully.

  • Failed: the most recent sync did not complete. Check the sync logs on that layer for details.


FAQ

Q: How often does data sync from ArcGIS?

A: Sync is manual only. Run it from the layer's Actions dropdown whenever you need fresh data. There is no scheduled or automatic sync.

Q: What happens if my ArcGIS credentials expire?

A: The provider status will show as Reconnect or Reconnect (Expired). Go to Settings > App Settings > Provider Configurations and click the connect icon on the ArcGIS row to re-authorize. Existing layer configurations remain intact.

Q: Can I display a layer without importing the data?

A: Yes. New layers default to View Only. Leave Import Structures unchecked and the layer will display on the map without creating records in SwiftComply.

Q: Can I change the Import Type after syncing?

A: No. Import Type and Structure Type are read-only after the first sync. To change either, add the layer again and select the new Import Type at creation, then re-sync.

Q: What happens to data if I delete a layer?

A: Delete offers three options. You can delete just the layer (data stays), just the data (layer config stays), or both. Choose the option that matches what you actually want to remove.

Did this answer your question?