Integrations fail at the edges
Connecting two APIs is easy in a demo. Production is different:
- the vendor rate-limits you halfway through a sync
- a webhook arrives twice
- a record exists in one system but not the other
- a field changes format without warning
Most integrations that “mostly work” are failing in exactly these places, quietly.
I build integrations to survive those cases:
- Idempotent writes, so retries never create duplicates.
- Rate-limit aware workers with backoff and adjustable concurrency.
- Preview and dry-run modes for risky operations like pushing prices or deleting records.
- Reconciliation reports that compare both systems and flag drift.
- A sync log, so “why didn’t this record update?” takes one search to answer.
A real example
For a short-term rental operator, I integrated with a channel manager that distributes to Airbnb, Booking.com, Agoda, Expedia and VRBO:
- Two-phase rate push: room-type base rates first, then listing-level rates.
- Preview before sending: changes are grouped by building and pushed only after confirmation.
- Rate limits respected: the push stays within the channel manager’s limits, with adjustable concurrency.
- Bookings kept current: a sync every 10 minutes plus a webhook receiver.
Common integrations I build
- CRM ↔ billing ↔ accounting (HubSpot, Pipedrive, Stripe, Xero, QuickBooks)
- PMS / channel managers ↔ internal pricing and reporting tools
- E-commerce ↔ ERP, inventory and fulfilment
- Legacy systems and portals ↔ modern APIs, using exports, email parsing or browser automation
- Your SaaS ↔ the integrations your customers keep requesting
If an integration is costing your team hours or causing errors, it’s usually one of the fastest automation projects to pay back.
Pricing and ongoing costs
A straightforward one-way sync between two well-documented APIs usually takes about a week and sits at the lower end of the range. Costs rise with:
- two-way sync and conflict resolution
- poorly documented or rate-limited APIs
- large historical backfills
- systems that need browser automation because they have no API
Running costs are usually small: a lightweight worker on Railway, Fly or your own cloud, plus a database for the sync log. Because vendors change their APIs, many clients keep a small monthly retainer. It covers monitoring, updates when an endpoint changes, and adding new fields or flows as the business evolves. You always get the documentation and alerts, whether or not you take the retainer.
Signs you need a proper integration
- Someone exports a CSV from one system every morning and imports it into another.
- Records exist in your CRM that don’t exist in billing, or the reverse.
- A no-code flow has a “failed runs” list nobody checks.
- Reports disagree depending on which system you pull them from.
If any of these sound familiar, the integration is probably costing more than it would take to build properly.
