Platform · platform & data

Connected to what you already run

An integration is not a connector. A connector moves records; an integration keeps two systems agreeing about the same facts through schema drift, outages, retries, and the day somebody edits a record in the other system by hand. Most integration projects buy the first and are billed for the second.

QuickBooks OnlineQuickBooks DesktopXeroNetSuiteSage IntacctSage 100 / 300AcumaticaDynamics 365 BCOdooSAP Business One
60+ systems supportedReconciled daily, not just syncedDrift alerts before anyone notices

What it does

Six things, specifically.

Accounting and ERP

QuickBooks Online and Desktop, Xero, NetSuite, Sage Intacct, Sage 100 and 300, Acumatica, Dynamics 365 Business Central, Odoo, and SAP Business One.

Banking and payments

Plaid, direct bank feeds, Stripe, Adyen, Modern Treasury, Mercury. Charges, refunds, disputes, fees, and payouts read separately rather than as net deposits.

Payroll and HR

Gusto, Rippling, ADP, Paylocity, TriNet, and Deel — with the department and project dimensions preserved rather than collapsed into a single journal line.

CRM and marketing

Salesforce, HubSpot, Pipedrive, Close, and Marketo, mapped so the customer in the CRM and the customer in the ledger are the same object rather than two records with similar names.

Commerce and billing

Shopify, Amazon, WooCommerce, Chargebee, Recurly, and Zuora, with settlement reconciled to deposits rather than assumed.

Projects and data

Jira, Asana, Linear, Monday, ClickUp, Harvest, plus Snowflake, BigQuery, and object storage for anything downstream.

Sync is the easy half

Any competent engineer can call an API and write the results somewhere. What fails, months later and quietly, is everything around it: an API version deprecates, a webhook is missed during a deploy, somebody edits a record directly in the source, a retry double-writes, a field that was always populated starts arriving null.

None of those raise an error. They produce a slow divergence that surfaces at close, when somebody notices that the number here does not match the number there and nobody can say when it started.

Integrations do not fail loudly. They drift, and the drift is discovered at close by somebody who then has to reconstruct when it started.

Reconciled daily

Every connector runs a daily reconciliation independent of the sync itself: counts, control totals, and spot-checked records compared between source and graph. A mismatch raises an alert with the records attached rather than waiting to be discovered.

That check is deliberately not built from the same code as the sync. A reconciliation that shares its assumptions with the process it is checking will confirm those assumptions rather than test them.

Idempotency, because retries happen

Every write carries an idempotency key derived from the source record and its version, so a retried delivery updates rather than duplicates. Duplicate transactions from a retried webhook are one of the most common integration defects we are called in to clean up, and they are tedious to unwind after the fact because the duplicates are individually valid.

Where it is honestly harder

QuickBooks Desktop has no cloud API. Extraction runs through the SDK against a company file on a machine somebody maintains, and it is roughly three times the elapsed work of the online edition — which is why we quote it separately rather than pretending the two are the same job.

Older on-premise systems and anything reached through a database read replica or a nightly file drop are scoped case by case. We will say in the first conversation which of those yours is, because discovering it in week six is how integration projects go over.

Limits

Where this does not help.

Not every system has an API

Some are file-based, some are screen-scraped, some are genuinely closed. We will tell you which yours is before you buy rather than after.

Two-way sync is chosen deliberately

Bidirectional writes need an authoritative side per field. Where a customer wants two-way on a field with no clear owner, we recommend against it and say why.

Rate limits are real

Several accounting APIs are slow enough that a full historical extract takes days. We plan around that rather than promising an overnight backfill.

Questions

What people ask.

How long does a connector take to stand up?
A supported system is usually days rather than weeks. The time goes into mapping and reconciliation, not into the connection itself.
What if our system is not listed?
If it has an API we will scope it; if it does not, we will tell you what is possible and what it costs. Either answer comes before you commit.
Do you write back to our accounting system?
Where it makes sense and where the field has a clear authoritative side. We recommend against two-way sync on fields where neither system is clearly authoritative.
How do you handle duplicates?
Idempotency keys derived from the source record and version, so retries update rather than duplicate. It is the most common defect we clean up in inherited integrations.
Who fixes it when an API changes?
We do, as part of the subscription. Connector maintenance is not billed as change requests, which is the arrangement that makes drift somebody’s problem rather than nobody’s.

Send us your stack list.

We will confirm what connects, what needs building, and what we would leave alone.