Portal Community

When to Use

Configuration

Connection

FieldRequiredDescription
HostRequiredElasticsearch cluster URL, e.g. https://localhost:9200 or https://my-cluster.es.io. Must include protocol.
UsernameOptionalElasticsearch username. Required if the cluster has security enabled.
PasswordOptionalPassword for the specified username.
IgnoreSSLOptionalDefault false. Skip TLS certificate validation. Development use only — never enable in production.

Operation — Single Mode (Bulk: false)

FieldRequiredDescription
IndexNameRequiredTarget index name. The index is created with dynamic mapping if it does not yet exist.
DocumentIdOptionalExplicit document ID. If omitted, Elasticsearch auto-generates a unique ID. Use a predictable ID (e.g. the record's database PK) for idempotent writes — re-indexing the same ID replaces the document.
FieldsRequiredDocument body as a JSON object. All fields are indexed according to the index mapping.
SimplifyResponseOptionalDefault false. When true, strips Elasticsearch metadata (_shards, _seq_no) from the response, returning only documentId, version, and status.

Operation — Bulk Mode (Bulk: true)

FieldRequiredDescription
IndexNameRequiredTarget index for all documents in the batch.
BulkRequiredSet to true to activate the Bulk API path. The Documents field is then required and Fields is ignored.
DocumentsRequiredJSON array of document objects. Each element is a plain field object — do not include Bulk API action headers, the node adds those automatically. Documents are batched in groups of 50.
Conditional visibility: The Documents field in the Atlas Form (FormID 20304) is hidden until Bulk is toggled on, via a visibilityRule expression. You will not see it unless the switch is enabled.

Validation Errors

Error CodeCause
VAL_MISSING_INDEXIndexName is empty or whitespace.
VAL_MISSING_FIELDSSingle mode: Fields is null or empty.
VAL_MISSING_DOCUMENTSBulk mode: Documents array is null or empty.

Output

Single Mode — Success Port

FieldTypeDescription
documentIdstringThe assigned document ID — your supplied ID or the auto-generated one.
versionstringDocument version number. Starts at "1" and increments on each overwrite.
statusstring"success"

Bulk Mode — Success Port

FieldTypeDescription
ProcessedCountintegerNumber of documents successfully indexed.
FailedCountintegerNumber of documents that failed. Bulk operations partially succeed — the success port fires even if some items failed.
FailureDetailsarrayOne entry per failed document: ItemIndex (position in the array), DocumentId, HttpStatusCode, ErrorType, ErrorReason.
Bulk partial success: The success port fires even when some items in a bulk batch fail. Always check FailedCount in the downstream node and handle non-zero values — for example, log FailureDetails or route to an error notification node.

Examples

Single Document — Product Catalogue

{
  "resource": "document",
  "operation": "create",
  "IndexName": "products",
  "DocumentId": "{{ $json.sku }}",
  "Fields": {
    "title":       "{{ $json.title }}",
    "brand":       "{{ $json.brand }}",
    "category":    "{{ $json.category }}",
    "price":       "{{ $json.price }}",
    "tags":        "{{ $json.tags }}",
    "in_stock":    true,
    "indexed_at":  "{{ $now }}"
  },
  "SimplifyResponse": true
}

Bulk Insert — Log Batch

{
  "resource": "document",
  "operation": "create",
  "IndexName": "app-logs-{{ $now | date('YYYY-MM') }}",
  "Bulk": true,
  "Documents": "{{ $json.logEntries }}"
}

Where $json.logEntries is an array of objects, each with fields like timestamp, level, service, and message. The node batches them into groups of 50 for the Bulk API.