Campaigns#

See how an AI assistant can help with campaigns 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 campaigns#

Retrieve a paginated list of campaigns for an organization.

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

Example prompt#

text
List all campaigns 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.
status'active' | 'scheduled' | 'completed' | 'draft'Filter by campaign status.
creatorIdstring (UUID)Filter by creator identifier.

What you'll get back#

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

Get campaign stats#

Aggregate statistics for campaigns matching the given filters.

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

Example prompt#

text
Give me a summary of my campaign performance.

Details to provide#

NameTypeRequiredDescription
organizationIdstring (UUID)RequiredOrganization identifier.
status'active' | 'scheduled' | 'completed' | 'draft'Filter by campaign status.
creatorIdstring (UUID)Filter by creator identifier.
searchTermstringFree-text search term to filter results (max 200 characters).

What you'll get back#

Returns { data, _meta } with the result.

Get campaign#

Retrieve a single campaign by ID with full details.

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

Example prompt#

text
Show me the details for this campaign.

Details to provide#

NameTypeRequiredDescription
idstring (UUID)RequiredCampaign identifier.

What you'll get back#

Returns { data, _meta } with the result.

Create campaign#

Create a campaign planning record with a name, summary, objective, audience, key message, desired outcomes, planned channels, owner, tags, dates, and budget. Status is derived from its dates and the response includes a mutation receipt.

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

Example prompt#

text
Create a new campaign.

Details to provide#

NameTypeRequiredDescription
summarystring | nullShort internal campaign summary.
objectivestring | nullBusiness or marketing objective the campaign is intended to advance.
audiencestring | nullIntended audience for the campaign.
keyMessagestring | nullPrimary message the campaign should communicate.
desiredOutcomesstring | nullDesired outcomes or KPIs, without implying causal attribution.
channelsArray<string>Planned channel labels for the campaign.
ownerUserIdstring (UUID) | nullWorkspace user responsible for the campaign.
tagsArray<string>Searchable campaign labels.
organizationIdstring (UUID)RequiredOrganization identifier.
namestringRequiredCampaign name.
startAtstring (ISO 8601) | nullCampaign start date.
endAtstring (ISO 8601) | nullCampaign end date.
budgetnumber | nullTotal campaign budget (non-negative, max 1B).

What you'll get back#

Returns { data, mutation, _meta } with the result and a customer-facing mutation receipt.

Update campaign#

Update a campaign's planning brief, desired outcomes, owner, tags, budget, or dates. Status is derived from its dates and the response identifies the changed fields.

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

Example prompt#

text
Update the campaign.

Details to provide#

NameTypeRequiredDescription
summarystring | nullShort internal campaign summary.
objectivestring | nullBusiness or marketing objective the campaign is intended to advance.
audiencestring | nullIntended audience for the campaign.
keyMessagestring | nullPrimary message the campaign should communicate.
desiredOutcomesstring | nullDesired outcomes or KPIs, without implying causal attribution.
channelsArray<string>Planned channel labels for the campaign.
ownerUserIdstring (UUID) | nullWorkspace user responsible for the campaign.
tagsArray<string>Searchable campaign labels.
idstring (UUID)RequiredCampaign identifier to update.
namestringUpdated campaign name (1-255 characters).
startAtstring (ISO 8601) | nullUpdated start date.
endAtstring (ISO 8601) | nullUpdated end date.
budgetnumber | nullUpdated budget (non-negative, max 1B).

What you'll get back#

Returns { data, mutation, _meta } with the result and a customer-facing mutation receipt.

Delete campaign#

Remove a campaign from normal use and unlink its associated activities. The response includes a customer-facing deletion receipt.

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

Example prompt#

text
Delete this campaign.

Details to provide#

NameTypeRequiredDescription
idstring (UUID)RequiredCampaign identifier to delete.

What you'll get back#

Returns { data, mutation, _meta } with the result and a customer-facing mutation receipt.

This changes data

Deleting a campaign permanently removes the campaign and unlinks all associated activities. This action cannot be undone.

Preview campaign mutation#

Retrieve a no-write preview of the exact customer-facing target, desired outcomes, budget, changed fields, derived status, and warning for a campaign create, update, delete, or duplicate action.

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

Example prompt#

text
Preview campaign mutation for my organization.

Details to provide#

NameTypeRequiredDescription
organizationIdstring (UUID)RequiredOrganization identifier.
operation'create' | 'update' | 'delete' | 'duplicate'RequiredCampaign action to preview without changing data.
idstring (UUID)Existing campaign identifier for update, delete, or duplicate.
namestringCampaign name for create, update, or duplicate.
startAtstring (ISO 8601) | nullProposed campaign start date.
endAtstring (ISO 8601) | nullProposed campaign end date.
budgetnumber | null
summarystring | nullShort internal campaign summary.
objectivestring | nullBusiness or marketing objective the campaign is intended to advance.
audiencestring | nullIntended audience for the campaign.
keyMessagestring | nullPrimary message the campaign should communicate.
desiredOutcomesstring | nullDesired outcomes or KPIs, without implying causal attribution.
channelsArray<string>Planned channel labels for the campaign.
ownerUserIdstring (UUID) | nullWorkspace user responsible for the campaign.
tagsArray<string>Searchable campaign labels.

What you'll get back#

Returns { data, _meta } with the result.

Duplicate campaign#

Create a new draft by duplicating a campaign planning brief, optionally replacing its name and dates. Activities are not copied because an activity belongs to one campaign at a time.

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

Example prompt#

text
Duplicate campaign for my organization.

Details to provide#

NameTypeRequiredDescription
idstring (UUID)RequiredCampaign identifier to duplicate.
namestringName for the duplicated campaign.
startAtstring (ISO 8601) | nullOptional replacement start date.
endAtstring (ISO 8601) | nullOptional replacement end date.

What you'll get back#

Returns { data, mutation, _meta } with the result and a customer-facing mutation receipt.

Link an activity to a campaign.

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

Example prompt#

text
Add this activity to the campaign.

Details to provide#

NameTypeRequiredDescription
campaignIdstring (UUID)RequiredCampaign identifier to link the activity to.
activityIdstring (UUID)RequiredActivity identifier to link.

What you'll get back#

Returns { data, _meta } with the result.

Unlink an activity from a campaign.

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

Example prompt#

text
Remove this activity from the campaign.

Details to provide#

NameTypeRequiredDescription
campaignIdstring (UUID)RequiredCampaign identifier.
activityIdstring (UUID)RequiredActivity identifier to unlink.

What you'll get back#

Returns { data, _meta } with the result.