How to add Microsoft Teams to TallyPrime
Short answer
TallyPrime cannot push to Teams, so put a bridge service next to it that reads Tally through the XML/HTTP port, posts adaptive cards to a Teams channel or chat, and returns approvals as imported vouchers or flags. Entra ID handles who may approve.
Finance teams that run Tally and live in Microsoft 365 often end up emailing screenshots of Tally reports. Approvals for payments, credit notes or large purchases happen in chat threads with no link back to the voucher. Teams is a better home for approvals and alerts because it records who acted and when.
Tally has no webhooks or outbound event bus, so the integration is polling or schedule driven. That is acceptable for finance work, where five-minute latency rarely matters, but the design must handle the Tally application being closed, the wrong company being loaded, and the single-threaded nature of the XML port.
What teams use it for
Payment approval cards
Before the payment run, post each pending vendor payment to an approvers channel with amount, bill references and a button to approve or hold.
Daily cash and bank position
At 9:00 post balances of selected bank and cash ledgers to the finance channel from a Tally ledger query.
Large voucher alerts
Flag sales or purchase vouchers above a threshold or with a changed rate for a controller to review.
GST filing reminders
Post a checklist card ahead of GSTR deadlines showing unreconciled purchase entries and pending e-invoice or e-way bill items from Tally data.
Ask-the-books bot
A Teams bot answers 'receivable from customer X' by running a fixed, read-only Tally query and returning a summary card.
TallyPrime integration surface
- XML over HTTP: Export Data requests return reports and collections, and Import Data creates or alters masters and vouchers, once the server is enabled on a chosen port.
- ODBC access to ledger, voucher and stock collections for read-only reporting queries from the bridge.
- TDL extensions to add a status field such as Approval Status on vouchers, so the card result can be stored inside Tally.
- Tally Edit Log, where enabled, to review who changed or altered vouchers after approval.
- Exports to Excel, PDF or XML as attachments for the Teams card when the report is too large for text.
How it works
- 1
Decide the approval model
Write down which vouchers need approval, the thresholds and approvers, and where the status lives (a TDL field, a narration tag, or an external table).
- 2
Register an app in Entra ID
Create an app registration, grant only the Graph or Bot Framework permissions needed, and map approver groups to Entra security groups.
- 3
Create the Teams bot or incoming workflow
For alert-only use a workflow or webhook into a channel. For buttons that call back, use a bot with adaptive cards and a public HTTPS endpoint.
- 4
Build the poller
On a schedule, request pending vouchers from Tally, compare with a local state store to avoid duplicates, and post cards.
- 5
Handle the callback
On button press, verify the user's Entra identity, record the decision, and update Tally via Import Data or the status field.
- 6
Monitor the Tally host
Post a health alert to an IT channel if the port stops answering so a closed application is noticed quickly.
Example flows
Vendor payment approval
Trigger: Accounts clerk marks payments pending for the week
- Poller reads payment vouchers with Approval Status pending.
- A card per vendor shows amount, bills and due dates.
- Approver clicks Approve; the bot checks group membership.
- Bridge updates the status and notifies the clerk.
Result: Approvals leave a Teams record and the clerk releases only approved payments.
Morning finance digest
Trigger: Weekday 9:00 timer
- Bridge queries bank ledgers, receivables aging and payables due.
- Totals are rendered as one adaptive card.
- The card links to a PDF export saved on a file share.
Result: The finance head sees position without opening Tally on each machine.
Keeping data on-prem
Tally stays on the office network; only the bridge has outbound access to Microsoft 365. If the bot callback needs a public endpoint, place a reverse proxy in a DMZ that forwards only the specific callback path to the bridge, and never publish the Tally port. For firms that want natural-language questions in Teams without sending ledger content to a public AI service, run an open-weight model locally to translate the question into one of a set of fixed, read-only Tally queries and to phrase the result.
Security checklist
- Authenticate approvers with Entra ID and check group membership on every callback, not only when posting the card.
- Keep the Tally port bound to the internal network; it has no built-in authentication.
- Post only the minimum figures to channels, and use private channels for payment data.
- Sign and validate bot messages and use a secrets vault for client secrets.
- Keep a separate log of decisions with user, time and voucher reference.
Ways to get it done
Power Automate with a custom connector
Effort: Days; limits appear with two-way approvals and on-premises reach.
Light alerting where a flow can call the bridge or a file drop and post to Teams.
Custom Teams bot on the XML port
Effort: Three to five weeks including app registration and testing.
Teams that want interactive approvals and have a developer on hand.
Partner build with Netray
Effort: Scoped per project; typically a few weeks.
Approval policies across several companies, or a private-model assistant in Teams.
Pitfalls
- !The XML port answers only while Tally runs with the company loaded, so scheduled jobs fail quietly on a closed app.
- !Two bots writing to the same voucher can overwrite each other; keep a single writer service.
- !Adaptive card actions need a public HTTPS callback, which is a security review item for on-premises shops.
- !Approvals recorded outside Tally can drift from the books unless status is synced back.
Frequently asked questions
Can TallyPrime send alerts to Microsoft Teams directly?
No. Tally has no outbound webhooks. A small service polls Tally's XML or ODBC interface on a schedule and posts to Teams through a webhook, workflow or bot. That works well for finance alerts where a few minutes of delay is acceptable.
How do approvals in Teams update Tally?
The bot records the decision and then writes it back with an Import Data XML request, often to a custom status field added through TDL, or to the voucher narration. Avoid editing posted amounts through the bot; limit it to status changes.
Does this need Microsoft 365 licences for everyone?
Approvers and channel members need Teams access, which comes with most Microsoft 365 business plans. Tally users who do not use Teams are unaffected. Check your plan for bot and workflow limits before committing.
Can the Teams bot answer questions about the books?
Yes, if it runs predefined read-only queries such as receivables by customer. Free-form questions need a language model to pick a query, which can run on a private open-weight model so ledger data is not sent to an external service.
What if Tally is closed at night?
Scheduled checks will fail. Either leave the Tally host running with the company loaded, or have the bridge skip and raise a health alert. Do not queue large catch-up batches blindly when it comes back.
Want Microsoft Teams working on your TallyPrime?
A free 30 minute assessment: we map the integration path for your version and setup, and where it should run.
Get a free assessment