create_node
Create one entity, optionally with a parent edge. For 3+ entities, use `batch_create_nodes` instead of looping. Portfolio-scoped types (`portfolio`, `organization`, `product_area`) route to `.upg/portfolio.upg` rather than the active product's `nodes[]`.
Nodesatomic-with-rollback. Schema validation runs before mutation.
Arguments
typestringrequiredUPG entity type (e.g. "persona", "opportunity"). Portfolio-scoped: "portfolio", "organization", "product_area".
titlestringrequiredEntity title
descriptionstringoptionalOptional description
tagsarrayoptionalFreeform tags
statusstringoptionalLifecycle status
propertiesobjectoptionalType-specific fields
parent_idstringoptionalParent node ID. Creates an edge automatically. Ignored for portfolio-scoped types.
overwrite_organizationbooleanoptionalFor type="organization" only. When true, replaces the existing portfolio organisation instead of throwing.
Returns
Shape
{ node, edge?, unknown_properties?, warning? }The
edge field is present only when parent_id was supplied and a canonical hierarchy edge could be inferred.unknown_properties and warning are present when the caller passed properties not in the entity's schema.Pass
strict: true to reject unknown properties instead of warning.For portfolio-scoped types the response shape is
{ node, portfolio_file, written_to, warning? } where node is the persisted typed record.Examples
Live call against the Notion example graph.
Input
{
"type": "person",
"title": "Example node"
}Output
{
"node": {
"id": "n_lsZ0CjPWcrZ6Hhw8",
"type": "person",
"title": "Example node",
"slug": "example-node"
},
"edge": null
}