Skip to content
GC SurgeDocsBulk Spreadsheet Import
9 min read

Bulk Spreadsheet Import

The Spreadsheet Import module enables enterprise-scale site onboarding through file-based batch processing. Instead of manually adding hundreds of sites one by one, you upload a prepared spreadsheet and the platform processes all entries in a single operation. Covers: What Bulk Spreadsheet Import Does, When to Use It, The Import Workspace.

What Bulk Spreadsheet Import Does

Access it from the left sidebar: click Configuration, then select the SPREADSHEET IMPORT tab.

The flow runs in three steps: Upload — choose your file with the Upload site sheet button (or drop a file directly into the drop zone); Preview — the uploaded rows appear in an Imported Sites table (labelled “Previewing locally. Continue to upload to the server.”) with a count badge (for example 15 sites) and the columns Site name, Site Contact, Camera brand, Connection, Status, and Camera name; each row carries a Preview (local) status so you can review before committing; Upload to Server — click Upload and continue to commit. The platform processes the file server-side and shows a processing state before the final results appear and the import tracker updates with final counts.

Add_multiple_site-20260524-075609.gif

Step 1 — Empty upload workspace. The Spreadsheet Import tab before any file is selected. The drop zone and Upload site sheet button are ready. Use Download Current As Template to get the correct column layout before filling your file.

01-upload-empty.png

Step 2 — File ready to upload. A file has been dropped into the drop zone. The file name appears and the Upload and continue button becomes active.

02-file-dropped.png

Step 3 — Local preview. The uploaded rows appear in the Imported Sites table, each showing a Preview (local) status. Review the row count and column values here before committing — nothing has been sent to the server yet.

03-local-preview.png

Step 4 — Server processing. After clicking Upload and continue, the platform validates each row and creates the site and camera records. The processing indicator is shown while the operation runs.

04-processing.png

Step 5 — Import complete. The confirmation banner and Overall onboarding progress bar show the final results. Any rows that failed validation appear in the Failed tab. The animated walkthrough below replays the full flow end-to-end.

05-complete.png
bulk-import.gif

When to Use It

Bulk import is the right path when the rollout is site-heavy, when devices are being handed over in batches, or when you want one validation workspace for the whole deployment instead of a sequence of single-site forms.

The Import Workspace

After you upload a file, the Spreadsheet Import tab shows the results of the import. When processing finishes, a confirmation banner appears (“Import completed. Confirm your devices in the list below.”) and an Overall onboarding progress bar shows the percentage of cameras successfully onboarded (for example, 100% — 1/1 cameras).

Below the progress bar, four summary card groups break down the import. Each card can be switched between a count and a percentage view:

  • TOTAL — total count of submitted rows by outcome: Valid, Invalid, Failed, and Created.
  • Deployment — how the created sites connect: Public, Private, and Edge.
  • Cameras — camera connectivity: Online, Offline, and Alarm.
  • Progress — onboarding state: Done, Left, Online, and Active.

Status Tags

Once the import completes, each row in the Imported Sites table shows two status tags: the creation state and the connection path.

  • Created — the site and camera record was created successfully and is pending activation.
  • Public IP — the camera is using the Public IP connection path (cloud-direct).
  • Local Agent — the camera is using the Private/VPN path and requires the Local Agent on-site.
  • GC Edge — the camera is using the Edge Deployment path.
  • Alarm Ready — the camera is fully connected and actively sending alarms to the platform.

If any rows need correcting, use the Download spreadsheet to fix and re-upload link beneath the cards to export a pre-filtered file ready for correction and re-upload — you do not have to extract the failed rows manually from the original file.

The lower part of the view lists the imported Sites (with Site, Site Contact, Type, Connected, and Status columns), plus a site-name search and a type filter. Selecting a site opens its camera panel on the right, which has two tabs — All Cameras and Failed — along with a camera search box and a Send Site Key action. Open the Failed tab to see each failed camera and the specific validation issue that needs fixing before re-upload.

Known issue: The status filter in the Failed tab may show an incorrect count until the page is refreshed. If the Failed tab appears empty but the counters still show a non-zero Failed count, refresh the page before concluding the import is clean.

The Template

Always use the official NXGEN spreadsheet template. Download it directly from the platform using the Download Current As Template button in the Add Multiple panel — do not use a custom format or a file from a previous import.

Screenshot 2026-06-02 133848.png

Each row represents one camera. These are the template columns, in order — match the downloaded template exactly and do not rename or reorder them:

  • siteName — the site name.
  • cameraName — camera name or label.
  • ipAddress — camera IP address.
  • port — camera port.
  • userName — camera username.
  • password — camera password.
  • cameraBrand — camera brand (for example Hikvision, Axis, or Dahua).
  • siteOwnerEmail — the email address of the on-site contact who will receive the Site Key and run the GDA app for field activation. Required for Private/VPN and Edge sites; optional for Public IP.
  • contactPhone — onsite contact phone number, including country code (for example +15550101).
  • contactName — onsite contact name.
  • protocol — connection protocol, http or https.

Column hygiene rules:

  • One camera per row.
  • Plain text values only — no Excel formulas or special formatting.
  • Do not move columns out of the official order.
  • Do not leave required fields empty.
  • Save the file as .xlsx or .xls (not .csv).

Before You Upload

The most common cause of bulk import failures is data quality issues in the source file. Validate before uploading:

  • All required columns are present and in the correct order.
  • Every row has values in the required fields for its connection type. Required for all sites: site name, camera IP, port, camera brand, protocol, username, and password. Required for Private/VPN and Edge sites only: contact name, contact phone (siteOwnerEmail is also required for Site Key delivery). Contact fields are optional for Public IP sites.
  • Site names are unique within the file and do not conflict with existing sites in the platform.
  • Contact phone numbers include country codes — for example +962797XXXXXX, not 0797XXXXXX.
  • No rows have data in the wrong column.

Import Process

Phase 1 – Validation batch

  1. Select 5 to 10 representative rows from your full dataset.
  2. Upload this test batch first.
  3. Verify all rows appear in the All Cameras tab with no failures.
  4. If failures occur, identify the pattern, fix the source data, and retest before proceeding to the full file.

Phase 2 – Full import

  1. Upload the complete file. Under Send options, an Auto-send site key to owners after import toggle is available — enable it to have the platform automatically send each site's activation key to the assigned contact. When this option is enabled, choose a delivery channel — WhatsApp or Email. If you prefer to distribute keys manually, leave this off and use the Site Key panel in Configuration after import. Turn auto-send on only when every row already has a correct, verified contact; leave it off when staging sites in advance, when contacts aren’t verified, or when you want to vet the import for errors before any keys go out.
  2. After processing completes, note the total count in the All Cameras tab.
  3. Compare against your expected total — any discrepancy requires investigation before continuing.
  4. Switch to the Failed tab.

Phase 3 – Failed row triage

  1. Read the failure reason for each failed row.
  2. Locate the corresponding row in your source file and correct the specific issue.
  3. Add the corrected row to a separate retry file — do not re-upload rows that already imported successfully.

Phase 4 – Re-import corrected rows

  1. Upload the retry file containing only the corrected rows.
  2. Verify the corrected rows appear in the All Cameras tab with no failures.
  3. Repeat until the Failed tab is empty.

Common Failure Reasons

  • Duplicate site name — Site name already exists in the platform or in the same file. Rename the site in the source file.
  • Missing required field — A required column is empty in that row. Populate the missing value.
  • Invalid phone format — Phone number missing country code or contains non-numeric characters. Reformat as +[country code][number].
  • Site not found — Camera row references a site that does not exist. Create the site first, then re-import the camera.
  • Column order mismatch — Data is in the wrong columns. Match the exact column order of the NXGEN template.
  • Unsupported brand — the brand string isn’t recognised for auto-configuration. Use a supported auto-configuration brand spelled exactly as in the template (for example Hikvision, Axis, Dahua).
  • Malformed IP address — the value isn’t a valid IPv4, IPv6, or DNS hostname (and must have no trailing slash).
  • Port out of range — the port must be between 1 and 65535.

After Import: Final Validation

After completing all import phases with zero failures:

  1. Open Configuration and verify the total site count matches your expected roster.
  2. Navigate to the Home dashboard and confirm newly imported sites appear in the site cards section.
  3. In Video Search, verify event flow for each newly created site. Allow a few minutes after activation for the first events to arrive.
  4. Check Analytics for the new sites — they should start accumulating alarm volume data once cameras are activated.