Budgets & Forecasts
Tools for budgets, budget allocations and templates, and the forecasts raised against them, including approval steps.
This page covers 29 tools, all of them available on request rather than in the default tool list, and 3 destructive.
- Status — In the default tool list means the tool is one of the ~200 Aprimo advertises to every agent out of the box, so the agent discovers and calls it on its own. Available on request means the tool is registered and fully callable, but sits outside that default list — call it by name, or ask Aprimo to extend the list your tenant is served.
- Both statuses work identically when called. Status affects discovery, not capability or authorization.
- Visibility is not authorization. Every tool call executes as the authenticated user, and any tool can return an authorization error if that user lacks rights to the record, task, or file. See the MCP Tool Permission Map.
- Destructive tools are labelled as such. They delete or irreversibly overwrite data, and will not act unless the call sets both
confirmedandconfirmedDestructivetotrue. - Activity and Project labels vary by tenant. Where this page says Activity or Project, your tenant's own configured terminology is substituted at runtime.
Aprimo's MCP Server exposes far more tools than most MCP clients handle well — many degrade or truncate their tool list well below the full catalogue. Rather than let a client truncate arbitrarily, Aprimo advertises a curated set of roughly 200 tools covering the tasks customers most commonly automate. Everything outside that set remains fully supported and callable by name; it simply isn't offered up front. If your integration leans on a tool that is available on request, talk to your Aprimo Customer Success Manager about extending the advertised list for your tenant.
Tools at a Glance
| Tool | Status | What it does |
|---|---|---|
activate_budget_allocation | On request | Activates a budget allocation against an external financial group in Aprimo Marketing Operations (Budget Allocation, not a Funding Account -- unrelated to activating/funding a Funding Account). |
approve_forecast | On request | Destructive. Approves a proposed forecast review for an activity in Aprimo Marketing Operations. |
create_budget_allocation | On request | Creates a new budget allocation in Aprimo Marketing Operations (Budget Allocation, not a Funding Account -- see create_funding_account for that). |
create_budget_template | On request | Creates a new budget template for the caller's organization in Aprimo Marketing Operations. |
delete_budget_allocation | On request | Destructive. Permanently deletes a budget allocation by its ID (a GUID string, not an integer) in Aprimo Marketing Operations (Budget Allocation, not a Funding Account -- there is no delete tool for Funding Accounts). |
export_budget_allocation | On request | Exports a budget allocation to Excel in Aprimo Marketing Operations and returns a SAS download URL (Budget Allocation, not a Funding Account). |
get_activity_forecast | On request | Returns a single activity forecast by its integer ID in Aprimo Marketing Operations. |
get_activity_forecasts | On request | Returns the approved forecasts aggregate for one activity (by the activity's integer ID) in Aprimo Marketing Operations. |
get_activity_proposal_forecasts | On request | Returns the forecasts aggregate for one activity proposal (by the activity proposal's integer ID) in Aprimo Marketing Operations. |
get_activity_proposed_forecasts | On request | Returns the proposed (not-yet-approved) forecasts aggregate for one activity (by the activity's integer ID) in Aprimo Marketing Operations. |
get_budget_allocation | On request | Returns a single budget allocation by its ID (a GUID string, e.g. "554f2a18-cf54-441b-9893-a6165b3f41ee") in Aprimo Marketing Operations. |
get_budget_allocation_forecast | On request | Returns forecast spend for a budget allocation by its ID (a GUID string, not an integer) in Aprimo Marketing Operations (Budget Allocation, not a Funding Account). |
get_budget_allocation_spend | On request | Returns current spend for a budget allocation by its ID (a GUID string, not an integer) in Aprimo Marketing Operations (Budget Allocation, not a Funding Account). |
get_budget_template_hierarchy | On request | Returns a budget template structure derived from the specified Aprimo financial hierarchy, in Aprimo Marketing Operations. |
list_budget_allocation_activity_types | On request | Lists budget allocation activity types configured in Aprimo Marketing Operations (Budget Allocation, not a Funding Account). |
list_budget_allocation_currencies | On request | Lists currencies available for budget allocations in Aprimo Marketing Operations (Budget Allocation, not a Funding Account). |
list_budget_allocation_financial_groups | On request | Lists external financial groups budget allocations can be activated against, in Aprimo Marketing Operations (Budget Allocation, not a Funding Account). |
list_budget_allocation_metrics | On request | Lists budget allocation metrics available in Aprimo Marketing Operations (Budget Allocation, not a Funding Account). |
list_budget_allocation_programs | On request | Lists programs available for budget allocations in Aprimo Marketing Operations (Budget Allocation, not a Funding Account). |
list_budget_allocation_types | On request | Lists budget allocation types configured in Aprimo Marketing Operations (Budget Allocation, not a Funding Account). |
list_budget_allocation_versions | On request | Lists the versions of a budget allocation by its parent budget allocation's ID (a GUID string, not an integer) in Aprimo Marketing Operations (Budget Allocation, not a Funding Account). |
list_budget_allocations | On request | Lists budget allocations in Aprimo Marketing Operations, paged and unfiltered. |
list_budget_templates | On request | Lists budget templates for the caller's organization in Aprimo Marketing Operations, paged and unfiltered. |
reject_forecast | On request | Destructive. Rejects a proposed forecast review for an activity in Aprimo Marketing Operations. |
update_activity_forecasts | On request | Updates the forecasts for an activity (by the activity's integer ID) in Aprimo Marketing Operations. |
update_activity_proposal_forecasts | On request | Updates the forecasts for an activity proposal (by the activity proposal's integer ID) in Aprimo Marketing Operations. |
update_budget_allocation | On request | Updates an existing budget allocation in Aprimo Marketing Operations (Budget Allocation, not a Funding Account -- see update_funding_account for that). |
update_budget_template | On request | Updates an existing budget template in Aprimo Marketing Operations. |
upload_budget_allocation_document | On request | Uploads a base64-encoded document to a budget allocation in Aprimo Marketing Operations (Budget Allocation, not a Funding Account). |
activate_budget_allocation
Available on request
Activates a budget allocation against an external financial group in Aprimo Marketing Operations (Budget Allocation, not a Funding Account -- unrelated to activating/funding a Funding Account). Requires confirmed=true after showing the user the exact payload (including the target group).
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
body | string | Yes | JSON object with the activation payload PM expects (e.g. the budget id, organizationId, and year -- PM wire names). |
groupId | string | Yes | The target external Finance Group's ID. Required by PM as part of the activation request -- without it, activation fails with "Finance group header is missing or invalid." Discover valid ids via list_budget_allocation_financial_groups. |
confirmed | boolean | No | Must be true to proceed. Omit (or false) to get a confirmation gate error, then call again with confirmed=true after the user has explicitly approved the activation. |
Returns:
| Field | Type | Description |
|---|---|---|
action | string | |
succeeded | boolean | |
raw | object (optional) | The complete wire response, verbatim, since the real response shape is unverified. |
approve_forecast
Available on request · Destructive
Approves a proposed forecast review for an activity in Aprimo Marketing Operations. This is a state change. Requires both confirmed=true and confirmedDestructive=true, after explicitly confirming the exact activity and forecast review with the user.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
activityId | string | Yes | The activity's integer ID. |
forecastReviewId | string | Yes | The forecast review's integer ID to approve. |
confirmed | boolean | No | Must be true to proceed. Omit (or false) to get a confirmation gate error. |
confirmedDestructive | boolean | No | Must also be true (in addition to confirmed) — approving a forecast review changes its state. Set only after stating the exact activity and forecast review to the user and getting explicit go-ahead. |
Returns:
| Field | Type | Description |
|---|---|---|
activityId | integer | |
forecastReviewId | integer | |
action | string (optional) | The state-change action performed: "approve" or "reject". |
succeeded | boolean |
This tool deletes or irreversibly overwrites data in the live tenant; the change cannot be rolled back through the API. It will not act unless the call sets both confirmed and confirmedDestructive to true.
create_budget_allocation
Available on request
Creates a new budget allocation in Aprimo Marketing Operations (Budget Allocation, not a Funding Account -- see create_funding_account for that). Requires confirmed=true after showing the user the exact payload. Returns the created budget allocation.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
body | string | Yes | JSON object with the new budget's data (PM wire names). |
confirmed | boolean | No | Must be true to proceed. Omit (or false) to get a confirmation gate error, then call again with confirmed=true after the user has explicitly approved the payload. |
Returns:
| Field | Type | Description |
|---|---|---|
id | string (optional) | |
name | string (optional) | |
raw | object (optional) | The complete wire object, verbatim, for full fidelity beyond the defensively-extracted fields above. |
create_budget_template
Available on request
Creates a new budget template for the caller's organization in Aprimo Marketing Operations. Requires confirmed=true after showing the user the exact payload. Returns the created budget template.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
body | string | Yes | JSON object with the new budget template's data (PM wire names). |
confirmed | boolean | No | Must be true to proceed. Omit (or false) to get a confirmation gate error, then call again with confirmed=true after the user has explicitly approved the payload. |
Returns:
| Field | Type | Description |
|---|---|---|
id | string (optional) | |
name | string (optional) | |
raw | object (optional) | The complete wire object, verbatim, for full fidelity beyond the defensively-extracted fields above. |
delete_budget_allocation
Available on request · Destructive
Permanently deletes a budget allocation by its ID (a GUID string, not an integer) in Aprimo Marketing Operations (Budget Allocation, not a Funding Account -- there is no delete tool for Funding Accounts). This cannot be undone. Requires both confirmed=true and confirmedDestructive=true, after explicitly confirming the exact budget allocation with the user.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
budgetId | string | Yes | The budget's ID (a GUID string, not an integer) to delete. |
confirmed | boolean | No | Must be true to proceed. Omit (or false) to get a confirmation gate error. |
confirmedDestructive | boolean | No | Must also be true (in addition to confirmed) — deleting a budget is permanent and cannot be undone. Set only after stating the exact budget to the user and getting explicit go-ahead. |
Returns:
| Field | Type | Description |
|---|---|---|
id | string | A GUID string, not an integer -- see 's remarks. |
deleted | boolean |
This tool deletes or irreversibly overwrites data in the live tenant; the change cannot be rolled back through the API. It will not act unless the call sets both confirmed and confirmedDestructive to true.
export_budget_allocation
Available on request
Exports a budget allocation to Excel in Aprimo Marketing Operations and returns a SAS download URL (Budget Allocation, not a Funding Account). No resource is created or changed by this call.
Response format: the response carries a pre-rendered markdown block intended to be displayed verbatim.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
budgetId | string | Yes | The budget's ID (a GUID string, not an integer) to export. |
options | string | No | Optional JSON object with export options PM expects. Omit or pass "{}" for defaults. |
Returns:
| Field | Type | Description |
|---|---|---|
count | integer (optional) | |
raw | object (optional) |
get_activity_forecast
Available on request
Returns a single activity forecast by its integer ID in Aprimo Marketing Operations.
Response format: the response carries a pre-rendered markdown block intended to be displayed verbatim.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
forecastId | string | Yes | The forecast's integer ID. |
Returns:
| Field | Type | Description |
|---|---|---|
activityForecastId | integer | |
serviceId | integer (optional) | |
activityId | integer (optional) | |
description | string (optional) | |
units | number (optional) | |
cost | number (optional) | |
expCatId | integer (optional) | |
fiscalYearId | integer (optional) | |
fiscalPeriodId | integer (optional) | |
exchangeRateId | integer (optional) | |
supplierId | integer (optional) | |
modifiedDate | string (ISO 8601) (optional) | |
modifiedUser | integer (optional) | |
status | integer (optional) | The forecast's approval status; PM enum, exposed as its raw int. |
extendedAttributes | array of PmExtendedAttribute (optional) | |
extendedAttributes[].eaId | integer | |
extendedAttributes[].skipDCTSave | boolean | |
extendedAttributes[].eaValue | object (optional) | |
extendedAttributes[].attributeName | string (optional) | |
raw | object (optional) | The complete wire object, verbatim. See . |
get_activity_forecasts
Available on request
Returns the approved forecasts aggregate for one activity (by the activity's integer ID) in Aprimo Marketing Operations. Use get_activity_proposed_forecasts for forecasts still awaiting approval.
Response format: the response carries a pre-rendered markdown block intended to be displayed verbatim.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
activityId | string | Yes | The activity's integer ID. |
Returns:
| Field | Type | Description |
|---|---|---|
activityId | integer | |
hasPendingForecasts | boolean (optional) | |
forecasts | array of ForecastProjection (optional) | |
forecasts[].activityForecastId | integer | |
forecasts[].serviceId | integer (optional) | |
forecasts[].activityId | integer (optional) | |
forecasts[].description | string (optional) | |
forecasts[].units | number (optional) | |
forecasts[].cost | number (optional) | |
forecasts[].expCatId | integer (optional) | |
forecasts[].fiscalYearId | integer (optional) | |
forecasts[].fiscalPeriodId | integer (optional) | |
forecasts[].exchangeRateId | integer (optional) | |
forecasts[].supplierId | integer (optional) | |
forecasts[].modifiedDate | string (ISO 8601) (optional) | |
forecasts[].modifiedUser | integer (optional) | |
forecasts[].status | integer (optional) | The forecast's approval status; PM enum, exposed as its raw int. |
forecasts[].extendedAttributes | array of PmExtendedAttribute (optional) | |
forecasts[].extendedAttributes[].eaId | integer | |
forecasts[].extendedAttributes[].skipDCTSave | boolean | |
forecasts[].extendedAttributes[].eaValue | object (optional) | |
forecasts[].extendedAttributes[].attributeName | string (optional) | |
forecasts[].raw | object (optional) | The complete wire object, verbatim. See . |
raw | object (optional) | The complete wire object, verbatim. |
get_activity_proposal_forecasts
Available on request
Returns the forecasts aggregate for one activity proposal (by the activity proposal's integer ID) in Aprimo Marketing Operations.
Response format: the response carries a pre-rendered markdown block intended to be displayed verbatim.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
activityProposalId | string | Yes | The activity proposal's integer ID. |
Returns:
| Field | Type | Description |
|---|---|---|
activityProposalId | integer | |
forecasts | array of PmProposalForecastItem (optional) | |
forecasts[].proposalForecastId | integer | |
forecasts[].serviceId | integer (optional) | |
forecasts[].proposalId | integer (optional) | |
forecasts[].description | string (optional) | |
forecasts[].units | number (optional) | |
forecasts[].cost | number (optional) | |
forecasts[].expCatId | integer (optional) | |
forecasts[].fiscalYearId | integer (optional) | |
forecasts[].fiscalPeriodId | integer (optional) | |
forecasts[].exchangeRateId | integer (optional) | |
forecasts[].supplierId | integer (optional) | |
forecasts[].extendedAttributes | array of PmExtendedAttribute (optional) | |
forecasts[].extendedAttributes[].eaId | integer | |
forecasts[].extendedAttributes[].skipDCTSave | boolean | |
forecasts[].extendedAttributes[].eaValue | object (optional) | |
forecasts[].extendedAttributes[].attributeName | string (optional) | |
raw | object (optional) | The complete wire object, verbatim. |
get_activity_proposed_forecasts
Available on request
Returns the proposed (not-yet-approved) forecasts aggregate for one activity (by the activity's integer ID) in Aprimo Marketing Operations. Use get_activity_forecasts for already-approved forecasts.
Response format: the response carries a pre-rendered markdown block intended to be displayed verbatim.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
activityId | string | Yes | The activity's integer ID. |
Returns:
| Field | Type | Description |
|---|---|---|
activityId | integer | |
hasPendingForecasts | boolean (optional) | |
forecasts | array of ForecastProjection (optional) | |
forecasts[].activityForecastId | integer | |
forecasts[].serviceId | integer (optional) | |
forecasts[].activityId | integer (optional) | |
forecasts[].description | string (optional) | |
forecasts[].units | number (optional) | |
forecasts[].cost | number (optional) | |
forecasts[].expCatId | integer (optional) | |
forecasts[].fiscalYearId | integer (optional) | |
forecasts[].fiscalPeriodId | integer (optional) | |
forecasts[].exchangeRateId | integer (optional) | |
forecasts[].supplierId | integer (optional) | |
forecasts[].modifiedDate | string (ISO 8601) (optional) | |
forecasts[].modifiedUser | integer (optional) | |
forecasts[].status | integer (optional) | The forecast's approval status; PM enum, exposed as its raw int. |
forecasts[].extendedAttributes | array of PmExtendedAttribute (optional) | |
forecasts[].extendedAttributes[].eaId | integer | |
forecasts[].extendedAttributes[].skipDCTSave | boolean | |
forecasts[].extendedAttributes[].eaValue | object (optional) | |
forecasts[].extendedAttributes[].attributeName | string (optional) | |
forecasts[].raw | object (optional) | The complete wire object, verbatim. See . |
raw | object (optional) | The complete wire object, verbatim. |
get_budget_allocation
Available on request
Returns a single budget allocation by its ID (a GUID string, e.g. "554f2a18-cf54-441b-9893-a6165b3f41ee") in Aprimo Marketing Operations. This is Budget Allocation, not a Funding Account (see get_funding_account for that). Not its own sub-resources either: use get_budget_allocation_forecast or get_budget_allocation_spend for those.
Response format: the response carries a pre-rendered markdown block intended to be displayed verbatim.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
budgetId | string | Yes | The budget's ID (a GUID string, not an integer). |
Returns:
| Field | Type | Description |
|---|---|---|
id | string (optional) | |
name | string (optional) | |
raw | object (optional) | The complete wire object, verbatim, for full fidelity beyond the defensively-extracted fields above. |
get_budget_allocation_forecast
Available on request
Returns forecast spend for a budget allocation by its ID (a GUID string, not an integer) in Aprimo Marketing Operations (Budget Allocation, not a Funding Account).
Response format: the response carries a pre-rendered markdown block intended to be displayed verbatim.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
budgetId | string | Yes | The budget's ID (a GUID string, not an integer). |
Returns:
| Field | Type | Description |
|---|---|---|
count | integer (optional) | |
raw | object (optional) |
get_budget_allocation_spend
Available on request
Returns current spend for a budget allocation by its ID (a GUID string, not an integer) in Aprimo Marketing Operations (Budget Allocation, not a Funding Account).
Response format: the response carries a pre-rendered markdown block intended to be displayed verbatim.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
budgetId | string | Yes | The budget's ID (a GUID string, not an integer). |
Returns:
| Field | Type | Description |
|---|---|---|
count | integer (optional) | |
raw | object (optional) |
get_budget_template_hierarchy
Available on request
Returns a budget template structure derived from the specified Aprimo financial hierarchy, in Aprimo Marketing Operations.
Response format: the response carries a pre-rendered markdown block intended to be displayed verbatim.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
hierarchyId | string | Yes | The financial hierarchy's integer ID. |
Returns:
| Field | Type | Description |
|---|---|---|
count | integer (optional) | |
raw | object (optional) |
list_budget_allocation_activity_types
Available on request
Lists budget allocation activity types configured in Aprimo Marketing Operations (Budget Allocation, not a Funding Account).
Response format: the response carries a pre-rendered markdown block intended to be displayed verbatim.
Parameters: none.
Returns:
| Field | Type | Description |
|---|---|---|
count | integer (optional) | |
raw | object (optional) |
list_budget_allocation_currencies
Available on request
Lists currencies available for budget allocations in Aprimo Marketing Operations (Budget Allocation, not a Funding Account).
Response format: the response carries a pre-rendered markdown block intended to be displayed verbatim.
Parameters: none.
Returns:
| Field | Type | Description |
|---|---|---|
count | integer (optional) | |
raw | object (optional) |
list_budget_allocation_financial_groups
Available on request
Lists external financial groups budget allocations can be activated against, in Aprimo Marketing Operations (Budget Allocation, not a Funding Account).
Response format: the response carries a pre-rendered markdown block intended to be displayed verbatim.
Parameters: none.
Returns:
| Field | Type | Description |
|---|---|---|
count | integer (optional) | |
raw | object (optional) |
list_budget_allocation_metrics
Available on request
Lists budget allocation metrics available in Aprimo Marketing Operations (Budget Allocation, not a Funding Account).
Response format: the response carries a pre-rendered markdown block intended to be displayed verbatim.
Parameters: none.
Returns:
| Field | Type | Description |
|---|---|---|
count | integer (optional) | |
raw | object (optional) |
list_budget_allocation_programs
Available on request
Lists programs available for budget allocations in Aprimo Marketing Operations (Budget Allocation, not a Funding Account).
Response format: the response carries a pre-rendered markdown block intended to be displayed verbatim.
Parameters: none.
Returns:
| Field | Type | Description |
|---|---|---|
count | integer (optional) | |
raw | object (optional) |
list_budget_allocation_types
Available on request
Lists budget allocation types configured in Aprimo Marketing Operations (Budget Allocation, not a Funding Account).
Response format: the response carries a pre-rendered markdown block intended to be displayed verbatim.
Parameters: none.
Returns:
| Field | Type | Description |
|---|---|---|
count | integer (optional) | |
raw | object (optional) |
list_budget_allocation_versions
Available on request
Lists the versions of a budget allocation by its parent budget allocation's ID (a GUID string, not an integer) in Aprimo Marketing Operations (Budget Allocation, not a Funding Account).
Response format: the response carries a pre-rendered markdown block intended to be displayed verbatim.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
parentId | string | Yes | The parent budget's ID (a GUID string, not an integer). |
Returns:
| Field | Type | Description |
|---|---|---|
count | integer (optional) | |
raw | object (optional) |
list_budget_allocations
Available on request
Lists budget allocations in Aprimo Marketing Operations, paged and unfiltered. Note: this is Budget Allocation, not a Funding Account (the entity the PM UI calls "Budget" -- see get_funding_account/create_funding_account for that).
Response format: the response carries pre-rendered markdown blocks intended to be displayed verbatim.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Maximum number of results to return (1–50, default 20). |
offset | integer | No | Number of results to skip for pagination (default 0). |
sortField | string | No | Optional field name to sort by. Omit for default ordering. |
sortAscending | boolean | No | Sort direction. true = ascending (default), false = descending. |
Returns:
| Field | Type | Description |
|---|---|---|
collectionName | string (optional) | Resource-name key the wire's _embedded used (e.g. "Activity", "Project"). Informational; may be null when the response isn't HAL-shaped. |
totalRecords | integer | Total record count across all pages — from the wire's _total. |
count | integer | Number of items returned in this response (i.e. Items.Count; precomputed for the llm). |
offset | integer | The offset that was used to produce this page (echoes the caller's offset, clamped to ≥0). |
hasMore | boolean | True when there are more results past this page. Tools should prompt the llm to ask the user about fetching the next page. |
nextOffset | integer (optional) | Offset to pass on the next request to continue. Null when is false. |
items | array of BudgetProjection | The items returned in this response. |
items[].id | string (optional) | |
items[].name | string (optional) | |
items[].raw | object (optional) | The complete wire object, verbatim, for full fidelity beyond the defensively-extracted fields above. |
list_budget_templates
Available on request
Lists budget templates for the caller's organization in Aprimo Marketing Operations, paged and unfiltered.
Response format: the response carries pre-rendered markdown blocks intended to be displayed verbatim.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Maximum number of results to return (1–50, default 20). |
offset | integer | No | Number of results to skip for pagination (default 0). |
sortField | string | No | Optional field name to sort by. Omit for default ordering. |
sortAscending | boolean | No | Sort direction. true = ascending (default), false = descending. |
Returns:
| Field | Type | Description |
|---|---|---|
collectionName | string (optional) | Resource-name key the wire's _embedded used (e.g. "Activity", "Project"). Informational; may be null when the response isn't HAL-shaped. |
totalRecords | integer | Total record count across all pages — from the wire's _total. |
count | integer | Number of items returned in this response (i.e. Items.Count; precomputed for the llm). |
offset | integer | The offset that was used to produce this page (echoes the caller's offset, clamped to ≥0). |
hasMore | boolean | True when there are more results past this page. Tools should prompt the llm to ask the user about fetching the next page. |
nextOffset | integer (optional) | Offset to pass on the next request to continue. Null when is false. |
items | array of BudgetTemplateProjection | The items returned in this response. |
items[].id | string (optional) | |
items[].name | string (optional) | |
items[].raw | object (optional) | The complete wire object, verbatim, for full fidelity beyond the defensively-extracted fields above. |
reject_forecast
Available on request · Destructive
Rejects a proposed forecast review for an activity in Aprimo Marketing Operations. This is a state change. Requires both confirmed=true and confirmedDestructive=true, after explicitly confirming the exact activity and forecast review with the user.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
activityId | string | Yes | The activity's integer ID. |
forecastReviewId | string | Yes | The forecast review's integer ID to reject. |
body | string | Yes | JSON object with the rejection details PM expects. A comments field is required -- confirmed live against the tenant: an empty "{}" body 400s with "Rejection Comments are Required" rather than proceeding with no comment. Always collect a rejection reason/comment from the user and pass it as e.g. {"comments":"..."}. |
confirmed | boolean | No | Must be true to proceed. Omit (or false) to get a confirmation gate error. |
confirmedDestructive | boolean | No | Must also be true (in addition to confirmed) — rejecting a forecast review changes its state. Set only after stating the exact activity and forecast review to the user and getting explicit go-ahead. |
Returns:
| Field | Type | Description |
|---|---|---|
activityId | integer | |
forecastReviewId | integer | |
action | string (optional) | The state-change action performed: "approve" or "reject". |
succeeded | boolean |
This tool deletes or irreversibly overwrites data in the live tenant; the change cannot be rolled back through the API. It will not act unless the call sets both confirmed and confirmedDestructive to true.
update_activity_forecasts
Available on request
Updates the forecasts for an activity (by the activity's integer ID) in Aprimo Marketing Operations. Requires confirmed=true after showing the user the exact payload. Returns the updated forecasts aggregate.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
activityId | string | Yes | The activity's integer ID. |
body | string | Yes | JSON object with the forecast data to save (PM wire names). |
processObjectAsynchronously | boolean | No | If true, PM processes the forecast data asynchronously and returns a processing-object link instead of the finished result. Default false (synchronous). |
confirmed | boolean | No | Must be true to proceed. Omit (or false) to get a confirmation gate error, then call again with confirmed=true after the user has explicitly approved the payload. |
Returns:
| Field | Type | Description |
|---|---|---|
activityId | integer | |
hasPendingForecasts | boolean (optional) | |
forecasts | array of ForecastProjection (optional) | |
forecasts[].activityForecastId | integer | |
forecasts[].serviceId | integer (optional) | |
forecasts[].activityId | integer (optional) | |
forecasts[].description | string (optional) | |
forecasts[].units | number (optional) | |
forecasts[].cost | number (optional) | |
forecasts[].expCatId | integer (optional) | |
forecasts[].fiscalYearId | integer (optional) | |
forecasts[].fiscalPeriodId | integer (optional) | |
forecasts[].exchangeRateId | integer (optional) | |
forecasts[].supplierId | integer (optional) | |
forecasts[].modifiedDate | string (ISO 8601) (optional) | |
forecasts[].modifiedUser | integer (optional) | |
forecasts[].status | integer (optional) | The forecast's approval status; PM enum, exposed as its raw int. |
forecasts[].extendedAttributes | array of PmExtendedAttribute (optional) | |
forecasts[].extendedAttributes[].eaId | integer | |
forecasts[].extendedAttributes[].skipDCTSave | boolean | |
forecasts[].extendedAttributes[].eaValue | object (optional) | |
forecasts[].extendedAttributes[].attributeName | string (optional) | |
forecasts[].raw | object (optional) | The complete wire object, verbatim. See . |
raw | object (optional) | The complete wire object, verbatim. |
update_activity_proposal_forecasts
Available on request
Updates the forecasts for an activity proposal (by the activity proposal's integer ID) in Aprimo Marketing Operations. Requires confirmed=true after showing the user the exact payload. Returns the updated forecasts aggregate.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
activityProposalId | string | Yes | The activity proposal's integer ID. |
body | string | Yes | JSON object with the forecast data to save (PM wire names). |
confirmed | boolean | No | Must be true to proceed. Omit (or false) to get a confirmation gate error, then call again with confirmed=true after the user has explicitly approved the payload. |
Returns:
| Field | Type | Description |
|---|---|---|
activityProposalId | integer | |
forecasts | array of PmProposalForecastItem (optional) | |
forecasts[].proposalForecastId | integer | |
forecasts[].serviceId | integer (optional) | |
forecasts[].proposalId | integer (optional) | |
forecasts[].description | string (optional) | |
forecasts[].units | number (optional) | |
forecasts[].cost | number (optional) | |
forecasts[].expCatId | integer (optional) | |
forecasts[].fiscalYearId | integer (optional) | |
forecasts[].fiscalPeriodId | integer (optional) | |
forecasts[].exchangeRateId | integer (optional) | |
forecasts[].supplierId | integer (optional) | |
forecasts[].extendedAttributes | array of PmExtendedAttribute (optional) | |
forecasts[].extendedAttributes[].eaId | integer | |
forecasts[].extendedAttributes[].skipDCTSave | boolean | |
forecasts[].extendedAttributes[].eaValue | object (optional) | |
forecasts[].extendedAttributes[].attributeName | string (optional) | |
raw | object (optional) | The complete wire object, verbatim. |
update_budget_allocation
Available on request
Updates an existing budget allocation in Aprimo Marketing Operations (Budget Allocation, not a Funding Account -- see update_funding_account for that). The budget allocation's own id must be included inside the body (PM's update route takes no id path segment). Requires confirmed=true after showing the user the exact changes. Returns the updated budget allocation.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
body | string | Yes | JSON object with the full budget data, including its id (PM wire names). |
confirmed | boolean | No | Must be true to proceed. Omit (or false) to get a confirmation gate error, then call again with confirmed=true after the user has explicitly approved the change. |
Returns:
| Field | Type | Description |
|---|---|---|
id | string (optional) | |
name | string (optional) | |
raw | object (optional) | The complete wire object, verbatim, for full fidelity beyond the defensively-extracted fields above. |
update_budget_template
Available on request
Updates an existing budget template in Aprimo Marketing Operations. The template's own id must be included inside the body (PM's update route takes no id path segment). Requires confirmed=true after showing the user the exact changes. Returns the updated budget template.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
body | string | Yes | JSON object with the full budget template data, including its id (PM wire names). |
confirmed | boolean | No | Must be true to proceed. Omit (or false) to get a confirmation gate error, then call again with confirmed=true after the user has explicitly approved the change. |
Returns:
| Field | Type | Description |
|---|---|---|
id | string (optional) | |
name | string (optional) | |
raw | object (optional) | The complete wire object, verbatim, for full fidelity beyond the defensively-extracted fields above. |
upload_budget_allocation_document
Available on request
Uploads a base64-encoded document to a budget allocation in Aprimo Marketing Operations (Budget Allocation, not a Funding Account). Returns a SAS URL for the uploaded document. Requires confirmed=true after showing the user the exact payload.
Response format: the response carries a pre-rendered markdown block intended to be displayed verbatim.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
body | string | Yes | JSON object with the document payload PM expects (e.g. the budget id, file name, and base64-encoded content -- PM wire names). |
confirmed | boolean | No | Must be true to proceed. Omit (or false) to get a confirmation gate error, then call again with confirmed=true after the user has explicitly approved the upload. |
Returns:
| Field | Type | Description |
|---|---|---|
count | integer (optional) | |
raw | object (optional) |
Related
- Aprimo MCP Server — configuration, connection details, and authentication
- MCP Tool Permission Map — the Aprimo permissions that make each tool visible to your agent
- REST API vs. MCP — choosing the right integration approach for your agent