Drop a single Make module into any scenario, map an entity from a previous step, and receive a structured, schema-validated, multi-model-fused JSON object — with multilingual output in 40 languages produced in a single LLM pass. 15 first-class modules with dynamic dropdowns and plan-limit-aware error handling, designed for Make's per-operation billing model.
Entity Enricher already ships an n8n connector that consumes a Server-Sent Events stream. Make modules can't natively consume SSE — each module is one atomic HTTP call. To support enrichment as a single Make operation, the backend exposes a dedicated POST /api/single/enrich/sync endpoint that wraps the streaming flow server-side and returns the final fused result in one response.
Pick more than one language in the Languages field and Entity Enricher populates every multilingual property in all selected languages in a single LLM call — not N sequential round-trips per language. 40 languages cover the major European, Asian, Middle Eastern, and African markets.
Result of one Enrich Entity call with languages = ["en", "fr", "de", "ja"]:
{
"names": {
"primary": {
"en": "Aspirin",
"fr": "Aspirine",
"de": "Aspirin",
"ja": "アスピリン"
}
},
"indications": {
"en": "Pain, fever, inflammation; antiplatelet therapy.",
"fr": "Douleur, fièvre, inflammation ; antiagrégant plaquettaire.",
"de": "Schmerz, Fieber, Entzündung; Thrombozytenaggregationshemmer.",
"ja": "痛み、発熱、炎症;抗血小板療法。"
}
}Downstream Make modules can map any language directly: {{enrichEntity.result.names.primary.fr}}. The Languages dropdown surfaces the full 40-language list, with a plan-limit notice when your organisation's profile caps the number of selectable languages.

The Make app source lives in the public TOT-Concept repository (synced from the Entity Enricher monorepo). Until the app lands on the Make marketplace, sideload via the Developer Hub:
make-app-entity-enricher/ directory as a .zip, or paste each .json / .imljson file into its tab in the editor.ent_XXXXXXXXXXXX, auto-tested against /api/enrichment/options), or an OAuth 2.0 connection: sign in to Entity Enricher and click Authorize.
Every selectable field in the Make modules is populated by an RPC that hits the Entity Enricher API at configuration time. Pinned schemas surface first (marked with 📌), model labels include per-million-token pricing, and plan-limited orgs see a notice when their quota is reached.

https://entityenricher.ai. Override only for self-hosted deployments.The central module exposes its input fields with dynamic dropdowns: schema, models (multi-select), languages (multi-select), strategy, optional classification & arbitration models, web search, response schema, strict structured output, timeout, and metadata toggles. Map an entity from any previous module via the Entity data field.
When 2+ models are selected, the result is automatically fused server-side. The Make output panel shows is_fused: true, the list of source_models, and a fusion summary counting agreed and conflicted fields:

identity_merges — each time this run reused an existing identity that had been minted from different words, with the similarity that settled it (empty when an exact code or token match decided it, since no similarity was measured).entity_keys — the key column values actually stored, so a downstream module can address the row it just created without guessing.status that reports a partial write honestly rather than as plain success, alongside skipped_items and key_collisions.retries, which replaced the older attempts field — a breaking rename, so update any scenario that mapped it.15 modules across 7 categories. Search modules emit one bundle per result for downstream Iterator/Aggregator chains; Action modules emit a single bundle.
| Category | Module | Description |
|---|---|---|
| Enrichment | Enrich Entity | Single-call enrichment with multi-model fusion. Returns the final fused (or best-single-model) result. Auto-cancels on classification warning. |
| Schemas | List Schemas | Returns one Make bundle per saved schema, ready for Iterator/Aggregator chains. |
| Schemas | Get Schema Details | Full schema content including expertise domains, properties, and search keys. |
| Schemas | Generate Sample | Generate 1..N realistic sample JSON objects of one entity type in one blocking call — the entry point of schema authoring. The first sample defines the field set; the rest are same-field instance variants. |
| Schemas | Generate Schema | Generate and auto-save a JSON schema from 1..N sample objects of the same entity type — union of fields, nullable where a field is missing in some sample, real observed values as examples. |
| Records | List Records | Search past enrichment records with filters (type, success, free-text). |
| Records | Get Record | Retrieve a single enrichment result with full per-prompt metrics. |
| Records | Inject Records into Database | Send a stored (or transformed) enrichment output to its schema's database sync. Re-validated against the schema's published contract, then passed through the admission gate. |
| Fusion | Merge Results | Re-merge multiple enrichment results, optionally with a different LLM arbiter. |
| Attachments | Upload Attachment | Upload a file (mapped as a buffer from an upstream module, e.g. HTTP ▸ Get a File) and return its attachment ID for use in Enrich Entity. |
| Attachments | Delete Attachment | Delete an attachment by ID — a handy post-enrichment cleanup step. |
| Database Sync | List Database Syncs | Returns the database syncs of a schema, with pending delta counts. |
| Database Sync | Fetch Database Deltas | Returns the next FIFO window of SQL deltas for a database sync. With Claim enabled the rows are leased and must be acknowledged; otherwise the read is replayable. |
| Database Sync | Acknowledge Database Deltas | Acknowledges applied deltas up to an ID — releases the lease and, per sync options, purges delivered copies. |
| Configuration | Get Options | Available models, languages, strategies, and the org's plan limits. |
The Database Sync modules drive the database sync delta feed from a scheduled scenario: Fetch Database Deltas leases the next SQL window, a database or HTTP module applies it, and Acknowledge Database Deltas confirms it (map Fetch’s Next Cursor into Acknowledge).
Make scenarios bill per operation. Instead of porting the n8n connector's Batch Enrich module, the Make app uses Make's built-in Iterator + Enrich Entity. Each iteration is independent, failures don't cascade, and billing reflects exactly what was processed.
A single Enrich Entity call populates every multilingual property in all selected languages — produced in one LLM pass, not N sequential round-trips. Map any language directly: {{result.names.primary.fr}}.
A dedicated POST /api/single/enrich/sync endpoint wraps the streaming flow server-side. One Make operation = one bundle. No polling, no two-module patterns.
The Enrich Entity module opens with just entity data, schema, languages, and web search — Entity Enricher runs with your organization's best model automatically. Models, attachments, strategy, and classification/arbitration options live behind Make's "Show advanced settings" toggle.
10 RPCs fetch schemas, database syncs, models, languages, strategies, classification/arbitration models, response-schema and structured-output options at configuration time — pinned schemas surface first, model labels include pricing.
Pick 2+ models and the result is automatically fused. The output bundle includes is_fused, source_models[], and a fusion: {agreed_fields, conflicted_fields, total_fields, method, arbitration_model} summary.
Optional cheap classifier model verifies the entity matches the schema's expected type before enrichment runs. Mismatches produce a typed DataError instead of hallucinated data.
HTTP 402 errors (plan limits or insufficient credits) become typed Make OutOfMoneyError. The message echoes the backend's human-readable detail (with a billing top-up URL when credits are out) plus a machine-readable code — branch the scenario error handler on the code to alert humans, fall back to cheaper models, or pause.
The Web Search dropdown reads parameters.models and disables itself when none of the selected models declares supports_web_search.
Make scenarios bill per operation. Multi-entity workflows use Make's built-in Iterator + Enrich Entity, giving granular per-entity error handling and exact billing.
Default 300-second timeout per call, bounded [10, 900]. The job is auto-cancelled server-side if it doesn't finish in time, returning a typed ConnectionError.
Every status the backend can return is mapped to a typed Make error so scenario error handlers can branch on the failure mode rather than parsing strings.

| HTTP | Make error type | When it fires |
|---|---|---|
| 400 | DataError | Schema not found, missing search keys, invalid models or languages. |
| 401 | InvalidCredentials | Bad or missing API key. |
| 402 | OutOfMoneyError | Plan limit exceeded OR insufficient credits. Message = body.detail.detail (human-readable, includes a top-up URL for insufficient_credits) + body.detail.code (machine-readable). Branch on the code: insufficient_credits, model_limit_exceeded, language_limit_exceeded, concurrent_job_limit_reached, daily/weekly/monthly_prompt_limit_exceeded. |
| 403 | AccessDeniedError | Role or scope insufficient. |
| 404 | InvalidConfigurationError | Schema or record not found. |
| 422 | DataError | Classification warning. body.detail.classification carries status, reasoning, confidence, entity_description. |
| 429 | RateLimitError | Provider rate limit (transient). |
| 499 | RuntimeError | Job cancelled. |
| 502 | ConnectionError | Upstream LLM provider error (e.g. context overflow). |
| 504 | ConnectionError | timeout_seconds elapsed; job auto-cancelled server-side. |
The app ships six importable scenario blueprints — single enrichment, the Iterator batch pattern, document to enrichment, image to sample to schema, samples to schema, and draining a database sync's delta feed. Import one and swap in your own connection rather than wiring the modules from scratch.