Telegram action

Send Stripe events to Telegram channels

Send any Stripe event to a Telegram chat or channel. Solo founder pings, international team alerts, weekend escalation. Flat monthly fee.

Free trial · From $19/mo · No credit card required

The problem

Telegram is where a lot of founders actually live. If you want a ping for every paid invoice, an alert when a payment fails, or an escalation when a high-value subscription cancels, the options today are all bad. Zapier wired to a bot token charges you per task. A webhook handler running on Railway means another bill and another thing to babysit. Stripe's native Slack action is the wrong product.

The Telegram action is one step inside a Stripe Workflow. Paste the bot token, pick the chat id, write a JSONata-templated message with Markdown or HTML formatting. Outbound handles retries, dedup on Stripe's invocation id, and Telegram's rate limits. The bot stays in your Telegram org, the workflow stays in your Stripe Dashboard, and the bill is the same number every month.

How the Telegram action works

  1. 1

    Create a Telegram bot

    Talk to @BotFather inside Telegram and create a bot. Copy the token it gives you back, then add the bot to the chat or channel that should receive messages. A couple of minutes from nothing to working.
  2. 2

    Add the action with bot token + chat id

    Drop the Telegram action into a workflow, paste the bot token (Outbound stores it encrypted), and pick the chat id. For channels, the chat id is the @handle. For private chats, it's a numeric id.
  3. 3

    Compose the message

    Write the message body with JSONata templating. Telegram accepts Markdown and HTML, so you can bold the customer email, link the invoice id, italicize the amount, or whatever the chat actually wants to read at 2am.
  4. 4

    Publish and watch the chat

    The action posts to Telegram within seconds of the Stripe event. The Outbound execution log records every send with the Telegram message id, so you can audit deliveries without leaving Stripe.
trigger:
  event: invoice.payment_failed
steps:
  - action: outbound.telegram
    config:
      bot_token: ${TELEGRAM_BOT_TOKEN}
      chat_id: "@founders-alerts"
      parse_mode: HTML
      text: |
        <b>payment failed</b>
        {{customer.email}} — ${{invoice.amount_due / 100}}
        attempt: {{attempt_count}}
        <a href="https://dashboard.stripe.com/invoices/{{invoice.id}}">view in Stripe</a>

Example workflow configuration

Screenshot of the Telegram action config inside the Stripe Workflow builder. Shows a bot token input field with masked characters, a chat id input, a parse_mode dropdown set to HTML, and a multi-line message body editor with JSONata template placeholders rendered in cyan against a dark code background.

Bot token, chat id, and a templated message. Sits next to the rest of your Stripe Workflow.

Outbound vs Zapier

OutboundZapier
Lives inside the Stripe Dashboard
Pricing modelFrom $19/mo flatPer-task billing
Idempotent on Stripe invocation id
Setup time≈2 minutes10–15 minutes
Markdown / HTML formatting
Supports channels and private chats
Execution log scoped to Stripe account

Frequently asked questions

Can I send to multiple chats at once?+
Add the Telegram action multiple times in the same workflow, each pointing at a different chat id. The action is cheap and idempotent so duplicating the step is fine. Alternatively, the chat_id field is JSONata-templated, so you can resolve it dynamically off the event.
Does it support inline keyboards or just plain messages?+
v1 supports plain messages with Markdown / HTML formatting. Inline keyboards (the tap-to-respond buttons) need a webhook to handle the callback, which is an Inbound feature. That ships when Inbound launches. Until then, link to the Stripe Dashboard for the action.
What if the bot gets removed from the channel?+
Telegram returns a 403 with a specific error code. Outbound surfaces it in the execution log and stops retrying — a bot-removed error is not a transient failure. Add the bot back and the next workflow execution will deliver normally.
Is the bot token stored securely?+
Tokens are encrypted at rest with a per-account key, scoped to the action that created them, and never returned in the dashboard once saved. We can rotate them on request via support@outboundforworkflows.com if a token leaks.
Telegram has rate limits — does Outbound respect them?+
Yes. Telegram allows roughly 30 messages per second per bot and slower per-chat. Outbound queues per bot, respects 429 retry-after headers, and surfaces rate-limit events in the execution log if you're consistently hitting the ceiling.