marketing automation

Add Braze to your AI agent

Braze is a customer engagement platform for managing user data, messaging, campaigns, analytics, catalogs, templates, and workspace automation.

Things your agent can do in Braze
119

Things your AI can do in Braze

Your FormWise AI can handle any of these in Braze — on its own, without you needing to click a button.

  • 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=success. Default rate limit: 250,000 requests/hour.

  • 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.

  • 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. Recipient trigger properties override shared keys. Requires a dashboard API-triggered campaign and campaigns.trigger.schedule.create. Acceptance and a schedule ID do not prove delivery.

  • 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-recipient context overrides shared context. Requires a dashboard API-triggered Canvas and canvas.trigger.schedule.create. Users are recorded as entries only at scheduled time; acceptance is not delivery.

  • 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 confirms acceptance; Braze documents no job ID or terminal result.

  • 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 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; Braze documents no job ID, per-item result, or terminal completion.

  • 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 ordering. Storage and selection-count gates may reject the request. A 202 response confirms acceptance only and includes no documented job result.

  • 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 documents are limited to 5 MB; ZIP files are limited to 50 MB total and 5 MB per supported root-level file. Videos and VCF files are dashboard-only. Media Library Public APIs must be enabled; free-trial workspaces have a default 200-asset limit. Rate limit: 100/hour.

Show 107 more things it can do
  • 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 and dispatch IDs confirm acceptance only and never delivery; rendered payload size, subscription state, and channel eligibility remain gates.

  • 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 publishes no separate plan-tier gate.

  • 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 permits at most three keys per app. Success is rejected unless Braze returns a new key ID. Default rate limit: 250,000 requests/hour.

  • 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 tracking identity and does not send a message.

  • 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 that every alias was attached. Shares a 20,000 requests/minute rate limit.

  • Delete Campaign Trigger Schedule

    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.trigger.schedule.delete; an accepted response is not proof that no sends occurred.

  • Delete Canvas Trigger Schedule

    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.trigger.schedule.delete; acceptance is not proof that no Canvas entries occurred.

  • Delete Catalog

    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 Field

    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 inventory field cannot be deleted. A 202 response is acceptance, not completion.

  • Delete Catalog Item

    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 synchronous item limit.

  • Delete Multiple Catalog Items

    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; Braze returns no documented job ID or per-item deletion proof.

  • Delete Catalog Selection

    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 acceptance only; Braze documents no terminal deletion result.

  • Delete Message Schedule

    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 stopped.

  • Delete SDK Authentication Key

    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-key list excludes the exact requested key ID. Default rate limit: 250,000 requests/hour.

  • Delete Users

    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 can take up to five minutes.

  • 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 campaign creation completed. Existing tags only; a supplied tag list replaces source tags. Requires campaigns.duplicate and is limited to 100 calls/minute.

  • 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 tags only; a supplied tag list replaces source tags. Requires canvas.duplicate and is limited to 100 calls/minute.

  • 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, display, dismissal, or delivery. An ended activity cannot be resumed.

  • 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 split per 5,000 users.

  • 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, campaign, and Canvas history fields contain 90 days of detail.

  • 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 support legacy preference centers. Limited to 1,000 requests/minute per workspace.

  • 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.

  • Get Segment Analytics

    Get up to 100 daily estimated segment-size points. Export and count segment users when an exact size is required.

  • Get Send Analytics

    Get up to 100 daily analytics points for a tracked send from an API campaign. Braze retains send analytics for 14 days after the send and attributes campaign conversions to the most recent send_id received by each user. Counts may not match dashboard analytics or Currents one-for-one because aggregation windows and definitions differ.

  • Get Session Analytics

    Get 1 to 100 daily or hourly session-count points, optionally filtered by app and analytics-enabled segment.

  • Get Subscription Group Status

    Get saved membership status for up to 50 users in one exact subscription group. External IDs take query precedence if also supplied; email and phone cannot be combined. Results are Subscribed, Unsubscribed, or Unknown and do not include the overriding global email state. Default rate limit: 250,000 requests/hour.

  • Get User KPI Series

    Get 1 to 100 points for one user KPI: daily active users, rolling 30-day monthly active users, daily new users, or daily uninstalls. Optionally filter to one Braze app. The selected metric determines the exact Braze KPI endpoint.

  • Get Webhook Template Translation Source

    Read default source values inside a webhook template's translation tags. Requires templates.translations.get and webhook template translations enabled by Braze; otherwise Braze may return FEATURE_NOT_ENABLED. The endpoint has a 250,000 requests/minute limit.

  • Identify Users

    Assign external IDs to alias-only, email-only, or phone-only Braze profiles, merging into an existing identified profile when applicable. This is irreversible when a merge occurs: the source alias-only, email-only, or phone-only profile is removed after its data is transferred. Requires users.identify and shares a 20,000 requests/minute rate limit. A 201 success only confirms acceptance: case mismatches, duplicate matches, or prioritization can produce no merge.

  • List Campaign Translations

    View every configured locale translation map for one campaign message variation, or filter by locale. Requires campaigns.translations.get, multi-language support on the message, and observes a 250,000 requests/minute limit.

  • List Campaigns

    Return one page of Braze campaigns for discovery, optionally including archived campaigns and filtering by last edit time.

  • List Canvas Translations

    Preview configured locale translations for one Canvas step message variation. Requires canvas.translations.get, multi-language support on the message, and observes a 250,000 requests/minute limit.

  • List Canvases

    Return one fixed provider page of up to 100 Braze Canvases for discovery, optionally including archived Canvases and filtering by last edit time. Braze exposes no page-size control; returning the complete page avoids losing continuation records. A local 10-item cap would save context tokens, not provider requests.

  • List Catalog Items

    Return one fixed provider page of up to 50 items from a Braze catalog, preserving arbitrary item attributes and exposing Braze Link-header pagination. Braze exposes no page-size control; returning the complete page avoids losing continuation records. A local 10-item cap would save context tokens, not provider requests. Requires the immutable catalogs.get_items API-key permission and shares the 50 requests/minute synchronous catalog item limit.

  • List Catalogs

    Return all catalogs in the connected Braze workspace. Braze exposes no page-size control or resumable boundary, so a local 10-item cap would hide catalogs and save context tokens, not provider requests.

  • List Cloud Data Ingestion Integrations

    Return one 10-item page of configured Cloud Data Ingestion integrations. Requires the workspace's Cloud Data Ingestion entitlement and has a 50 requests/minute limit.

  • List Cloud Data Ingestion Sync Statuses

    Return one 10-item page of sync statuses for a Cloud Data Ingestion integration. Requires the workspace's CDI entitlement and has a 100 requests/minute limit.

  • List Content Block Translations

    View every configured locale translation map for one Content Block, or filter by locale. Requires content_blocks.translations.get, multi-language translation tags on the block, and observes a 250,000 requests/minute limit.

  • List Content Blocks

    Return one offset-based page of persisted Braze Content Blocks. Omit offset on the first call and use next_request only when it is returned.

  • List Custom Attributes

    Return one fixed provider page of up to 50 alphabetically sorted custom-attribute definitions and a Link-header continuation cursor. Braze exposes no page-size control; returning the complete page avoids losing continuation records. A local 10-item cap would save context tokens, not provider requests.

  • List Custom Event Names

    Return one fixed provider page of up to 250 alphabetically sorted custom event names. Braze exposes no page-size control; returning the complete page avoids losing continuation records. A local 10-item cap would save context tokens, not provider requests.

  • List Custom Events

    Return one fixed provider page of up to 50 alphabetically sorted custom-event definitions and a Link-header continuation cursor. Braze exposes no page-size control; returning the complete page avoids losing continuation records. A local 10-item cap would save context tokens, not provider requests.

  • List Email Template Locale Translations

    View email template translations, optionally filtered to one locale. Braze documents locale_id as optional: when omitted, this action sends no locale filter and returns Braze's translation-list response without asserting which locales Braze will include. Requires templates.translations.get, a multi-language template, and observes a 250,000 requests/minute limit.

  • List Email Template Translations

    View all configured translations and locales for one email template. Requires templates.translations.get, a multi-language template, and observes a 250,000 requests/minute limit.

  • List Email Templates

    Return one offset-based page of stored HTML email templates. Drag-and-drop templates are excluded; omit offset on the first call.

  • List Hard Bounced Emails

    Return one newest-first offset page of hard-bounced emails. end_date and either start_date or email are required; an email lookup takes precedence over dates. Increase offset until a page has fewer than limit. Default rate limit: 250,000 requests/hour.

  • List Invalid Phone Numbers

    Return one newest-first offset page of invalid SMS numbers by UTC date range, or check exact E.164 numbers. Exact numbers take precedence over dates. Reasons are provider_error or deactivated. Increase offset until a page has fewer than limit. Default rate limit: 250,000 requests/hour.

  • List Preference Centers

    List all available Braze preference centers and their IDs and timestamps. Braze exposes no page-size control or resumable boundary, so a local 10-item cap would hide centers and save context tokens, not provider requests. Limited to 1,000 requests/minute per workspace. Braze publishes no separate plan-tier gate.

  • List Purchase Products

    Return every product ID from an optional caller-selected provider page. Braze documents page as a string but does not publish a page size, continuation token, or terminal marker, so a local 10-item cap could hide products and would save context tokens, not provider requests.

  • List Scheduled Broadcasts

    List dashboard and API scheduled campaigns and Canvas entries through an ISO 8601 end date. Recurring broadcasts appear only once at their next occurrence. Braze exposes no page-size control or resumable boundary, so a local 10-item cap would hide broadcasts and save context tokens, not provider requests. Requires messages.schedule_broadcasts and uses the default 250,000 requests/hour limit.

  • List SDK Authentication Keys

    HIGH IMPACT SECURITY READ: list all SDK Authentication public keys, IDs, descriptions, and primary status for one exact app. Braze exposes no page-size control or resumable boundary, so a local 10-item cap would hide security inventory and save context tokens, not provider requests. The response contains RSA public keys, never private keys. Restrict output handling because key inventory supports security administration. Default rate limit: 250,000 requests/hour.

  • List Segments

    Return one fixed provider page of up to 100 Braze segments and their IDs for audience discovery. Braze exposes no page-size control; returning the complete page avoids losing continuation records. A local 10-item cap would save context tokens, not provider requests. Archived segments are excluded by Braze and cannot be requested from this endpoint.

  • List Unsubscribed Emails

    Return one offset page of latest unsubscribe records for a UTC date range or exact email. end_date and either start_date or email are required. This is latest state, not full history; use Currents for history. Default rate limit: 250,000 requests/hour.

  • List User Subscription Groups

    Return one offset page of subscription groups that have status history for users selected by exactly one email or phone identifier type. Newly created groups with no user update are omitted. limit defaults to 10 and cannot exceed 100. Default rate limit: 250,000 requests/hour.

  • List Webhook Template Translations

    View configured translations for one webhook template, optionally filtered by locale. Requires templates.translations.get and webhook template translations enabled by Braze; otherwise Braze may return FEATURE_NOT_ENABLED. The endpoint has a 250,000 requests/minute limit.

  • Merge Users

    Asynchronously merge up to 50 Braze source profiles into retained target profiles. Each completed merge is irreversible: the source profile is removed after its data is transferred to the retained target. Requires users.merge and shares a 20,000 requests/minute rate limit. Target values take precedence for existing attributes; counters and selected dates are combined. A 202 success confirms acceptance only, and invalid non-E.164 stored phones can cause a silent skipped merge.

  • Remove Deprecated External IDs

    Permanently remove up to 50 deprecated Braze external IDs. Requires users.external_ids.remove and is limited to 1,000 requests/minute. Primary IDs cannot be removed; inspect removal_errors because valid requests can partially fail.

  • Remove Hard Bounced Emails

    HIGH IMPACT: remove one to 50 exact addresses from both the Braze bounce list and the email provider's bounce list, potentially making them deliverable again. Revalidate ownership and deliverability first. Success is rejected unless Braze explicitly returns message=success. Default rate limit: 250,000 requests/hour.

  • Remove Invalid Phone Numbers

    HIGH IMPACT: remove one to 50 exact E.164 numbers from Braze's invalid list so they can be revalidated and may receive SMS again. Confirm number ownership and deliverability first. Success is rejected unless Braze explicitly returns message=success. Default rate limit: 250,000 requests/hour.

  • Remove Emails From Spam List

    HIGH IMPACT: remove one to 50 exact addresses from both the Braze spam list and the email provider's spam list, potentially making them deliverable again. Confirm recipient consent first. Success is rejected unless Braze explicitly returns message=success. Default rate limit: 250,000 requests/hour.

  • Rename External IDs

    Rename up to 50 primary Braze external IDs, preserving each old ID as deprecated. Requires users.external_ids.rename, is limited to 1,000 requests/minute, logs no data points, and does not affect MAU. Items process independently; inspect rename_errors and later remove deprecated IDs when migration is complete.

  • Replace Catalog Item

    Synchronously replace a Braze catalog item, creating it if item_id does not exist. Requires the immutable catalogs.replace_item API-key permission and shares a 50 requests/minute synchronous item limit.

  • Replace Multiple Catalog Items

    Asynchronously replace or create up to 50 Braze catalog items by id. Requires the immutable catalogs.replace_items API-key permission and shares a 16,000 requests/minute asynchronous item limit. Catalog storage limits can reject the request. A 202 response is acceptance only, with no documented job or terminal result.

  • Replace Media Library Asset File

    HIGH IMPACT: request replacement of the file associated with one exact Braze media-library asset ID using a public HTTP(S) URL. The existing asset ID and hosted URL are preserved only when Braze confirms success. The replacement extension must exactly match. Replacement supports images, SVGs, documents, fonts, contact cards, and code files; video is unsupported and provider-enforced size limits apply. This action supports the implemented asset_url mode only and does not claim replacement from HTTP status alone. Rate limit: 100/hour.

  • Send Campaign Trigger

    HIGH IMPACT: immediately request an API-triggered campaign send. Provide up to 50 recipients, optionally intersected with a Connected Audience. Audience-only targeting requires broadcast=true; broadcast cannot include individual recipients. An accepted send cannot be retracted. Recipient attributes can update a profile or, with send_to_existing_only=false and an external ID, create a profile. Requires an active dashboard API-triggered campaign and campaigns.trigger.send. A dispatch ID means Braze accepted one batched transmission; it does not prove per-user dispatch or delivery. Per-recipient errors are returned.

  • Send Canvas Trigger

    HIGH IMPACT: immediately request entry into an API-triggered Canvas. Provide up to 50 recipients, optionally intersected with a Connected Audience. Audience-only targeting requires broadcast=true; broadcast cannot include individual recipients. Accepted entry cannot be retracted. Recipient attributes can update a profile or, with send_to_existing_only=false and an external ID, create a profile. Requires canvas.trigger.send and an active Canvas. A paused or archived 201 response is rejected because no entry occurs. A dispatch ID is acceptance, never proof of message delivery; per-recipient errors are preserved.

  • Send API-Only Messages

    HIGH IMPACT: immediately request API-only messages to existing Braze users. Individual targets are limited to 50 combined external IDs and aliases; without individuals you must explicitly set broadcast=true with a segment or Connected Audience. An accepted send cannot be retracted. Requires messages.send. Channel payloads enforce documented required fields, enums, and exclusions; rendered payload size and channel eligibility are provider gates, and a dispatch ID confirms acceptance only, not recipient dispatch or delivery.

  • Send Transactional Campaign

    HIGH IMPACT: send one immediate transactional email from a Braze Transactional Email campaign to exactly one external-ID or alias recipient; an accepted send cannot be retracted. Recipient attributes can update a profile or create a missing external-ID profile before sending. This is a select-package paid capability requiring an active transactional campaign, transactional.send, and hourly units. external_send_id deduplicates for 24 hours. sent and processed are not delivery; aborted and bounced are terminal failures, while delivered confirms inbox-provider acceptance.

  • Set Global Email Subscription Status

    HIGH IMPACT: set the global email subscription state for one to 50 exact addresses, including addresses not yet attached to a profile. Global unsubscribed overrides every subscription group. Success is rejected unless Braze explicitly returns message=success. Default rate limit: 250,000 requests/hour.

  • Set Primary SDK Authentication Key

    HIGH IMPACT SECURITY OPERATION: make one exact existing SDK Authentication key the primary key for one exact app. This changes which key new SDK clients should use. Success is rejected unless the returned key list marks that exact key primary. Default rate limit: 250,000 requests/hour.

  • Set Subscription Group Status

    HIGH IMPACT: batch subscribe or unsubscribe up to 50 users in one exact group. Email-only or phone-only calls can affect every profile sharing the identifier; external IDs may be combined with one channel identifier. Orphaned channel states persist up to 30 days. LINE group use requires approval from the Braze customer success manager. message=success confirms acceptance only, not the resulting state. In particular, SMS double opt-in can no-op when no user profile exists. Shared V1/V2 rate limit: 5,000 requests/minute.

  • Set Subscription Group Statuses

    HIGH IMPACT: batch subscribe or unsubscribe users across multiple groups. Each group update must use exactly one of external_ids, emails, or E.164 phones; only external IDs may span email and SMS groups in one call. Orphaned channel states persist up to 30 days. LINE group use requires approval from the Braze customer success manager. message=success confirms acceptance only, not resulting states. In particular, SMS double opt-in can no-op when no user profile exists. Shared V1/V2 rate limit: 5,000 requests/minute.

  • Start Live Activity

    HIGH IMPACT: remotely request an iOS Live Activity start for exactly one target mode: up to 50 external users, one Connected Audience, or one segment. Requires Swift SDK push-to-start setup, matching ActivityAttributes and ContentState shapes, payload-size compliance, and messages.live_activity.start. HTTP 201 means Braze received a valid request; it does not prove APNs dispatch, display, or delivery.

  • Create and Update Users

    Asynchronously ingest Braze attributes, custom events, or purchases, up to 75 combined objects per portable request. Attribute objects can create or update profiles; event and purchase objects are durably recorded. Requires users.track. Each custom attribute consumes a data point; rate limits vary by contract (3,000 requests per three seconds for data-point pricing). Inspect errors because valid requests can partially process, and separate calls are not ordered. Conflicting data may process out of order; wait five minutes between requests containing conflicting data to guarantee final ordering. Callers should batch writes instead of making one-object calls when possible.

  • Trigger Cloud Data Ingestion Sync

    HIGH IMPACT: enqueue a sync for an existing Cloud Data Ingestion integration. This can ingest durable user or non-user data and consume data points. A 202 success only confirms acceptance, not completion; poll sync statuses. Requires CDI entitlement and is limited to 20 requests/minute.

  • Update Campaign Translations

    Submit a durable update request with translation-tag string values for one campaign message locale. This does not publish, launch, send, or prove delivery; read back the translations to verify resulting stored content. A launched campaign must first have its message saved as a draft. Requires campaigns.translations.update and has a 250,000 requests/minute limit.

  • Update Campaign Trigger Schedule

    HIGH IMPACT: durably replace the full schedule for a previously scheduled API-triggered campaign. Omitted local or optimal-time flags do not carry forward. Near send time changes are best-effort, and a local-time schedule cannot be updated after its time passed in any zone. Requires campaigns.trigger.schedule.update; the change persists until updated, deleted, or sent, and acceptance does not prove every recipient was changed.

  • Update Canvas Translations

    Submit a durable update request with translation-tag string values for one Canvas step message locale. This does not publish, launch, send, or prove delivery; read back the translations to verify resulting stored content. A launched Canvas must first have its message saved as a draft. Requires canvas.translations.update and has a 250,000 requests/minute limit.

  • Update Canvas Trigger Schedule

    HIGH IMPACT: durably replace the full schedule for a previously scheduled API-triggered Canvas. Omitted local or optimal-time flags do not carry forward, and near-send changes are best-effort. Requires canvas.trigger.schedule.update; the change persists until updated, deleted, or entered, and acceptance does not prove every intended entry was changed.

  • Update Catalog Item

    Synchronously patch one existing Braze catalog item. Requires the immutable catalogs.update_item API-key permission and shares a 50 requests/minute synchronous item limit. The item ID belongs only in the path.

  • Update Multiple Catalog Items

    Asynchronously patch up to 50 existing Braze catalog items. Requires the immutable catalogs.update_items API-key permission and shares a 16,000 requests/minute asynchronous item limit. A 202 response confirms acceptance only and supplies no documented job ID, per-item result, or completion proof.

  • Update Content Block

    Persist changes to one existing Braze Content Block by API identifier. This updates stored content only; it does not send or deliver a message.

  • Update Content Block Translations

    Submit a durable update request with translation-tag string values for one Content Block locale. This does not publish, send, or prove delivery in a message using the block; read back the translations to verify resulting stored content. Requires content_blocks.translations.update and has a 250,000 requests/minute limit.

  • Update Email Template

    Persist one or more changes to an existing Braze email template by API identifier. This updates stored content only; it does not send or deliver email.

  • Update Email Template Translations

    Submit a durable update request with translation-tag string values for one email template locale. This does not send, schedule, publish, or prove email delivery; read back the translations to verify resulting stored content. Requires templates.translations.update and has a 250,000 requests/minute limit.

  • Update Live Activity

    Update an SDK-registered iOS Live Activity without ending it. Requires matching ContentState shape, payload-size compliance, and messages.live_activity.update. An optional dismissal_date updates when the activity is removed from the UI without ending it. Use END_LIVE_ACTIVITY for the irreversible terminal operation. HTTP 201 confirms receipt only, not APNs dispatch, display, dismissal, or delivery.

  • Update Message Schedule

    HIGH IMPACT: durably update the schedule, documented channel message objects, or both for an API-only scheduled message. The replacement persists until updated, deleted, or sent. Requires messages.schedule.update; acceptance confirms neither dispatch nor delivery.

  • Update Preference Center

    HIGH IMPACT: durably update a Braze preference center's required page HTML and confirmation HTML, plus an optional title, state, or options configuration. Omitted title, state, and options are not sent. The immutable name is not accepted. Limited to 10 requests/minute per workspace.

  • Update Push Credentials

    HIGH IMPACT: replace one app's push credentials for exactly one platform. A bad credential can stop push delivery. Braze documents no endpoint-specific rate limit or public plan gate; the workspace must expose the Apps credential API.

  • Update User Aliases

    Asynchronously request renaming of up to 50 existing Braze aliases. Requires users.alias.update and shares a 20,000 requests/minute rate limit. A success response confirms acceptance only, not completion; update ordering is not guaranteed, and a nonmatching old alias may produce no change.

  • Update Webhook Template Translations

    Submit a durable update request with translation-tag string values for one webhook template locale. This does not invoke, publish, deliver, or prove delivery of a webhook; read back the translations to verify resulting stored content. Requires templates.translations.update and webhook template translations enabled by Braze; otherwise Braze may return FEATURE_NOT_ENABLED. The endpoint has a 250,000 requests/minute limit.

Built for the way you actually work

No code, no engineers

Connect in a few clicks and start using your AI right away. If you can use the apps you already love, you can do this.

Sounds like you, not like a bot

Train your AI on your offer, your voice, and the way you actually talk to clients — it picks up where you leave off.

Plugs into the stack you already use

No need to rip out your CRM, your scheduler, or your email tool. Your AI works inside the apps running your business today.

Your data stays yours

Client conversations, lists, and credentials are scoped to your workspace. Nothing gets shared, sold, or used to train anyone else’s AI.

What you can do once Braze is connected

Onboard new clients without lifting a finger

When someone signs up, your AI greets them, sets up their next step in Braze, and keeps the momentum going — even at 2am.

Reply to leads in seconds, not days

Your AI watches Braze for new inquiries, answers questions in your voice, and books the call before they cool off.

Get your weekends back

Hand off the repetitive Braze work — follow-ups, reminders, updates, simple admin — and stop being the bottleneck in your own business.

How to connect Braze to your agent

  1. 1

    Start using FormWise for free

    Sign up in under a minute.

  2. 2

    Find Braze in your connected apps

    Inside FormWise, go to Settings → Connected Services and look for Braze.

  3. 3

    Hit "Connect"

    Click "Connect Braze" and log in like you normally would. We only ask for the permissions your AI actually needs.

  4. 4

    Tell your AI what to do in Braze

    Build a quick AI Agent (it's like writing instructions, not code), and pick the Braze actions you want your AI to handle.

  5. 5

    Watch it run

    Send it a real-world task and watch your AI take care of Braze for you. Tweak the wording until it feels just right.

Powered by the AI you already trust

Your Braze workflow runs on the same world-class AI used by ChatGPT, Claude, and Gemini. We handle the technical part — you just tell your AI what to do, in plain English.

  • OpenAI
  • Anthropic Claude
  • Google Gemini

Questions other Braze users had before signing up

Do I need to know how to code?

Not even a little. If you can use Braze today, you can set this up. You'll connect Braze, tell your AI what it should help with, and you're live. The whole thing is built for coaches, course creators, agencies, and operators — not engineers.

Will my clients know they're talking to an AI?

Only if you want them to. Your FormWise AI is trained on your voice, your offer, and the way you actually communicate — so it sounds like a thoughtful team member, not a clunky chatbot. Most people can't tell.

Can I make it sound like me?

Yes. You can give your AI examples of how you write, the questions you usually ask new clients, the way you handle objections, and the language you use about your offer. The more you give it, the more it sounds like you wrote it.

What if I want to take over a conversation?

You're always in control. You can step in at any point, take over from your AI, or stop it from sending messages until you've reviewed them. Think of it as a teammate, not a replacement.

Is my client data safe?

Yes. Your Braze login and client information stay scoped to your workspace. We don't sell it, we don't share it, and we don't use your data to train anyone else's AI. You can disconnect Braze or delete everything any time.

What happens when Braze updates their app?

We handle it. When Braze adds new features or changes how something works, we update the integration in the background. You don't have to do anything — your AI just keeps working.

How fast can I actually get this running?

Most people are up and running the same day they sign up. Connecting Braze takes a few minutes. Teaching your AI to handle the work the way you'd want it done is the part worth slowing down for.

What is FormWise?

FormWise is the AI agent builder for coaches, course creators, and agencies. You connect the apps you already use — like Braze — train your AI on your offer and voice, and let it handle the work you've been doing manually: onboarding, follow-ups, support, admin. No code, no developers, no engineering team required.

Can I sell AI agents to my clients?

Yes. A lot of FormWise users build AI assistants and sell them as part of their offer — done-for-you AI setups, white-label assistants for client businesses, custom GPTs trained on a client's brand. You can charge a setup fee, a monthly retainer, or both.

Can I embed my AI on my website or in my course?

Yes. Every AI you build in FormWise can be embedded on your site, dropped into your course platform, or shared as a standalone link. Your clients and students just open it like any other web page — no app to download, no login hoops.

Do I need to know anything about AI to use this?

No. If you can describe what you want your AI to do in plain English — "greet new clients, ask these 3 questions, book them a call" — FormWise can build it. We handle the models, the prompts, the connections. You handle the part you already know: what your business actually needs.

About Braze on FormWise

Braze is a customer engagement platform for managing user data, messaging, campaigns, analytics, catalogs, templates, and workspace automation.

Connect Braze once and your FormWise AI gets 119 things it can do inside it. That means your AI can handle the Braze work in your business — the messages, the updates, the follow-ups, the admin — the way you would, just faster and around the clock.

You don't need to know how any of it works under the hood. We take care of keeping the connection alive, retrying if something fails, and making sure your data only ever moves where you tell it to.

New to Braze? Take a look at www.braze.com.

Stop doing the Braze work yourself

Hand it off to an AI assistant that sounds like you, works around the clock, and never forgets a follow-up. Free to start.