Make.com Connector - Entity Enricher Documentation

Make.com Connector

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.

Designed for Make

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.

n8n connector
POST /enrich/stream → job_id
GET /llm/stream/{id}
GET /llm/stream/{id}
... (events)
[final bundle out]
Make.com connector
POST /enrich/sync
(server awaits internally)
[final bundle out]

Multilingual Enrichment in One Pass

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.

Make module: Languages multi-select dropdown showing 40 supported languages

Installation

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:

  1. Sign in to your Make organisation as a developer.
  2. Go to Apps → Create a new app → Custom App.
  3. Either upload the make-app-entity-enricher/ directory as a .zip, or paste each .json / .imljson file into its tab in the editor.
  4. Add a connection — either an API Key connection using a key from Entity Enricher → Settings → API Keys (format ent_XXXXXXXXXXXX, auto-tested against /api/enrichment/options), or an OAuth 2.0 connection: sign in to Entity Enricher and click Authorize.
Make: API Key connection setup form

Dynamic Dropdowns

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.

Make module: Schemas dropdown open with pinned schemas at the top

Prerequisites

API KeyCreate an organisation access key in Entity Enricher. See the API Keys documentation. Use an organisation access key (with its own role) for service-to-service integrations.
Base URLThe URL of your Entity Enricher instance — defaults to https://entityenricher.ai. Override only for self-hosted deployments.
OAuth 2.0 (alternative)Instead of an API key, pick the Entity Enricher OAuth 2.0 connection type: sign in to Entity Enricher and click Authorize — no key to copy. The connection acts on your behalf with your own role and can be revoked anytime under API Keys → Connected Apps. API keys remain the recommendation for durable service-to-service scenarios.

Enrich Entity in Action

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:

Make output panel: multi-model fused enrichment result
What else the output bundle carries
  • 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.
  • A database-write status that reports a partial write honestly rather than as plain success, alongside skipped_items and key_collisions.
  • On records: retries, which replaced the older attempts field — a breaking rename, so update any scenario that mapped it.

Available Modules

15 modules across 7 categories. Search modules emit one bundle per result for downstream Iterator/Aggregator chains; Action modules emit a single bundle.

CategoryModuleDescription
EnrichmentEnrich EntitySingle-call enrichment with multi-model fusion. Returns the final fused (or best-single-model) result. Auto-cancels on classification warning.
SchemasList SchemasReturns one Make bundle per saved schema, ready for Iterator/Aggregator chains.
SchemasGet Schema DetailsFull schema content including expertise domains, properties, and search keys.
SchemasGenerate SampleGenerate 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.
SchemasGenerate SchemaGenerate 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.
RecordsList RecordsSearch past enrichment records with filters (type, success, free-text).
RecordsGet RecordRetrieve a single enrichment result with full per-prompt metrics.
RecordsInject Records into DatabaseSend 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.
FusionMerge ResultsRe-merge multiple enrichment results, optionally with a different LLM arbiter.
AttachmentsUpload AttachmentUpload 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.
AttachmentsDelete AttachmentDelete an attachment by ID — a handy post-enrichment cleanup step.
Database SyncList Database SyncsReturns the database syncs of a schema, with pending delta counts.
Database SyncFetch Database DeltasReturns 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 SyncAcknowledge Database DeltasAcknowledges applied deltas up to an ID — releases the lease and, per sync options, purges delivered copies.
ConfigurationGet OptionsAvailable 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).

Multi-Entity Workflows: Iterator Pattern

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.

[trigger: array of entities]
[Make: Iterator] (splits into N bundles)
[this app: Enrich Entity] (one operation per entity)
[Make: Aggregator] (recombines, optionally with skip-on-error)
[downstream: upsert to CRM / database]

Key Features

Multilingual in 40 Languages

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}}.

One-Call Enrichment

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.

Simple by Default

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.

Dynamic Dropdowns (RPCs)

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.

Multi-Model Auto-Fusion

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.

Pre-Flight Classification

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.

Plan-Limit & Credit Awareness

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.

Web-Search Dropdown Locks

The Web Search dropdown reads parameters.models and disables itself when none of the selected models declares supports_web_search.

No Batch Module

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.

Configurable Timeout

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.

Error Contract

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.

Make scenario: error handler branching on OutOfMoneyError
HTTPMake error typeWhen it fires
400DataErrorSchema not found, missing search keys, invalid models or languages.
401InvalidCredentialsBad or missing API key.
402OutOfMoneyErrorPlan 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.
403AccessDeniedErrorRole or scope insufficient.
404InvalidConfigurationErrorSchema or record not found.
422DataErrorClassification warning. body.detail.classification carries status, reasoning, confidence, entity_description.
429RateLimitErrorProvider rate limit (transient).
499RuntimeErrorJob cancelled.
502ConnectionErrorUpstream LLM provider error (e.g. context overflow).
504ConnectionErrortimeout_seconds elapsed; job auto-cancelled server-side.

Start from an example scenario

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.

Workflow Ideas

CRM EnrichmentTrigger on new HubSpot/Salesforce contacts, enrich with company data, update the CRM record.
Spreadsheet PipelineRead entities from Google Sheets, Iterator + Enrich Entity, write results back to a new sheet.
Conditional Re-ArbitrationRun rule-based fusion first; if conflicted_fields > 5, re-merge with an LLM arbiter via Merge Results — without re-running the costly enrichment.
Plan-Limit RoutingOn OutOfMoneyError, alert a human in Slack and pause the scenario until the quota window resets.
Scheduled RefreshRun on a cron schedule (Make Schedule trigger) to re-enrich stale records with the latest models.

Next Steps