API Alerts 2.0 is in closed beta. This page describes the full 2.0 product. Current beta status →

Event Routing

API Alerts doesn’t just notify, it routes. Every event that enters your workspace is matched against rules and delivered to the destinations you choose. Send once, deliver everywhere.

How it works

The routing pipeline has three stages:

  1. Event arrives. Via SDK, REST API, Zapier, or GitHub Actions
  2. Routers match. Each router checks if the event name matches its glob pattern
  3. Destinations deliver. Matched routers forward the event to their configured destinations

Push notifications are always delivered to channel members regardless of routing rules. Routers control where events go externally: email, SMS, Slack, webhooks, and more.

Routers

A router is a rule that matches events by name and forwards them to one or more destinations. Each router has:

  • Name. A label for the rule (e.g. “Payment alerts”, “Deploy notifications”)
  • Glob pattern. The event name pattern to match
  • Destinations. The integrations to forward matching events to

Glob patterns

Routers use glob patterns - the same style as shell globs or .gitignore - to match event names. Dotted notation like domain.action keeps patterns clean and predictable, but any naming convention works.

PatternMatches
*Every event
user.*user.purchase, user.signup, user.login
*.failedpayment.failed, payment.subscription.failed, deploy.failed
ci.*.publishci.sdk.publish, ci.mobile.android.publish
*deploy*ci.deploy.success, predeploy-check, deploy.success
Deploy *Deploy Complete, Deploy Failed
user.purchaseExact match only

* matches any sequence of characters, including dots and spaces. See the event routing docs for the full grammar reference.

The default router uses * to match everything, so your first event triggers a notification immediately with zero configuration.

Destinations

A destination connects a router to an integration. It controls how the event is formatted when delivered. Each destination has:

  • Integration. Which service to deliver to (Email, Slack, Webhook, etc.)
  • Template. How the event data is formatted for that service
  • Enabled/Disabled. Toggle delivery without removing the destination

One router, many destinations

A single router can have multiple destinations. When an event matches, it’s delivered to all of them in parallel:

  • user.purchase → Email to the sales team + Slack #revenue + Webhook to analytics

One integration, many destinations

A single integration connection (e.g. one Slack workspace) can be used across multiple routers and destinations. Connect once, use everywhere.

Event Designer

Every destination includes a visual Event Designer for customising how events appear. The designer is tailored to each integration type:

  • Email. Subject line + body sections with labels and values
  • SMS / WhatsApp. Title and message fields
  • Slack. Block Kit layout with header, text, fields, and buttons
  • Webhooks. JSON payload editor with smart typing

All templates support template variables like {{title}}, {{message}}, {{data.name}}, and more.

Default setup

When you create a workspace, you get:

  • A default * router that matches all events
  • Push notifications enabled for all channel members
  • Email and SMS integrations ready to configure

Send your first event and you’ll get a push notification immediately. Add destinations to the default router to start receiving alerts via email, Slack, or webhooks.

Get started

  1. Create a workspace and send your first event
  2. Open the Routers page in the dashboard
  3. Add destinations to the default router, or create new routers with specific patterns
  4. Customise each destination’s template with the Event Designer

See the integrations page for details on each destination type, or the event routing docs for the full technical reference on router configuration, delivery pipeline, and destination status lifecycle.