Skip to content
Tools/Nodes/create_node

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

typestringrequired

UPG entity type (e.g. "persona", "opportunity"). Portfolio-scoped: "portfolio", "organization", "product_area".

titlestringrequired

Entity title

descriptionstringoptional

Optional description

tagsarrayoptional

Freeform tags

statusstringoptional

Lifecycle status

propertiesobjectoptional

Type-specific fields

parent_idstringoptional

Parent node ID. Creates an edge automatically. Ignored for portfolio-scoped types.

overwrite_organizationbooleanoptional

For 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
}

See Also