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.
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 screen | What it shows |
|---|---|
| KPI cards | Sources (split into REST and files), Tables, Need attention (sources whose last run failed) and Last sync. |
| Attention notice | When 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." |
| Tabs | Sources, Health, Audit log, References, Rules. |
| Sources view | Chips 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.
| Choice | Menu text | Pick 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.
- 1Connection
Give it a Name (for example "WMS bin levels"), the Endpoint (a full http:// or https:// URL) and the Method.
- 2Authentication
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.
- 3Request 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.
- 4Test 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.
- 5Data & 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.
- 6Sync
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.
- 7Connect 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.
{
"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.
| Group | What it shows |
|---|---|
| APIs and file imports | Status 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."
- 1Click 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".
- 2Save, 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
- Data · Table APIWrite rows with the table APIPush rows into a Spatial Map table from your own code: API keys, the 12 REST endpoints, bearer auth, bulk upsert, filters and the 60-requests-a-minute limit.
- Data · Data screenInspect and clean up ingested dataUse the Data screen to inspect every record, bin, file and ingest run in your workspace, filter by source and time, export CSV and delete data safely.
- Data · FilesManage floor plan and 3D model filesSee every floor plan, image plane and 3D model your workspace stores, which facilities use them, and safely free up storage taken by unused files.