Flow Studio
Query Entities Node
Searching entity records with filter expressions, sorting, and pagination — the EntityQueryNode config and iterating results with a ForEach node.
Node Configuration
{
"nodeType": "EntityQuery",
"name": "findPendingInvoices",
"config": {
"entityType": "invoice",
"filter": {
"status": "pending-approval",
"vendorId": "$output.fetchVendor.entityId",
"total": { "gte": 1000 }
},
"fields": ["invoiceNumber", "vendorId", "total", "submittedAt"],
"orderBy": "submittedAt",
"orderDirection": "asc",
"page": 1,
"pageSize": 50
}
}
Filter Operators
| Operator | Example | Meaning |
|---|---|---|
| exact match | "status": "approved" | Field equals value |
gte | "total": { "gte": 1000 } | Greater than or equal |
lte | "total": { "lte": 5000 } | Less than or equal |
in | "status": { "in": ["draft", "pending"] } | Value in array |
contains | "description": { "contains": "travel" } | Case-insensitive substring match |
after | "submittedAt": { "after": "2026-01-01" } | Date after |
before | "submittedAt": { "before": "2026-06-01" } | Date before |
Node Output
{
"items": [
{ "entityId": "inv-001", "data": { "invoiceNumber": "INV-001", "total": 2400.00 } },
{ "entityId": "inv-002", "data": { "invoiceNumber": "INV-002", "total": 1800.00 } }
],
"totalCount": 12,
"page": 1,
"pageSize": 50
}
Iterating Results with ForEach
// ForEach node config — iterate query results:
{
"nodeType": "ForEach",
"name": "processEachInvoice",
"config": {
"items": "$output.findPendingInvoices.items",
"itemAlias": "invoice"
}
}
// Inside the loop body, access current item via $json:
// $json.entityId
// $json.data.invoiceNumber
// $json.data.total
Pagination:
pageSize defaults to 50 and caps at 500. For large datasets, use multiple query nodes with incrementing page numbers, or use a Loop node that queries page-by-page until totalCount is exhausted. Loading all records in one call is not supported above 500.