Skip to main content
← All integrations

Crontinel Telegram Integration: Mobile-Friendly Cron and Queue Alerts

Telegram is popular for fast mobile notifications. Crontinel’s cloud dashboard supports Telegram as a native alert channel — it calls the Telegram Bot API directly, no relay needed. Self-hosting the OSS package requires a webhook relay to the Bot API.

  1. Create a bot with @BotFather, get the bot token
  2. Obtain your chat ID (message the bot, then call getUpdates on the Bot API)
  3. In app.crontinel.com, open your app’s Alert Channels, add a Telegram channel, and paste the bot token and chat ID
  4. Save — Crontinel calls sendMessage on the Telegram Bot API directly
  1. Create a bot with @BotFather, get the token
  2. Obtain your chat ID (message the bot, then call getUpdates on the Bot API)
  3. Deploy a tiny relay (Cloudflare Worker, Vercel function, or self-hosted script) that:
    • Accepts POST from Crontinel (CRONTINEL_WEBHOOK_URL)
    • Maps fields to Telegram sendMessage

Example Telegram API call your relay makes:

curl -s "https://api.telegram.org/bot<TOKEN>/sendMessage" \
  -d "chat_id=<CHAT_ID>" \
  -d "text=Crontinel: scheduled task invoices:sync failed (exit 1)"

Crontinel .env:

CRONTINEL_ALERT_CHANNEL=webhook
CRONTINEL_WEBHOOK_URL=https://your-relay.example.com/crontinel-to-telegram

Option B: Shared automation (n8n / Make)

Use Crontinel webhook → n8n Telegram node. No custom code; good for teams already on automation platforms.

Test

php artisan crontinel:test-alert

Your relay should forward one test message to Telegram.

When Telegram fits

Security

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}}}'