Skip to content

Importing and exporting data

Open the Import / Export panel from the icon below Fields in the map editor’s left sidebar.

  • CSV — nodes only. Up to 10 MB.
  • GraphML — the full graph (nodes and connections). Up to 10 MB.

Pick a format and click Download. GraphML captures every connection; CSV only captures nodes (each row becomes a node, with its properties and fields as columns).

  1. Select a file (drag and drop, or the file picker). Your browser uploads it directly to secure storage — the file never passes through our application server, and it’s kept for later reference.
  2. Preview. The tool reads the file and shows you the columns (CSV) or attributes (GraphML) it found, along with a suggested mapping.
  3. Map fields. Tell the tool what each column or attribute means, and confirm or edit the suggestion before importing:
    • CSV — map exactly one column to the node label. Other columns can map to a field, a freeform property, or be ignored. A column mapped to a field can either link to an existing field of the same name and type (suggested automatically when one matches) or create a new field — your choice. Columns that are entirely empty, or whose values don’t consistently fit one type, are pre-set to “Ignore” — the rest of that row still imports.
    • GraphML — every non-reserved attribute on a node or connection gets its own row: link to an existing field, create a new field, keep as a property, ignore it entirely, or (node attributes only) use as the node label. The suggestion defaults to linking a matching existing field by name, or otherwise creating a new field when the values are consistently numeric/boolean, or keeping freeform text as a property — but nothing is decided until you confirm it. If the file has no explicit label and one of its node attributes looks like a name (label, name, handle, displayName, title), that attribute is suggested as the label source instead of falling back to the file’s raw node id. A connection attribute that reads like a category (type, kind, category, repeating a handful of values such as “follows”/ “jaccard”) is shown as one row per distinct value rather than one row for the whole attribute — “follows” and “jaccard” each get their own independent choice, so you can turn “follows” into its own directional boolean field while leaving “jaccard” as a plain property, say.
  4. Confirm. Duplicate labels and possible personal data (CSV) are flagged as warnings — they don’t block the import. A boolean field only ever records “true” (see Core concepts), so a column mapped to a boolean field also flags how many rows resolve to false — those rows import fine, they just don’t get that field, exactly as if the value had never been entered.
  5. Import runs in the background. You’ll see a progress indicator, then a summary: how many nodes (and, for GraphML, connections) were created, any rows skipped for having no label, and any attributes stored as plain properties.

Imported nodes land in the map’s Unplaced list rather than appearing on the canvas — see placed and unplaced nodes for how to bring them onto the map.

If a column looks like it might contain personal data, you’ll get a non-blocking warning so you can decide whether to proceed. Data is stored in the EU.