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 of your time 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
5,000
requests per Xero organisation per day
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 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.
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. A few minutes of your time, not weeks.

Do it in bulk

Select hundreds or thousands of contacts and act once: assign groups, edit fields, change branding themes, add notes or archive, with a clear report per contact. 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 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

You set the retention period for each organisation. Bulk Contact Manager flags contacts that are past it after every sync, 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.
  • You set the retention period per organisation, recorded with who set it and when
  • 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 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. Every database query is limited to one organisation, so one organisation's data is never shown in another.

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 frustration.

Some Xero organisations hold tens of thousands of contacts. At that size Xero becomes slow, and keeping years of old personal data becomes a privacy-law problem. Xero itself offers no way to clean that up in bulk.

We built Bulk Contact Manager to do it properly: Jolien, who works in finance, and Ecca, an enterprise architect.

Jolien
Co-founder
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)
  • Every change logged in Xero's history
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

Designed to hold as little as possible.

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

Application data is hosted in the EU on GDPR-compliant Hetzner servers in Germany. TLS 1.2 or higher between your browser, our servers and Xero; OAuth tokens encrypted at rest with AES-256-GCM; backups encrypted before they leave our servers.

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.

One organisation at a time

Manage several Xero organisations side by side. Every database query is limited to one Xero organisation, so one organisation's data is never shown in another.

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.