AlphornBeta
Chat & MessagingIntegration

Zulip

Send notifications to Zulip streams

Post messages to Zulip streams and topics using the bot API. Zulip's threaded model keeps notifications organized by topic.

How it works

1

Configure

Add the channel in your Alphorn dashboard with your credentials.

2

Send a webhook

POST a JSON payload to your Alphorn webhook endpoint.

3

Delivered

Alphorn filters, routes, and delivers the notification automatically.

Use cases

  • Threaded project update notifications
  • Academic and research group alerts
  • Open-source project automation

Configuration

  • Zulip server URL
  • Bot email and API key
  • Stream and topic targeting

Send your first notification

One HTTP request is all it takes. Alphorn handles routing to Zulip automatically.

Terminal
$ curl -X POST https://app.alphorn.dev/n/V1StGXR8_Z5jdHi6B-myT \
  -H "Authorization: Bearer $ALPHORN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title":"Deploy complete","message":"v2.1.0 is live","priority":3,"tags":["deploy"]}'

What Alphorn adds on top of Zulip

Wiring Zulip into your application directly is the easy part. What usually grows into a maintenance problem is everything around it: retries when the provider is having a bad day, backoff so you don't get rate-limited, fan-out to additional destinations when a rule fires, and a delivery log for debugging. Alphorn owns all of that on your behalf, so the integration code you write stays at one HTTP call forever.

Every notification is stored in a durable PostgreSQL-backed queue before Alphorn delivers it to Zulip. If delivery fails, Alphorn makes up to five attempts with exponential backoff and records the failure in the delivery log. You can trigger a secondary notification when deliveries to a primary channel fail, for example, page an on-call engineer when a daily summary to a chat room stops going through. Filtering rules based on priority, tags, or JSON path expressions decide at runtime whether a particular payload reaches Zulip or gets routed somewhere else entirely.

The same rules apply whether you're on the managed edition or running Alphorn yourself. The self-hosted edition is AGPL-3.0-or-later and ships as a single container, so you can deploy the exact same delivery pipeline on your own infrastructure, useful for regulated environments where notification data has to stay inside your own network.

Related chat & messaging integrations

Alphorn can route the same notification to multiple channels. Pair Zulip with another chat & messaging destination:

Start routing to Zulip

Free plan includes 3,000 messages/month. No credit card required.