Flow Studio
Read Entity Node
Reading a single business entity record by ID — the EntityReadNode config, projection fields, and accessing the result via $output.{id}.data.
Node Configuration
{
"nodeType": "EntityRead",
"name": "fetchInvoice",
"config": {
"entityType": "invoice",
"entityId": "$json.invoiceId",
"fields": ["invoiceNumber", "vendorId", "total", "currency", "lineItems", "status"],
"failOnNotFound": true
}
}
Configuration Fields
| Field | Type | Description |
|---|---|---|
entityType | string | Entity type key (e.g., "invoice", "employee"). Resolved by IEntitySchemaRegistry. |
entityId | string / expr | The ID of the entity to read. Expression syntax supported. |
fields | string[] | Optional projection — only return these fields. If omitted, all fields are returned. |
failOnNotFound | bool | When true, routes to error port if entity not found. When false, outputs null. Default: true. |
Node Output
{
"entityId": "inv-00123",
"entityType": "invoice",
"data": {
"invoiceNumber": "INV-2026-00123",
"vendorId": "vnd-acme",
"total": 4750.00,
"currency": "GBP",
"status": "pending-approval",
"lineItems": [
{ "description": "Consulting Services Q1", "amount": 4000.00 },
{ "description": "Expenses", "amount": 750.00 }
]
}
}
Accessing Output Fields
// Access top-level fields via .data
$output.fetchInvoice.data.invoiceNumber // "INV-2026-00123"
$output.fetchInvoice.data.total // 4750.00
$output.fetchInvoice.data.lineItems[0].amount // 4000.00
// Pass entityId to next node
$output.fetchInvoice.entityId // "inv-00123"
// Check status in condition node
"$output.fetchInvoice.data.status === 'pending-approval'"
Projection fields: Always specify
fields when you only need a few fields from a large entity. This reduces response payload size and speeds up execution — especially for entities with many nested arrays or large text fields.