Skip to main content

Activities

Tools for marketing activities in Aprimo Productivity Management — searching and reading activities, creating and updating them, and managing the roles assigned to them.

This page covers 17 tools, 16 of them in the default tool list, and 3 destructive.

How to read this page
  • 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 confirmed and confirmedDestructive to true.
  • Activity and Project labels vary by tenant. Where this page says Activity or Project, your tenant's own configured terminology is substituted at runtime.
Why isn't every tool in the default list?

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

ToolStatusWhat it does
add_activity_role_membersDefaultAdds one or more user or user-token members to an activity role, merging with existing members and skipping duplicates, in Aprimo Marketing Operations.
create_activityDefaultCreates a new Activity (marketing campaign) in Aprimo Marketing Operations.
create_activity_milestoneOn requestCreates a milestone under an Activity (marketing campaign), by the parent activity's integer ID, in Aprimo Marketing Operations.
create_activity_roleDefaultCreates a role on an activity from the supplied user role and members, in Aprimo Marketing Operations.
delete_activityDefaultDestructive. Permanently deletes an Activity (marketing campaign) by its integer ID in Aprimo Marketing Operations.
delete_activity_roleDefaultDestructive. Permanently deletes a role from an activity in Aprimo Marketing Operations.
get_activityDefaultReturns a single Activity (marketing campaign) by its integer ID from Aprimo Marketing Operations.
get_activity_for_attachmentDefaultReturns the Activities (marketing campaign) an attachment belongs to, by the attachment's integer ID, in Aprimo Marketing Operations.
get_activity_roleDefaultReturns a single activity role, including its resolved member users and user tokens, in Aprimo Marketing Operations.
get_associated_activitiesDefaultReturns the Activities (marketing campaigns) associated with a DAM record, by the record's ID, in Aprimo Marketing Operations.
list_activitiesDefaultLists Activities (marketing campaigns) in Aprimo Marketing Operations, paged and unfiltered.
list_activity_rolesDefaultLists the roles assigned to an activity, by the activity's integer ID, in Aprimo Marketing Operations.
list_recent_activitiesDefaultLists Activities (marketing campaigns) recently accessed by the current user, in Aprimo Marketing Operations.
remove_activity_role_memberDefaultDestructive. Permanently removes a single member from an activity role in Aprimo Marketing Operations.
search_activitiesDefaultSearches Activities (marketing campaigns) in Aprimo Marketing Operations.
update_activityDefaultUpdates an existing Activity (marketing campaign) by its integer ID in Aprimo Marketing Operations.
update_activity_roleDefaultReplaces an activity role's user role and member set with the supplied values, in Aprimo Marketing Operations.

add_activity_role_members

In the default tool list

Adds one or more user or user-token members to an activity role, merging with existing members and skipping duplicates, in Aprimo Marketing Operations. Requires confirmed=true after showing the user the exact members being added. Returns the updated role.

Parameters:

ParameterTypeRequiredDescription
activityIdstringYesThe activity's integer ID.
roleIdstringYesThe role's integer ID.
bodystringYesJSON object with the members to add (PM wire names).
confirmedbooleanNoMust 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:

FieldTypeDescription
idstring (optional)
roleNamestring (optional)
rawobject (optional)The complete wire object, verbatim -- including its member/user-token list under whatever field name PM actually uses -- for full fidelity beyond the defensively-extracted fields above.

create_activity

In the default tool list

Creates a new Activity (marketing campaign) in Aprimo Marketing Operations. Requires confirmed=true after showing the user the exact payload (title, dates, type, owner, etc.). Returns the created Activity with resolved labels and a deep link.

Parameters:

ParameterTypeRequiredDescription
bodystringYesJSON object with the new activity's fields (PM wire names, e.g. {"name":"Q4 Launch","activityTypeId":7,"beginDate":"2026-01-15T00:00:00Z"}). Pass PM's wire field names; the server sends the object as-is.
confirmedbooleanNoMust 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 exact payload.

Returns:

FieldTypeDescription
activityIdinteger
titlestring (optional)
descriptionstring (optional)
activityTypeIdinteger (optional)
activityTypeLabelstring (optional)
activityStateIdinteger (optional)
activityStateLabelstring (optional)
timeZoneIdinteger (optional)
timeZoneLabelstring (optional)
beginDatestring (optional)
endDatestring (optional)
projectAnchorDatestring (optional)
ownerIdinteger (optional)
ownerNamestring (optional)
administratorIdinteger (optional)
administratorNamestring (optional)
creatorIdinteger (optional)The user who created the activity. New field surfaced now that PM's OpenAPI snapshot documents the Activity schema in full -- no existing resolver maps it to a name, so it stays a raw id.
modifiedDatestring (optional)The activity's last-modified timestamp, PM's raw ISO-8601 string reformatted for the tenant's locale (same treatment as ).
proposalIdinteger (optional)The activity proposal this activity was created from, if any.
deepLinkstring (optional)

create_activity_milestone

Available on request

Creates a milestone under an Activity (marketing campaign), by the parent activity's integer ID, in Aprimo Marketing Operations. Requires confirmed=true after showing the user the exact payload. Returns the created milestone (PM's ActivityDates schema -- a distinct resource from the parent activity).

Parameters:

ParameterTypeRequiredDescription
activityIdstringYesThe parent activity's integer ID.
bodystringYesJSON object with the milestone's fields (PM wire names).
confirmedbooleanNoMust 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:

FieldTypeDescription
activityDateIdinteger
activityIdinteger
titlestring (optional)
descriptionstring (optional)
startDatestring (optional)
endDatestring (optional)
scheduleTypeinteger (optional)
timeZoneinteger (optional)
milestoneEaIdinteger (optional)
rawobject (optional)The full raw wire object, always included -- some fields the documented schema declares as present (activityDateId/activityId/startDate) have been observed absent on a real, successful create, so this is never asserted as fact beyond what's extracted above.

create_activity_role

In the default tool list

Creates a role on an activity from the supplied user role and members, in Aprimo Marketing Operations. Requires confirmed=true after showing the user the exact payload. Returns the created role.

Parameters:

ParameterTypeRequiredDescription
activityIdstringYesThe activity's integer ID.
bodystringYesJSON object with the new role's data (PM wire names), including the user role and its members.
confirmedbooleanNoMust 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:

FieldTypeDescription
idstring (optional)
roleNamestring (optional)
rawobject (optional)The complete wire object, verbatim -- including its member/user-token list under whatever field name PM actually uses -- for full fidelity beyond the defensively-extracted fields above.

delete_activity

In the default tool list · Destructive

Permanently deletes an Activity (marketing campaign) by its integer ID in Aprimo Marketing Operations. This cannot be undone. Requires both confirmed=true and confirmedDestructive=true, after explicitly confirming the exact Activity with the user.

Parameters:

ParameterTypeRequiredDescription
activityIdstringYesThe activity's integer ID to delete.
confirmedbooleanNoMust be true to proceed. Omit (or false) to get a confirmation gate error, then call again with confirmed=true after the user has explicitly confirmed the exact activity.
confirmedDestructivebooleanNoMust also be true (in addition to confirmed) — deleting an activity is permanent and cannot be undone. Set only after stating the exact activity to the user and getting explicit go-ahead.

Returns:

FieldTypeDescription
activityIdinteger
deletedboolean
Destructive operation

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.


delete_activity_role

In the default tool list · Destructive

Permanently deletes a role from an activity in Aprimo Marketing Operations. This cannot be undone. Requires both confirmed=true and confirmedDestructive=true, after explicitly confirming the exact role with the user.

Parameters:

ParameterTypeRequiredDescription
activityIdstringYesThe activity's integer ID.
roleIdstringYesThe role's integer ID to delete.
confirmedbooleanNoMust be true to proceed. Omit (or false) to get a confirmation gate error.
confirmedDestructivebooleanNoMust also be true (in addition to confirmed) — deleting a role is permanent and cannot be undone. Set only after stating the exact role to the user and getting explicit go-ahead.

Returns:

FieldTypeDescription
activityIdinteger
roleIdinteger
deletedboolean
Destructive operation

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

In the default tool list

Returns a single Activity (marketing campaign) by its integer ID from Aprimo Marketing Operations. If this tenant renamed the Activity object (e.g. 'Plan', 'Campaign', 'Initiative'), this is still the right tool. Use for Activities/campaigns — not Projects (use get_project for those). Returns only the base Activity record itself — not any Activity sub-resource (activity cells, offers, proposals, roles, treatments, forecasts, etc.), each of which has its own get_activity_* tool. Resolves type, status, timezone, and owner/administrator to human-readable labels/names and includes a clickable deep link.

Response format: the markdown block is pre-rendered with the tenant's own terminology, locale-formatted dates, and resolved labels, and is intended to be displayed verbatim, including every (id: N) suffix and the deep-link heading.

Parameters:

ParameterTypeRequiredDescription
activityIdstringYesThe activity's integer ID.

Returns:

FieldTypeDescription
activityIdinteger
titlestring (optional)
descriptionstring (optional)
activityTypeIdinteger (optional)
activityTypeLabelstring (optional)
activityStateIdinteger (optional)
activityStateLabelstring (optional)
timeZoneIdinteger (optional)
timeZoneLabelstring (optional)
beginDatestring (optional)
endDatestring (optional)
projectAnchorDatestring (optional)
ownerIdinteger (optional)
ownerNamestring (optional)
administratorIdinteger (optional)
administratorNamestring (optional)
creatorIdinteger (optional)The user who created the activity. New field surfaced now that PM's OpenAPI snapshot documents the Activity schema in full -- no existing resolver maps it to a name, so it stays a raw id.
modifiedDatestring (optional)The activity's last-modified timestamp, PM's raw ISO-8601 string reformatted for the tenant's locale (same treatment as ).
proposalIdinteger (optional)The activity proposal this activity was created from, if any.
deepLinkstring (optional)

get_activity_for_attachment

In the default tool list

Returns the Activities (marketing campaign) an attachment belongs to, by the attachment's integer ID, in Aprimo Marketing Operations.

Parameters:

ParameterTypeRequiredDescription
attachmentIdstringYesThe attachment's integer ID.

Returns:

FieldTypeDescription
idstring (optional)
namestring (optional)
rawobject (optional)

get_activity_role

In the default tool list

Returns a single activity role, including its resolved member users and user tokens, in Aprimo Marketing Operations.

Parameters:

ParameterTypeRequiredDescription
activityIdstringYesThe activity's integer ID.
roleIdstringYesThe role's integer ID.

Returns:

FieldTypeDescription
idstring (optional)
roleNamestring (optional)
rawobject (optional)The complete wire object, verbatim -- including its member/user-token list under whatever field name PM actually uses -- for full fidelity beyond the defensively-extracted fields above.

get_associated_activities

In the default tool list

Returns the Activities (marketing campaigns) associated with a DAM record, by the record's ID, in Aprimo Marketing Operations. Any recognizable activity entries are returned as resolved items with deep links; the raw response is preserved for shapes the parser doesn't recognize.

Parameters:

ParameterTypeRequiredDescription
adamRecordIdstringYesThe DAM record ID the activities are associated with.

Returns:

FieldTypeDescription
adamRecordIdstring (optional)
countinteger
itemsarray of ActivityProjection
items[].activityIdinteger
items[].titlestring (optional)
items[].descriptionstring (optional)
items[].activityTypeIdinteger (optional)
items[].activityTypeLabelstring (optional)
items[].activityStateIdinteger (optional)
items[].activityStateLabelstring (optional)
items[].timeZoneIdinteger (optional)
items[].timeZoneLabelstring (optional)
items[].beginDatestring (optional)
items[].endDatestring (optional)
items[].projectAnchorDatestring (optional)
items[].ownerIdinteger (optional)
items[].ownerNamestring (optional)
items[].administratorIdinteger (optional)
items[].administratorNamestring (optional)
items[].creatorIdinteger (optional)The user who created the activity. New field surfaced now that PM's OpenAPI snapshot documents the Activity schema in full -- no existing resolver maps it to a name, so it stays a raw id.
items[].modifiedDatestring (optional)The activity's last-modified timestamp, PM's raw ISO-8601 string reformatted for the tenant's locale (same treatment as ).
items[].proposalIdinteger (optional)The activity proposal this activity was created from, if any.
items[].deepLinkstring (optional)
rawobject (optional)

list_activities

In the default tool list

Lists Activities (marketing campaigns) in Aprimo Marketing Operations, paged and unfiltered. Use search_activities when you need to filter by name, type, status, owner, or extended attributes; use this to browse all Activities. Returns totals and human-readable labels for type, status, timezone, and owner/administrator.

Response format: the response carries pre-rendered markdown blocks intended to be displayed verbatim, including (id: N) suffixes and deep-link headings.

Parameters:

ParameterTypeRequiredDescription
limitintegerNoMaximum number of results to return (1–50, default 20).
offsetintegerNoNumber of results to skip for pagination (default 0).
sortFieldstringNoOptional field name to sort by (e.g. 'ModifiedDate', 'Name'). Omit for default ordering.
sortAscendingbooleanNoSort direction. true = ascending (default), false = descending.

Returns:

FieldTypeDescription
collectionNamestring (optional)Resource-name key the wire's _embedded used (e.g. "Activity", "Project"). Informational; may be null when the response isn't HAL-shaped.
totalRecordsintegerTotal record count across all pages — from the wire's _total.
countintegerNumber of items returned in this response (i.e. Items.Count; precomputed for the llm).
offsetintegerThe offset that was used to produce this page (echoes the caller's offset, clamped to ≥0).
hasMorebooleanTrue when there are more results past this page. Tools should prompt the llm to ask the user about fetching the next page.
nextOffsetinteger (optional)Offset to pass on the next request to continue. Null when is false.
itemsarray of ActivityProjectionThe items returned in this response.
items[].activityIdinteger
items[].titlestring (optional)
items[].descriptionstring (optional)
items[].activityTypeIdinteger (optional)
items[].activityTypeLabelstring (optional)
items[].activityStateIdinteger (optional)
items[].activityStateLabelstring (optional)
items[].timeZoneIdinteger (optional)
items[].timeZoneLabelstring (optional)
items[].beginDatestring (optional)
items[].endDatestring (optional)
items[].projectAnchorDatestring (optional)
items[].ownerIdinteger (optional)
items[].ownerNamestring (optional)
items[].administratorIdinteger (optional)
items[].administratorNamestring (optional)
items[].creatorIdinteger (optional)The user who created the activity. New field surfaced now that PM's OpenAPI snapshot documents the Activity schema in full -- no existing resolver maps it to a name, so it stays a raw id.
items[].modifiedDatestring (optional)The activity's last-modified timestamp, PM's raw ISO-8601 string reformatted for the tenant's locale (same treatment as ).
items[].proposalIdinteger (optional)The activity proposal this activity was created from, if any.
items[].deepLinkstring (optional)

list_activity_roles

In the default tool list

Lists the roles assigned to an activity, by the activity's integer ID, in Aprimo Marketing Operations. Each role's member users and user tokens are resolved.

Response format: the response carries a pre-rendered markdown block intended to be displayed verbatim.

Parameters:

ParameterTypeRequiredDescription
activityIdstringYesThe activity's integer ID.

Returns:

FieldTypeDescription
countinteger (optional)
rawobject (optional)

list_recent_activities

In the default tool list

Lists Activities (marketing campaigns) recently accessed by the current user, in Aprimo Marketing Operations.

Response format: the response carries a pre-rendered markdown block intended to be displayed verbatim.

Parameters: none.

Returns:

FieldTypeDescription
countinteger (optional)
rawobject (optional)

remove_activity_role_member

In the default tool list · Destructive

Permanently removes a single member from an activity role in Aprimo Marketing Operations. This cannot be undone. Requires both confirmed=true and confirmedDestructive=true, after explicitly confirming the exact member with the user.

Parameters:

ParameterTypeRequiredDescription
activityIdstringYesThe activity's integer ID.
roleIdstringYesThe role's integer ID.
memberIdstringYesThe member's integer ID to remove.
confirmedbooleanNoMust be true to proceed. Omit (or false) to get a confirmation gate error.
confirmedDestructivebooleanNoMust also be true (in addition to confirmed) — removing a member is permanent and cannot be undone. Set only after stating the exact member to the user and getting explicit go-ahead.

Returns:

FieldTypeDescription
activityIdinteger
roleIdinteger
memberIdinteger
removedboolean
Destructive operation

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.


search_activities

In the default tool list

Searches Activities (marketing campaigns) in Aprimo Marketing Operations. If this tenant has renamed the Activity object (e.g. to 'Plan', 'Campaign', 'Initiative'), users will mention it by this tenant's term — use this tool whenever the user means Activities, regardless of the word they say. Returns a paged list with totals and human-readable labels for Activity type, status, timezone, and owner/administrator names. Use this tool for Activities/campaigns — not for Projects (use search_projects for those).

Response format. Each item comes back as a markdown block pre-rendered server-side using the tenant's own terminology: labels reflect tenant configuration, dates are locale-formatted, lookup values are resolved to display strings, and the heading is a clickable deep link. The block is intended to be displayed verbatim rather than re-rendered from the structured payload, since the markdown already carries the tenant's vocabulary. If you do re-render it, preserve the tenant-localized labels, the (id: N) suffixes (which enable follow-up filters), the date formatting, and the deep-link heading.

Filtering. Prefer the name-keyed filter parameters (activityTypeLabel, activityStateLabel, ownerName, administratorName) over composing the query DSL. For extended attributes — tenant-configured custom fields beyond the standard set, such as 'Phase Gate' or 'Region' — use attributeFilters to match a specific value, and attributesPresent to match any value or no value. Extended attributes cannot be addressed through query, because the server does not expose their underlying field slugs; pass the display name as written.

Query DSL. query takes a structured operator tree using PascalCase FieldName/FieldValue. By partial name: query='{"contains":{"FieldName":"Name","FieldValue":"launch"}}'. By id: query='{"equals":{"FieldName":"ActivityId","FieldValue":13801}}'. To browse without a filter use list_activities instead — an empty query='{}' is rejected.

Parameters:

ParameterTypeRequiredDescription
querystringYesJSON-encoded search body using PM's operator-tree DSL — not a flat {field: value} object. The body must have exactly one top-level operator. Operators (all lowercase, no separators): 'equals', 'contains', 'lessthan', 'lessthanorequalto', 'greaterthan', 'greaterthanorequalto', 'isnull', 'isnotnull', 'and', 'or', 'not'. Leaf operators take {FieldName, FieldValue} (pascal case) where FieldName is PM's wire field name ('ActivityId', 'Name', 'OwnerId', 'ActivityStateId', etc.) and FieldValue is a native JSON value matching the field's type (integer for IDs, ISO 8601 string for dates, string for text). Composite 'and'/'or' take an array of operations; 'not' takes a single operation object. PM rejects an empty '{}' (throws 'Couldn't find any operator') — it is not a match-all query; use list_activities to browse without a filter. For status/type/owner/administrator filtering, prefer the name-keyed parameters below instead — they're simpler. Use query for ID lookups, partial-name searches on Name, date range filters, or compound filters. Date field names (two date fields share confusing wire names — use exactly these): 'VisualEndDate' = the user-visible End Date (what users mean when they say 'end date'); 'EndDate' = the Project Anchor Date (what users mean when they say 'project anchor date', 'Project anchor date', or 'anchor date' — the word 'Project' in that label is this tenant's term for the project object). Examples: by id '{"equals":{"FieldName":"ActivityId","FieldValue":13801}}'; by name (partial) '{"contains":{"FieldName":"Name","FieldValue":"launch"}}'; by end date '{"lessthan":{"FieldName":"VisualEndDate","FieldValue":"2026-07-01"}}'; by anchor date '{"equals":{"FieldName":"EndDate","FieldValue":"2026-06-15"}}'; compound '{"and":[{"equals":{"FieldName":"OwnerId","FieldValue":998}},{"contains":{"FieldName":"Name","FieldValue":"Q4"}}]}'.
limitintegerNoMaximum number of results to return (1–50, default 20).
offsetintegerNoNumber of results to skip for pagination (default 0).
sortFieldstringNoOptional field name to sort by (e.g. 'ModifiedDate', 'Name'). Omit for default ordering.
sortAscendingbooleanNoSort direction. true = ascending (default), false = descending.
activityTypeLabelstringNoFilter to activities with this activity type (label, case-insensitive, e.g. 'Initiative'). Resolved against the PM ActivityType lookup list. Returns an error if the label doesn't match any known activity type. Combined with query and other filters via and.
activityStateLabelstringNoFilter to activities in this state (label, case-insensitive, e.g. 'Active'). Resolved against the PM ActivityTypeStatus lookup list. Returns an error if the label doesn't match any known state. Combined with query and other filters via and.
ownerNamestringNoFilter to activities owned by users whose first or last name matches this string (case-insensitive substring). Examples: 'Alice', 'Adams', 'alice ad'. If multiple users match, all are included (or). If no users match, returns an empty result set with a message — not an error.
administratorNamestringNoFilter to activities whose administrator's first or last name matches this string (case-insensitive substring). Same matching semantics as ownerName.
attributeFiltersobject (map of string)NoFilter by extended attributes with a specific value. Tenant-configured custom fields beyond the standard set. Pass a dictionary keyed by the attribute's display name exactly as the user/admin sees it (e.g. 'Phase Gate', 'Act Multi Select', 'Region'), with the desired value as a string. For lookup-type EAs (picklists), pass the option's display label — the server translates to the underlying itemId. For text/number/date EAs, pass the value as a string — the server passes it through. Returns BadRequest with the valid attribute set if a key doesn't match any EA. Returns BadRequest with the valid value set if a value doesn't match any option for a lookup EA. Combined with query and other filters via and.
attributesPresentobject (map of boolean)NoFilter by extended attribute presence — for natural-language patterns like 'activities with any value for Act Multi Select' or 'activities missing a Phase Gate tag'. Pass a dictionary keyed by the attribute's display name, with a boolean value: True = the EA has any value (PM operator isnotnull); False = the EA has no value (isnull). Use this when the user does not specify a particular value to match. Returns BadRequest if a key doesn't match any EA. Combined with other filters via and.

Returns:

FieldTypeDescription
collectionNamestring (optional)Resource-name key the wire's _embedded used (e.g. "Activity", "Project"). Informational; may be null when the response isn't HAL-shaped.
totalRecordsintegerTotal record count across all pages — from the wire's _total.
countintegerNumber of items returned in this response (i.e. Items.Count; precomputed for the llm).
offsetintegerThe offset that was used to produce this page (echoes the caller's offset, clamped to ≥0).
hasMorebooleanTrue when there are more results past this page. Tools should prompt the llm to ask the user about fetching the next page.
nextOffsetinteger (optional)Offset to pass on the next request to continue. Null when is false.
itemsarray of ActivityProjectionThe items returned in this response.
items[].activityIdinteger
items[].titlestring (optional)
items[].descriptionstring (optional)
items[].activityTypeIdinteger (optional)
items[].activityTypeLabelstring (optional)
items[].activityStateIdinteger (optional)
items[].activityStateLabelstring (optional)
items[].timeZoneIdinteger (optional)
items[].timeZoneLabelstring (optional)
items[].beginDatestring (optional)
items[].endDatestring (optional)
items[].projectAnchorDatestring (optional)
items[].ownerIdinteger (optional)
items[].ownerNamestring (optional)
items[].administratorIdinteger (optional)
items[].administratorNamestring (optional)
items[].creatorIdinteger (optional)The user who created the activity. New field surfaced now that PM's OpenAPI snapshot documents the Activity schema in full -- no existing resolver maps it to a name, so it stays a raw id.
items[].modifiedDatestring (optional)The activity's last-modified timestamp, PM's raw ISO-8601 string reformatted for the tenant's locale (same treatment as ).
items[].proposalIdinteger (optional)The activity proposal this activity was created from, if any.
items[].deepLinkstring (optional)

update_activity

In the default tool list

Updates an existing Activity (marketing campaign) 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.

Parameters:

ParameterTypeRequiredDescription
activityIdstringYesThe activity's integer ID.
bodystringYesJSON object with the fields to change (PM wire names). Omit fields you don't want to modify.
confirmedbooleanNoMust 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:

FieldTypeDescription
activityIdinteger
titlestring (optional)
descriptionstring (optional)
activityTypeIdinteger (optional)
activityTypeLabelstring (optional)
activityStateIdinteger (optional)
activityStateLabelstring (optional)
timeZoneIdinteger (optional)
timeZoneLabelstring (optional)
beginDatestring (optional)
endDatestring (optional)
projectAnchorDatestring (optional)
ownerIdinteger (optional)
ownerNamestring (optional)
administratorIdinteger (optional)
administratorNamestring (optional)
creatorIdinteger (optional)The user who created the activity. New field surfaced now that PM's OpenAPI snapshot documents the Activity schema in full -- no existing resolver maps it to a name, so it stays a raw id.
modifiedDatestring (optional)The activity's last-modified timestamp, PM's raw ISO-8601 string reformatted for the tenant's locale (same treatment as ).
proposalIdinteger (optional)The activity proposal this activity was created from, if any.
deepLinkstring (optional)

update_activity_role

In the default tool list

Replaces an activity role's user role and member set with the supplied values, in Aprimo Marketing Operations. Requires confirmed=true after showing the user the exact changes. Returns the updated role.

Parameters:

ParameterTypeRequiredDescription
activityIdstringYesThe activity's integer ID.
roleIdstringYesThe role's integer ID to update.
bodystringYesJSON object with the full replacement role data (PM wire names), including the user role and its members.
confirmedbooleanNoMust 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:

FieldTypeDescription
idstring (optional)
roleNamestring (optional)
rawobject (optional)The complete wire object, verbatim -- including its member/user-token list under whatever field name PM actually uses -- for full fidelity beyond the defensively-extracted fields above.