| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Purchase (purchase)
• Invoicing (account) • Discuss (mail) |
| Community Apps Dependencies | Show |
| Lines of code | 2195 |
| Technical Name |
rteam_tg_purchase |
| License | LGPL-3 |
| Website | https://rteam.agency |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Purchase (purchase)
• Invoicing (account) • Discuss (mail) |
| Community Apps Dependencies | Show |
| Lines of code | 2195 |
| Technical Name |
rteam_tg_purchase |
| License | LGPL-3 |
| Website | https://rteam.agency |
One-tap Purchase Order approvals in Telegram
Stop chasing your CEO with "please confirm PO #1234". Above-threshold Purchase Orders fire an inline Telegram message with Approve / Reject / View-in-Odoo buttons. One tap and the order confirms in Odoo. Chatter records who approved and when.
No VPN. No Odoo login on a phone. No inbox dig. Just a tap.
What the approver sees
A short message arrives in Telegram with the PO summary (vendor, amount, line count, reference) and three buttons. Approve flips the order to confirmed in Odoo. Reject keeps it in draft and posts a chatter note. View in Odoo deep-links to the PO form.
After a tap the buttons collapse into a status line ("Approved by Anna at 14:32") so the same message cannot be tapped twice and the chat history reads as an audit trail.
Setup in three clicks
Install rteam_tg_auth first
This module sits on top of the Telegram 2FA + Approvals core. Configure the bot once there (60 seconds via @BotFather).
Bind your approver to Telegram
The approver opens My Preferences -> Telegram 2FA, clicks Bind Telegram, taps the deep link, presses Send. Bot replies "Bound to <login>".
Set Threshold + Default approver
Settings -> Telegram -> Purchase Approvals. Pick a threshold amount and the approver. Done. Next confirm of an above-threshold PO routes through Telegram automatically.
GATE Threshold-gated, by design
POs at or above the threshold are gated through Telegram; smaller POs confirm normally with no approver friction. Self-approve is blocked: when requester == approver the order confirms without a Telegram detour, and the chatter explains why -- no silent skips, no surprised users.
AUDIT Every tap on the PO chatter
When the request goes out: chatter says "Telegram approval request sent to Anna". When the tap comes back: chatter says "Approved via Telegram by Anna at 14:32". When 24h passes without a tap: the request auto-expires (30-min cron) and the chatter notes it. Your finance auditor can reconstruct any approval from the PO record alone.
SAFE Hard to misuse
- Re-confirming a PO that already has an open Telegram request raises a clear error rather than spawning a duplicate message.
- Each inline button carries an HMAC-signed callback. An attacker who learns a request id alone cannot forge a tap without the per-instance webhook secret.
- The bot token never leaves your database. Telegram talks directly to your Odoo URL, no Rteam-hosted relay.
- Approver reopens the PO in Odoo? The header shows a "View Telegram approval" button so they can see exactly which TG message is in flight.
Part of a planned family
This module is the first source-model glue on top of rteam_tg_auth. The same approval ledger powers Vendor Bills, Time Off and Expenses glues that are next on the roadmap.
Building your own integration is one method on the source model:
on_rteam_tg_approval_resolved(request, new_state).
See github.com/RteamAgency/rteam-tg-purchase
for the working pattern.
Other Rteam apps
We ship a small family of focused free Odoo apps. If this one helped, you may also like:
Telegram 2FA + Approvals (core) · Odoo Health Check · Prozorro Connector · FSM + Repair
Maintained by Rteam · Issues + roadmap on GitHub · Support: alex@rteam.top
Please log in to comment on this module