Programs, Proposals & Suppliers
Tools for the planning tier above activities — programs and their proposals, activity proposals, and the suppliers engaged to deliver the work.
This page covers 17 tools, 6 of them in the default tool list, and 1 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 |
|---|---|---|
create_activity_proposal | Default | Creates a new activity proposal in Aprimo Marketing Operations. |
create_supplier | On request | Creates a new supplier in Aprimo Marketing Operations. |
delete_supplier | On request | Destructive. Permanently deletes a supplier by its integer ID in Aprimo Marketing Operations. |
get_activity_proposal | Default | Returns a single activity proposal by its integer ID in Aprimo Marketing Operations. |
get_program | On request | Returns a single program by its integer ID in Aprimo Marketing Operations. |
get_program_proposal | On request | Returns a single program proposal by its integer ID in Aprimo Marketing Operations. |
get_programs_for_activity | Default | Returns the programs associated with an activity, by the activity's integer ID, in Aprimo Marketing Operations, paged. |
get_supplier | On request | Returns a single supplier by its integer ID in Aprimo Marketing Operations. |
list_activity_proposal_templates | Default | Lists activity proposal templates in Aprimo Marketing Operations, paged. |
list_programs | On request | Lists programs in Aprimo Marketing Operations, paged and unfiltered. |
list_suppliers | On request | Lists suppliers in Aprimo Marketing Operations, paged and unfiltered. |
search_activity_proposals | Default | Searches activity proposals in Aprimo Marketing Operations by title, paged. |
search_program_proposals | On request | Searches program proposals in Aprimo Marketing Operations by title, paged. |
search_suppliers | On request | Searches suppliers in Aprimo Marketing Operations by name, paged. |
update_activity_proposal | Default | Updates an existing activity proposal by its integer ID in Aprimo Marketing Operations. |
update_program | On request | Updates an existing program by its integer ID in Aprimo Marketing Operations. |
update_supplier | On request | Updates an existing supplier by its integer ID in Aprimo Marketing Operations. |
create_activity_proposal
In the default tool list
Creates a new activity proposal in Aprimo Marketing Operations. Requires confirmed=true after showing the user the exact payload. Returns the created activity proposal.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
body | string | Yes | JSON object with the new activity proposal'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 |
|---|---|---|
proposalId | integer | |
title | string (optional) | |
description | string (optional) | |
proposalStateId | integer (optional) | PM's ProposalState enum, as a raw integer -- no existing resolver maps it to a display label. |
activityTypeId | integer (optional) | |
activityTypeLabel | string (optional) | |
ownerId | integer (optional) | |
ownerName | string (optional) | |
administratorId | integer (optional) | |
administratorName | string (optional) | |
beginDate | string (optional) | |
endDate | string (optional) | |
anchorDate | string (optional) | |
timeZoneId | integer (optional) | |
timeZoneLabel | string (optional) | |
classificationId | integer (optional) | Raw id, no existing lookup-list resolver for classifications. |
currencyCode | integer (optional) | Raw id, no existing lookup-list resolver for currency codes. |
isTemplate | boolean (optional) | |
totalCost | number (optional) | |
submitDate | string (optional) | The proposal's submission timestamp. New field surfaced now that PM's snapshot documents the full ActivityProposal schema. |
modifiedDate | string (optional) | The proposal's last-modified timestamp. New field surfaced now that PM's snapshot documents the full ActivityProposal schema. |
programId | integer (optional) | The program this proposal is associated with, if any. New field surfaced now that PM's snapshot documents the full ActivityProposal schema. |
raw | object (optional) | The complete wire object, verbatim. See the class remarks. |
create_supplier
Available on request
Creates a new supplier in Aprimo Marketing Operations. Requires confirmed=true after showing the user the exact payload. Returns the created supplier.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
body | string | Yes | JSON object with the new supplier'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 |
|---|---|---|
supplierId | integer | |
name | string (optional) | |
preferred | integer (optional) | |
activeFlag | integer (optional) | |
supplierTypeId | integer (optional) | |
notificationTypeId | integer (optional) | |
supplierNumber | string (optional) | |
url | string (optional) | |
description | string (optional) | |
addressLine1 | string (optional) | |
addressLine2 | string (optional) | |
addressLine3 | string (optional) | |
city | string (optional) | |
state | string (optional) | |
zip | string (optional) | |
country | string (optional) | |
phone | string (optional) | |
faxNumber | string (optional) | |
email | string (optional) | |
modifiedUser | integer (optional) | |
modifiedDate | string (optional) | |
raw | object (optional) | The complete wire object, verbatim (set by the mapper). See the class remarks. |
delete_supplier
Available on request · Destructive
Permanently deletes a supplier by its integer ID in Aprimo Marketing Operations. This cannot be undone. Requires both confirmed=true and confirmedDestructive=true, after explicitly confirming the exact supplier with the user. Alternatively, identify the supplier by name instead of supplierId.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
supplierId | string | No | The supplier's integer ID to delete. Provide either supplierId or name, not both. |
name | string | No | The supplier's name. Provide either supplierId or name, not both. |
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 supplier is permanent and cannot be undone. Set only after stating the exact supplier to the user and getting explicit go-ahead. |
Returns:
| Field | Type | Description |
|---|---|---|
id | integer | |
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.
get_activity_proposal
In the default tool list
Returns a single activity proposal by its integer ID in Aprimo Marketing Operations. Not its forecasts (use get_activity_proposal_forecasts for those). Resolves activity type/timezone labels and owner/administrator names.
Response format: the response carries a pre-rendered markdown block intended to be displayed verbatim.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
proposalId | string | Yes | The activity proposal's integer ID. |
Returns:
| Field | Type | Description |
|---|---|---|
proposalId | integer | |
title | string (optional) | |
description | string (optional) | |
proposalStateId | integer (optional) | PM's ProposalState enum, as a raw integer -- no existing resolver maps it to a display label. |
activityTypeId | integer (optional) | |
activityTypeLabel | string (optional) | |
ownerId | integer (optional) | |
ownerName | string (optional) | |
administratorId | integer (optional) | |
administratorName | string (optional) | |
beginDate | string (optional) | |
endDate | string (optional) | |
anchorDate | string (optional) | |
timeZoneId | integer (optional) | |
timeZoneLabel | string (optional) | |
classificationId | integer (optional) | Raw id, no existing lookup-list resolver for classifications. |
currencyCode | integer (optional) | Raw id, no existing lookup-list resolver for currency codes. |
isTemplate | boolean (optional) | |
totalCost | number (optional) | |
submitDate | string (optional) | The proposal's submission timestamp. New field surfaced now that PM's snapshot documents the full ActivityProposal schema. |
modifiedDate | string (optional) | The proposal's last-modified timestamp. New field surfaced now that PM's snapshot documents the full ActivityProposal schema. |
programId | integer (optional) | The program this proposal is associated with, if any. New field surfaced now that PM's snapshot documents the full ActivityProposal schema. |
raw | object (optional) | The complete wire object, verbatim. See the class remarks. |
get_program
Available on request
Returns a single program by its integer ID in Aprimo Marketing Operations. Not its proposal (use get_program_proposal for that).
Response format: the response carries a pre-rendered markdown block intended to be displayed verbatim.
Alternatively, identify the program by name instead of programId. Note: resolving by name scans the full program list, which may be slower than by id for large tenants.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
programId | string | No | The program's integer ID. Provide either programId or name, not both. |
name | string | No | The program's name. Provide either programId or name, not both. |
Returns:
| Field | Type | Description |
|---|---|---|
programId | integer | |
title | string (optional) | PM's real wire field for this is title, not name -- see the class remarks. |
ownerId | integer (optional) | |
description | string (optional) | |
startDate | string (optional) | |
endDate | string (optional) | |
programTypeId | integer (optional) | |
modifiedUser | integer (optional) | |
modifiedDate | string (optional) | |
clientId | integer (optional) | |
brandId | integer (optional) | |
classificationId | integer (optional) | |
raw | object (optional) | The complete wire object, verbatim (set by the mapper). See the class remarks. |
get_program_proposal
Available on request
Returns a single program proposal by its integer ID in Aprimo Marketing Operations. Resolves owner/modified-by user names.
Response format: the response carries a pre-rendered markdown block intended to be displayed verbatim.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
proposalId | string | Yes | The program proposal's integer ID. |
Returns:
| Field | Type | Description |
|---|---|---|
proposalId | integer | |
title | string (optional) | |
description | string (optional) | |
classificationId | integer (optional) | Raw id, no existing lookup-list resolver for classifications. |
proposalState | integer (optional) | PM's ProposalState enum, as a raw integer -- no existing resolver maps it to a display label. Wire field: proposalState. |
programTypeId | integer (optional) | Raw id, no existing lookup-list resolver for program types. |
ownerId | integer (optional) | |
ownerName | string (optional) | Not part of the wire schema -- filled by PmProgramProposalMapper.ResolveAsync. |
beginDate | string (optional) | |
endDate | string (optional) | |
modifiedDate | string (optional) | |
modifiedUser | integer (optional) | Wire field: modifiedUser. |
modifiedByName | string (optional) | Not part of the wire schema -- filled by PmProgramProposalMapper.ResolveAsync. |
currencyCode | integer (optional) | Raw id, no existing lookup-list resolver for currency codes. |
submitDate | string (optional) | |
invoiceTotal | number (optional) | |
materialTotal | number (optional) | |
laborTotal | number (optional) | |
tAndETotal | number (optional) | |
totalCost | number (optional) | |
approvalType | integer (optional) | PM's ApprovalType enum, as a raw integer -- no existing resolver maps it to a display label. Wire field: approvalType. |
objective | string (optional) | |
proposalType | integer (optional) | PM's ProposalType enum, as a raw integer -- no existing resolver maps it to a display label. Wire field: proposalType. |
raw | object (optional) | The complete wire object, verbatim (set by the mapper). See the class remarks. |
get_programs_for_activity
In the default tool list
Returns the programs associated with an activity, by the activity's integer ID, in Aprimo Marketing Operations, paged.
Response format: the response carries pre-rendered markdown blocks intended to be displayed verbatim.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
activityId | string | Yes | The activity's integer ID. |
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 ProgramProjection | The items returned in this response. |
items[].programId | integer | |
items[].title | string (optional) | PM's real wire field for this is title, not name -- see the class remarks. |
items[].ownerId | integer (optional) | |
items[].description | string (optional) | |
items[].startDate | string (optional) | |
items[].endDate | string (optional) | |
items[].programTypeId | integer (optional) | |
items[].modifiedUser | integer (optional) | |
items[].modifiedDate | string (optional) | |
items[].clientId | integer (optional) | |
items[].brandId | integer (optional) | |
items[].classificationId | integer (optional) | |
items[].raw | object (optional) | The complete wire object, verbatim (set by the mapper). See the class remarks. |
get_supplier
Available on request
Returns a single supplier by its integer ID in Aprimo Marketing Operations.
Response format: the response carries a pre-rendered markdown block intended to be displayed verbatim.
Alternatively, identify the supplier by name instead of supplierId.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
supplierId | string | No | The supplier's integer ID. Provide either supplierId or name, not both. |
name | string | No | The supplier's name. Provide either supplierId or name, not both. |
Returns:
| Field | Type | Description |
|---|---|---|
supplierId | integer | |
name | string (optional) | |
preferred | integer (optional) | |
activeFlag | integer (optional) | |
supplierTypeId | integer (optional) | |
notificationTypeId | integer (optional) | |
supplierNumber | string (optional) | |
url | string (optional) | |
description | string (optional) | |
addressLine1 | string (optional) | |
addressLine2 | string (optional) | |
addressLine3 | string (optional) | |
city | string (optional) | |
state | string (optional) | |
zip | string (optional) | |
country | string (optional) | |
phone | string (optional) | |
faxNumber | string (optional) | |
email | string (optional) | |
modifiedUser | integer (optional) | |
modifiedDate | string (optional) | |
raw | object (optional) | The complete wire object, verbatim (set by the mapper). See the class remarks. |
list_activity_proposal_templates
In the default tool list
Lists activity proposal templates in Aprimo Marketing Operations, paged.
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 ActivityProposalProjection | The items returned in this response. |
items[].proposalId | integer | |
items[].title | string (optional) | |
items[].description | string (optional) | |
items[].proposalStateId | integer (optional) | PM's ProposalState enum, as a raw integer -- no existing resolver maps it to a display label. |
items[].activityTypeId | integer (optional) | |
items[].activityTypeLabel | string (optional) | |
items[].ownerId | integer (optional) | |
items[].ownerName | string (optional) | |
items[].administratorId | integer (optional) | |
items[].administratorName | string (optional) | |
items[].beginDate | string (optional) | |
items[].endDate | string (optional) | |
items[].anchorDate | string (optional) | |
items[].timeZoneId | integer (optional) | |
items[].timeZoneLabel | string (optional) | |
items[].classificationId | integer (optional) | Raw id, no existing lookup-list resolver for classifications. |
items[].currencyCode | integer (optional) | Raw id, no existing lookup-list resolver for currency codes. |
items[].isTemplate | boolean (optional) | |
items[].totalCost | number (optional) | |
items[].submitDate | string (optional) | The proposal's submission timestamp. New field surfaced now that PM's snapshot documents the full ActivityProposal schema. |
items[].modifiedDate | string (optional) | The proposal's last-modified timestamp. New field surfaced now that PM's snapshot documents the full ActivityProposal schema. |
items[].programId | integer (optional) | The program this proposal is associated with, if any. New field surfaced now that PM's snapshot documents the full ActivityProposal schema. |
items[].raw | object (optional) | The complete wire object, verbatim. See the class remarks. |
list_programs
Available on request
Lists programs 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 ProgramProjection | The items returned in this response. |
items[].programId | integer | |
items[].title | string (optional) | PM's real wire field for this is title, not name -- see the class remarks. |
items[].ownerId | integer (optional) | |
items[].description | string (optional) | |
items[].startDate | string (optional) | |
items[].endDate | string (optional) | |
items[].programTypeId | integer (optional) | |
items[].modifiedUser | integer (optional) | |
items[].modifiedDate | string (optional) | |
items[].clientId | integer (optional) | |
items[].brandId | integer (optional) | |
items[].classificationId | integer (optional) | |
items[].raw | object (optional) | The complete wire object, verbatim (set by the mapper). See the class remarks. |
list_suppliers
Available on request
Lists suppliers in Aprimo Marketing Operations, paged and unfiltered. Use search_suppliers when you need to filter by name; use this to browse.
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 SupplierProjection | The items returned in this response. |
items[].supplierId | integer | |
items[].name | string (optional) | |
items[].preferred | integer (optional) | |
items[].activeFlag | integer (optional) | |
items[].supplierTypeId | integer (optional) | |
items[].notificationTypeId | integer (optional) | |
items[].supplierNumber | string (optional) | |
items[].url | string (optional) | |
items[].description | string (optional) | |
items[].addressLine1 | string (optional) | |
items[].addressLine2 | string (optional) | |
items[].addressLine3 | string (optional) | |
items[].city | string (optional) | |
items[].state | string (optional) | |
items[].zip | string (optional) | |
items[].country | string (optional) | |
items[].phone | string (optional) | |
items[].faxNumber | string (optional) | |
items[].email | string (optional) | |
items[].modifiedUser | integer (optional) | |
items[].modifiedDate | string (optional) | |
items[].raw | object (optional) | The complete wire object, verbatim (set by the mapper). See the class remarks. |
search_activity_proposals
In the default tool list
Searches activity proposals in Aprimo Marketing Operations by title, paged. A titleFilter is required -- PM has no match-all query for this endpoint.
Response format: the response carries pre-rendered markdown blocks intended to be displayed verbatim.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
titleFilter | string | No | Required case-insensitive substring filter on the proposal's title -- PM has no match-all query for this endpoint, so this cannot be omitted. |
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 ActivityProposalProjection | The items returned in this response. |
items[].proposalId | integer | |
items[].title | string (optional) | |
items[].description | string (optional) | |
items[].proposalStateId | integer (optional) | PM's ProposalState enum, as a raw integer -- no existing resolver maps it to a display label. |
items[].activityTypeId | integer (optional) | |
items[].activityTypeLabel | string (optional) | |
items[].ownerId | integer (optional) | |
items[].ownerName | string (optional) | |
items[].administratorId | integer (optional) | |
items[].administratorName | string (optional) | |
items[].beginDate | string (optional) | |
items[].endDate | string (optional) | |
items[].anchorDate | string (optional) | |
items[].timeZoneId | integer (optional) | |
items[].timeZoneLabel | string (optional) | |
items[].classificationId | integer (optional) | Raw id, no existing lookup-list resolver for classifications. |
items[].currencyCode | integer (optional) | Raw id, no existing lookup-list resolver for currency codes. |
items[].isTemplate | boolean (optional) | |
items[].totalCost | number (optional) | |
items[].submitDate | string (optional) | The proposal's submission timestamp. New field surfaced now that PM's snapshot documents the full ActivityProposal schema. |
items[].modifiedDate | string (optional) | The proposal's last-modified timestamp. New field surfaced now that PM's snapshot documents the full ActivityProposal schema. |
items[].programId | integer (optional) | The program this proposal is associated with, if any. New field surfaced now that PM's snapshot documents the full ActivityProposal schema. |
items[].raw | object (optional) | The complete wire object, verbatim. See the class remarks. |
search_program_proposals
Available on request
Searches program proposals in Aprimo Marketing Operations by title, paged. A titleFilter is required -- PM has no match-all query for this endpoint.
Response format: the response carries pre-rendered markdown blocks intended to be displayed verbatim.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
titleFilter | string | Yes | Required case-insensitive substring filter on the proposal's title -- PM has no match-all query for this endpoint, so this cannot be omitted. |
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 ProgramProposalProjection | The items returned in this response. |
items[].proposalId | integer | |
items[].title | string (optional) | |
items[].description | string (optional) | |
items[].classificationId | integer (optional) | Raw id, no existing lookup-list resolver for classifications. |
items[].proposalState | integer (optional) | PM's ProposalState enum, as a raw integer -- no existing resolver maps it to a display label. Wire field: proposalState. |
items[].programTypeId | integer (optional) | Raw id, no existing lookup-list resolver for program types. |
items[].ownerId | integer (optional) | |
items[].ownerName | string (optional) | Not part of the wire schema -- filled by PmProgramProposalMapper.ResolveAsync. |
items[].beginDate | string (optional) | |
items[].endDate | string (optional) | |
items[].modifiedDate | string (optional) | |
items[].modifiedUser | integer (optional) | Wire field: modifiedUser. |
items[].modifiedByName | string (optional) | Not part of the wire schema -- filled by PmProgramProposalMapper.ResolveAsync. |
items[].currencyCode | integer (optional) | Raw id, no existing lookup-list resolver for currency codes. |
items[].submitDate | string (optional) | |
items[].invoiceTotal | number (optional) | |
items[].materialTotal | number (optional) | |
items[].laborTotal | number (optional) | |
items[].tAndETotal | number (optional) | |
items[].totalCost | number (optional) | |
items[].approvalType | integer (optional) | PM's ApprovalType enum, as a raw integer -- no existing resolver maps it to a display label. Wire field: approvalType. |
items[].objective | string (optional) | |
items[].proposalType | integer (optional) | PM's ProposalType enum, as a raw integer -- no existing resolver maps it to a display label. Wire field: proposalType. |
items[].raw | object (optional) | The complete wire object, verbatim (set by the mapper). See the class remarks. |
search_suppliers
Available on request
Searches suppliers in Aprimo Marketing Operations by name, paged.
Response format: the response carries pre-rendered markdown blocks intended to be displayed verbatim.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
nameFilter | string | No | Optional case-insensitive substring filter on the supplier's name. Omit to match all suppliers. |
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 SupplierProjection | The items returned in this response. |
items[].supplierId | integer | |
items[].name | string (optional) | |
items[].preferred | integer (optional) | |
items[].activeFlag | integer (optional) | |
items[].supplierTypeId | integer (optional) | |
items[].notificationTypeId | integer (optional) | |
items[].supplierNumber | string (optional) | |
items[].url | string (optional) | |
items[].description | string (optional) | |
items[].addressLine1 | string (optional) | |
items[].addressLine2 | string (optional) | |
items[].addressLine3 | string (optional) | |
items[].city | string (optional) | |
items[].state | string (optional) | |
items[].zip | string (optional) | |
items[].country | string (optional) | |
items[].phone | string (optional) | |
items[].faxNumber | string (optional) | |
items[].email | string (optional) | |
items[].modifiedUser | integer (optional) | |
items[].modifiedDate | string (optional) | |
items[].raw | object (optional) | The complete wire object, verbatim (set by the mapper). See the class remarks. |
update_activity_proposal
In the default tool list
Updates an existing activity proposal by its integer ID in Aprimo Marketing Operations. Only include the fields you intend to change (partial update; omitted fields are left as-is). Requires confirmed=true after showing the user the exact changes. Returns the updated activity proposal.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
proposalId | string | Yes | The activity proposal's integer ID. |
body | string | Yes | JSON object with the fields to change (PM wire names). Omit fields you don't want to modify. |
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 |
|---|---|---|
proposalId | integer | |
title | string (optional) | |
description | string (optional) | |
proposalStateId | integer (optional) | PM's ProposalState enum, as a raw integer -- no existing resolver maps it to a display label. |
activityTypeId | integer (optional) | |
activityTypeLabel | string (optional) | |
ownerId | integer (optional) | |
ownerName | string (optional) | |
administratorId | integer (optional) | |
administratorName | string (optional) | |
beginDate | string (optional) | |
endDate | string (optional) | |
anchorDate | string (optional) | |
timeZoneId | integer (optional) | |
timeZoneLabel | string (optional) | |
classificationId | integer (optional) | Raw id, no existing lookup-list resolver for classifications. |
currencyCode | integer (optional) | Raw id, no existing lookup-list resolver for currency codes. |
isTemplate | boolean (optional) | |
totalCost | number (optional) | |
submitDate | string (optional) | The proposal's submission timestamp. New field surfaced now that PM's snapshot documents the full ActivityProposal schema. |
modifiedDate | string (optional) | The proposal's last-modified timestamp. New field surfaced now that PM's snapshot documents the full ActivityProposal schema. |
programId | integer (optional) | The program this proposal is associated with, if any. New field surfaced now that PM's snapshot documents the full ActivityProposal schema. |
raw | object (optional) | The complete wire object, verbatim. See the class remarks. |
update_program
Available on request
Updates an existing program by its integer ID in Aprimo Marketing Operations. Only include the fields you intend to change (partial update; omitted fields are left as-is). Requires confirmed=true after showing the user the exact changes. Returns the updated program. Alternatively, identify the program by name instead of programId. Note: resolving by name scans the full program list, which may be slower than by id for large tenants.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
programId | string | No | The program's integer ID. Provide either programId or name, not both. |
name | string | No | The program's name. Provide either programId or name, not both. |
body | string | No | JSON object with the fields to change (PM wire names). Omit fields you don't want to modify. |
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 |
|---|---|---|
programId | integer | |
title | string (optional) | PM's real wire field for this is title, not name -- see the class remarks. |
ownerId | integer (optional) | |
description | string (optional) | |
startDate | string (optional) | |
endDate | string (optional) | |
programTypeId | integer (optional) | |
modifiedUser | integer (optional) | |
modifiedDate | string (optional) | |
clientId | integer (optional) | |
brandId | integer (optional) | |
classificationId | integer (optional) | |
raw | object (optional) | The complete wire object, verbatim (set by the mapper). See the class remarks. |
update_supplier
Available on request
Updates an existing supplier by its integer ID in Aprimo Marketing Operations. Only include the fields you intend to change (partial update; omitted fields are left as-is). Requires confirmed=true after showing the user the exact changes. Returns the updated supplier. Alternatively, identify the supplier by name instead of supplierId.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
supplierId | string | No | The supplier's integer ID. Provide either supplierId or name, not both. |
name | string | No | The supplier's name. Provide either supplierId or name, not both. |
body | string | No | JSON object with the fields to change (PM wire names). Omit fields you don't want to modify. |
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 |
|---|---|---|
supplierId | integer | |
name | string (optional) | |
preferred | integer (optional) | |
activeFlag | integer (optional) | |
supplierTypeId | integer (optional) | |
notificationTypeId | integer (optional) | |
supplierNumber | string (optional) | |
url | string (optional) | |
description | string (optional) | |
addressLine1 | string (optional) | |
addressLine2 | string (optional) | |
addressLine3 | string (optional) | |
city | string (optional) | |
state | string (optional) | |
zip | string (optional) | |
country | string (optional) | |
phone | string (optional) | |
faxNumber | string (optional) | |
email | string (optional) | |
modifiedUser | integer (optional) | |
modifiedDate | string (optional) | |
raw | object (optional) | The complete wire object, verbatim (set by the mapper). See the class remarks. |
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