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. 7 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 v1.0 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). The connection auto-tests against /api/enrichment/options.
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 11 input fields with dynamic dropdowns: schema, models (multi-select), languages (multi-select), strategy, optional classification & arbitration models, web search, 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:

7 modules across 4 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. |
| 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. |
| Fusion | Merge Results | Re-merge multiple enrichment results, optionally with a different LLM arbiter. |
| Configuration | Get Options | Available models, languages, strategies, and the org's plan limits. |
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.
7 RPCs fetch schemas, models, languages, strategies, classification/arbitration models, and web-search 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} 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. |