Hourly
Get alerted when Braze webhook sends fail
You find out when a campaign's webhook sends start erroring, before the problem runs for days.
- Runs
- Hourly
- Apps
- Braze
- AI
- Not needed
- Access
- campaigns.data_series
Send this to your assistant
Create a ClickRuntime automation: every hour, check today's webhook errors for my Braze campaign 'Order Sync' and email me if there are more than 10.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Braze campaigns that call a webhook, for example to notify a partner system or a CRM when a message is sent, can fail without anybody noticing. The receiving endpoint changes, a certificate expires or the partner starts rate limiting, and Braze records the failed calls as errors in the campaign statistics. The campaign keeps sending emails, but the downstream system stops receiving updates, and the gap is found by someone asking why a report is empty.
Once an hour, ClickRuntime fetches the data series for the campaign, reads the webhook errors count and compares it with your threshold. If errors rise above it, you get an alert. Quiet hours with no errors produce nothing at all, so a message means something is wrong.
Marketing operations and engineering teams who connect Braze to other systems rely on it to catch broken integrations. Teams that depend on a webhook feeding a CRM, billing system or data warehouse benefit most from this check, particularly after any endpoint or credential change.
What you get out of it
Integrations are repaired within the hour
A rising error count surfaces within an hour of the receiving system failing. Fixing a broken endpoint quickly limits how much downstream data goes missing. The message arrives while the cause is still recent and the logs are available.
Downstream data stays complete
When a partner or CRM misses webhook calls, its records fall out of step with Braze. Catching errors early means fewer manual backfills afterwards. Backfilling a week of missing records is slow and error prone, so preventing the gap is worth much more than repairing it.
Silent failures become visible
Braze does not email you when webhook sends fail. Checking the error figure on a schedule turns an invisible problem into a message you can act on. Without a scheduled check, the first sign is often a stakeholder noticing an empty report days later.
Thresholds filter out harmless noise
One or two stray errors rarely matter. Setting the limit to match your normal level means alerts appear only for genuine breakage. A properly chosen number keeps people trusting the alert when it does fire, and prevents fatigue.
Marketing and engineering share the signal
The alert names the campaign and the error count, so both teams look at the same facts. That shortens the argument about whether the fault lies in the campaign or the endpoint.
How it works
What happens, step by step
Every hour, ClickRuntime checks today's numbers for your chosen Braze campaign, such as Order Sync.
It counts how many of the campaign's webhook sends have failed today.
If there are more than 10 errors, you get an email with the count, so you can fix the problem before it runs for days.
Before it runs live
- Connect Braze
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Run it at a different time, more or less often, or only on weekdays
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other Braze steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_trigger, credentials, notify, http
BRAZE = "https://rest.iad-01.braze.com"
CAMPAIGN_ID = "order-sync-campaign-id" # Braze campaign "Order Sync"
MAX_ERRORS = 10
@on_trigger
def run(event):
resp = http.get(f"{BRAZE}/campaigns/data_series",
headers={"Authorization": f"Bearer {credentials.secret('BRAZE_API_KEY')}"},
params={"campaign_id": CAMPAIGN_ID, "length": 1})
resp.raise_for_status()
today = resp.json()["data"][-1]
errors = sum(v.get("errors", 0) for v in today["messages"].get("webhook", []))
if errors > MAX_ERRORS:
notify.email_me("Braze Order Sync webhook errors", f"{errors} webhook errors today on Order Sync (limit {MAX_ERRORS}).")
return {"errors": errors}FAQ
Common questions
What counts as a webhook error in Braze?
Can it monitor several campaigns?
Why hourly rather than instant?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Post yesterday's Braze campaign stats to Slack
Each morning your team sees sends, opens, conversions and revenue for your main campaigns, by channel.
See how it worksKnow the moment your website goes down
Your team hears in Slack when the site stops responding or slows down, and again when it's back.
See how it worksPost a morning briefing to Slack
Your team starts the day with the weather, a reminder or anything else you'd like in #general.
See how it worksKeep exploring
Set up “Get alerted when Braze webhook sends fail” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.