Two container cranes on a night wharf reaching toward each other, their spreaders a hand’s width apart and not touching, lit from below.
Manifest 05 · Guide

“It has an API” is not an answer. Ask the next six questions.

Two systems can integrate when both expose the records you need, in the direction you need, at a rate your volume needs, with a way to know when it failed. Every vendor says “we have an API”. This checklist is the next six questions, with the published limits for the nine systems we have built against.

01 · Guide

The API exists, and it sits on a tier you pay for

Start with the pricing page, not the developer documentation. ServiceM8 lists API access on its Premium tier at $149 a month for 500 jobs and Premium Plus at $349 for 1,500 or more; the Starter and Growing tiers below do not list it (ServiceM8 pricing, checked September 2026). If you are on Growing, the integration carries a hidden prerequisite of the tier jump, forever.

Some vendors do not publish at all. Simpro’s pricing page offers “Request Pricing” and no figures (Simpro pricing, checked September 2026), so the API question is part of a sales conversation rather than a checkbox. Xero’s API is available across its plans, which run from $78 to $143 a month including GST at regular pricing (Xero AU pricing, checked September 2026).

The failure case here is common and quiet: a business buys the cheap tier, plans an automation on top, and discovers the connection costs more than the automation. Check the tier before you check anything else.

02 · Guide

The records you need are exposed, in the direction you need

Read and write are different questions. Many systems let you read everything and write almost nothing; others let you create records but not update or delete them. Write down the three records that matter — usually customer, job and invoice — and for each ask: can I read it, create it, change it, and know when it changed?

Knowing when it changed is the one that decides most designs. Either the system pushes changes to you through webhooks, or you poll it on a timer. Zapier’s instant triggers use webhooks; its polling triggers check every 15 minutes on the free plan, 2 minutes on Professional and 1 minute on Team (Zapier help, how Zap triggers work, checked September 2026). If a customer pays and the job board updates fifteen minutes later, that is probably fine. If a technician is standing at the door waiting for it, it is not.

Stripe illustrates the asymmetry well: write requests have no allocation limit, but read requests are allocated at 500 per transaction on a rolling 30 days, with a floor of 10,000 a month (Stripe docs, rate limits, checked September 2026). A design that re-reads every payment every minute will run into that; a design that listens for webhooks will not.

A nautical chart with a route plotted in glowing dots
Cargo · SEC
03 · Guide

The rate limits carry your volume, with room to re-sync

This is arithmetic, and almost nobody does it before quoting. Take your daily volume, multiply by the calls each record needs, and compare it with the published ceiling. Then do the same for the day you have to re-sync everything, because that day comes.

  • KNDR·01Xero60 calls a minute and 5,000 a day per connected organisation, 5 concurrent, and 10,000 a minute across an app; exceeding any returns HTTP 429 with a Retry-After header (Xero Developer, API limits, checked September 2026). Two hundred invoices a day at three calls each is 600 — comfortable. A full re-sync of 8,000 contacts is not a one-day job.
  • KNDR·02ServiceM8180 requests a minute and 20,000 a day per application and account pairing, with HTTP 429 on either (ServiceM8 developer docs, HTTP response codes, checked September 2026). Roomier than Xero by day, tighter by minute if you burst.
  • KNDR·03Stripe100 requests a second in live mode, 25 in a sandbox, most individual endpoints at 25 a second (Stripe docs, rate limits, checked September 2026). Rarely the constraint for a small business; the read allocation above usually bites first.
  • KNDR·04MYOBThe only figure we could find is a staff answer on the developer forum: 8 calls a second and 1,000,000 a day per API key (MYOB developer community, staff answer on API rate limits, posted about 2019 — a forum answer, not a documentation page, and old). We have built against MYOB, but we would not design to a forum post from 2019 without testing it — and we say so rather than quoting it as documentation.
  • KNDR·05Simpro, GoHighLevelBuilt against, limits not published in a form we would reproduce here. Ask the vendor directly and get the answer in writing before the quote.
04 · Guide

You will know when it fails, and someone will see it

Integrations do not fail loudly. They fail by skipping one record in four hundred, and you find out at the end of the quarter. Human error was behind 37% of notified data breaches in the first half of 2025 (OAIC, Notifiable Data Breaches statistics January–June 2025, published 4 November 2025), and an integration that silently drops a record is a machine making a human error at scale.

Three things make failure visible. The connection retries on 429 and network errors with backoff rather than giving up. Every write is idempotent, so a retry cannot create a duplicate invoice. And there is an error queue a human actually looks at — an email, a board, a Slack channel, anything — with the failed record and the reason. If a proposal does not mention all three, the integration is designed for the demo.

The test we run: unplug the destination for ten minutes during the trial. What happens to the records created in that window? “They come through when it reconnects” is the right answer. “They are lost” is the usual one.

A chart table with two plotted routes diverging
Cargo · GD
05 · Guide

You know whose account holds the keys, and where the data goes

Every integration holds credentials for both systems. Ask in whose account they live, who can revoke them, and where the connection itself runs. Zapier is a hosted service only; n8n offers a cloud service or self-hosting on your own infrastructure, with a free Community edition carrying “almost the complete feature set” (n8n docs, choose how to use n8n, checked September 2026).

Where it runs is also a privacy question. If the connection carries customer names, addresses or health details through an overseas service, APP 8.1 requires reasonable steps before the disclosure and section 16C makes you accountable for the recipient’s breaches (OAIC, APP Guidelines chapter 8, checked September 2026). An integration that copies every contact through a US server is a disclosure, whether or not anyone thought of it that way. Our own position on where things run is on ownership and security.

The middle path is usually the answer: keep both products, build the join, and run the join somewhere you can see. Where it runs decides the platform choice, and the platform choice decides the cost curve.

06 · Guide

The running cost is known before the build cost

Platform integrations bill by success. Zapier charges per completed task — 100 a month free, paid tiers from US$19.99 a month — and does not charge for checking whether new data exists (Zapier pricing, checked September 2026, USD). At low volume that is nearly free. At the volume where the integration is actually saving you time, it is a bill that rises with the saving.

A purpose-built connection inverts that: the cost is hosting and someone’s attention, and it barely moves with volume. Which model suits you depends on volume and on whether anyone at your business can carry the second — the same trade as every system-glue engagement we run. Neither is wrong. Not knowing which you are on is.

Only 12% of Australian businesses reported using AI in 2024–25 (ABS, Characteristics of Australian Business, 2024–25, released 25 June 2026), and most integration work has nothing to do with AI at all. It is plumbing: a record leaves one system and arrives in another, correctly, every time. Price the plumbing as plumbing.

A channel of red warning buoys with one safe marker ahead
Cargo · GD
07 · Guide

The nine we have built against, and the ones we have not

Xero, MYOB, QuickBooks Online, ServiceM8, Simpro, Stripe, GoHighLevel, Zapier and n8n. Those are the systems we have connected in production, and the published detail for each is in the capability register. What the register does not yet publish is measured behaviour under load — that column is still empty, and we would rather show an empty column than a borrowed number.

AroFlo, Fergus, Tradify, Buildertrend, HubSpot at depth, and most of the NDIS platforms: not built against. For those, this checklist still works — the six questions are the same — but you are running it from the vendor’s documentation rather than from our experience, and you should weight the answers accordingly. The integration checker tells you which side of that line your pair of systems sits on.

08 · Guide

Score the pair of systems you have in mind

Answer about two specific systems and one specific flow of records — not “can we integrate” in general.

Ten questions. If you cannot answer one, that is a “no” for now — the answer exists on a pricing page or in documentation, and finding it is the work.

  1. Does each system expose an API on the tier you actually pay for?
  2. Can you read, create and update the three records that matter, in each direction you need?
  3. Does the source system push changes (webhooks), or have you accepted a polling delay?
  4. Have you multiplied your daily volume by calls per record and compared it with the published limit?
  5. Would a full re-sync fit inside the daily limit, or have you planned it over days?
  6. Will failed records be retried, and will a human see the ones that still fail?
  7. Are writes idempotent, so a retry cannot duplicate an invoice?
  8. Do you know whose account holds the credentials and where the connection runs?
  9. Have you checked whether personal information will leave Australia in the process?
  10. Is the running cost known and written down before the build is quoted?

0 of 10 answered. The result appears once you have answered them all.

Runs in your browser; nothing is sent. If the pair includes a system we have not built against, treat a “yes” here as “feasible on paper” until someone has tested it.

A brass hand-wheel valve among automated glowing pipes
Cargo · GD
Objections · answered straight

The questions people actually ask.

01The vendor says they integrate with everything. Why isn’t that enough?

Because “integrates with” usually means a Zapier listing or a one-way export. Ask which records, which direction, how often, and what happens when it fails. If the answer to any of those is a shrug, the integration is a logo on a page.

02Can’t we just use Zapier and skip all this?

Often, yes — and we will say so when it is the answer. Zapier removes the rate-limit and hosting questions by carrying them for you, at a per-task price. The checklist still applies: the records, the direction and the failure handling do not change because a platform is in the middle.

03What if one system has no API at all?

Then you are looking at scheduled exports and imports, email parsing or screen automation — all fragile, all possible, none worth building on for the long term. Say so plainly, cost the manual alternative, and consider whether the system without an API is the one you have outgrown.

Free 30-minute call

Stop bending.
Start shipping.

Bring the one flow that keeps costing you a Tuesday afternoon. We map it live and tell you what we'd build, what we wouldn't, and what it costs.

Call0403 475 099 Emailhello@kindraai.dev

20 minutes. We find where the money's going. No pitch.