Copy this skill
Plan values per entity
The typed tool writes group-account grain. A budget that must hold a value per entity, per entity account, or per entity and dimension is written through the budget allocation bulk-upsert endpoint usingcontrol_api_request. The
budget must have been created in local-account mode when its rows are keyed by an entity’s own account, or in entity
mode when they are keyed by the entity alone — a group-account budget cannot be split by entity after the fact. Look
the endpoint up with control_api_endpoint_catalog for its exact path, body shape, and target kinds.
Kinds
0 and 1 are group-account only. For kinds 2, 3 and 4 the parent key follows the budget’s account mode:
localAccountId in a local-account budget, entityId in an entity budget. Sending a local account id to an
entity-mode budget is rejected as an unsupported row capability rather than silently rewritten.
Send writeTargetKind and sourceKind as integers rather than enum names. Parent rows reconcile from their children,
so write the leaf cells and never write a parent total over rows that already carry a split.
Recover missing references in a bulk file
Calldescribe_bulk_file_import_format with targetModel: "Budget", then preserve every normalized source row in the
canonical file. In place of IDs, you can supply groupAccountCode, localAccountCode, entityName,
groupDimensionName, dimensionItemName, and counterpartyName. Matching is exact; ambiguous names or a code/name
that conflicts with a supplied ID are rejected. Local account codes need an entity, and dimension item names need
a dimension (or the budget’s configured dimension). Dimension vectors also accept groupDimensionName and
groupDimensionItemName in place of their IDs.
- Call
validate_bulk_file_import. No budget values or accounts are created during validation. - If it returns
unresolved_budget_references, show each requirement’s reference, scope, affected row count, and total value. Overallreconciliationtotals count each unresolved row once, even if it has several missing references. Detailed requirements and sample row indexes are capped;omittedRequirementCountreports additional requirement groups, while reconciliation covers the complete file. - Ask the user to select an existing reference or approve creating the missing account. Account creation is a separate write action. For local accounts backed by an accounting integration, create the account in that source and sync it instead.
- After the repair, validate the same complete file again and reconcile
sourceRowCountandsourceTotalValuewith the workbook. Obtain confirmation beforesubmit_bulk_file_import, then pollget_file_upload_statusuntil it completes or fails. Submission checks references again, and the worker uses the atomic budget upsert.
Try it
Preview this workbook against the Approved Budget for July through December 2026. Do not write anything.
Import the confirmed monthly group-account rows, then re-read the plan and reconcile every value.
Check whether this file can be imported without losing its entity and dimension detail. Report which rows need the entity-grain path before writing anything.