HighFlyer

HighFlyer Web design. Custom software. AI automation. From New Zealand, for businesses worldwide. Strategic insight meets engineering excellence.

HighFlyer was founded with a vision to bridge the gap between strategic business consulting and technical implementation. We recognised that many organisations struggle to translate strategic initiatives into practical software solutions. Our journey began with a small team of consultants and engineers who shared a passion for solving complex business challenges through innovative technology. Toda

y, we specialise in custom software development, AI automation, and system integrations—building everything from SaaS platforms to intelligent chatbots and API-driven solutions. Headquartered in Auckland, HighFlyer now serves clients globally as a trusted partner for digital transformation. We combine deep technical expertise in areas like payment integrations and enterprise systems with strategic insight to help organisations leverage technology for competitive advantage.

It's Friday afternoon. Your accountant sends you the monthly P&L. You scan it for two minutes, look for anything red, an...
04/06/2026

It's Friday afternoon. Your accountant sends you the monthly P&L. You scan it for two minutes, look for anything red, and put it away.

That's how most NZ business owners interact with their accounting data. Once a month. For two minutes. By the time anything looks wrong, you're three weeks behind reacting to it.

We built a small AI tool that reads your Xero P&L every night and writes a short note about what changed. Not the full report. Not numbers in a spreadsheet. A few sentences in plain English. "Sales are up 12% on last month, mostly from your Albany branch. Cost of Goods has crept up 4%, you may want to look at the dairy supplier line."

The hard part wasn't the AI. It was making it accurate enough that you'd trust it.

Our first attempt matched on section titles. "Sales" goes in the revenue bucket. "Expenses" goes in the expenses bucket. That worked for about a week, until we ran it against a Xero file that had been customised to suit a specific business. The AI started classifying revenue as expenses and panicking the dashboard.

The fix took some unpicking. We stopped reading the P&L like a human would and started pulling from Xero's underlying account classifications. Every account in Xero is tagged with what it actually is. The AI now reads those tags, not the section names. Accuracy went from "mostly right" to "right".

We also had to be thoughtful with running cost. AI isn't free. We cache what we can and only ask the model the questions a business owner would actually want answered.

We use it on our own books every week now. Two sentences a day beats two minutes a month.

If your P&L sits in Xero and you're only opening it monthly, you're flying blind for the other 29 days. Worth asking what you're missing.

When was the last time you looked at your numbers before someone else flagged a problem?

Every business owner we talk to has one. The thing they meant to fix in February. The spreadsheet that's still being upd...
02/06/2026

Every business owner we talk to has one. The thing they meant to fix in February. The spreadsheet that's still being updated by hand. The follow-up email someone still types out the same way every week.

We've heard ours a hundred times by now:

- Monthly stocktake reconciliation in Excel
- Pasting bank statements into MYOB line by line
- The "checking emails for new orders" Tuesday morning ritual
- Sending the same quote template every time, with five fields changed
- That one report the owner exports, manually reformats, and emails to the board on Friday

Most never get touched. Not because automation is hard. Because the manual version still works just well enough to keep happening.

So we're going to ask the obvious question, and we'd actually like to hear your answers:

What's the manual workflow you swore you'd automate this year, and still haven't?

Your analytics dashboard says you had 8,140 visitors last month. Your sales pipeline says nothing changed. One of them i...
28/05/2026

Your analytics dashboard says you had 8,140 visitors last month. Your sales pipeline says nothing changed. One of them is lying to you.

We see this pattern on a lot of NZ business websites. The numbers go up and to the right. The actual conversations don't.

The usual culprit is bots. Search engines indexing your pages. Security scanners poking at your forms. SEO tools doing competitor research for someone else. They all show up in your dashboard as "visits".

Most analytics dashboards we audit are counting between 25% and 50% bot traffic. Sometimes worse. If your numbers feel disconnected from your actual sales pipeline, that's usually why.

The 8,140 visits above? After we filtered out the bots, the real number was 5,275. A third of what the dashboard reported was crawlers, scanners, and scrapers.

Filtering them out is harder than it sounds. The naive fix is to filter at the server, blocking known bot signatures before the page is served. That works for a while. Then it stops, because most modern websites are served from a fast cache layer that doesn't always ask your server who's visiting.

The fix we now bake into every SiteFlow site is to put the bot check inside the visitor's browser. Real people run the check just by loading the page. Most bots skip that step. Anything that doesn't complete the check gets tagged as "probably a bot" and stripped out of the numbers you act on.

Not great for the slide deck. Much better for the decisions you make with the data.

This is why our SiteFlow web service includes analytics and SEO setup, not just design and code. The dashboard you check every month should be telling you the truth.

When was the last time you cross-referenced your website analytics with your actual sales pipeline?

You're about to hire someone to build software for your business. They're going to disappear into their laptops for thre...
26/05/2026

You're about to hire someone to build software for your business. They're going to disappear into their laptops for three months and come back with something you'll live with for the next five years. Here are five things worth asking them on the first call.

1. Have you ever told a client not to build something?

If the answer is no, every project they take is one they can sell. Not one that should exist. The right answer comes with a story.

2. Who actually writes the code, and where do they live?

Many shops sell the senior consultant and deliver with juniors you'll never meet. Not always bad. But you need to know who's behind the keyboard.

3. If you're hit by a bus next year, what happens to my business?

Tests for documentation, code ownership, account access. The boring stuff that quietly decides what year two looks like.

4. Can I see something you built two years ago that's still in use?

A working demo from last week is easy. A system that's been running for years means it didn't quietly collapse the moment your invoice cleared.

5. What does this look like if we never call you again?

If the answer is "nothing works", you're not buying software. You're buying a leash.

We've answered all five of these for clients on first calls. Sometimes it loses us the work. We're OK with that.

What's the question you wish you'd asked the last team you worked with?

Imagine waking up on a weekday and finding an email already in your inbox.It tells you which orders are still waiting to...
21/05/2026

Imagine waking up on a weekday and finding an email already in your inbox.

It tells you which orders are still waiting to ship, which quotes have gone silent, which invoices are overdue, which bills are due this week, and the three highest-leverage things to do today.

You read it over your first coffee. You finish your coffee already knowing what to do.

That used to be a chief-of-staff function. For a small business it's now an engineering problem with a known solution.

We build these for NZ SMEs whose data is good enough to power a chief-of-staff function but whose headcount isn't: automated morning briefings, weekly cash and order summaries, scheduled board reviews. Three things we've learned:

1. The most useful agents are scheduled, not interactive. The owner doesn't ask the system questions, the system tells the owner things on a schedule. This is the opposite of how most people use ChatGPT, and it's part of why most ChatGPT-style tools haven't changed how SMEs actually run.

2. Defaults beat dashboards. Nobody logs into four systems every morning before deciding what's important. The briefing has to come to the inbox, already filtered to "what changed since yesterday".

3. Hallucinations matter less when every claim links to its source. Each line in a useful briefing is a clickable link to the underlying record. Trust comes from "I can verify this in one click", not from the model sounding clever.

A build for an SME of under 10 people typically takes a few weeks. Maintenance is close to zero. Running cost is closer to a Mac mini and an API subscription than a salaried analyst.

We built the first one of these for our own business and have been running it for the last two months. We're now building them for clients.

If you're spending 30+ minutes every morning checking four or five systems before you can decide what to do, you're a candidate for one of these.

What's the morning information ritual eating 30+ minutes of your day?

When an NZ SaaS hires us to build their billing engine, the Stripe integration takes a day. The NZ-specific tax logic on...
19/05/2026

When an NZ SaaS hires us to build their billing engine, the Stripe integration takes a day. The NZ-specific tax logic on top takes a week.

That ratio surprises every new client. The off-the-shelf integration is the easy part. The layer on top that tells the off-the-shelf system how NZ businesses actually operate is the hard part.

Three NZ-specific rules show up in almost every project we take on, and almost every off-the-shelf API, library, or third-party integration gets them wrong by default:

1. Tax across borders. A NZ SaaS billing customers in Tokyo, Berlin, and Austin doesn't just charge "15% GST". It needs Japan Consumption Tax thresholds, EU VAT, US state-by-state sales tax, and NZ's own zero-rating rules for exported services. Each one has different rules for B2B vs B2C. Off-the-shelf billing libraries default to one tax line. We end up writing a tax engine on top.

2. GST mechanics. When we build invoicing or accounting integrations for NZ SMEs, we can't assume "invoice basis, monthly". NZ has three filing methods (invoice, payment, hybrid), three filing frequencies, and a $60k registration threshold. Most off-the-shelf invoicing libraries model only invoice basis. For payment-basis NZ businesses, we have to build a parallel ledger that recognises revenue on payment receipt.

3. Bank reconciliation. When we build payment systems or sync layers for NZ businesses, there's no open-banking standard to pull from. The five major NZ banks each export differently. A naive Stripe → Xero integration creates payout entries that don't reconcile to NZ bank lines. We end up writing matching layers between Stripe's payout descriptors and ANZ / BNZ / ASB transaction formats.

The pattern: software written somewhere else assumes everywhere is somewhere else. Building software for an NZ business means building the layer that makes off-the-shelf behave like it's in NZ.

If you're scoping a build with a vendor and they haven't asked about your GST filing basis, your bank, or your customers' geography, they're probably going to discover those things in production.

What's the NZ-specific gap in off-the-shelf software that you've had to work around in your business?

Every morning the inventory job died. Someone restarted it. Same story the next morning. Eventually it stopped restartin...
14/05/2026

Every morning the inventory job died. Someone restarted it. Same story the next morning. Eventually it stopped restarting at all.

This is the third time we've watched the same pattern in the last six months. An automated job, pushing stock to Shopify, syncing orders from WooCommerce, dispatching scheduled customer deliveries, runs for hours and times out. Someone bumps the time limit. It works for a week. Then it breaks again. Bumped again. Works. Breaks.

The instinct is to keep raising the timeout. The instinct is wrong.

In the Shopify case, an inventory sync was meant to run every hour. The store had about 7,300 items. The old approach was making roughly 14,600 individual requests with a one-second pause between each. The arithmetic alone put it over two hours. No timeout was ever going to fit.

We rebuilt it to send updates in batches of 250 instead of one-by-one. Same store, same data:
- Before: 14,600 calls, 3+ hours, timed out
- After: ~30 calls, 11 seconds, done

The same shape of problem hit a WooCommerce sync earlier this year and an auto-delivery automation for an NZ food manufacturer more recently. Different code, same root cause: a job designed for ten orders running against ten thousand. The fix is never "make the timeout bigger." It's "stop doing ten thousand things one at a time."

If you have a scheduled job that needs babying, restarted, retried, given more time every few months, the timeout isn't the problem. The shape of the work is.

Full write-up of the Shopify rebuild including the retry logic: https://highflyerglobal.com/blog/2026/04/29/erpnext-shopify-inventory-sync-graphql-rewrite/

What's a job in your business that someone has to "go and kick" once a week?

A customer running a brand selling into Europe and Asia asked us to add language support to their site. They thought it ...
12/05/2026

A customer running a brand selling into Europe and Asia asked us to add language support to their site. They thought it was a translation job. It wasn't.

If your site reads in Korean but the date format is American, the address line says "State" when nobody in that country uses one, and the price is listed in NZD because you forgot the converter, the language doesn't save you. A reader in Seoul is still going to bounce.

What the customer actually needed was English, Dutch, and Korean, with each market seeing the things that signal "this site was built for me." Local date format. Local currency. Address fields that match how people actually live. A language switcher that doesn't reload the whole page and lose the visitor's place.

We built the site so the language switches inline, instantly, with the visitor staying exactly where they were. The translations were the easy part. Getting every other detail right. That was where the work lived.

If your business sells outside New Zealand and your site is "translated", you're probably losing visitors who think it isn't really for them. They won't tell you. They'll just leave.

What's the smallest signal a website gives you that it wasn't built with your country in mind?

Most NZ beauty and wellness clinics pay $20 to $25 per staff member per month for booking widgets like Calendly or Acuit...
07/05/2026

Most NZ beauty and wellness clinics pay $20 to $25 per staff member per month for booking widgets like Calendly or Acuity. Five practitioners is over $1,000 a year just to let customers pick a time.

Every one of those clinics already pays for Google Workspace. And Google Calendar has an API.

We built TrueGlow's booking system directly against Google Calendar. Customers see real-time availability. When they confirm, the booking lands as a calendar event the practitioner sees instantly in their normal Google Calendar app. The customer gets an email with an iCal attachment so it goes into their calendar too. In English and Mandarin, because the Auckland clientele needs both.

Adding staff doesn't add cost. Google Calendar's API exposes per-staff availability natively, so the same setup handles one practitioner or fifteen. Microsoft 365 with Outlook works the same way.

Beyond cost, the win is ownership. The practitioner's calendar is the source of truth. Block out a holiday in your normal calendar app and the booking page reflects it instantly.

If you're paying per-seat for a booking platform, ask your dev team: what would it take to do this against the calendar tool we already pay for?

What's a SaaS you're paying for that's quietly replacing something you could already do yourself?

The naive Xero integration is five lines of code. Submit a sales invoice locally. Map it. Call xero.invoices.create. Don...
05/05/2026

The naive Xero integration is five lines of code. Submit a sales invoice locally. Map it. Call xero.invoices.create. Done. It works on a sunny afternoon with one worker and no traffic.

Then you put it in production.

The worker dies halfway through pushing an invoice. The local doc is submitted, Xero never received it. The worker restarts, retries, and now there are two invoices in Xero. Someone cancels the doc in your system while it's being pushed. Xero has it, your system says it doesn't. A line item has no tax code resolved and the user sees "something went wrong."

Each of these is an engineering decision, not a tutorial line.

We built the connector that pushes invoices from NexWave to Xero. The five things it does that most tutorials skip:

1. Background queue with enqueue_after_commit, so the user doesn't wait for Xero. The push is queued only if the local transaction commits.
2. Idempotent by remote lookup, not by local flag. We ask Xero "do you already have this invoice number?" before creating. Source of truth lives at Xero, not our state.
3. Re-check docstatus after the API call. If the doc was cancelled mid-push, void the Xero invoice automatically.
4. Tax resolution with a fallback chain (line template, doc template, item default, company default). If all four miss, fail with a specific actionable error.
5. A recovery path for documents stuck in queued state, with manual retry and orphan detection.

Underlying pattern: every decision assumes something will go wrong. Idempotency means duplicates can't happen. Re-checking means silent desync can't persist. Queued sync means a slow Xero never slows the user.

Reliability isn't defensive code. It's choosing data structures that make the wrong outcomes impossible.

Full breakdown: https://highflyerglobal.com/blog/2026/04/08/xero-integration-that-survives-crashes/

What's the most expensive assumption your last integration made about happy paths?

Address

Suite 15703 Unit A/26 Hobson Street
Colombo 03
1010

Opening Hours

Monday 08:00 - 17:00
Tuesday 08:00 - 17:00
Wednesday 08:00 - 17:00
Thursday 08:00 - 17:00
Friday 08:00 - 17:00

Telephone

+442032394486

Alerts

Be the first to know and let us send you an email when HighFlyer posts news and promotions. Your email address will not be used for any other purpose, and you can unsubscribe at any time.

Contact The Business

Send a message to HighFlyer:

Share