Data · Integrations

Connect data with Integrations

Bring data into Spatial Map three ways: poll a REST API, upload a CSV, Excel, JSON or GeoJSON file, or create a table your systems write to.

8 min readUpdated

The Integrations screen

Click Integrations in the sidebar: "Connect the systems that feed your facilities — REST APIs, file imports and your own tables." Integrations belong to the workspace, not to one facility, so the same source can feed the map of every facility you link it to. Inside a solution, the screen shows only that solution's sources.

Part of the screenWhat it shows
KPI cardsSources (split into REST and files), Tables, Need attention (sources whose last run failed) and Last sync.
Attention noticeWhen sources fail, one notice reads "N integrations need attention" with Show only these. "Their last run failed, so the data they feed may be out of date."
TabsSources, Health, Audit log, References, Rules.
Sources viewChips All, REST APIs, Files and Tables, plus "Search by name, URL or file". Click a card to open its details: runs, latest rows, connection and actions. Table cards open the table itself.

The Acme Corp demo workspace is fed entirely by tables (such as Rack Inventory, Pick Events and Stock Levels), which is why its REST and file counts read 0.

Add an integration

Add integration opens a menu with the three ways in. You can mix all three in one workspace. A brand-new workspace shows the same choices as a "Bring your data in" panel.

ChoiceMenu textPick it when
REST API"Pull JSON from an HTTP endpoint on a schedule"Your WMS, ERP, access-control or IoT platform already exposes an endpoint you can read.
Upload file"Import a CSV, XLSX, JSON or GeoJSON file"You have a spreadsheet or a GeoJSON export — a first look or a one-off load.
Table"Your own schema that your systems write to"Your own code should push rows in. Opens the table builder — see Tables and the table write API.

Connect a REST API

The Connect a REST API dialog ("Pull JSON, GeoJSON or CSV from an HTTP endpoint and keep it in sync.") has three parts: Connection, Test, and Data & schedule.

  1. 1
    Connection

    Give it a Name (for example "WMS bin levels"), the Endpoint (a full http:// or https:// URL) and the Method.

  2. 2
    Authentication

    None, API key, Bearer token or Custom headers. "Keys are stored with the integration and only sent to this endpoint." For custom headers, add them under Request options.

  3. 3
    Request options (if needed)

    Headers (Add header), a Request body, the Response format (Detect automatically, JSON, GeoJSON or CSV) and Where the items are (JSON path) — for example `data` when the records sit inside an envelope.

  4. 4
    Test connection

    "Check we can reach it and see what comes back — before you save." Success reads "Connected — N rows found" with the column count and the First rows. Otherwise you see "Couldn't reach this endpoint", or a hint to set the response format or JSON path.

  5. 5
    Data & schedule

    Answer What kind of data is this?, then pick the Row key — the column that identifies each row. "A row with a key that's already stored updates it instead of adding a duplicate." Without a row key every row is skipped.

  6. 6
    Sync

    Manually ("Only when you press Run now."), When a map opens ("Fresh data each time someone opens a facility.") or On a timer ("Repeats while a map is open."), with presets or a custom interval in seconds.

  7. 7
    Connect API

    Saves the integration: "Run it once to pull the first rows." The card then shows when it last ran, with Run now to sync again.

json·Example response — set "Where the items are" to data
{
  "data": [
    {
      "sensor_id": "ENV-CR-04",
      "location": "Cold Room 4",
      "temperature_c": 21.8,
      "last_reading_at": "2026-10-11T08:14:22Z"
    }
  ],
  "next_page": null
}

Upload a file

Upload file opens the import dialog, which walks through File, Mode, Match, Mapping, Preview and Done. Each imported file becomes a source under the Files chip, ready to put on a map with a data link.

  • Accepted: CSV, TSV, Excel (.xlsx / .xls), JSON and GeoJSON, up to 10 MB. CSV and Excel files need a header row.
  • Match each row by: Bin label, External code, Grid cell (rack + row + column, plus level) or Other shape (a polygon, circle, line, marker or image matched by name).
  • A GeoJSON file can be joined to existing data or imported as new shapes in a facility you choose.
  • Download sample gives you a ready-made file in the right shape for each kind of data.
  • To load a newer version of the same file, click Re-import on its card.

Tables

A table is your own schema with an editable grid and an automatic REST write API protected by API keys. It is the right choice when your systems should push rows in rather than wait to be polled. Tables appear under the Tables chip ("Your systems write to these through each table's API.") and have their own guides: Tables and Write rows with the table API.

Health

The Health tab answers one question: is everything delivering? It starts with Healthy, Need attention and Waiting for data, then lists each source.

GroupWhat it shows
APIs and file importsStatus of the last run, schedule, when it last ran, and Run now or Re-import.
Tables"Your systems write to these; we show when they last did." A table that pulls from a REST URL shows when that pull failed.

References

References are "links between keys in different systems. Map popups use them to show related details — a SKU's supplier, a tag's pallet."

  1. 1
    Click Add reference

    Fill in Link type, From key and To key (all required) and an optional Label — for example link type `asset-room`, FL-03 → Dock 3, labelled "Forklift 03".

  2. 2
    Save, or keep going

    Add reference saves and closes; Add and another saves and clears the form for the next one.

Audit log and Rules

The Audit log lists changes the app sent back to your systems, and Rules holds automations that react to live data. Both depend on live streams, which can't be set up from the app today, so in a normal workspace these tabs stay empty and you can ignore them. To recolour the map from data, use style rules instead.

Edit, run and delete

Each REST card has Run now, each file card Re-import, and the card menu holds Details, Edit and Delete.

Every row an integration brings in is also visible on the Data screen, with its import runs and any rows that failed.

More in Data