neo4j-import-skill

Import CSV, JSON, and Parquet data into Neo4j using LOAD CSV, batched transactions, and neo4j-admin bulk import.

Updated Jul 24, 2026
One-click install
npx skills add https://github.com/eklyukin/my-ai-config --skill neo4j-import-skill-eklyukin
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: neo4j-import-skill
Source: https://github.com/eklyukin/my-ai-config/tree/main/skills/neo4j-import-skill
Command: npx skills add https://github.com/eklyukin/my-ai-config --skill neo4j-import-skill-eklyukin

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Moving structured data into Neo4j involves many failure-prone decisions: choosing between online Cypher loads and offline bulk import, handling nulls and type coercion, ordering constraints before indexes, and recovering from mid-import errors. This Skill guides agents through the correct method and syntax for each scenario so imports complete without duplicates, silent data loss, or memory failures. ## Core Features & Use Cases - Method selection: Decision table mapping dataset size, database state, and source format to LOAD CSV, CALL IN TRANSACTIONS, apoc.periodic.iterate, driver batching, or neo4j-admin database import. - Safe Cypher import patterns: Ready-to-use LOAD CSV templates with toIntegerOrNull/toFloatOrNull coercion, nullIf empty-string handling, ON ERROR modes, CONCURRENT TRANSACTIONS, and REPORT STATUS tracking. - Offline bulk load: neo4j-admin import full and incremental workflows with header file formats, ID groups, typed columns, --bad-tolerance, --high-parallel-io, and --schema file support. - Validation workflow: Pre-import checklist (constraints, APOC check, PRIMARY role, UTF-8 encoding) and post-import verification (row counts, index population polling, null-key spot checks). - Use Case: Migrating a relational database to a graph — export tables to CSV, create uniqueness constraints, bulk-load 30M nodes offline with neo4j-admin, then validate counts and bring indexes online. ## Quick Start Ask the agent to import a CSV file of customers into Neo4j with batched transactions and proper null handling, then verify the loaded row counts.

Frequently Asked Questions about neo4j-import-skill

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I import a CSV file into Neo4j?▼

Use LOAD CSV WITH HEADERS with a CALL subquery running IN TRANSACTIONS OF 10000 ROWS for batched writes. Create uniqueness constraints first, use toIntegerOrNull and toFloatOrNull for type coercion, and add ON ERROR CONTINUE with REPORT STATUS for resilient production loads.

When should I use neo4j-admin import instead of LOAD CSV?▼

Use neo4j-admin database import full for datasets over 10 million rows when the database can be offline; it loads tens of millions of nodes in minutes. LOAD CSV with CALL IN TRANSACTIONS suits online databases and smaller datasets, and is the only option on Aura.

What is the difference between CALL IN TRANSACTIONS and apoc.periodic.iterate?▼

CALL IN TRANSACTIONS is native Cypher with built-in REPORT STATUS, CONCURRENT execution, and ON ERROR RETRY, requiring no plugins. apoc.periodic.iterate needs APOC installed and offers similar batching, but native Cypher is preferred for new code.

Why does my Neo4j import fail with 'Cannot merge node using null property value'?▼

This error occurs when the MERGE key column resolves to null, usually from missing CSV values or wrong column names. Add WHERE row.id IS NOT NULL before the MERGE and validate source data for empty or malformed key fields.

Can I import CSV files into Neo4j Aura from local disk?▼

Aura only accepts https:// URLs for LOAD CSV, not file:/// paths. Host the file on a reachable HTTPS URL, use the Neo4j Data Importer GUI to upload local CSVs, or use driver-based batch writes from Python or JavaScript.

Why is my Neo4j MERGE import slow or not using indexes?▼

MERGE uses the implicit index from a uniqueness constraint, so the constraint must exist before the import starts. If data was loaded without constraints, drop the data, create the constraints, and re-import to get indexed lookups.