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[]`.
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.
keystringoptionalOptional citable key for this entity (e.g. "LTN-311"). Unique within the product across entity types, immutable once assigned, and never reused, so it is settable HERE and refused by update_node / batch_update_nodes. Supply one you already hold (an imported tracker key, or one your create surface chose); this tool never mints one for you.
archivedbooleanoptionalSweep this entity out of default views. Orthogonal to `status`: an entity can be done and live, or done and archived, and those are different facts.
archived_atstringoptionalISO timestamp archived. Pairs with `archived: true`.
overwrite_organizationbooleanoptionalFor type="organization" only. When true, replaces the existing portfolio organisation instead of throwing.
Returns
{ node, edge?, unknown_properties?, warning? }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.strict: true to reject unknown properties instead of warning.{ 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
}