If it has an API, I can connect it
Clients ask whether I work with their ERP, their CRM or their EDI provider. The answer is the same every time: if the system has a proper API, yes. Here is what that means and which systems have one.
The question arrives in the first ten minutes of almost every call. “Do you work with NetSuite?” “Our CRM is Zoho, is that a problem?” “We do EDI through SPS Commerce, can you handle that?” People expect the answer to depend on the brand. It does not. It depends on whether the system has a proper API, and nearly every system a business would pay for today has one.
I have spent a good part of twenty years wiring stores and websites into whatever the client already ran: ERPs, accounting systems, Salesforce, HubSpot, TrueCommerce EDI, Avalara, a dozen payment and shipping providers. The brand changes. The work does not. Read the documentation, get a sandbox, map the records, write the sync, log everything, hold the ambiguous cases for a person.
What “a proper API” means
Vendors all claim to have an API. Here is what I check before I say yes.
| What I look for | Why it matters |
|---|---|
| Documented endpoints for the records you care about | If orders are readable but customers are not, half the job is impossible |
| A way to write as well as read | Plenty of “integrations” are read-only exports with a logo on them |
| Authentication a server can use without a person logging in | OAuth with refresh tokens or API keys. Anything that needs a browser session will break at 3am |
| Webhooks or a reliable way to ask “what changed since” | Otherwise the sync polls everything, which is slow, expensive and eventually rate-limited |
| A sandbox | You do not test against the live ledger |
| Rate limits you can live with | Fine for most. A problem for catalogs with tens of thousands of items and a vendor that allows one call a second |
| Stability | Versioned, with deprecation notices. Some vendors change things on a Tuesday |
If a system fails most of these, it can still be connected, but the honest answer changes from “yes” to “yes, with a workaround”, and I say which one.
The systems I get asked about
This is not a complete list. It is the ones that come up, with a one-line note on what the connection actually looks like.
| Kind | Systems | Notes |
|---|---|---|
| ERP | NetSuite, Sage 100, Sage Intacct, Sage X3, Microsoft Dynamics 365 Business Central and Finance, SAP Business One, SAP S/4HANA, Acumatica, Epicor, Infor, Odoo | NetSuite, Acumatica, Business Central, Intacct and Odoo have good modern APIs. SAP Business One goes through its Service Layer. Sage 100 is the odd one: it is a desktop product, so the connection goes through its own API or ODBC on a machine that can reach it, and I have done both |
| Accounting | QuickBooks Online, QuickBooks Desktop, Xero, FreshBooks, Bill.com | QuickBooks Online and Xero are straightforward. QuickBooks Desktop needs the Web Connector or a middleware service, which works but is a different kind of project |
| CRM | Salesforce, HubSpot, Zoho, Pipedrive, Dynamics 365 Sales, Copper, Close | All fine. Salesforce and HubSpot are the deepest and the most particular about limits and object models |
| EDI | TrueCommerce, SPS Commerce, Cleo, Orderful, direct X12 or EDIFACT over AS2 or SFTP | The providers give you an API or a document drop; direct EDI means I parse and produce the documents myself. Both are routine. The hard part is always the trading partner’s own rules |
| Commerce | Shopify, WooCommerce, BigCommerce, Magento, Squarespace, Wix | Shopify and WooCommerce are excellent. BigCommerce is good. Magento is capable and heavy. Squarespace and Wix are limited, and I say so |
| Payments and tax | Stripe, PayPal, Authorize.net, Braintree, Avalara, TaxJar | Among the best APIs in the industry. Rarely the problem |
| Shipping | ShipStation, EasyPost, Shippo, UPS, FedEx, USPS | The aggregators are easy. The carriers’ own APIs are workable and change more often than you would like |
| Marketing and support | Klaviyo, Mailchimp, ActiveCampaign, Zendesk, Intercom, Freshdesk | All fine |
| Everything else | Google Workspace, Microsoft 365, Slack, Jira, Asana, Airtable, Notion, your own database | If it stores records and exposes them, it goes on the list |
If your system is not here, ask. The answer is usually still yes.
When the API is bad
Some systems are old, or locked down, or the vendor charges extra for the API and you have not paid. The order of fallbacks, worst last:
- A database or ODBC connection, where the vendor allows it. Common with on-premise ERPs.
- Scheduled file exports and imports, CSV or XML, picked up and processed by a job. Unfashionable and reliable.
- A vendor’s own middleware or a connector marketplace, when a well-kept one exists for your exact pair of systems.
- Driving the vendor’s screens with automation. The last resort, because it breaks when they move a button, and I will tell you it will break.
What I actually build
The brand of the system is the smallest part of the job. The work that makes an integration trustworthy is the same every time: a data map that says which system owns the truth for each field, rules for what syncs and in which direction, validation before a record moves, a log of every move, retries when the other side is down, and a review queue for records that do not fit the rules so a person decides instead of a guess. That last part is where most integrations I inherit have gone wrong. They guessed.
The process for this is on the process page. It starts small on purpose: one direction, one record type, watched for a week, then the next.
So bring the system you have. If it has a proper API, I can connect it. If it does not, I will tell you what it will take.