How to Connect Xero to Company Messaging

Xero gives every plan unlimited users and a Read Only role, yet invoice and bill questions still get typed into Slack and Teams. What Xero offers natively, what Zapier, Power Automate, and the Xero API can do, and where Kipper fits.

Breadwinner Team

September 15, 2026

Xero
How to Connect Xero to Company Messaging

Every Xero plan includes unlimited users, and Xero ships a Read Only role. So anyone who needs to know whether Fjord Studio has paid INV-1904 could be given a login and look it up themselves. That is the theory. What happens instead is that the question gets typed into #studio-billing on Slack or a client channel in Teams, and someone in finance stops what they are doing to answer it.

This post covers why that happens and the five approaches worth considering. It starts with Kipper, a separate product from the same team behind Breadwinner, then what Xero itself offers, including the Microsoft 365 integration launched in July 2026, then three build routes: Zapier, Power Automate, and the Xero API.

The focus here is what each route can and cannot do. The code and configuration sit in Kipper’s guides on build options for accounting data in Slack and in Microsoft Teams.

Xero API limits, connector availability, and pricing in this post were verified in September 2026.

Kipper for Xero

Kipper, founded in 2025 by the team behind Breadwinner, is a read-only layer over Xero that answers plain-English questions in Slack and Microsoft Teams. A Xero admin authorizes it once. Kipper then syncs the records it supports (contacts, invoices, payments, bills, bill payments, purchase orders, inventory, credit notes, and supplier credits) and keeps them current through Xero change notifications. You decide which channels see which records, and people ask in the channel they already have open. Bank transactions and account balances are deliberately outside what it reads.

The Xero Slack connector answers the studio-billing question above, and others like it, without a Xero login: “Has contact Fjord Studio paid INV-1904?”, “Bills for supplier Kestrel Freight still unpaid?”, and “Get the Xero PDF for INV-1904,” which drops the invoice PDF Xero generated into the thread. Kipper connects Xero to Slack through a synced copy of the supported records, so an account manager can confirm a contact’s invoice status mid-conversation in Slack.

Xero in Microsoft Teams handles the questions that come up in department channels: “What is the total value of open purchase orders right now?”, “Which suppliers have an available supplier credit?”, or “Invoices in Tracking Category: Retail this quarter?” Because Kipper queries its own synced copy rather than the live API, the Tracking Category total is one question rather than a line-item paging loop, and the answer arrives inside Microsoft 365 with the Xero PDF available on request.

What that buys you over the build routes covered below:

  • Questions in the user’s words, not a Zap that needs an internal invoice ID or a bot command with fixed syntax.
  • Totals and Tracking Categories work, because the sum happens in Kipper’s synced copy, not against a 60-call-a-minute API.
  • Scoped access without Xero roles. Data access configurations decide which channels see contacts, bills, or POs. One configuration is included; Enterprise customers can define several. Nobody asking needs a Xero user, let alone a Read Only one.
  • Every question logged, with who asked and when.
  • No API maintenance. Rate limits, token refresh, and Xero’s webhook quirks are Kipper’s to handle, not yours.
  • Predictable pricing. Kipper’s Xero plan starts at $200 per month for up to 10 active users with 2,000 questions a month included. Nobody asking needs a Xero user.
  • Read-only OAuth access, logical tenant isolation enforced at the database level, and a SOC 2 Type II examination in progress.

Kipper is not a reporting tool and does not read bank feeds. Cash position, the profit and loss, and reconciliation stay in Xero, where the Adviser and Standard roles already serve the people who need them.

The rest of this post is what the alternatives look like, starting with Xero itself.

Why unlimited users does not solve it

Giving everyone a Xero login is allowed, and it still does not get the question answered. Three reasons.

The Read Only role shows too much, not too little. Xero has five fixed roles: Adviser, Standard, Invoice Only, Read Only, and Subscriber, plus a few add-on permissions. A Read Only user can see most of the organization, including bank balances, the profit and loss, and every contact’s full history. That is a lot to hand a 25-person sales team so they can check one invoice. Invoice Only is narrower but it is a data-entry role, and even after Xero added granular reporting permissions to it in August 2026, no role can be scoped to “this contact’s invoices and nothing else.”

Logging in takes longer than asking someone. With the right role, a rep still has to leave the conversation, sign in, search Contacts for Fjord Studio, open the invoice, read the status, and come back. Someone in finance can answer from memory in ten seconds, so that is who gets asked.

Xero’s built-in alerts are aimed at customers, not staff. Xero sends invoice reminders and statements to the people who owe you money. There is nothing that tells your own #suppliers channel when Kestrel Freight’s bill is approved.

What Xero offers natively

JAX in Microsoft 365, as of July 2026. On July 1, 2026, Xero launched an integration that puts JAX, its AI assistant, inside Microsoft 365 Copilot. In Copilot Chat it answers financial questions with text summaries. In Excel it drops live Xero data into tables. In Word and PowerPoint it drafts report sections and slides. Xero says Teams and Outlook are planned but not yet available.

Two things follow. It is a Copilot feature, so the person asking needs a Xero user and a Microsoft 365 Copilot seat, which puts the licensing problem straight back. And it is not in Teams, so it cannot answer a question in a channel. Once it reaches Teams it will be the closest thing to a first-party answer for Microsoft 365 shops, and worth re-evaluating against everything below.

Nothing for Slack. As of September 2026 Xero has not built a Slack app. The Xero App Store lists third-party tools instead, so every route from Slack to Xero runs through an automation platform, a third-party product, or the API.

The three build routes, in Xero terms

Every accounting system offers the same three build routes. What changes from one to the next is the data model and the limits, so each route below is described in Xero’s own terms: contacts rather than customers and vendors, Tracking Categories rather than classes, and one Invoices endpoint covering both sales invoices and supplier bills.

Zapier

Xero is a premium app on Zapier, so a paid plan is required, from $19.99 a month billed yearly for 750 tasks as of September 2026. The Xero integration has 14 triggers, of which only one, Updated Sales Invoice, is instant. The rest poll, including New Bill, New Payment, New Reconciled Payment, Overdue Sales Invoice, New Credit Note, and New Purchase Order, so alerts arrive on Zapier’s polling interval rather than the moment the record changes. Searches include Find Invoice, which takes an invoice number or reference, Find Invoice by ID, Find Payment, Find Contact, Find Credit Note, Find Purchase Order, and Get Invoice History, plus a Send Channel Message action for both Slack and Microsoft Teams.

Alerts are the strong case. Two steps, Overdue Sales Invoice into Send Channel Message, post “INV-1904 for Fjord Studio is 14 days overdue, $2,640” into a channel at one task per invoice. New Bill does the same for supplier bills and New Purchase Order for POs.

Lookups are possible but limited. Find Invoice accepts the INV-1904 number people actually type, so a four-step Zap answers a mention: a Slack New Mention trigger, a Formatter step to pull the number out of the message, Find Invoice, and a reply in the thread, costing two tasks a question. Find Contact returns one contact’s details by name.

Combining records or adding them up is where the native Xero actions stop. A contact’s open invoices with their aging, or invoiced totals by Tracking Category, need Looping or a Code step rather than a straightforward Zap, and the second is harder still because tracking values sit on invoice line items rather than on the invoice itself. The recipes are in the Kipper guides for Slack and Teams.

Power Automate

Unlike QuickBooks, Xero does have a connector in Microsoft’s catalog, though not a first-party one. “Xero Accounting - Magnetism” is a Premium connector published by Magnetism Solutions, in preview as of September 2026, and separately licensed by Magnetism after a seven-day trial. There is also XeroLite, an independent-publisher connector. The Magnetism connector exposes List Xero records with where, order, and top parameters, Get a record by ID, a trigger for Invoice or Contact create and update events, and a raw HTTP action for anything else. Because it is Premium, the flow owner needs a Power Automate Premium license at $15 per user per month billed yearly for a scheduled flow, or a Process license at $150 a month for the flow itself, as of September 2026.

Once the connection exists, a Monday-morning summary takes an afternoon to build: List Xero records with record type Invoices and where set to Type=="ACCPAY" AND Status=="AUTHORISED", a Select step to shape supplier, amount, and due date, then Post card in a chat or channel. The connector’s trigger handles “tell the channel when an invoice for Fjord Studio is updated.”

Fixed-command lookups also work: a flow using a Teams message trigger can extract an invoice number, pass it to the Magnetism connector’s List Xero records action, and post the matching invoice back. You configure the parsing, access checks, and reply for each supported command. Unrestricted natural-language questions require an additional interpretation layer.

Two throttles apply at once: the Magnetism connector allows 100 calls a minute per connection, on top of Xero’s own limits. The connector setup and the flow are in the Teams guide’s Xero in Power Automate section.

The Xero API

A developer building a Slack or Teams bot on the Xero Accounting API works with these facts:

  • Every call names an organization. After OAuth 2.0 authorization, each request carries an xero-tenant-id header saying which Xero organization it is for, so an app connected to several picks one per request. Refresh tokens expire after 60 days without use.
  • Rate limits apply per organization. 60 calls a minute and 5 at once, with a daily limit of 1,000 calls on the Starter developer tier or 5,000 on higher tiers, counted separately for each connected organization. Xero returns HTTP 429 past any of them. Check Xero’s developer pricing when budgeting a bot: higher tiers carry subscription fees, and connection and data-egress allowances also vary by tier.
  • Invoices are both AR and AP. Sales invoices are Type=="ACCREC" and supplier bills are Type=="ACCPAY". Both live on the same Invoices endpoint, filtered with where, Statuses, ContactIDs, and InvoiceNumbers, and paged 100 at a time by default, configurable up to 1,000.
  • Contacts are both customers and suppliers. There is no separate vendor object. A lookup for Kestrel Freight and one for Fjord Studio hit the same endpoint.
  • Tracking Categories live on line items. Xero allows two active Tracking Categories per organization, and their values attach to LineItems[].Tracking, not the invoice header. “Invoiced total for Tracking Category: Studio this quarter” means fetching invoices with line items and summing in your code.
  • The API cannot add up. It filters with where and sorts with order, but has no GROUP BY or SUM, so every total means fetching the rows and adding them in your own code.

Those constraints still leave most single questions to one request. “Which Fjord Studio invoices are overdue?” is a where clause of Type=="ACCREC" AND Status=="AUTHORISED" AND DueDate<DateTime(...) scoped with ContactIDs, paged at up to 1,000 records, with the total added up in your code. The full bots, token refresh and tenant header included, are in the Kipper guides: a Slack slash command that looks up an invoice by its INV number, and a Teams handler that lists bills due by a date.

Webhooks are where Xero differs most from what developers expect. They fire for create and update events on Invoices, Contacts, and Credit Notes, plus Prepayments added on 14 August 2026 and Overpayments on 3 September 2026, according to Xero’s changelog. Xero signs each one with HMAC-SHA256 in an x-xero-signature header, expects a 200 within five seconds, and during its “intent to receive” validation expects a 401 rather than a 400 for a bad signature. There is no payment event at all: a payment arrives as an Invoice UPDATE, so posting “INV-1904 is paid” means fetching the invoice on every update and checking whether its status has become PAID. The receivers are in the guides, posting to Slack or to a Teams workflow.

What each route costs, and who can run it

Setup times for the routes that involve code are vibe-coding estimates: a developer directing an AI coding assistant that writes most of the code. Hand-coding runs two to three times longer. All figures are Breadwinner’s estimates from shipping Xero integrations, not survey data. Third-party pricing in the table is as of September 2026.

RouteWho does the workSetup timeDeliversMonthly cost
KipperA Xero admin authorizes it; anyone installs the Slack or Teams appUnder an hour, no codeNatural-language questions, permissioned and loggedSee pricing
ZapierAnyone comfortable with ZapierUnder an hour for an alert; half a day for a lookup ZapTriggered alerts; single-record lookups; no totals without Looping or CodeFrom $19.99, scaling with task volume
Power Automate with the Magnetism connectorAn IT or ops person with Power Automate experienceA dayScheduled summaries, record-change alerts, and fixed-command lookups$15 Premium plus the Magnetism license
Xero API bot (vibe-coded)A developerHalf a day for webhook alerts; one to two days for a demo bot; two to three weeks to productionFixed commands, one per question shapeHosting plus ongoing developer hours; Xero developer-tier and usage fees where applicable

Choosing

  • You want overdue-invoice or new-bill alerts in a channel and nothing else. Zapier, in under an hour, accepting polling delays. Power Automate with the Magnetism connector if you are already licensed for Premium and live in Teams.
  • You are a Microsoft 365 shop willing to wait. Watch for JAX arriving in Teams. It will still require a Xero user and a Copilot seat per person, so it solves the context switch, not the licensing scope.
  • You have a developer and a short list of fixed commands. Build on the Xero API. Budget two to three weeks vibe-coded, respect the 60-a-minute limit, and plan the webhook handler around Invoice UPDATE events.
  • You want anyone authorized to ask a Xero question in Slack or Teams and get the answer, without a Xero login. That is what Kipper does, and it is live in under an hour with no code.

Unlimited users was never the constraint. A login is not an answer, and the approaches above are five different amounts of work to close that gap, with one of them, JAX, not yet reaching Slack or Teams at all.

Frequently asked questions

Xero already has unlimited users. Why connect it to Slack or Teams at all? Because a login is not the same as an answer. Xero’s Read Only role shows most of the organization, including bank balances and reports, so it is too broad for a sales rep who only needs one contact’s invoice status, and the rep still has to leave the conversation, sign in, and find the record. Messaging integrations put the specific answer where the question was asked, and the good ones scope what each person can see.

Does Xero have its own Slack or Teams integration? Not as of September 2026. Xero launched a Microsoft 365 integration on July 1, 2026 that puts its JAX assistant into Microsoft 365 Copilot, Excel, Word, and PowerPoint, and says Teams and Outlook are planned. There is no Xero-built Slack app. Getting Xero data into Slack or Teams today means Zapier, Power Automate, the Xero API, or a product such as Kipper.

Can Xero webhooks tell me when a bill is paid? Indirectly. Xero webhooks fire on create and update events for Invoices (which in Xero includes bills, as ACCPAY invoices), Contacts, Credit Notes, Prepayments (added 14 August 2026), and Overpayments (added 3 September 2026). A payment shows up as an Invoice UPDATE event, so your handler fetches the invoice and checks whether its status changed to PAID. There is no separate payment event.

Want to learn more?

Schedule a demo to see how Breadwinner integrates your finance systems with Salesforce.