Tired of paying $199.5/month (10 users) for Opsgenie? Here’s how teams like yours are slashing costs by 90% while gaining full control over alert routing and templates using Versus Incident – an open-source alternative trusted by DevOps teams managing 10k+ servers.
Why Teams Are Switching
| Feature | Opsgenie | Versus Incident | 
|---|---|---|
| Cost | $2,280/year (10 users) | Free | 
| Custom Templates | Limited | Go Templating | 
| Multi-Channel Routing | Add-on Fees | Built-in | 
| Lock-in Risk | High | None | 
In this guide, you’ll learn how to route Prometheus Alertmanager alerts to Slack and Telegram using the Versus Incident, while fully customizing alert messages.

Step 1: Redirect Alertmanager to Versus (5 Minutes)
Update your alertmanager.yml to bypass Opsgenie’s webhook:
route:
  receiver: 'versus-incident'
  group_wait: 10s  # Faster than Opsgenie's 30s default!
receivers:
- name: 'versus-incident'
  webhook_configs:
  - url: 'http://versus-host:3000/api/incidents' 
    send_resolved: true  # Get resolution notices for freeStep 2: Deploy Versus Incident (With Multi-Channel Fallback)
Create a configuration folder:
mkdir -p ./configCreate a configuration file config/config.yaml:
name: versus
host: 0.0.0.0
port: 3000
alert:
  slack:
    enable: true
    token: ${SLACK_TOKEN}
    channel_id: ${SLACK_CHANNEL_ID}
    template_path: "/app/config/slack_message.tmpl"
  telegram:
    enable: true
    bot_token: ${TELEGRAM_BOT_TOKEN}
    chat_id: ${TELEGRAM_CHAT_ID}
    template_path: "/app/config/telegram_message.tmpl"docker-compose.yml – Always-on alerting with Slack + Telegram backup:
version: '3.8'
services:
  versus:
    image: ghcr.io/versuscontrol/versus-incident
    ports:
      - "3000:3000"
    volumes:
      - ./config:/app/config  # Persist templates
    environment:
      SLACK_ENABLE: "true"
      SLACK_TOKEN: "xoxb-..."
      SLACK_CHANNEL_ID: "C123"
      TELEGRAM_ENABLE: "true"  # Failover channel
      TELEGRAM_BOT_TOKEN: "123:ABC"
      TELEGRAM_CHAT_ID: "-456"Key Advantage: Unlike Opsgenie’s per-channel pricing, Versus lets you blast alerts to unlimited channels for $0.
Step 3: Create Context-Rich Templates
Slack Template (config/slack_message.tmpl):
🔥 {{.commonLabels.severity | upper}} ALERT: {{.commonLabels.alertname}}  
📦 *Cluster*: {{.commonLabels.cluster | default "N/A"}}  
🚨 *Status*: {{.status | title}}  
{{range .alerts}}
⏰ {{.startsAt | formatTime}}  
{{.annotations.description | indent 2}}
{{end}}
{{if .commonLabels.runbook}}📖 <{{.commonLabels.runbook}}|Runbook>{{end}}Telegram Template (config/telegram_message.tmpl):
🚩 {{.commonLabels.alertname}} ({{.status}})
{{range .alerts}}
🕒 {{.startsAt | formatTime}}
{{.annotations.summary}}
{{end}}
{{if eq .commonLabels.severity "critical"}}🔴 PAGE ON-CALL{{end}}Step 4: Advanced Routing
Route to different channels based on labels:
# Send database alerts to DBA team
curl -X POST http://versus-host:3000/api/incidents?slack_channel_id=C001DB \
  -H "Content-Type: application/json" \
  -d '{"commonLabels":{"alertname":"PostgresqlDown","team":"dba"}}'
# Send frontend alerts to web-team
curl -X POST http://versus-host:3000/api/incidents?slack_channel_id=C002FE \
  -H "Content-Type: application/json" \
  -d '{"commonLabels":{"alertname":"FrontendLatency","team":"web"}}'Cost Comparison:
Opsgenie charges $199.5/month (10 users) for basic routing rules – for something Versus does better for free.
Migration Checklist
- Redirect Alertmanager webhooks to Versus
 - Set up multi-channel fallbacks (Slack + Telegram + Email)
 
Cons
Q: How do we handle on-call schedules?
→ Now we support AWS Incident Manager