Describe your domain model once — SQL export, Excel, or JSON. EnterGenni validates it, runs 16 specialized generation passes, and packages 100+ production artifacts. Regenerate when the model changes and the entire platform updates together.
Every layer is generated from the same validated entity model — see the sandbox for the verified ContosoErp sample (counts load live from the API).
The Excel workbook has two tabs. The first (Instructions) is a complete, friendly guide to filling it in. The second (Entities) is where you list your model — and it doubles as the ready-to-run sample. You can also skip Excel entirely and POST a JSON model to the API.
| Column | What goes in it |
|---|---|
| Entity | A singular, PascalCase name — e.g. Employee, EmployeeAsset. Prefix with enum_ to define an enum (e.g. enum_Rating). |
| Fields | Comma-separated type Name pairs, plus relationships (see below). For enums, just list the values. |
| Feature | The module/menu this entity belongs to (e.g. HR). Used to group the navigation and the architecture diagrams. |
| You write | Meaning |
|---|---|
string Name | A scalar property. Use portable model types: string, int, long, bool, decimal, double, DateTime, Guid (mapped to your target language on generation). |
int? Rating | Nullable — add ? to any value type. |
byte[] Photo | Binary (image/document). Handled specially and excluded from the graph node. |
Company Company | A foreign key — a link to another entity. Becomes a HAS_COMPANY relationship in the knowledge graph. |
Employee Employee_Manager | A named link to the same or another entity (here, a self-reference). The suffix becomes the relationship name: HAS_MANAGER. |
… |Team,Employee | A collection: after a single |, list the child entities that reference this one. Generates incoming traversal queries. |
Add a row with the entity name prefixed by enum_ and put the values in the Fields column:
Entity Fields enum_Rating Poor,Fair,Good,Excellent
Entity Fields Feature
Employee string Code, string Name,
Department Department, Team Team,
Employee Employee_Manager, EmployeeType EmployeeType,
int? Rating, decimal? Salary, DateTime JoinedOn, byte[] Photo HR
That single row produces node models, repositories, REST APIs, sync services, schema constraints, TypeScript client, Postman collection, architecture diagrams, native-import headers, and FK-derived traversal queries — all consistent in one platform ZIP.
Three entry points, same engine, same run report:
The fastest look — run the sample and explore the run report in your browser.
Upload your sheet or paste a model and try every endpoint interactively.
Script it. Submit a job and poll, or generate synchronously in a single request.
curl -F "projectName=MyApp" \
-F "file=@Sample_InputSheet.xlsx" \
https://entergenni.intrologics.com/api/generate/graph/from-excel \
-o MyApp-graphdb.zip
curl -X POST https://entergenni.intrologics.com/api/generate/graph \
-H "Content-Type: application/json" \
-d '{
"projectName": "MyApp",
"entities": [
{ "entity": "Customer", "fields": "string Name, string Email", "feature": "Sales" },
{ "entity": "Order", "fields": "string Ref, Customer Customer, decimal Total", "feature": "Sales" }
]
}' -o MyApp-graphdb.zip
# 1. Submit — validates synchronously, then queues generation
POST /api/jobs/graph → 202 { "id": "abc123", "status": "Queued" }
# 2. Poll until complete (typically <5 seconds for 50 entities)
GET /api/jobs/{id} → { "status": "Succeeded", "downloadUrl": "/api/jobs/abc123/download" }
# 3. Download the ZIP
GET /api/jobs/{id}/download → MyApp-graphdb.zip (68+ files)
# 4. View the HTML run report
GET /api/jobs/{id}/report → self-contained HTML report
Verified on the ContosoErp sample — artifact counts and component categories match the sandbox (Pro-tier compile: semantic layer, intents, ontology, queries).
EnterGenni generates structural traversals from your foreign keys. With the domain semantic layer (Starter+), named traversal intents from active rule packs are added to the query library. We do not infer arbitrary business flows from column names; questions in plain English are covered under Ask.
GraphDB/Queries/sample-queries.cypher — 250+ lines of ready-to-run Cypher organized into 6 sections: visualization, per-entity CRUD, relationship traversals, hierarchy walks (for self-referencing FKs), impact analysis (multi-hop), and data quality checks (orphans, degree, duplicates).GraphDB/Queries/ — typed query repository with async methods: Search{Entity}, Get{Child}By{Parent}, hierarchy walks, GetImpact, GetOrphans, plus node/relationship count queries.Available on Starter plans and above. Traversals do not infer semantic flows (purchase lifecycle, approval chains) unless they are modeled in your schema. To ask in plain English, use Ask (Pro) or the generated api/graph/ask endpoint. See plans →
When your relational model changes, regenerate with a prior schema snapshot to produce schema-migration.cypher and schema-diff.md, plus updated sync, APIs, SDK, and traversal library — the entire platform stays aligned instead of drifting into manual repair.
Available on Starter plans and above.
The DemoDataSeeder generates 10 realistic rows per entity with typed values (emails get email formats, dates get contextual dates, names get human names, etc.) and creates all relationships respecting FK topology. Use it to:
Available on Pro plans and above.
Connect directly to a running graph database instance and deploy your generated platform live — schema (constraints + indexes), node data (via UNWIND batches of 500), and relationships — all through a circuit breaker that handles connection failures gracefully:
SqlId as the sync keyAvailable on Pro plans and above.
Signed-in users can now generate directly from the browser at /app.html:
.xlsx fileSign in with Google to access generation endpoints. Your dashboard shows run history, usage meters, and current plan. Free plan: 5 lifetime runs, max 20 entities/run. View all plans →
Optional steps between your metadata and the generated platform. They need a signed-in account; you can see the result first in the enterprise sandbox.
Open Name Review, upload a SQL DDL export, and every entity, field and relationship appears with suggested names. Click a suggestion to accept it or type your own. Each change is logged with FROM and TO; you can revert any change or restore an earlier step, then generate.
Open Enterprise Linking and upload two to eight files, one per system (10 MB each, 400 entities in total). Give each system a name.
| Format | Typical source |
|---|---|
SQL DDL (.sql) | PostgreSQL, MySQL, SQL Server, Oracle, Supabase, Microsoft Fabric warehouse |
OData $metadata (.xml) | Dynamics 365 / Dataverse, SAP Gateway |
Salesforce describe (.json) | sObject describe results; reference fields become relationships |
Dataverse Web API (.json) | EntityDefinitions with Attributes and ManyToOneRelationships expanded: lengths, precision, required level and lookups |
SAP dictionary (.csv, .json) | DD03L or DFIES field lists from SE11/SE16 or DDIF_FIELDINFO_GET, also BAPI structures; check tables become relationships |
SAP IDoc definition (.txt) | WE60 parser export; each segment becomes an entity under its parent segment |
OpenAPI / Swagger (.json) | Custom and SaaS APIs; components.schemas become entities |
| Excel model, JSON model | The entity sheet used elsewhere in EnterGenni |
| CSV column listing | One row per column: table, column, optional type, nullable, pk, references |
LINKS-LOG.md, LINEAGE.md, lineage.json, FIELD-EDITS.md and TYPE-RULES.md to the usual platform files.Generated sync covers every system. The main method reads a merged entity from its primary system, and each other system gets its own method for the fields and relationships only it supplies, written to the node your key resolver names. Where several systems supply the same field, the primary system's value is kept.
Open Type Rules to build rules such as "money to currency" or "text over 4000 to multiple lines" with a live preview of every field that would change, pick a target profile (AI layer, Dataverse, SQL Server), and choose what happens to a value that does not fit. Copy a system template to start. Apply a rule set when you create a session; or edit one field by hand. Generated code includes length attributes and a guard for values that do not fit. EnterGenni does not migrate data.
On Pro, Enterprise and during the trial, AI adds name, type and link suggestions where the rules run out. It receives names, types and lengths only, and its output is validated. By default nothing changes without your click.
For a large schema, switch on AI auto-apply for the project in Name Review and pick a confidence level (55 to 85%). AI names at or above it are applied to names nobody has decided yet; a name you set, a revert or a saved rule always wins. Each one is marked "AI, applied automatically" in the log and the ZIP's REVIEW-LOG.md, and Revert AI-applied undoes them in one click. Generating never calls AI, so the same log always gives the same code.
Open Ask, choose one of your models (or the four-system sample), and get answers three ways. Every query is checked as read-only before anything runs.
The question library is built from your model and grouped by intent: overview, look up, connections, hierarchies, data quality, impact and reach, figures, and the business intents of your domain packs. The four-system sample has more than 280. Open a question to see its query, fill in a value if it asks for one, and run it.
In the query designer, drag a label onto the pattern, then relationships to the labels you need, properties into columns, filters or sort, and an aggregator (count, count distinct, sum, average, minimum, maximum, list of) onto a column. The query is written as you go; filter values are sent as parameters. Clicking a chip works too.
Type a question. The schema of your model, never its data, is sent to the AI with your question, and a query comes back with a one-line explanation. You see it, edit it, then run it.
To run queries, connect your Neo4j for the session: URL, a read-only user and password. They stay in your browser tab and are never stored. Only databases on the public internet can be reached from EnterGenni; for a private network, use the console in your generated code. Results download as CSV, TSV, Excel, JSON, Markdown, or the query as a Cypher file.
Pro ZIPs include GraphDB/Ask: POST api/graph/ask answers questions with your own AI key (Anthropic, OpenAI-compatible or Gemini), and GET api/graph/ask/console serves the same library, designer and exports against your production database. It is off until you set Ask:Enabled; protect it with your application's sign-in.
Everything runs in your accounts. EnterGenni hosts none of your data or applications.
The Deploy/ folder holds provision-aura.sh and .ps1 (create the instance from your machine), a Dockerfile, docker-compose.yml, cloudrun-deploy.sh (password in Secret Manager) and azure-containerapp.sh (password as a container app secret). Settings come from environment variables such as Neo4j__Uri.
Ontology/ontology.ttl describes the model as OWL 2 in Turtle (labels as classes, properties with XSD types, relationship types with domains, ranges and inverses, concepts as superclasses) next to ontology.json. Load it into Protégé, a triple store or a data catalogue.
Explore the verified sample in the sandbox, then make your own enterprise AI-ready in a few clicks. No signup required to start.
7-day full access · No credit card · Cancel anytime