Frappe Telegram Plus

Run your ERPNext approvals and alerts from Telegram. One-tap approvals, notifications, and scheduled digests - zero code, configured entirely from the desk.

Install Frappe Telegram Plus

bench get-app https://github.com/Sandeepambala/frappe_telegram_plus

Tags

  • approval-workflow
  • erpnext
  • frappe
  • frappe-app
  • notifications
  • telegram
  • telegram-bot

Add the Frappe Gems badge to your README

Maintain Frappe Telegram Plus? Paste this into your README:

[![Listed on Frappe Gems](https://frappegems.com/api/method/frappe_gems.seo.badge?app=Sandeepambala%2Ffrappe_telegram_plus)](https://frappegems.com/gems/apps/Sandeepambala/frappe_telegram_plus)

About Frappe Telegram Plus

Frappe Telegram Plus logo

Frappe Telegram Plus

Run your ERPNext approvals and alerts from Telegram.
One-tap approvals, notifications, and scheduled digests.
Zero code, configured entirely from the desk.

MIT License Frappe v16 No extra dependencies

--- ## Why this app Your team already lives in Telegram. Your documents live in ERPNext. This app connects the two, so a manager can approve a Sales Order from their phone in one tap, with the action recorded in ERPNext as if they did it there. ``` Sales Order created -> Telegram message with your buttons -> tap Approve document submitted, approver and time recorded on the timeline ``` ## Features | Feature | What it gives you | | --- | --- | | **One-tap approvals** | Buttons you define yourself: submit, cancel, set a field, apply a workflow action, run a Server Script, or just record the tap. Optionally ask for a typed reason. | | **Notifications** | A message on any document event, with the document's PDF and uploaded attachments included if you want. | | **Native Notification channel** | Pick "Telegram" as the Channel on any standard Frappe Notification. Existing alerts, date reminders, and value-change triggers go to Telegram with no rebuild. | | **Scheduled digests** | "Every weekday at 9 am, post open orders to the sales group." | | **Self registration** | Users link their own Telegram from their User record. Groups register with one command. No hunting for chat ids. | | **Audit trail** | Who acted, from which Telegram account, when, and why. On the document timeline and in a dedicated log. | Works with any doctype. Built-in safeguards: duplicate taps are blocked (first tap wins), actions run under the approver's real ERPNext permissions, the webhook is protected by a secret token, and the bot token never reaches the logs. ## Telegram Rule or Notification channel? The app gives you two ways to send a message. Pick by what you need: | You want | Use | | --- | --- | | Buttons on the message (approve, reject, custom actions) | **Telegram Rule** | | Document attachments, topic threading, a delivery log | **Telegram Rule** | | A reminder before or after a date, like "3 days before due date" | **Notification** with Channel = Telegram | | An alert when a field changes to a specific value | **Notification** with Channel = Telegram | | Alerts you already configured, now delivered to Telegram | **Notification** with Channel = Telegram | | A plain "document created or submitted" message | Either one. The rule adds a delivery log; the notification is quicker to set up. | In short: **Telegram Rule is the approval engine, the Notification channel is for plain alerts and reminders.** ## Requirements - Frappe v16 (ERPNext is optional, the engine is doctype agnostic) - A site reachable over public HTTPS (Telegram delivers updates by webhook) - No extra Python packages ## Installation ```bash cd $PATH_TO_YOUR_BENCH bench get-app https://github.com/Sandeepambala/frappe_telegram_plus bench --site install-app frappe_telegram_plus ``` ## Quick start An end to end setup takes about five minutes. 1. **Create a bot**: message [@BotFather](https://t.me/BotFather) on Telegram, send `/newbot`, and copy the token it gives you. 2. **Connect it**: open **Telegram Settings** in your site, paste the token, click **Test Connection**, tick **Enabled**, then click **Set Webhook**. 3. **Register yourself**: open your **User** record, click **Register Telegram**, follow the link, and press **Start** in the chat. 4. **Allow yourself to approve**: open the **Telegram Recipient** record that was created and set Role to **Approver**. 5. **Turn on a rule**: enable the shipped **Sales Order Draft Approval** rule and add yourself as a recipient. Now create a draft Sales Order. You will get a Telegram message with Approve and Reject buttons. Tap one and watch the document update, with the action recorded on its timeline. To notify a group or channel instead of a person, add the bot to it and create a **Telegram Recipient** with its chat id (see the guide below). ## Documentation | Guide | What it covers | | --- | --- | | [DOCUMENTATION.md](DOCUMENTATION.md) | How everything works and how to use it | | [DOCTYPES.md](DOCTYPES.md) | Every record type, field by field, with worked examples | | [HOW_TO_GET_CHAT_ID.md](HOW_TO_GET_CHAT_ID.md) | Finding a group or channel chat id manually | ## Testing ```bash bench --site run-tests --app frappe_telegram_plus ``` ## Contributing Issues and pull requests are welcome. This app uses [pre-commit](https://pre-commit.com/#installation) (ruff, eslint, prettier, pyupgrade): ```bash cd apps/frappe_telegram_plus pre-commit install ``` ## Author Built and maintained by **Sandeep Ambala** (). ## License [MIT](license.txt)

Related Integrations apps for Frappe & ERPNext

  • Insights — Open Source Business Intelligence Tool
  • Raven — Simple, open source team messaging platform
  • Frappe Whatsapp — WhatsApp cloud integration for frappe
  • Frappe Assistant Core — Infrastructure that connects LLMs to ERPNext. Frappe Assistant Core works with the Model Context Protocol (MCP) to expose ERPNext functionality to any compatible Language Model
  • Biometric Attendance Sync Tool — A simple tool for syncing Biometric Attendance data with your ERPNext server
  • Frappe React Sdk — React hooks for Frappe
  • Frappe Js Sdk — TypeScript/JavaScript library for Frappe REST API
  • Mcp — Frappe MCP allows Frappe apps to function as MCP servers