Skip to main content

Triggering Braze Campaigns from StellarAlgo Automations

Set up end-to-end automation so campaigns fire automatically after segment push to Braze.

A
Written by Andrew McNiece

This article covers:

• How StellarAlgo triggers Braze API-triggered campaigns after a segment push

• Prerequisites in your Braze account

• Step-by-step setup for campaigns and Canvases

• Per-game campaign mapping for schedule-based automations

• Personalizing your campaign with game details

• Error handling and troubleshooting

• Known limitations and best practices

Overview

StellarAlgo can automatically trigger a Braze campaign or Canvas after pushing a segment to Braze. This means your team no longer needs to manually monitor segment pushes and kick off campaigns - the entire flow from audience creation to message delivery happens without intervention.

The API trigger functionality is currently limited to Event based Automations only. Time based automations and normal static/dynamic pushes from Segment Builder doesn't support this feature.

Before this capability, StellarAlgo pushed segment data to Braze by updating custom attributes on fan profiles (such as SA_Segment_Name). Your team then had to build Braze-side automations to detect those attribute changes and fire campaigns. Because SA_Segment_Name is stored as an array (a fan can belong to multiple segments), Braze's API-triggered campaigns could not use it as a trigger condition.

This created a gap - segments arrived in Braze, but nothing happened downstream.

Now, StellarAlgo calls the Braze API directly after a successful push to trigger the campaign you've selected. The segment push and the campaign trigger are a single automated flow.

How It Works

The end-to-end flow has four stages:

  1. Automation runs on schedule: StellarAlgo evaluates the segment rules (e.g., 'All single-game ticket holders for tomorrow's game') and builds the audience list.

  2. Segment push to Braze: StellarAlgo updates each fan's custom attributes in Braze (via the /users/track endpoint). The SA_Segment_Name array is updated to include the segment name.

  3. Campaign trigger: After the push completes successfully, StellarAlgo calls the Braze /campaigns/trigger/send endpoint (or /canvas/trigger/send for Canvases) with the campaign ID you selected during setup. Recipients are batched in groups of 50 per Braze's API limits.

  4. Braze sends the message: Braze delivers the email, push notification, or in-app message to the fans in the segment. Your team's campaign template, creative, and settings control the content.

Prerequisites

Before setting up campaign triggering, confirm the following in your Braze account:

Braze API Key Permissions

Your Braze REST API key must include the campaigns.trigger.send permission. We require campaigns.list + canvas.list to retrieve the list campaigns/canvases. We query specifically for unarchived campaigns/canvases.

We also need campaigns.details + canvas.details permissions to retrieve more info about each object. We are looking specifically for API Trigger schedule delivery type; we only show these campaigns/canvases to the User.

Braze does not allow editing permissions on an existing API key. If your current key does not have this permission, you will need to generate a new API key in the Braze Developer Console and share it with your StellarAlgo team to update your destination configuration.

Users.identify is an optional API permission that we recommend the client to grant. This will help us in debugging production support issues

⚠️ Important: If you also plan to trigger Canvases, your API key will need the canvas.trigger.send permission as well. Generate both permissions on the same key to avoid needing a second update later.

API-Triggered Campaign in Braze

You must create your campaign in Braze with the delivery type set to 'API-Triggered Delivery.' This is different from scheduled or action-based delivery. API-triggered campaigns sit dormant in Braze until an external system (StellarAlgo) sends a trigger request.

To create an API-triggered campaign in Braze:

  1. In Braze, go to Campaigns and click Create Campaign.

  2. Choose your channel (email, push, etc.) and configure your message content

  3. Under Delivery, select 'API-Triggered Delivery' as the delivery type.

  4. Configure re-eligibility settings. For game-day campaigns (like Know Before You Go), set re-eligibility to allow users to receive the campaign every time - set the delay to 0 minutes so fans receive it for every game.

  5. Save and activate the campaign. It will remain dormant until triggered.

Braze Canvas (for Multi-Step Journeys)

If your use case requires multiple messages in sequence (for example, a Know Before You Go email followed by a day-of parking reminder followed by a post-game survey), build a Canvas in Braze instead of individual campaigns. StellarAlgo can trigger Canvas entry via the /canvas/trigger/send endpoint, and Braze handles the multi-step journey from there.

This is the recommended approach for complex game-day workflows: let StellarAlgo trigger entry once and let the Canvas orchestrate the message sequence internally.

Setting Up in StellarAlgo

  1. Navigate to Automations in StellarAlgo platform and create an automation.

  2. Select Braze as your push destination.

  3. In the destination configuration, you will see a 'Trigger Campaign' dropdown. This dropdown is populated automatically by querying your Braze account for available API-triggered campaigns.

  4. Select the campaign you want to trigger after each segment push. For schedule-based automations, you will see each game listed separately - select a campaign for each game (see Per-Game Campaign Mapping below).

  5. Save the automation. When it runs, StellarAlgo will push the segment to Braze and then immediately trigger the selected campaign.

ℹ️ Campaign selection is optional. If you do not select a campaign, the automation works exactly as it does today - the segment is pushed to Braze and fan profiles are updated, but no campaign fires.

Note: Campaign trigger configuration can only be set when creating a new automation. To change the campaign selection, you will need to create a new automation

Per-Game Campaign Mapping

For schedule-based automations (like Know Before You Go or Last-Minute Tickets), each game in your season schedule appears as a separate row in the automation configuration. You select a Braze campaign for each game individually.

This gives you flexibility:

  • Use the same campaign for every game if the content is identical.

  • Use different campaigns for different games if you want to customize content (e.g., a different creative for rivalry games or promotional nights).

  • Skip games by leaving the campaign selection empty - the segment will still push, but no campaign will fire for that game.

Example: You set up a 'Day-Of Reminder' automation for your 9 home games. Each game lists all available API-triggered campaigns from your Braze account. You select 'Game Day Reminder – Standard' for 7 games and 'Game Day Reminder – Rivalry' for the 2 rivalry matchups.

Personalize Your Campaign with Game Details

For automations tied to a game, StellarAlgo passes that game's details along with the trigger, so your Braze message can be personalized per game. The available details are the home team, the opponent (away team), the game date and time, the local game time, and the venue.

You reference these in your Braze content with api_trigger_properties Liquid tags. Ask your StellarAlgo contact for the exact tag names to use, since they must match what StellarAlgo sends.

Error Handling

The segment push and the campaign trigger are two separate steps. If the campaign trigger fails, the segment push is not rolled back - fan profiles in Braze still have their updated attributes.

What Happens on Failure

Scenario

Segment Push

Campaign Trigger

Result

Everything works

Success

Success

Fans receive the campaign. No action needed.

Braze API error (e.g., rate limit)

Success

Failed

Automation marked as Failed. Segment is in Braze, but campaign did not fire. Check the error in the automation log.

Invalid campaign ID (deleted or archived)

Success

Failed

Same as above. Create a new automation with the correct campaign selected.

Segment push fails

Failed

Not attempted

Campaign trigger is not attempted if the push itself fails. Investigate the push error.

When a campaign trigger fails, the error is logged using StellarAlgo's structured error taxonomy. Your CSM can review the specific error in the automation execution log and help resolve the issue.

Recipient Batching

Braze's API allows a maximum of 50 recipients per trigger request. StellarAlgo automatically batches your audience into groups of 50. If one batch fails, the remaining batches still proceed - the failure is isolated so that a single API error does not prevent the entire audience from receiving the campaign.

Limitations and Best Practices

Current Limitations

  • One campaign per game per automation. Each game in a schedule-based automation supports a single campaign trigger. If you need multiple campaigns to fire for the same game (e.g., KBYG email + parking reminder + post-game survey), you have two options: (1) create separate automations for each campaign, or (2) use a Braze Canvas that handles the multi-step sequence internally, triggered once by StellarAlgo.

  • Campaign selection is static. The campaign ID is saved when you configure the automation. If you delete or archive the campaign in Braze, the trigger will fail. Because destination configuration cannot be edited on an existing automation, you will need to create a new automation with the correct campaign selected.

  • API key changes require coordination. If you regenerate your Braze API key, you must share the new key with StellarAlgo so we can update your destination configuration. Without the updated key, both segment pushes and campaign triggers will fail.

  • Audience matching depends on fan identifiers. StellarAlgo sends fans to Braze using the external_id mapped to your Braze account. If a fan does not have a valid Braze external_id in StellarAlgo, they will be included in the segment push but may not receive the triggered campaign. This can result in the campaign recipient count in Braze being lower than the segment size in StellarAlgo. Work with your CSM if you notice discrepancies between your segment size and Braze delivery numbers.

  • Destination configuration cannot be edited after creation. The campaign trigger and destination settings are locked once the automation is saved. To change which campaign is triggered or update destination settings, create a new automation with the desired configuration.

Best Practices

  1. Use Canvases for multi-step game-day flows. Build the journey in Braze (pre-game → day-of → post-game) and let StellarAlgo trigger entry once. This avoids needing multiple automations.

  2. Set re-eligibility to 0 minutes for recurring campaigns. Game-day campaigns should allow fans to receive the message every time

  3. Test with a small segment first. Before enabling campaign triggers on your full automation, run a test push with a small audience to verify the campaign fires correctly in Braze.

  4. Name your API-triggered campaigns clearly. Since StellarAlgo pulls a list of all your API-triggered campaigns, clear naming (e.g., 'KBYG – Standard', 'FKA Post-Game – Survey') makes selection easier during automation setup.

  5. Verify API key permissions after any key rotation. Confirm that the new key includes campaigns.trigger.send (and canvas.trigger.send if using Canvases).

  6. Plan your campaign mapping before creating the automation. Since destination settings cannot be changed after creation, confirm your campaign IDs and per-game mapping before saving the automation.

Frequently Asked Questions

Q: Do I still need to build Braze-side automations to react to SA_Segment_Name changes?

A: No. With campaign triggering enabled, StellarAlgo fires the campaign directly via the API. You no longer need to build Braze automations that watch for attribute changes. The SA_Segment_Name attribute is still updated on fan profiles (for audience targeting and Canvas eligibility), but the campaign trigger comes from StellarAlgo, not from Braze's internal automation engine.

Q: What if the same fan is in multiple segments - will they get the campaign twice?

A: Each automation triggers its own campaign independently. If a fan is in two automations that both trigger campaigns, they may receive two messages. Use Braze's re-eligibility settings and frequency capping to manage this.

Q: Can I use trigger properties to personalize the Braze campaign content?

A: Yes. For game-based automations, StellarAlgo passes the game's details (home team, opponent, game date and time, local game time, and venue) along with the trigger, so you can personalize your Braze message using api_trigger_properties Liquid tags. Ask your StellarAlgo contact for the exact tag names to use, since they must match what StellarAlgo sends. See Personalize Your Campaign with Game Details above.

Q: What's the difference between a Braze Campaign and a Braze Canvas?

A: A Campaign is a single message (one email, one push notification, etc.). A Canvas is a multi-step journey that can include delays, branching, and multiple messages. If you need a single message per game, use a Campaign. If you need a sequence (pre-game → game-day → post-game), use a Canvas.

Q: Will this work with Braze Currents or engagement data?

A: Yes. Because the campaign is a standard Braze API-triggered campaign, all downstream analytics (opens, clicks, conversions) are tracked in Braze as usual. Currents data will flow normally.

Need help? Contact your StellarAlgo CSM to enable campaign triggering for your Braze destination or reach out to support@stellaralgo.com.

]]>

Did this answer your question?