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
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#
List all campaigns in my organization.Details to provide#
| Name | Type | Required | Description |
|---|---|---|---|
| pageIndex | integer | Required | Zero-based page index for pagination. |
| pageSize | integer | Required | Number of items per page (1-100). |
| organizationId | string (UUID) | Required | Organization identifier. |
| searchTerm | string | — | Free-text search term to filter results (max 200 characters). |
| sortBy | string | — | Column name to sort by. |
| sortDirection | 'asc' | 'desc' | — | Sort direction: ascending or descending. |
| status | 'active' | 'scheduled' | 'completed' | 'draft' | — | Filter by campaign status. |
| creatorId | string (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#
Give me a summary of my campaign performance.Details to provide#
| Name | Type | Required | Description |
|---|---|---|---|
| organizationId | string (UUID) | Required | Organization identifier. |
| status | 'active' | 'scheduled' | 'completed' | 'draft' | — | Filter by campaign status. |
| creatorId | string (UUID) | — | Filter by creator identifier. |
| searchTerm | string | — | Free-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#
Show me the details for this campaign.Details to provide#
| Name | Type | Required | Description |
|---|---|---|---|
| id | string (UUID) | Required | Campaign 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#
Create a new campaign.Details to provide#
| Name | Type | Required | Description |
|---|---|---|---|
| summary | string | null | — | Short internal campaign summary. |
| objective | string | null | — | Business or marketing objective the campaign is intended to advance. |
| audience | string | null | — | Intended audience for the campaign. |
| keyMessage | string | null | — | Primary message the campaign should communicate. |
| desiredOutcomes | string | null | — | Desired outcomes or KPIs, without implying causal attribution. |
| channels | Array<string> | — | Planned channel labels for the campaign. |
| ownerUserId | string (UUID) | null | — | Workspace user responsible for the campaign. |
| tags | Array<string> | — | Searchable campaign labels. |
| organizationId | string (UUID) | Required | Organization identifier. |
| name | string | Required | Campaign name. |
| startAt | string (ISO 8601) | null | — | Campaign start date. |
| endAt | string (ISO 8601) | null | — | Campaign end date. |
| budget | number | null | — | Total 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#
Update the campaign.Details to provide#
| Name | Type | Required | Description |
|---|---|---|---|
| summary | string | null | — | Short internal campaign summary. |
| objective | string | null | — | Business or marketing objective the campaign is intended to advance. |
| audience | string | null | — | Intended audience for the campaign. |
| keyMessage | string | null | — | Primary message the campaign should communicate. |
| desiredOutcomes | string | null | — | Desired outcomes or KPIs, without implying causal attribution. |
| channels | Array<string> | — | Planned channel labels for the campaign. |
| ownerUserId | string (UUID) | null | — | Workspace user responsible for the campaign. |
| tags | Array<string> | — | Searchable campaign labels. |
| id | string (UUID) | Required | Campaign identifier to update. |
| name | string | — | Updated campaign name (1-255 characters). |
| startAt | string (ISO 8601) | null | — | Updated start date. |
| endAt | string (ISO 8601) | null | — | Updated end date. |
| budget | number | null | — | Updated 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#
Delete this campaign.Details to provide#
| Name | Type | Required | Description |
|---|---|---|---|
| id | string (UUID) | Required | Campaign identifier to delete. |
What you'll get back#
Returns { data, mutation, _meta } with the result and a customer-facing mutation receipt.
This changes data
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#
Preview campaign mutation for my organization.Details to provide#
| Name | Type | Required | Description |
|---|---|---|---|
| organizationId | string (UUID) | Required | Organization identifier. |
| operation | 'create' | 'update' | 'delete' | 'duplicate' | Required | Campaign action to preview without changing data. |
| id | string (UUID) | — | Existing campaign identifier for update, delete, or duplicate. |
| name | string | — | Campaign name for create, update, or duplicate. |
| startAt | string (ISO 8601) | null | — | Proposed campaign start date. |
| endAt | string (ISO 8601) | null | — | Proposed campaign end date. |
| budget | number | null | — | |
| summary | string | null | — | Short internal campaign summary. |
| objective | string | null | — | Business or marketing objective the campaign is intended to advance. |
| audience | string | null | — | Intended audience for the campaign. |
| keyMessage | string | null | — | Primary message the campaign should communicate. |
| desiredOutcomes | string | null | — | Desired outcomes or KPIs, without implying causal attribution. |
| channels | Array<string> | — | Planned channel labels for the campaign. |
| ownerUserId | string (UUID) | null | — | Workspace user responsible for the campaign. |
| tags | Array<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#
Duplicate campaign for my organization.Details to provide#
| Name | Type | Required | Description |
|---|---|---|---|
| id | string (UUID) | Required | Campaign identifier to duplicate. |
| name | string | — | Name for the duplicated campaign. |
| startAt | string (ISO 8601) | null | — | Optional replacement start date. |
| endAt | string (ISO 8601) | null | — | Optional replacement end date. |
What you'll get back#
Returns { data, mutation, _meta } with the result and a customer-facing mutation receipt.
Link campaign activity#
Link an activity to a campaign.
Tool name: link_campaign_activity. Protocol hints: readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=false.
Example prompt#
Add this activity to the campaign.Details to provide#
| Name | Type | Required | Description |
|---|---|---|---|
| campaignId | string (UUID) | Required | Campaign identifier to link the activity to. |
| activityId | string (UUID) | Required | Activity identifier to link. |
What you'll get back#
Returns { data, _meta } with the result.
Unlink campaign activity#
Unlink an activity from a campaign.
Tool name: unlink_campaign_activity. Protocol hints: readOnlyHint=false, destructiveHint=true, idempotentHint=true, openWorldHint=false.
Example prompt#
Remove this activity from the campaign.Details to provide#
| Name | Type | Required | Description |
|---|---|---|---|
| campaignId | string (UUID) | Required | Campaign identifier. |
| activityId | string (UUID) | Required | Activity identifier to unlink. |
What you'll get back#
Returns { data, _meta } with the result.