ConnectWise to Xero · Architecture

ConnectWise invoice sync to Xero: nightly batch vs real-time

The Connect Zero team · 24 May 2026

TL;DR

Nightly batch and real-time are the two operating models for ConnectWise to Xero invoice sync. Batch suits smaller MSPs who close the day in one sitting; real-time suits MSPs running live cash-flow dashboards. The variance at end-of-day is zero. Connect Zero defaults to near-real-time (under 5 minutes from approval to Xero create) with a nightly batch option for MSPs who prefer it. Pick batch unless you have a documented reason to want real-time.

The two operating models

An invoice sync from ConnectWise PSA to Xero has two viable cadences in 2026. A nightly batch runs once per day (typically between 1am and 4am AEST for Australian MSPs), reads every invoice approved in ConnectWise since the previous run, and writes them into Xero in one pass. A real-time sync subscribes to a webhook on the ConnectWise side, fires within seconds of each invoice approval, and writes the invoice into Xero almost immediately.

Both produce identical Xero state at the close of the day. The choice is not about correctness; it is about operational rhythm and engineering complexity. A typical Australian MSP doing AUD 1.5 million in revenue with 80 to 120 invoices per month will not notice the variance in financial outcomes. They will notice the variance in finance-team workflow.

The framing that helps: batch sync is a workflow optimised around the morning review. The bookkeeper opens Xero at 8am, sees the run output from overnight, reconciles in one sitting, moves on. Real-time sync is a workflow optimised around the live dashboard. The Xero state reflects today's invoiced revenue at any moment during the day. For an MSP whose CFO checks the Xero dashboard at lunch and wants today's number on it, real-time wins. For an MSP whose finance lead does month-end in a focused four-hour block, batch wins.

What happens inside a nightly batch run

A nightly batch run is a single scheduled job that does three things in sequence. First, it reads the list of invoices approved in ConnectWise since the last run completed (typically a 24-hour window, but the implementation should be timestamp-based not interval-based so it tolerates skipped runs). Second, it maps each ConnectWise invoice line to a Xero invoice line using the agreement, product, and tracking-category mappings configured in the sync admin. Third, it creates the invoices in Xero via the Xero invoices API (Xero developer docs, accessed 24 May 2026), records the Xero invoice ID against the ConnectWise invoice for idempotency, and emails a summary report to the finance lead.

A typical run for a 100-invoice batch completes in under 4 minutes wall-clock time. The Xero API rate limit is 60 calls per minute (Xero API rate-limit documentation, accessed 24 May 2026), which means a 100-invoice batch using 2 API calls per invoice (one create, one verify) uses 200 calls and runs in roughly 3 minutes 20 seconds against the rate limit. For larger MSPs doing 500 invoices per batch, the run takes 17 minutes; rate-limit throttling becomes the dominant cost.

The advantage of the batch shape is that it concentrates all the failure handling into a single review surface. If 3 of 100 invoices fail to create (the most common cause is a missing tracking-category mapping introduced in the prior day), the bookkeeper sees them in the morning email, fixes the mapping, and re-runs the failed three. The mental model is one log file per day.

What happens inside a real-time sync

A real-time sync replaces the scheduled job with a webhook subscription. When an invoice is approved in ConnectWise, ConnectWise fires an event to the sync middleware. The middleware applies the same mapping logic as the batch flow but on a single invoice at a time, then creates the Xero invoice within seconds. For Connect Zero, the typical end-to-end latency from ConnectWise approve to Xero create is 30 to 90 seconds (variance is dominated by the Xero API response time, not the middleware).

The operational difference is that failures arrive throughout the day rather than concentrated overnight. If a mapping is wrong, the first invoice using that mapping fails immediately and the finance team gets a Slack or email notification within minutes. The mapping is fixed in real-time, the failed invoice is re-queued, the rest of the day's invoices flow through cleanly.

The 2026 Xero API rate limit still applies. A real-time sync doing 100 invoices per day at irregular intervals uses the same 200 API calls but spread out, so rate-limit throttling never bites. For MSPs doing 500 invoices per day on a real-time sync, the calls are spread across business hours and the rate limit is comfortably within budget.

The mental model is one notification per failure. For a clean MSP with stable mappings, weeks can go by without an issue surfacing. The trade-off is that when issues do surface, they surface in the middle of the day, which some finance teams find more disruptive than the morning-batch model.

Operational cost comparison: a typical AUD 1.5m MSP

Concrete numbers for a typical 12-person Australian MSP doing AUD 1.5 million in annual revenue, billing 100 invoices per month across 35 client agreements, running Connect Zero on a single Xero entity. Period: a representative month in 2026 Q2.

MetricNightly batchReal-time
Bookkeeper time per month reconciling sync outputRoughly 90 minutes (one focused session)Roughly 60 minutes (multiple small interrupts)
Time from invoice approve to Xero visibilityUp to 24 hoursUnder 5 minutes
Failure-handling concentrationOnce per morningThroughout the day
Xero P&L freshness at end of business dayOne day behindCurrent
BAS reporting impact (quarterly)IdenticalIdentical
Cash-flow dashboard freshnessOne day behindCurrent
Sync cost (Connect Zero pricing, AUD)IdenticalIdentical
Mapping-change cycle timeOne day (next morning's run)Real-time

The total time saving in the batch column is misleading on its own. The batch model concentrates 90 minutes into one focused session that fits cleanly into a morning routine. The real-time model spreads 60 minutes across the day in interrupts, each of which is a context switch with its own time cost. For most 12-person MSPs the batch model is operationally cheaper despite the higher minute count.

When to switch from batch to real-time

The signal that pushes an MSP from batch to real-time is usually one of three things. A CFO who wants the Xero P&L to reflect today's invoiced revenue at lunch (most common in MSPs above AUD 5 million revenue). A customer-success workflow that triggers off Xero invoice creation (less common but growing in 2026). A finance-team complaint that the morning batch is a bottleneck (third most common, often resolved by rescheduling the batch to run at 6am rather than 2am, so it lands closer to the start of the business day).

The signal that does not push an MSP from batch to real-time, despite vendor marketing saying so: BAS reporting accuracy. BAS is end-of-quarter; both sync shapes produce identical end-of-quarter state. The variance budget is zero. Compare this to the Australian MSPs and BAS guide for the full BAS treatment.

Pitfalls and how to avoid them

  • Running both batch and real-time on the same Xero entity. Creates duplicate invoices unless the sync middleware deduplicates by ConnectWise invoice ID. Connect Zero deduplicates by default; some other vendors do not. Pick one cadence per entity.
  • Setting the batch window to overlap with a backup window. Xero and ConnectWise both have brief maintenance windows; if your batch runs during them, you get partial-run states. Schedule your batch outside both vendors' published maintenance windows (typically Sunday 2am to 4am for Xero).
  • Treating real-time as a replacement for a daily reconciliation. The morning reconciliation review (whether of batch output or of yesterday's real-time stream) is the operational lever that catches mapping drift. Real-time sync does not remove the need for that review, only the urgency.
  • Underestimating the failure-notification volume on real-time. An MSP that gets one mapping issue per week on batch (one notification per week) sees the same volume on real-time spread across the week. Make sure your notification channel can absorb mid-day interruptions cleanly.
  • Treating the batch window as a free lunch. The batch window is the window in which Xero and ConnectWise are out of sync; if anyone queries either system during that window, they see different states. For most MSPs this is fine because no one queries at 2am. For 24-hour-operating MSPs (rare in Australia, common in some US markets) this is not fine.

What we recommend

For the median 12-person Australian MSP doing AUD 1.5 million in revenue, batch is the right default. The 90-minute morning session fits cleanly into the bookkeeper's routine and the failure mode is bounded. Move to real-time only when one of the three signals above is genuinely present.

For larger MSPs (AUD 5 million+ revenue, 50+ invoices per day, multiple Xero entities, dedicated finance team), real-time becomes the right default because the live dashboard is part of the operating rhythm.

Connect Zero supports both. The default is near-real-time; the nightly batch is a configuration option in the sync admin. Switching between them is a 2-minute change in the admin console; no re-installation required. See the Connect Zero setup guide for the configuration screen.

Compare with the ConnectWise to Xero integration 2026 buyer's guide for the broader product evaluation, and the WiseSync alternative guide for the per-vendor comparison.

Frequently asked questions

Which is better for MSPs: nightly batch or real-time invoice sync?

For most MSPs, nightly batch is the operationally cheaper shape because the close happens once a day and the bookkeeper reviews the run output in one sitting. Real-time suits MSPs whose finance team wants invoices visible in Xero within minutes of approval in ConnectWise (typically larger MSPs or those running real-time cash flow dashboards).

What is the variance budget between a batch sync and a real-time sync?

At the close of the day, both should produce the same Xero state. Within the day, the variance is the queue depth: batch lags by up to 24 hours, real-time lags by up to a few minutes. For BAS reporting (Australian MSPs) the variance is zero, because BAS reads from end-of-quarter state.

Can I run both batch and real-time on the same MSP?

You can, per Xero entity. Most MSPs run one or the other. Running both adds complexity for no operational benefit.

What does Connect Zero do by default?

Connect Zero defaults to near-real-time (typically under 5 minutes from ConnectWise approval to Xero create) on the standard plan, with an option to schedule a nightly batch for MSPs who prefer that operating model. See the pricing page for the current shape.

Batch versus real-time is one decision inside the wider ConnectWise to Xero billing flow. For the full picture across agreement billing, time and materials, tax mapping and month-end close, see the complete ConnectWise to Xero billing guide for MSPs.

About this article

Written by the Connect Zero team, an Australian-built ConnectWise to Xero sync sold by Auswide IT, an Australian MSP integration vendor based in Adelaide. We run ConnectWise on our own books and went through the batch-versus-real-time decision ourselves in 2026 Q1. Last updated 24 May 2026.

See Connect Zero.

The integration layer. ConnectWise invoices in Xero without double-entry.

Start a free trial

Fill out the following details, and we’ll email you your trial login credentials. Get ready to experience the full capabilities of Connect Zero

Connect Zero is an independent third-party application. 3CX is a registered trademark of 3CX Software DMCC. ConnectWise is a registered trademark of ConnectWise LLC. Xero is a registered trademark of Xero Limited. Connect Zero is not affiliated with, endorsed by, or sponsored by these companies. All other trademarks are the property of their respective owners.