Send form submissions to Telegram

Get a Telegram message the moment someone submits your contact form — in addition to email. Telegram needs three things: a bot, a chat id, and one URL. Here's each step.

1. Create a bot with @BotFather

  1. In Telegram, search for @BotFather (the verified one) and start a chat.
  2. Send /newbot, then follow the prompts: a display name, then a username ending in bot.
  3. BotFather replies with an HTTP API token like 110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw. Copy the whole thing, colon included, and treat it as a password.

2. Find your chat id

For direct messages to you:

  1. Open a chat with your new bot and send it any message (bots can't message you first).
  2. Visit this URL in your browser, with your token substituted in:
https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates
  1. In the JSON response, find "chat":{"id": 123456789, ...} — that number is your chat id.

For a group: add the bot to the group, send any message in the group, then check getUpdates again — group ids are negative numbers (e.g. -1001234567890).

For a public channel: add the bot as a channel admin; you can use @yourchannelname as the chat id directly.

3. Build the webhook URL

Combine the token and chat id into one sendMessage URL:

https://api.telegram.org/bot<YOUR_TOKEN>/sendMessage?chat_id=<YOUR_CHAT_ID>

4. Connect it to your form

  1. In Static Contact, open your Form and go to the Webhooks tab.
  2. Click Add webhook, set the type to Telegram, and paste the full URL from step 3.
  3. Optionally name it and Save.

Webhooks are available on paid plans, and a form can deliver to several destinations at once.

5. Test it

Submit your form once — the bot sends the submission as a message to your chat, group or channel.

Troubleshooting

  • 400 "chat not found" — wrong chat id, or you never messaged the bot first (for DMs), or the bot isn't in the group.
  • 403 "bot was blocked" / "bot was kicked" — unblock the bot or re-add it to the group.
  • 401 "unauthorized" — the token is wrong or truncated. Copy it whole — it contains a colon.
  • getUpdates is empty — send the bot (or group) a fresh message and reload; updates only stay available for 24 hours.
  • Treat the URL as a secret — it contains your bot token; anyone who has it can message your chat.
  • Still stuck? Check the delivery log on the Webhooks tab (on plans with logs) for Telegram's exact error response.

Prefer a different destination?

We also have guides for Slack, Discord and your own endpoint (signed JSON).

© 2026 Static Contact. All rights reserved.