Braze
Braze is a customer engagement platform for managing user data, messaging, campaigns, analytics, catalogs, templates, and workspace automation.
Verdict
Common use cases
- Blocklist spam addresses across all campaigns
- Create email templates from approved copy
- Export segment data for analysis
- Update product catalog fields in bulk
- Cancel long-running segment exports
Integration
- Vendor
- Braze
- Category
- other
- Auth
- API_KEY
- Tools
- 50
- Composio slug
braze
Tools
- Blocklist Emails
HIGH IMPACT: globally unsubscribe and mark as hard bounced one to 50 exact email addresses. This can affect every profile sharing an address and prevent delivery across campaigns. Success is rejected unless Braze explicitly returns message=
- Cancel Segment Exports
Ask Braze to cancel all ongoing exports for a segment. Braze documents no response confirmation schema, so a successful call is only the provider response and must not be treated as proof that cancellation completed.
- Create Catalog
Create one persistent catalog in the connected Braze workspace. The catalog name must be unique and identifies the resource for later reads or deletion.
- Create Catalog Fields
Asynchronously create up to 50 fields in one Braze catalog. Requires the immutable catalogs.create_fields API-key permission and shares a 50 requests/minute limit with asynchronous catalog field and selection endpoints. A 202 response only
- Create Catalog Item
Synchronously create one Braze catalog item by exact item ID. Requires the immutable catalogs.create_item API-key permission and shares a 50 requests/minute synchronous item limit. Existing IDs and body-level id fields are rejected.
- Create Catalog Selection
Asynchronously create one Braze catalog selection. Requires the immutable catalogs.create_selection API-key permission and shares a 50 requests/minute limit with asynchronous field and selection endpoints. Geo filters force nearest-first or
- Create Content Block
Persist a reusable HTML or text Content Block in the connected Braze workspace. This creates content only; it does not send or deliver a message.
- Create Email Template
Persist an HTML email template on Braze's Templates & Media page. This creates template content only; it does not send or deliver an email.
- Create Media Library Asset
Upload one asset to Braze from a public HTTP(S) URL or local file. URL mode sends JSON; local-file mode uses the multipart asset_file contract implemented by Braze's official MCP server and does not send base64. Images, vectors, and documen
- Create Message Schedule
HIGH IMPACT: schedule API-only channel messages for future processing. Individual targets are limited to 50 combined IDs and aliases; otherwise explicit broadcast=true is required. Requires messages.schedule.create. The returned schedule an
- Create Multiple Catalog Items
Asynchronously create up to 50 Braze catalog items. Requires the immutable catalogs.add_items API-key permission and shares a 16,000 requests/minute limit with asynchronous catalog item endpoints. A 202 response confirms acceptance only; Br
- Create Preference Center
HIGH IMPACT: durably create and optionally activate a Braze-hosted preference center. Its name cannot be changed after creation. Confirm HTML, state, and identifiers before calling. Limited to 10 requests/minute per workspace; Braze publish
- Create SDK Authentication Key
HIGH IMPACT SECURITY OPERATION: create an SDK Authentication key from an RSA public key for one exact app. Set make_primary only when the new key should immediately replace the current primary key. Never submit private-key material. Braze p
- Create Send ID
Create or assign a send ID for programmatic message-performance tracking. Every explicit campaign_id and send_id combination counts toward the workspace limit of 100 custom send IDs/day. Requires sends.id.create; this action creates trackin
- Create User Aliases
Add up to 50 Braze aliases to existing external-ID users or create alias-only profiles. Requires users.alias.new. Duplicate alias-label/name pairs can return success without changing a profile; a 201-style success is acceptance, not proof t
- Delete Campaign Trigger Scheduledestructive
HIGH IMPACT: durably cancel a scheduled API-triggered campaign before send time. This cannot undo sends already processed. Last-second cancellation is best-effort and may affect all, some, or none of the target users. Requires campaigns.tri
- Delete Canvas Trigger Scheduledestructive
HIGH IMPACT: durably cancel a scheduled API-triggered Canvas before entry time. This cannot undo entries already processed. Last-second cancellation is best-effort and may affect all, some, or none of the target users. Requires canvas.trigg
- Delete Catalogdestructive
Permanently delete one Braze catalog and all of its contents by exact catalog name through DELETE /catalogs/{catalog_name}. This cannot be undone and requires catalogs.delete permission.
- Delete Catalog Fielddestructive
Asynchronously request deletion of one field by exact catalog and field name. Requires the immutable catalogs.delete_fields API-key permission and shares a 50 requests/minute field/selection limit. Fields used by a selection or as an invent
- Delete Catalog Itemdestructive
Request deletion of one catalog item by exact catalog name and item ID. HTTP 202 with message=success confirms acceptance, not terminal deletion. Requires the immutable catalogs.delete_item API-key permission and shares a 50 requests/minute
- Delete Catalog Selectiondestructive
Asynchronously request deletion of a selection by exact catalog and selection name. Requires the immutable catalogs.delete_selection API-key permission and shares a 50 requests/minute field/selection limit. A 202 response confirms acceptanc
- Delete Message Scheduledestructive
HIGH IMPACT: durably cancel an API-only message schedule before it is sent. This cannot undo a send already processed. Requires messages.schedule.delete. An accepted cancellation does not prove that a send already being processed was stoppe
- Delete Multiple Catalog Itemsdestructive
Asynchronously request deletion of up to 50 catalog items by exact IDs. Requires the immutable catalogs.delete_items API-key permission and shares a 16,000 requests/minute asynchronous item limit. A 202 response is only request acceptance;
- Delete SDK Authentication Keydestructive
HIGH IMPACT SECURITY OPERATION: permanently delete one exact non-primary SDK Authentication key from one exact app. Braze refuses deletion of the primary key; select another primary first. Success is rejected unless the returned remaining-k
- Delete Usersdestructive
Permanently queue deletion of up to 50 users using exactly one identifier type. Requires users.delete and shares a 20,000 requests/minute rate limit. This cannot be undone; success reports queued count, not completion, and cache propagation
- Duplicate Campaign
HIGH IMPACT: request an asynchronous, durable duplicate of a Braze campaign. The duplicate persists until explicitly deleted and can consume workspace campaign capacity. HTTP 202 confirms only that Braze accepted the request, not that campa
- Duplicate Canvas
HIGH IMPACT: request an asynchronous, durable duplicate of a Braze Canvas. The duplicate persists until explicitly deleted and can consume workspace Canvas capacity. HTTP 202 confirms only acceptance, not completed Canvas creation. Existing
- End Live Activity
IRREVERSIBLE: end an SDK-registered iOS Live Activity with a final ContentState. An optional past dismissal_date removes it from the UI immediately. Requires messages.live_activity.update. HTTP 201 confirms receipt only, not APNs dispatch,
- Export Global Control Group Users
Start an asynchronous export of all current Global Control Group users. The response only acknowledges dispatch and identifies files; completion arrives through the callback, temporary URL, or configured cloud storage. Files are generally s
- Export Segment Users
Start an asynchronous newline-delimited JSON export for one segment. The response acknowledges dispatch, not completion. Only one export per segment may run at once, with at most 100 concurrent segment exports company-wide; event, purchase,
- Export Users by Identifiers
Return user profiles matching one or more Braze, external, alias, device, email, or phone identifiers; this reads profiles and does not track events or consume data points.
- Generate Preference Center URL
Generate a user-specific URL for an API-created or drag-and-drop Braze preference center. HIGH IMPACT: the returned URL is a sensitive capability that can change that user's subscriptions. Do not log, publish, or share it. This does not sup
- Get Campaign
Return configuration and delivery details for one campaign identified by its Braze campaign ID.
- Get Campaign Analytics
Get up to 100 daily campaign analytics points. Dashboard and Currents aggregation definitions can differ.
- Get Campaign Translation Source
Read the default source values inside translation tags for one campaign message variation. Requires campaigns.translations.get, translation tags on a multi-language message, and observes a 250,000 requests/minute limit.
- Get Canvas
Return configuration and step details for one Canvas identified by its Braze Canvas ID.
- Get Canvas Analytics
Export Canvas daily time-series analytics with optional variant, step, and deleted-step breakdowns. Dashboard and Currents definitions can differ.
- Get Canvas Analytics Summary
Export Canvas analytics rollups with optional variant, step, and deleted-step breakdowns. Braze normalizes range timestamps to midnight in the company time zone.
- Get Canvas Translation Source
Read default source values inside translation tags for one Canvas step message variation. Requires canvas.translations.get, translation tags on a multi-language message, and observes a 250,000 requests/minute limit.
- Get Catalog Item
Return one Braze catalog item by exact catalog name and item ID. Requires the immutable catalogs.get_item API-key permission and shares a 50 requests/minute limit with synchronous catalog item endpoints.
- Get Content Block
Return one persisted Braze Content Block by API identifier, optionally with its current campaign and Canvas inclusion records.
- Get Content Block Translation Source
Read default source values inside one Content Block's translation tags. Requires content_blocks.translations.get, configured translation tags, and observes a 250,000 requests/minute limit.
- Get Custom Event Analytics
Get 1 to 100 daily or hourly occurrence counts for one custom event, optionally filtered by app and analytics-enabled segment.
- Get Email Template
Return one stored HTML email template by API identifier. Braze does not accept drag-and-drop-editor templates on this endpoint.
- Get Email Template Translation Source
Read default source values inside an email template's translation tags. This source endpoint specifically requires templates.email.info, plus a multi-language template, and observes a 250,000 requests/minute limit.
- Get Preference Center
Get persisted HTML, state, options, identifiers, and timestamps for one Braze preference center. Limited to 1,000 requests/minute per workspace.
- Get Purchase Series
Get 1 to 100 daily or hourly purchase quantity or revenue points, optionally filtered by app and product. The selected metric determines the exact Braze purchase endpoint.
- Get Segment
Return Braze's documented configuration details for one segment identified by its segment API identifier.
- Schedule Campaign Trigger
HIGH IMPACT: schedule one durable API-triggered campaign dispatch. Provide up to 50 recipients, optionally intersected with a Connected Audience. Audience-only targeting requires broadcast=true, which cannot include individual recipients. R
- Schedule Canvas Trigger
HIGH IMPACT: schedule one durable API-triggered Canvas entry. Provide up to 50 recipients, optionally intersected with a Connected Audience. Audience-only targeting requires broadcast=true, which cannot include individual recipients. Per-re
Setup
Setup guide
- 11. In Switchy, open Settings → Integrations and click Connect next to Braze. 2. Log in to your Braze dashboard, navigate to Settings → Developer Console → API Keys, and create a new REST API key. 3. Grant the key permissions that match the tools you'll use: user.track for profile updates, campaigns.trigger.send for message dispatch, catalogs.create_item for catalog writes, and templates.email.create for template management. 4. Copy the API key and your Braze REST endpoint URL (for example, rest.iad-01.braze.com) from the dashboard. 5. Paste both into the Switchy connection modal and click Save. 6. Test the connection by opening a Project, typing '@Braze list my catalogs', and confirming you see catalog names in the response. 7. If the call fails, revisit the API key's permissions in Braze and ensure the endpoint URL matches your workspace's cluster.
What teammates see: by default, memories from Braze are scoped to the Project (PROJECT visibility) - you can mark any memory PRIVATE or share it ORG-wide.
Works well with
Top models
Compatibility data appears once enough Projects have used this MCP together with a given model.
How Switchy teams use it
Starter prompts
Blocklist Email Addresses
@Braze blocklist these email addresses: user1@example.com, user2@example.com, user3@example.com. Mark them as hard bounced so no future campaigns reach them.
Create Email Template
@Braze create an email template called 'Weekly Newsletter' with the subject line 'Your updates from {{company_name}}' and this HTML body: <html><body><h1>Hello {{first_name}}</h1><p>Here's what's new this week.</p></body></html>.Add Catalog Items
@Braze create a catalog item in the 'products' catalog with ID 'SKU-1234', name 'Blue Widget', price 29.99, and stock_count 150.
Export Segment Data
@Braze export all user profiles from the segment 'High-Value Customers' and send me the download link when it's ready.
Cancel Segment Exports
@Braze cancel all ongoing exports for the segment 'Trial Users' so I can restart the export with corrected filters.
Example outputs
Illustrative - representative of the model's voice and quality, not literal recordings.
@braze list all active email campaigns launched in the last 7 days and show their send counts
Here are the active email campaigns from the past week: 1. **Welcome Series - Onboarding Day 1** (launched Dec 15) - Sent: 12,847 messages - Delivered: 12,603 (98.1%) 2. **Holiday Sale Reminder** (launched Dec 18) - Sent: 45,231 messages - Delivered: 44,892 (99.2%) 3. **Product Update Announcement** (launched Dec 19) - Sent: 8,456 messages - Delivered: 8,301 (98.2%) All three campaigns are currently active and scheduled to continue through December 31st. This data reflects the current state of your Braze workspace and may update as campaigns continue sending.
This example demonstrates read-only campaign monitoring. The API key must have campaigns.list permission. Response data reflects point-in-time snapshots—send counts increment as campaigns continue. Braze's API returns campaign metadata but not message content or recipient lists for privacy reasons.
@braze create a new email template called 'Q1 Product Launch' with our standard header and a placeholder hero section
Successfully created email template **Q1 Product Launch** in your Braze workspace. Template ID: `tmpl_q1_launch_2024_a3f9` The template includes: - Standard company header with logo and navigation - Placeholder hero section (600×300px image area) - Pre-configured footer with unsubscribe link This template is now available in Templates & Media and can be selected when building new email campaigns. Note: Creating this template does not send any emails—it only adds reusable content to your workspace.
This write operation requires templates.create permission and demonstrates content authoring without delivery risk. The template persists in Braze's system immediately but must be manually selected in a campaign to send. Template IDs are immutable once created. Consider testing the template in a draft campaign before production use.
@braze analyze our last 10 push notification campaigns and identify which message copy patterns had the highest open rates
Analyzing the last 10 push notification campaigns (Nov 20 - Dec 20): **Highest-performing patterns:** 1. **Question-based openers** (avg 34.2% open rate) - "Ready to save 20%?" outperformed by 12% vs. declarative 2. **Personalized time references** (avg 31.8% open rate) - "Your morning deal is here" vs. generic "New deal available" 3. **Urgency with specificity** (avg 29.4% open rate) - "3 hours left" vs. "Limited time" **Lowest performers:** - Generic announcements (avg 18.1% open rate) - Messages over 60 characters (avg 21.3% open rate) This analysis combines Braze campaign data with pattern recognition. Consider A/B testing question-based openers in your next campaign.
This synthesis example pairs Braze's campaign statistics with AI reasoning to surface actionable insights. Requires campaigns.data_series permission to access historical metrics. Open rates depend on many factors beyond copy (send time, audience segment, notification permissions). Use these patterns as hypotheses for A/B tests, not guaranteed outcomes.
Use-case deep-dives
When Braze MCP saves hours on compliance blocklist updates
A three-person growth team at a B2B SaaS company gets a GDPR deletion request covering 40 email addresses scattered across customer and trial segments. Without the MCP, the ops lead opens the Braze dashboard, searches each address, manually unsubscribes, and marks hard-bounced—taking 20 minutes per batch. With the Blocklist Emails tool, the entire batch runs in one call from a shared Switchy thread, and the team logs the action in the same workspace where legal tracks compliance. The trade-off: this tool is irreversible and affects every profile sharing an address, so you need a review step before the AI executes. If your compliance volume is under 200 addresses a month and you already have API-key auth, this MCP turns a tedious dashboard loop into a two-minute audit trail.
Braze MCP handles template and block creation at migration scale
A five-person lifecycle marketing team is migrating 80 email templates and 30 reusable content blocks from Mailchimp to Braze during a platform consolidation. The manual path is opening each Mailchimp export, copying HTML, pasting into Braze's template editor, and saving—roughly 90 minutes of copy-paste for the full library. The Create Email Template and Create Content Block tools let the team script the migration in a Switchy workspace, feeding exported HTML directly into Braze and preserving naming conventions in one pass. The boundary: these tools create content only, they don't handle campaign logic or send configuration, so you still need a separate step to wire templates into active campaigns. If you're moving more than 20 templates or doing a one-time bulk setup, this MCP cuts migration time by two-thirds.
When catalog item creation beats manual dashboard entry for CS teams
A four-person customer success team at a subscription app uses Braze catalogs to personalize onboarding emails with account-specific feature flags and usage thresholds. Every new enterprise customer triggers 10-15 catalog item updates—feature toggles, tier limits, custom branding URLs—that the CS lead currently enters by hand in the Braze dashboard after each kickoff call. The Create Catalog Item tool moves that data entry into the same Switchy workspace where the team tracks onboarding milestones, so catalog updates happen inline with CRM notes and the AI can pre-fill items from structured call summaries. The catch: this is a synchronous tool with a 50 requests/minute limit, so if you're onboarding more than 3 enterprise accounts an hour, you'll hit rate limits. For teams onboarding 5-10 accounts a week with catalog-driven personalization, this MCP turns 15 minutes of dashboard work into a 2-minute inline update.
Frequently asked
What does the Braze MCP let me do in Switchy?
It gives your AI agents direct access to Braze's marketing automation platform — creating email templates and content blocks, managing catalog items and selections, blocklisting emails, and canceling segment exports. Agents can build and update campaign assets without switching tabs or waiting for a marketer to copy-paste from a doc.
Do I need admin access to connect Braze?
You need an API key with the specific permissions each tool requires — for example, catalogs.create_fields or catalogs.create_item. Braze issues keys at the workspace level, so whoever generates the key must have permission to grant those scopes. Standard user accounts typically can't create API keys; check with your Braze workspace admin.
Can the Braze MCP send campaigns or trigger messages?
No. It creates and manages campaign assets — templates, content blocks, catalog data — but it doesn't send emails or push notifications. If you need to trigger sends, use Braze's campaign or Canvas APIs directly, or build a custom MCP that wraps those endpoints.
Why use this instead of Braze's dashboard or REST API?
The MCP removes context-switching: your agent drafts an email template, writes the HTML, and persists it to Braze in one conversation. The REST API requires you to leave Switchy, write a script, handle auth, and parse responses. The dashboard is manual. This is faster when you're iterating on content with an AI.
Who on my team should connect the Braze integration?
Whoever owns your Braze workspace and can generate API keys with the right permissions. That's usually a marketing ops lead or a developer with admin access. Once connected, any Switchy team member can invoke the tools in a chat, but the API key's permissions determine what actually succeeds.