Activities#

See how an AI assistant can help with activities in Brandwave, including example prompts and the details it may ask for.

Using your AI assistant

Connect to the Brandwave MCP server, then ask your AI assistant in natural language. It will choose the right Brandwave task and ask for any details it needs.

List activities#

Retrieve a paginated list of activities for an organization.

Tool name: list_activities. Protocol hints: readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=false.

Example prompt#

text
List all activities in my organization.

Details to provide#

NameTypeRequiredDescription
pageIndexintegerRequiredZero-based page index for pagination.
pageSizeintegerRequiredNumber of items per page (1-100).
organizationIdstring (UUID)RequiredOrganization identifier.
searchTermstringFree-text search term to filter results (max 200 characters).
sortBystringColumn name to sort by.
sortDirection'asc' | 'desc'Sort direction: ascending or descending.
channelType'social_media' | 'broadcast' | 'out_of_home' | 'print' | 'events' | 'podcasts' | 'pr_articles'Filter by channel group.
channelTypesArray<'social_media' | 'broadcast' | 'out_of_home' | 'print' | 'events' | 'podcasts' | 'pr_articles'>Filter by one or more channel groups.
channel'instagram' | 'youtube' | 'tiktok' | 'twitter' | 'linkedin' | 'reddit' | 'radio' | 'television' | 'billboard' | 'bus_shelter' | 'street_furniture' | 'digital_outdoor_screen' | 'transit_ad' | 'newspaper' | 'magazine' | 'flyer' | 'conference' | 'trade_show' | 'expo' | 'networking_event' | 'community_event' | 'festival' | 'other_event' | 'podcast_interview' | 'podcast_guest_segment' | 'podcast_sponsored_segment' | 'other_podcast' | 'online_pr_article' | 'print_pr_article' | 'syndicated_pr_article' | 'other_pr_article'Filter by specific channel.
channelsArray<'instagram' | 'youtube' | 'tiktok' | 'twitter' | 'linkedin' | 'reddit' | 'radio' | 'television' | 'billboard' | 'bus_shelter' | 'street_furniture' | 'digital_outdoor_screen' | 'transit_ad' | 'newspaper' | 'magazine' | 'flyer' | 'conference' | 'trade_show' | 'expo' | 'networking_event' | 'community_event' | 'festival' | 'other_event' | 'podcast_interview' | 'podcast_guest_segment' | 'podcast_sponsored_segment' | 'other_podcast' | 'online_pr_article' | 'print_pr_article' | 'syndicated_pr_article' | 'other_pr_article'>Filter by one or more specific channels.
creatorIdstring (UUID)Filter by creator identifier.
mediaProviderIdstring (UUID)Filter by media provider identifier.
campaignIdstring (UUID)Filter by campaign identifier.
unlinkedFromCampaignbooleanExclude campaign-linked activities.
unlinkedFromCreatorIdstring (UUID)Exclude links to this creator.

What you'll get back#

Returns { items, totalCount, facets, _meta } with paginated results.

Count activities#

Get the total number of activities matching the given filters.

Tool name: count_activities. Protocol hints: readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=false.

Example prompt#

text
How many activities do I have?

Details to provide#

NameTypeRequiredDescription
organizationIdstring (UUID)RequiredOrganization identifier.
channelType'social_media' | 'broadcast' | 'out_of_home' | 'print' | 'events' | 'podcasts' | 'pr_articles'Filter by channel group.
channelTypesArray<'social_media' | 'broadcast' | 'out_of_home' | 'print' | 'events' | 'podcasts' | 'pr_articles'>Filter by one or more channel groups.
channel'instagram' | 'youtube' | 'tiktok' | 'twitter' | 'linkedin' | 'reddit' | 'radio' | 'television' | 'billboard' | 'bus_shelter' | 'street_furniture' | 'digital_outdoor_screen' | 'transit_ad' | 'newspaper' | 'magazine' | 'flyer' | 'conference' | 'trade_show' | 'expo' | 'networking_event' | 'community_event' | 'festival' | 'other_event' | 'podcast_interview' | 'podcast_guest_segment' | 'podcast_sponsored_segment' | 'other_podcast' | 'online_pr_article' | 'print_pr_article' | 'syndicated_pr_article' | 'other_pr_article'Filter by specific channel.
channelsArray<'instagram' | 'youtube' | 'tiktok' | 'twitter' | 'linkedin' | 'reddit' | 'radio' | 'television' | 'billboard' | 'bus_shelter' | 'street_furniture' | 'digital_outdoor_screen' | 'transit_ad' | 'newspaper' | 'magazine' | 'flyer' | 'conference' | 'trade_show' | 'expo' | 'networking_event' | 'community_event' | 'festival' | 'other_event' | 'podcast_interview' | 'podcast_guest_segment' | 'podcast_sponsored_segment' | 'other_podcast' | 'online_pr_article' | 'print_pr_article' | 'syndicated_pr_article' | 'other_pr_article'>Filter by one or more specific channels.
creatorIdstring (UUID)Filter by creator identifier.
mediaProviderIdstring (UUID)Filter by media provider identifier.
campaignIdstring (UUID)Filter by campaign identifier.

What you'll get back#

Returns { count, _meta }.

Get activity stats#

Aggregate statistics for activities matching the given filters.

Tool name: get_activity_stats. Protocol hints: readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=false.

Example prompt#

text
Give me a summary of my activity performance.

Details to provide#

NameTypeRequiredDescription
organizationIdstring (UUID)RequiredOrganization identifier.
channelType'social_media' | 'broadcast' | 'out_of_home' | 'print' | 'events' | 'podcasts' | 'pr_articles'Filter by channel group.
channelTypesArray<'social_media' | 'broadcast' | 'out_of_home' | 'print' | 'events' | 'podcasts' | 'pr_articles'>Filter by one or more channel groups.
channel'instagram' | 'youtube' | 'tiktok' | 'twitter' | 'linkedin' | 'reddit' | 'radio' | 'television' | 'billboard' | 'bus_shelter' | 'street_furniture' | 'digital_outdoor_screen' | 'transit_ad' | 'newspaper' | 'magazine' | 'flyer' | 'conference' | 'trade_show' | 'expo' | 'networking_event' | 'community_event' | 'festival' | 'other_event' | 'podcast_interview' | 'podcast_guest_segment' | 'podcast_sponsored_segment' | 'other_podcast' | 'online_pr_article' | 'print_pr_article' | 'syndicated_pr_article' | 'other_pr_article'Filter by specific channel.
channelsArray<'instagram' | 'youtube' | 'tiktok' | 'twitter' | 'linkedin' | 'reddit' | 'radio' | 'television' | 'billboard' | 'bus_shelter' | 'street_furniture' | 'digital_outdoor_screen' | 'transit_ad' | 'newspaper' | 'magazine' | 'flyer' | 'conference' | 'trade_show' | 'expo' | 'networking_event' | 'community_event' | 'festival' | 'other_event' | 'podcast_interview' | 'podcast_guest_segment' | 'podcast_sponsored_segment' | 'other_podcast' | 'online_pr_article' | 'print_pr_article' | 'syndicated_pr_article' | 'other_pr_article'>Filter by one or more specific channels.
creatorIdstring (UUID)Filter by creator identifier.
mediaProviderIdstring (UUID)Filter by media provider identifier.
campaignIdstring (UUID)Filter by campaign identifier.
searchTermstringFree-text search term to filter results (max 200 characters).

What you'll get back#

Returns { data, _meta } with the result.

Create activity#

Create social or provider-delivered activity with channel-specific delivery details, metrics, an optional creator or media provider, and an initial cost.

Tool name: create_activity. Protocol hints: readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=false.

Example prompt#

text
Create a new activity.

Details to provide#

NameTypeRequiredDescription
organizationIdstring (UUID)RequiredOrganization identifier.
channelType'social_media' | 'broadcast' | 'out_of_home' | 'print' | 'events' | 'podcasts' | 'pr_articles'Top-level channel group for this activity.
channel'instagram' | 'youtube' | 'tiktok' | 'twitter' | 'linkedin' | 'reddit' | 'radio' | 'television' | 'billboard' | 'bus_shelter' | 'street_furniture' | 'digital_outdoor_screen' | 'transit_ad' | 'newspaper' | 'magazine' | 'flyer' | 'conference' | 'trade_show' | 'expo' | 'networking_event' | 'community_event' | 'festival' | 'other_event' | 'podcast_interview' | 'podcast_guest_segment' | 'podcast_sponsored_segment' | 'other_podcast' | 'online_pr_article' | 'print_pr_article' | 'syndicated_pr_article' | 'other_pr_article'RequiredSpecific activity channel or subtype.
activity'instagram_story' | 'instagram_post' | 'instagram_reel' | 'youtube_video' | 'youtube_short' | 'tiktok_video' | 'twitter_post' | 'linkedin_post' | 'reddit_post' | null
namestringRequiredActivity name or title (max 500 characters).
startAtstring (ISO 8601) | null | null
endAtstring (ISO 8601) | null | null
creatorIdstring (UUID)Creator to auto-link to this activity.
mediaProviderIdstring (UUID) | nullMedia provider for a provider-delivered activity.
impressionsinteger | nullDelivered or estimated impression count.
deliverySource'platform_reported' | 'provider_reported' | 'user_entered' | 'benchmark_estimated' | 'modeled' | nullProvenance of the delivered activity metrics.
deliverySourceMetadataobject | nullStructured provenance metadata for delivered activity metrics.
initialCostobjectOptional initial cost line item to create with the activity.
broadcastDetailsobjectBroadcast placement and delivery details.
outOfHomeDetailsobjectOut-of-home placement and delivery details.
printDetailsobjectPrint placement and delivery details.
eventDetailsobjectEvent participation and delivery details.
podcastDetailsobjectPodcast placement and delivery details.
prArticleDetailsobjectPR article placement and delivery details.

What you'll get back#

Returns { data, _meta } with the result.

Update activity#

Update an activity's channel, content link, metrics, media provider, or channel-specific delivery details.

Tool name: update_activity. Protocol hints: readOnlyHint=false, destructiveHint=true, idempotentHint=true, openWorldHint=false.

Example prompt#

text
Update the activity.

Details to provide#

NameTypeRequiredDescription
idstring (UUID)RequiredActivity identifier to update.
channelType'social_media' | 'broadcast' | 'out_of_home' | 'print' | 'events' | 'podcasts' | 'pr_articles'Top-level channel group for this activity.
channel'instagram' | 'youtube' | 'tiktok' | 'twitter' | 'linkedin' | 'reddit' | 'radio' | 'television' | 'billboard' | 'bus_shelter' | 'street_furniture' | 'digital_outdoor_screen' | 'transit_ad' | 'newspaper' | 'magazine' | 'flyer' | 'conference' | 'trade_show' | 'expo' | 'networking_event' | 'community_event' | 'festival' | 'other_event' | 'podcast_interview' | 'podcast_guest_segment' | 'podcast_sponsored_segment' | 'other_podcast' | 'online_pr_article' | 'print_pr_article' | 'syndicated_pr_article' | 'other_pr_article'Updated channel.
activity'instagram_story' | 'instagram_post' | 'instagram_reel' | 'youtube_video' | 'youtube_short' | 'tiktok_video' | 'twitter_post' | 'linkedin_post' | 'reddit_post' | nullUpdated content type.
namestringUpdated activity name (max 500 characters).
startAtstring (ISO 8601) | null | nullUpdated start date.
endAtstring (ISO 8601) | null | nullUpdated end date.
mediaProviderIdstring (UUID) | nullUpdated provider for a provider-delivered activity.
impressionsinteger | nullUpdated delivered or estimated impression count.
deliverySource'platform_reported' | 'provider_reported' | 'user_entered' | 'benchmark_estimated' | 'modeled' | nullUpdated provenance of the delivered activity metrics.
broadcastDetailsobjectUpdated broadcast delivery details.
outOfHomeDetailsobjectUpdated out-of-home delivery details.
printDetailsobjectUpdated print delivery details.
eventDetailsobjectUpdated event delivery details.
podcastDetailsobjectUpdated podcast delivery details.
prArticleDetailsobjectUpdated PR article delivery details.
contentHrefstring (URL) | nullURL to the original content (max 2,048 characters).
viewsCountinteger | nullManual view count override (non-negative integer).
likeCountinteger | nullManual like count override (non-negative integer).
replyCountinteger | nullManual reply count override (non-negative integer).

What you'll get back#

Returns { data, _meta } with the result.

Content link changes reset metrics

Changing the contentLink triggers a metric refresh. Previous metric snapshots are preserved but the latest values will update.

Delete activity#

Permanently delete an activity and its associated records.

Tool name: delete_activity. Protocol hints: readOnlyHint=false, destructiveHint=true, idempotentHint=true, openWorldHint=false.

Example prompt#

text
Delete this activity.

Details to provide#

NameTypeRequiredDescription
idstring (UUID)RequiredActivity identifier to delete.

What you'll get back#

Returns { data, _meta } with the result.

This changes data

Deleting an activity permanently removes all linked metrics, costs, creator associations, and notes. This action cannot be undone.

Connect a social media post URL to an activity for automatic metric tracking.

Tool name: connect_activity_content_link. Protocol hints: readOnlyHint=false, destructiveHint=true, idempotentHint=false, openWorldHint=false.

Example prompt#

text
Link this content URL to the activity.

Details to provide#

NameTypeRequiredDescription
activityIdstring (UUID)RequiredActivity identifier to connect the content link to.
platform'instagram' | 'youtube' | 'tiktok' | 'twitter' | 'linkedin' | 'reddit'RequiredSocial media platform for this content.
contentUrlstringRequiredURL to the social media content (max 2,048 characters).

What you'll get back#

Returns { data, _meta } with the result.

Metric refresh

Connecting a content link triggers an immediate metric fetch for the linked post.

Disconnect a content link from an activity, stopping automatic metric tracking.

Tool name: disconnect_activity_content_link. Protocol hints: readOnlyHint=false, destructiveHint=true, idempotentHint=false, openWorldHint=false.

Example prompt#

text
Remove the content link from this activity.

Details to provide#

NameTypeRequiredDescription
activityIdstring (UUID)RequiredActivity identifier to disconnect the content link from.

What you'll get back#

Returns { data, _meta } with the result.

List activity creators#

List creators linked to an activity with pagination.

Tool name: list_activity_creators. Protocol hints: readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=false.

Example prompt#

text
List all activity creators in my organization.

Details to provide#

NameTypeRequiredDescription
pageIndexintegerRequiredZero-based page index for pagination.
pageSizeintegerRequiredNumber of items per page (1-100).
organizationIdstring (UUID)RequiredOrganization identifier.
activityIdstring (UUID)RequiredActivity identifier to list creators for.

What you'll get back#

Returns { items, totalCount, facets, _meta } with paginated results.

Count activity creators#

Count the number of creators linked to an activity.

Tool name: count_activity_creators. Protocol hints: readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=false.

Example prompt#

text
How many activity creators do I have?

Details to provide#

NameTypeRequiredDescription
organizationIdstring (UUID)RequiredOrganization identifier.
activityIdstring (UUID)RequiredActivity identifier to count creators for.

What you'll get back#

Returns { count, _meta }.

Associate a creator with an activity.

Tool name: link_activity_creator. Protocol hints: readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=false.

Example prompt#

text
Add this creator to the activity.

Details to provide#

NameTypeRequiredDescription
activityIdstring (UUID)RequiredActivity identifier to link.
creatorIdstring (UUID)RequiredCreator identifier to link.

What you'll get back#

Returns { data, _meta } with the result.

Remove a creator association from an activity.

Tool name: unlink_activity_creator. Protocol hints: readOnlyHint=false, destructiveHint=true, idempotentHint=true, openWorldHint=false.

Example prompt#

text
Remove this creator from the activity.

Details to provide#

NameTypeRequiredDescription
activityIdstring (UUID)RequiredActivity identifier to unlink from.
creatorIdstring (UUID)RequiredCreator identifier to unlink.

What you'll get back#

Returns { data, _meta } with the result.

Cascading deletion

Unlinking a creator removes all cost records associated with that creator on this activity.

Create activity cost#

Add a cost line item with net amount, currency, category, creator attribution, tax breakdown, and booking reference.

Tool name: create_activity_cost. Protocol hints: readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=false.

Example prompt#

text
Create a new activity cost.

Details to provide#

NameTypeRequiredDescription
activityIdstring (UUID)RequiredActivity identifier to add the cost to.
amountnumberRequiredCost amount (must be greater than zero, max 100M).
categoryIdstring (UUID)RequiredReusable cost category identifier.
currencystringRequiredISO 4217 currency code, e.g. "USD", "NZD" (exactly 3 characters).
descriptionstring | nullOptional description of this cost line item (max 1,000 characters).
creatorIdstring (UUID) | nullCreator this cost is attributed to.
grossAmountnumber | nullGross booked cost before discounts and tax adjustments.
discountAmountnumber | nullDiscount applied to the gross booked cost.
taxAmountnumber | nullTax amount recorded for the cost.
bookingReferencestring | nullProvider booking or insertion-order reference.

What you'll get back#

Returns { data, _meta } with the result.

Auto-linking

If the activity has exactly one linked creator, the cost is automatically attributed to that creator.

Update activity cost#

Update a cost line item's net, gross, discount, and tax amounts, category, creator attribution, description, or booking reference.

Tool name: update_activity_cost. Protocol hints: readOnlyHint=false, destructiveHint=true, idempotentHint=true, openWorldHint=false.

Example prompt#

text
Update the activity cost.

Details to provide#

NameTypeRequiredDescription
idstring (UUID)RequiredCost record identifier to update.
amountnumberUpdated cost amount (must be greater than zero, max 100M).
categoryIdstring (UUID)Updated reusable cost category identifier.
descriptionstring | nullUpdated description (max 1,000 characters).
creatorIdstring (UUID) | nullUpdated creator attribution.
grossAmountnumber | nullGross booked cost before discounts and tax adjustments.
discountAmountnumber | nullDiscount applied to the gross booked cost.
taxAmountnumber | nullTax amount recorded for the cost.
bookingReferencestring | nullProvider booking or insertion-order reference.

What you'll get back#

Returns { data, _meta } with the result.

Delete activity cost#

Remove a cost line item from an activity.

Tool name: delete_activity_cost. Protocol hints: readOnlyHint=false, destructiveHint=true, idempotentHint=true, openWorldHint=false.

Example prompt#

text
Delete this activity cost.

Details to provide#

NameTypeRequiredDescription
idstring (UUID)RequiredCost record identifier to delete.

What you'll get back#

Returns { data, _meta } with the result.

Get metric confidence#

Assess the statistical confidence of an activity's metrics.

Tool name: get_metric_confidence. Protocol hints: readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=false.

Example prompt#

text
How reliable are the metrics for this activity?

Details to provide#

NameTypeRequiredDescription
organizationIdstring (UUID)RequiredOrganization identifier.
startDatestring | nullStart date for confidence calculation window.
endDatestring | nullEnd date for confidence calculation window.

What you'll get back#

Returns { data, _meta } with the result.

List sparklines#

Fetch sparkline chart data for one or more activities.

Tool name: list_sparklines. Protocol hints: readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=false.

Example prompt#

text
Show me performance trends for my activities.

Details to provide#

NameTypeRequiredDescription
activityIdsArray<string (UUID)>RequiredArray of activity identifiers to fetch sparkline data for.

What you'll get back#

Returns { items, totalCount, facets, _meta } with paginated results.

Get activity#

Retrieve a single activity by ID with full details.

Tool name: get_activity. Protocol hints: readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=false.

Example prompt#

text
Show me the details for this activity.

Details to provide#

NameTypeRequiredDescription
idstring (UUID)RequiredActivity identifier.

What you'll get back#

Returns { data, _meta } with the result.