Sites

Bulk Import Sites

Importing sites in bulk from Excel makes it possible to import thousands of sites with their hierarchy structure in minutes. Compared to manually creating sites one by one, it's a convenient and efficient method.

Before getting started

Before we actually start and download the Excel template, there are a couple of important notes with bulk importing sites into 21RISK:

  • You can import the site name, hierarchy levels (level1 through level6), and address information.
  • Site names must be unique - you cannot import a site with a name that already exists.
  • Hierarchy levels must be contiguous - you cannot skip levels (e.g., having level1 and level3 but not level2).
  • Hierarchy names must be consistent - if "Europe" is used at level2 in one row, it cannot be used at level1 or level3 in another row.
  • You must have permission to create sites.

Custom Columns

Great news - site custom columns are fully supported when bulk importing sites 🎉

If you have created site custom columns , they will automatically appear in the Excel template when you download it. This means you can populate custom column values for all your sites in one go, making bulk imports even more powerful.

Download the template

To download the template for bulk import, navigate to "Sites" after logging in to 21RISK.

Now, let's click on the "Search" button in the left side of the screen, or click "Ctrl/Cmd + K"

This should bring up the command palette in the middle of the screen, where you can now search for "bulk import sites". Click on the first result.

This should now take you to a page with the title "Import Sites", with 2 cards. One for downloading the Excel template, and another one for uploading. Let's proceed by downloading the Excel template, by clicking on the button with the text "Download template".

This will download a template Excel sheet with 2 sheets:

  • A sheet with some general instructions for importing
  • The actual sheet with the data for the import i.e. "data-to-import"

Fill out the template

Now it's time to fill out the template. Open the "data-to-import" sheet and you'll see the following columns:

Column Required Description
name Yes The name of the site (must be unique)
level1 No Top-level hierarchy (e.g., "Supply Chain", "Retail")
level2 No Second-level hierarchy (e.g., "Europe", "Americas")
level3 No Third-level hierarchy (e.g., "South", "North")
level4 No Fourth-level hierarchy
level5 No Fifth-level hierarchy
level6 No Sixth-level hierarchy
address_address No Full address string
address_countryCode No ISO country code (e.g., "US", "DK", "SE")
address_country No Country name
address_region No Region/state
address_district No District
address_cityPlace No City
address_postcode No Postal/ZIP code
address_locality No Locality
address_neighborhood No Neighborhood
address_street No Street name
address_streetNumber No Street number
address_markerLatitude No Latitude coordinate. Supports decimal (e.g., 55.676098) or DMS format (e.g., 69°13'14.1"N)
address_markerlongitude No Longitude coordinate. Supports decimal (e.g., 12.568337) or DMS format (e.g., 18°04'34.8"E)
insuranceActive No Set to "true" to include the site in the insurance board (leave empty or "false" to exclude)
c_sites_priority No Example select column - Use the predefined options (e.g., "Critical", "High", "Medium", "Low")
c_sites_sap_code No Example ID column - Unique identifier for external system integration
c_sites_sqm No Example number column - Numeric value (e.g., 15000)
c_sites_last_audit No Example date column - Date in ISO format (YYYY-MM-DD)
c_sites_notes No Example text column - Free-form text value

One row per site. In this example, we will import 3 sites with different hierarchy structures:

Here's what this example creates:

  • Barcelona will be placed under Supply Chain → Europe → South → Iberia
  • Stockholm will be placed under Sweden (a single level)
  • Kyiv will be created at the root level (no hierarchy)

The hierarchy levels (Supply Chain, Europe, South, Iberia, Sweden) will be automatically created as parent sites if they don't already exist.

If you have custom columns in your template, they will appear at then end. For "options" custom columns, Excel data validation will make sure you select the correct type.

Upload and validate the template

With data in our spreadsheet, we are now ready to validate with our "What-if" scenario. Go back into 21RISK, and upload the spreadsheet and click "Upload template".

This should now take you to a page with the title "Bulk import what-if analysis". This will show all the sites that will be created if you proceed with the import.

The table shows sites sorted by hierarchy depth:

  • Depth 0 : Root-level sites and top-level hierarchy (e.g., "Supply Chain", "Sweden", "Kyiv")
  • Depth 1 : Second-level hierarchy (e.g., "Europe")
  • Depth 2 : Third-level hierarchy (e.g., "South")
  • And so on...

You should now validate that the import looks correct. If you find something that looks out of place, make changes to the Excel template, and re-upload.

If the sites look correct, let's proceed to import by clicking the "Import now" button at the bottom of the page.

This will now take you to the "Sites" table where you can confirm the import worked.

To see the hierarchy structure, switch to the tree view by clicking the tree view button.

Good job - you have now successfully imported sites from Excel using our bulk import flow 🎉

Troubleshooting

If you encounter errors during upload, here are common causes and solutions:

Error Cause Solution
"Hierarchy levels must be contiguous" You have a gap in the levels (e.g., level1 and level3 filled, but level2 empty) Fill in all levels from level1 up to your deepest level
"Hierarchy name used at different levels" A hierarchy name like "Europe" is used at level1 in one row and level2 in another Ensure each hierarchy name is always used at the same level
"Site name already exists" A site with that name already exists in your organization Use a unique name or update the existing site manually
"Duplicate site names in file" The same site name appears multiple times in your import file Ensure each site name is unique