The missing contact manager for Xero

Bulk edit Xero contacts.
Finally.

Filter thousands of Xero contacts, fix them in one bulk action, and automate retention cleanup. What takes weeks by hand takes minutes here, with every change logged in Xero's own history.

No card needed to startSign in with XeroYour ledger is never touched

Independent third-party app for Xero users. Not affiliated with or endorsed by Xero Limited.

app.bulkcontactmanager.com/contacts
Find anything
Last transaction is before 1 Jan 2019Tax ID is empty+ add condition
NameCompanyLast transactionTax ID
Olivia CarterAcme Trading Co.4 Dec 2025NL8210…B01
Diane WayneWayne & Sons12 Mar 2017
Anthony StarkStark Logistics22 Aug 2016
Aiden ParkInitech Holdings30 Jul 2025NL8871…B01
Sarah ConnorCyberdyne Co.5 Nov 2014
3,412 of 50,214 contacts match
50,000+
contacts in the company that started this
998
row cap Xero puts on CSV contact imports
10,000
contacts before Xero itself warns of slowness
1
action to fix all of them
The problem

Xero is built for accounting, not database management.

Manual cleanup

Cleaning up more than a thousand contacts means opening records one at a time. Xero caps CSV contact imports at 998 rows per file, so the workaround is dozens of error-prone spreadsheets.

Hidden contact groups

You can't see group memberships from the main Xero contact list. Xero's own CSV export strips them out too, so you can't rebuild them offline either.

Xero slows to a crawl

Xero support recommends no more than 10,000 contacts and 100 contact groups per organisation; past that, pages and reports load slowly or error out.

Data you shouldn't still hold

Holding personal data past your statutory retention period is a privacy-law problem in the EU, UK, Australia and New Zealand alike. Finding it by hand is slow and unreliable.

One Xero user reported opening 2,500 contacts by hand to check their last activity, then archiving 2,100 of them one at a time.

A real request on the Xero Product Ideas site (bulk archive inactive contacts). Xero's official status on it: not planned.

"We are unable to export your contacts for you, due to the high number of contacts in your organisation. We recommend checking for any third party apps that can help export large amounts of data."— Xero support, on a 50,000-contact organisation.

Even Xero support tells users to find a third-party app for this. We built it.
What you get

Three jobs Xero leaves to you.

Everything below works on thousands of records at a time, and writes straight back to Xero. In minutes, not weeks.

Do it in bulk

Select hundreds or thousands of contacts and act once: assign groups, edit fields, change branding themes, archive, add notes, or delete, with automatic fallback to archiving when Xero protects transaction history and a clear report of which was which. Processed through a queue that respects Xero's rate limits, with every change written to the contact's Xero history.

In Xero
One contact at a time.
In Bulk Contact Manager
One action.
  • Group assignment, field edits and branding themes in one pass
  • Bulk archive, delete and add notes
  • Queued and API rate-limit aware, so nothing silently fails

Find anything

Bulk Contact Manager has the filters Xero doesn't have: contacts with no transactions since any date, missing tax numbers or emails, empty notes, specific groups or countries. The last transaction date shows right in the list, answering a top-voted Xero forum request. Then select every match across all pages and fix them all at once.

In Xero
Name and email search only.
In Bulk Contact Manager
One action.
  • Per-field conditions: contains, does not contain, empty, not empty
  • Last transaction date as a sortable, filterable column
  • Select all matches across every page, not just this one

Retention cleanup on autopilot

Bulk Contact Manager knows the statutory retention period for your organisation's country, continuously flags contacts that are safely past it, and blocks anonymization when recent transactions exist. One confirmed action redacts personal data permanently while your financial ledger stays intact, with an audit note logged in Xero first.

In Xero
Nothing at all.
In Bulk Contact Manager
One action.
  • Per-country retention presets, with a per-organisation override
  • Validated: contacts inside the retention window can't be anonymized
  • Irreversible by design: redacted names derive from the contact ID, not a hash of personal data
  • Supports data-minimization duties under GDPR, UK GDPR, CCPA, Australian APP and NZ's Privacy Act. No other Xero app does this.
No surprises

Xero has speed limits. We built around them.

Xero caps how much work any connected app can send it: 60 requests per minute and 5,000 per day, for each organisation. Every add-on lives with the same caps. What matters is what happens when your clean-up is bigger than one day's allowance:

Runs in the background

Start a bulk action and our servers do the work, at a pace Xero accepts. Close the tab and carry on with your day: progress is saved, and nothing fails without telling you.

Big jobs split themselves

A job too big for one day's allowance is split into daily parts before it starts. The first part runs straight away, and the rest follow automatically, one day apart.

Waits, then carries on

If the day's allowance runs out mid-job, the job pauses, keeps its place, and picks up again by itself as soon as Xero allows.

You stay in control

Upcoming parts are listed on the Contacts page, and you can cancel them before they start. Afterwards you get an honest report: what was done, what was skipped, and why.

Also in the box

The rest of the toolkit.

CSV export with contact groups

Export exactly what you filtered, group memberships included. Xero's native export leaves them out.

CSV import with column mapping

Map your columns once and bring outside data in, without wrestling the 998-row cap.

Single-contact editing

Open any contact in a side panel to fix one record without leaving your filtered list.

Multi-organisation switching

Switch between Xero organisations from the nav. Each one's data stays strictly isolated.

Incremental sync

Only what changed is pulled, so your view stays current without hammering the Xero API.

Legal foundation up front

Privacy Policy, Terms and a DPA with named sub-processors, all readable before you connect anything.

Why we built it

Built out of sheer frustration.

I'm a CFO, and our Xero organisation held over 50,000 contacts. Xero was painfully slow, and holding all that historical personal data was a privacy-law problem we couldn't keep ignoring.

Cleaning it up was impossible. The database was too large for Xero to export, and Xero caps contact updates at 998 rows per file. That meant more than 50 manual spreadsheet uploads. Xero support's own advice was to go find a third-party app.

So I built it with my partner, an enterprise architect: an app that handles enterprise-scale data properly, and now we're sharing it with the Xero community.

Jolien
Co-founder & CFO
Pricing

Simple, transparent pricing.

Sign in with Xero and you're cleaning up contacts in minutes. Every plan starts with a 14-day free trial, no payment details needed. Pick the plan that fits when the trial ends.

14-day free trial on every plan

Starter

Serious contact cleanup for a single organisation.

€6.99/ month

or €69 / year

  • 1 Xero organisation
  • Up to 5,000 contacts
  • Advanced filtering & fuzzy search
  • Bulk edits, groups & archiving
  • CSV import & export (incl. contact groups)
Start free trial

Partner Bundle

For accountants and bookkeepers managing client books.

From €49/ month

or €449 / year

  • Up to 10 Xero organisations
  • Unlimited contacts & bulk edits
  • All compliance features, across every client
  • Scales in blocks of 5 organisations
Start free trial

Prices in EUR, excluding VAT; local taxes are calculated automatically at checkout. Every plan starts with a 14-day free trial; no payment details needed during the trial.

Security

Built by a CFO and an enterprise architect.

The platform is designed to handle exactly what it needs to function, and absolutely nothing more.

Sign in with Xero

Xero is our only login provider, so we never see or store a password. We request the minimum scopes needed, and you can revoke access from Xero at any time.

EU-hosted & encrypted

Application data is hosted in the EU on GDPR-compliant Hetzner servers in Germany. TLS 1.3 in transit; OAuth tokens encrypted at rest with AES-256-GCM.

Strict data minimization

We never sync your ledgers. Only the contact fields needed for bulk editing, plus invoice and transaction dates to work out whether a contact is inactive. No amounts, no line items.

Absolute tenant isolation

Manage several Xero organisations and their databases stay walled off. Every query is scoped to one tenant, so client data can never overlap.

We also document what the Xero API can't do, like restoring archived contacts or per-contact invoice reminders, instead of pretending otherwise.

Contact support

Questions about the product, pricing or compliance? We normally respond within 3 business days.