Skip to main content
← All integrations

Crontinel Microsoft Teams Integration: Alerts via Incoming Webhook

Many Laravel teams on Microsoft 365 use Teams for incident discussion. Crontinel’s cloud dashboard supports Microsoft Teams as a native alert channel, posting a MessageCard directly to your Teams webhook.

  1. In app.crontinel.com, open your app’s Alert Channels and add a Microsoft Teams channel
  2. Paste the Teams incoming webhook URL (see below for how to create one)
  3. Save — Crontinel posts a MessageCard directly to the webhook, no relay needed

Setup (self-hosted OSS package, via generic webhook)

1. Add Incoming Webhook in Teams

  1. Open the Teams channel for alerts
  2. ⋯ next to the channel name → Connectors (or Workflows in newer tenants)
  3. Search for Incoming Webhook, configure name and icon, create
  4. Copy the webhook URL (often https://outlook.office.com/webhook/... or https://*.webhook.office.com/...)

2. Point Crontinel at the webhook

CRONTINEL_ALERT_CHANNEL=webhook
CRONTINEL_WEBHOOK_URL=https://your-teams-incoming-webhook-url

Teams webhooks accept JSON with a text field (and optional Adaptive Cards for richer formatting). Crontinel sends structured alert JSON. For first-class Teams cards, use a small Azure Function or Power Automate flow that transforms the payload:

{ "text": "Crontinel alert: Horizon paused on production-api" }

3. Verify

php artisan crontinel:test-alert

Alert types

Teams receives the same alert classes as Slack and email:

Governance

See also

Start with one HTTP receipt

Five common runtimes post the same outcome body: curl, Node, Python, Sidekiq, and GitHub Actions. Laravel apps can add the Composer package for schedule, queue, and Horizon.

curl -X POST "$CRONTINEL_API_URL/api/v1/ingest/cron" \
  -H "Authorization: Bearer $CRONTINEL_INGEST_KEY" \
  -H "Content-Type: application/json" \
  -d '{"command":"nightly-import","status":"completed","exit_code":0,"outcomes":{"metrics":{"processed_records":0}}}'