Creates a collection pipeline.
Validates the source (integration config, list tool, item-id path) and, for an index sink, its target asset. The pipeline is created independent of any schedule — start it with `:run`.
Authorization
Bearer JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token.
In: header
Path Parameters
The tenant identifier
The pipeline definition.
Where a pipeline's items come from: an existing paged integration "list" tool, driven headlessly
(no LLM). Mirrors the source half of ToolSourceAssetConfig; the two converge onto this
shared block when the P0 extraction lands (see docs/design/collection-pipelines-plan.md §P0).
Stored as JSONB on Fruxon.Model.CollectionPipelines.CollectionPipeline.
uuidThe Agent or Workflow run once per item.
Compatibility alias accepted from legacy clients.
Optional pinned runnable revision.
Compatibility alias accepted from legacy clients.
How each source item is mapped into the per-item agent run's inputs. Values are dotted paths into
the item (e.g. fields.summary) or {{template}} interpolations over it — the same
resolution the tool-source mapper uses. Stored as JSONB on Fruxon.Model.CollectionPipelines.CollectionPipeline.
What a completed run does with its results: a list of Fruxon.Model.CollectionPipelines.CollectionSinks, each applied
independently (and fail-soft) at run completion — so a single run can, e.g., write a sheet and
index to RAG (design collection-pipelines-sink-redesign.md §6.2). Stored as JSONB on
Fruxon.Model.CollectionPipelines.CollectionPipeline. An empty list applies no external sink; the per-item results are
still readable via the collect results endpoint. v1 expects at most one sink per kind.
Safety + execution limits for a pipeline run. These are correctness controls, not polish — they
ship with the engine, not after it (see docs/design/collection-pipelines.md §8). Stored as
JSONB on Fruxon.Model.CollectionPipelines.CollectionPipeline.
Response Body
curl -X POST "https://api.fruxon.com/v1/tenants/string/collectionPipelines" \ -H "Content-Type: application/json" \ -d '{}'{
"id": "00000000-0000-0000-0000-000000000000",
"tenantId": "00000000-0000-0000-0000-000000000000",
"createdAt": 0,
"modifiedAt": 0,
"displayName": "string",
"active": false,
"source": {
"kind": "TOOL",
"ragAssetId": "string",
"ragReadMode": "DOCUMENTS",
"ragSearch": "string",
"pageSize": 0,
"integrationConfigId": "string",
"listToolId": "string",
"getToolId": "string",
"recordsPath": "string",
"cursorParamName": "string",
"parameters": {},
"itemIdPath": "string",
"sinkTargetPath": "string",
"skipWhen": {
"match": "ALL",
"conditions": []
},
"sourceUrlPath": "string",
"flattenSheetRows": false
},
"sourceRefs": [
{
"sourceId": "00000000-0000-0000-0000-000000000000",
"alias": "string"
}
],
"defaultSourceId": "00000000-0000-0000-0000-000000000000",
"agentId": "string",
"runnableId": "string",
"runnableType": "AGENT",
"networkId": "00000000-0000-0000-0000-000000000000",
"agentRevision": "string",
"runnableRevision": "string",
"inputMapping": {
"userQuery": "string",
"parameters": {},
"attachmentUrlPath": "string"
},
"outputSchema": [
{
"name": "string",
"description": "string"
}
],
"sink": {
"sinks": [
{
"kind": "UNSPECIFIED",
"indexAssetId": "string",
"tabular": null
}
]
},
"runPolicy": {
"maxItems": 0,
"maxConcurrency": 0,
"perRunBudgetCap": 0,
"dedupKeyPath": "string",
"onItemError": "CONTINUE",
"actionTypeCeiling": "READ_ONLY"
},
"publishedRevisionId": "00000000-0000-0000-0000-000000000000",
"hidden": false
}{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}