Semogram Docs
Reference

Workflow nodes

Every node kind, its fields, data shapes, and config examples.

Nodes are the vocabulary of plans. Each kind declares what it needs and what it produces; edges are valid only when both sides' interfaces agree. Conceptual overview in Workflows and plans.

Node kinds at a glance

KindReadsWritesUse when
SourceIntegrationRecords / collectionsData enters from your systems
TransformRecordsReshaped recordsShape is almost right
ExtractDocumentsFields, labelsInput is unstructured
MapAny shapeMapped shapeConversion must be inspectable
SkillGuidanceAssisted behaviorA judgment call recurs
QueryStateLookup resultsBranching on what is known
PredictStateForecast / labelA decision needs likelihoods
DestinationRecordsExternal systemResults must live outside
Ontology writeMapped dataEntities / relationshipsStructure must persist

Assertion mapping and assertion materializer nodes serve advanced governance flows; most workspaces never configure them directly.

Interface shapes

ShapeMeaningExample
RecordOne structured itemAn order with id, total, date
CollectionMany records togetherYesterday's orders
DocumentSemi-structured contentA ticket thread, a PDF invoice
BlobOpaque bytes, carried not inspectedAn image attachment
Ontology entity / relationshipInstances of defined typesResolved Customer + Orders
Fact setGrouped facts for prediction inputsPer-account feature rows
AssertionsChecked statements with outcomes"Total matches invoice: confirmed"

Source node

Points at an installed source integration. Holds no secrets — those live with the integration.

FieldMeaningWhen to set it
SourceWhich installed integration to readAlways — pick the door first
Read modeFull scope vs what changed since last timeIncremental for schedules, full for first loads
SelectionFilters and field subsetNarrow before downstream, not after
CheckpointingResume where it stoppedOn for anything scheduled
Batch sizeRows per pullRaise for bulk loads
RetriesAttempts and backoff (fixed / exponential)Raise for flaky sources
Row-count watchFlag unexpected volume dropsOn for feeds that must not silently shrink
{
  "kind": "source",
  "dataEndpointName": "crm.orders",
  "mode": "incremental",
  "flow": {
    "checkpoint": { "enabled": true },
    "batch": { "size": 1000 },
    "retry": { "maxAttempts": 3, "backoff": "exponential" }
  },
  "anomaly": { "rowCountDropThreshold": 0.5 }
}

A second example — one-time full read for seeding:

{
  "kind": "source",
  "dataEndpointName": "crm.products",
  "mode": "full",
  "flow": { "batch": { "size": 5000 } }
}

Image: source node configuration with mode, selection, and flow controls visible.

Transform node

FieldMeaningWhen to set it
FunctionNamed transform (aggregate, join, normalize…)Always — read its description first
InputsOne stream, or named streams for joinsNamed inputs for merges
ParametersGroup-by keys, join keys, thresholdsWhere "aggregate" becomes "average order value by region"
OutputWhere the reshaped stream goesAlways
{
  "kind": "transform",
  "function": "aggregate",
  "input": "orders",
  "params": { "groupBy": ["region"], "measures": [{ "field": "total", "op": "avg" }] }
}

Prefer small chained transforms over one large one — failures point at the guilty step.

Extract node

FieldMeaningWhen to set it
StrategyLanguage model, parser, or hybridModel for prose, parser for rigid formats, hybrid for laid-out text
Prompt / rulesWhat to pull and in what shapeBe explicit about downstream shape
OutputStructured fields onwardAlways

Validate on samples before trusting at volume — quality is measured per field, not per document.

Mapping node

Declares shape-to-shape conversion; for ontology work see Ontology mappings.

FieldMeaningWhen to set it
InputsNamed upstream streamsAlways
Entities / relationshipsThe mapping rulesThe inspectable conversion itself
ModeUpdate-or-insert / snapshot / deltaUpsert for schedules, snapshot for rebuilds
{
  "kind": "ontology-mapping",
  "inputs": { "orders": "clean_orders" },
  "mode": "upsert",
  "entities": [{ "class": "Order", "id": { "template": "ord-{order_id}" } }]
}

Skill node

FieldMeaningWhen to set it
SkillsInstalled skills by referenceOne or more, each earning its place
ModeAuthoring-assist / execution-assist / validation-assistMatch where guidance should bite

Query node

Reads ontology or workflow state mid-plan without consuming it. No configuration beyond what to read and where it flows — branch on thresholds, lookups, and existence checks.

Predict node

FieldMeaningWhen to set it
ForecasterWhich predictor, by id or slugAlways — one must be named
SubjectWhat the prediction is aboutName the decision target
HorizonAim point and window endAlways — a forecast without one has no test date
ParametersForecaster-specific settingsPer predictor docs
{
  "kind": "predict",
  "forecasterSlug": "renewal-risk-v3",
  "subjectRef": "account.top20",
  "horizon": "next-quarter",
  "horizonEndsAt": "2026-12-31T23:59:59Z"
}

Full predictor detail in Forecasts.

Destination node

FieldMeaningWhen to set it
DestinationInstalled integration receiving the writeAlways
Write modeAppend / replace / update-or-insertAppend for history, replace for snapshots under approval
Source streamWhich upstream data gets writtenAlways
{
  "kind": "destination",
  "dataEndpointName": "warehouse.forecast_output",
  "source": "risk_scores",
  "writeMode": "append"
}

Gate external writes with node-level approval — see Write policies.

Ontology write node

FieldMeaningWhen to set it
DefinitionGoverning ontology modelAlways
ModeUpdate-or-insert / snapshot / deltaUpsert for sync, snapshot for rebuilds
AtomicityTransactional vs per-unitTransactional for small critical writes, per-unit for resumable bulk
ValidationUnknown terms, invalid records, cardinality, datatypesQuarantine at volume, reject where money moves
Conflict policyWhich source wins, in what priorityWherever two systems disagree

Choose ontology writes where structure compounds across runs — not as the default outcome of every plan.

Choosing between lookalikes

PairRule
Transform vs mappingReshaping data → transform; declared shape contract or ontology landing → mapping
Extract vs transformUnstructured in, fields out → extract; fields in, fields out → transform
Destination vs ontology writePeople read destinations; predictions read ontology
Query vs predictKnown → query; likely → predict

Validation

ScopeSeverityEffect
Graph / node / edgeErrorBlocks dry-run and commit
Graph / node / edgeWarningAsks for a reading first
Graph / node / edgeInfoContext only

When an edge is invalid, select it — the message names the incompatible interfaces.