Skip to main content
Output nodes are where cleaned, chunked, enriched data finally lands. Six kinds: Vector, Blob, Action, DB Upsert, Causal graph, and Clause lineage. If a refinery has no Output node, the run doesn’t persist anywhere, so keep at least one.
Vector node settings showing the backend, collection, and distance metric

Vector

Writes chunks with their embeddings into a vector index. This is the default destination for most refineries because Agent retrieval reads from here.
  • Backend: pgvector (default), Qdrant, Milvus, or Weaviate.
  • Collection / table: default documents.
  • Distance metric: default cosine.
Wire an Embed node upstream so each chunk has a vector.

Blob

Preserves the raw bytes as-is. Pair with Vector when you retrieve by vector but cite from the original bytes.
  • Backend: S3 / compatible, GCS, or Local disk.
  • Bucket / path: where to store.
  • Encrypt at rest: encrypt on write.

Action

HTTP POST/PUT per record to an external REST API. Use it to deliver results outside Nora, such as to a webhook, Slack, or an internal system.
  • Endpoint · Headers · Params: same shape as Web / API source, Import from cURL supported.

DB Upsert

Write records into a relational table via an SQL script. The inspector shares the DB picker + SQL editor shell with Source · Database and Enrich · DB Lookup. Write the DML with {paramName} placeholders, and each record’s top-level keys bind to those params in the engine-appropriate order.
  • Database: pick an internal resource registered under Settings → Internal resources. The raw DSN never appears in the refinery JSON.
  • SQL: write the INSERT … ON CONFLICT (Postgres) / INSERT … ON DUPLICATE KEY UPDATE (MySQL / MariaDB) statement, or any DML you need. Placeholder-based binding keeps re-runs idempotent when you write a real upsert.

Causal graph

Attaches chunks to the workspace causal graph and stages observed norm hierarchies (e.g. an upper regulation that a lower one defers_to) as STAGED proposal edges. A person reviews and approves them in the graph editor before they go live. Use this when relationships between documents, such as regulations or insurance policies with amendments, matter to the answer.

Clause lineage

Compares this run’s document clauses against the previous version and proposes a revision history: carried over, amended, new, or removed. The proposals surface in this node’s inspector under the Review tab; a person reviews and applies. Useful for tracking insurance policy revisions. When Clause lineage creates proposals to review, the [Review proposals (N)] button appears to the left of New file in the Knowledge list. See Review proposals in Refine documents for the review filter and approve or reject flow.

Splitting destinations

Multiple Output nodes are fine. A common setup combines Vector and Blob, giving you a searchable index next to the raw source for citation. To send different subsets to different destinations, use the upstream node’s inspector Advanced → Flow control → dispatch=routed to branch.