ingestlayer/recipes

Monitor CI/CD build status in Telegram

Route the build results that matter — a failed pipeline on your main branch — to where the team will actually see it, without the green-build noise.

01source

sourcesdk.eventTypeScript SDK
matchci.build.finished

02pipeline · 1 steps

  • 01CTLfilter.matchstatus = failed on main only

03destinations · 1

  • totelegramTelegram
    chat@oncall

the event

You emit ci.build.finished with this shape. The TypeScript SDK keeps the call type-safe, and the event is stored whole — so every field below is available to the pipeline by name.

  • repostring
  • branchstring
  • statusstringpassed | failed
  • commitstringsha
  • duration_msnumber

emit it

From your code with the TypeScript SDK — or any language over the REST endpoint and signed webhook ingress.

emit ci.build.finished
import { ingest } from "@ingestlayer/sdk";

await ingest("ci.build.finished", {
  repo:        process.env.GITHUB_REPOSITORY,
  branch:      process.env.GITHUB_REF_NAME,
  status:      job.status,
  commit:      process.env.GITHUB_SHA,
  duration_ms: job.duration,
});

route it to Telegram

Message a person, group, or channel through a connected bot.

  1. 01

    connect a bot

    Create a bot with @BotFather and paste its token. We register the webhook and verify it in-region.

  2. 02

    start a chat

    Send /start to the bot from the target chat — or add it to the group/channel — then pick the chat from the list.

  3. 03

    format the text

    Messages use MarkdownV2; the default template bolds the event name and lists fields. Reserved characters in field values are escaped for you.

in telegramdelivered
oncall
*support.ticket.created*
ticket    T-4821
subject   API returning 500s
tier      enterprise
urgency   critical

notes

questions

Can I mute passing builds?
Filter to failures on protected branches, so a red main build pings the team and routine green runs don't.
Do I need a CI plugin?
No — emit the event from a final pipeline step with the SDK or a curl call. Any CI that can run a script can report.
Can I track build time over weeks?
Send every build to Postgres with duration_ms; the trend is then a query, independent of which builds alerted.
build this pipelineor read the quickstart →

CI/CD build status, routed elsewhere

more, into Telegram