Business system integrations
Connect CRM, ERP, commerce and internal tools through available APIs, webhooks and scheduled synchronization.
Connect your product to the services your business relies on. We build API integrations and backend services that keep data moving between applications with explicit ownership, permissions and failure handling.
We map the systems of record, API limits and synchronization rules before building. Integration scope includes authentication, retries, logging and reconciliation where appropriate. Documentation explains the data flow and how to diagnose failed events after handover.
Connect CRM, ERP, commerce and internal tools through available APIs, webhooks and scheduled synchronization.
Integrate payment providers, subscription states and billing events with careful handling of retries and duplicate notifications.
API design, data migration and service refactoring with a staged rollout that accounts for existing consumers.
Integration projects usually begin with a symptom and not with a technical request. Typical starting points:
Where the underlying problem is a manual process and not a missing connection, a small purpose-built tool may be the better answer. We cover that under internal tools and dashboards and custom software development.
Most integration failures are decided before development starts, by assumptions nobody checked against the real API or the real data.
How we work in detail ↗We read the documentation, obtain sandbox access and test the endpoints that matter. We look at rate limits, pagination, authentication, webhook reliability and the gaps between the documentation and actual behaviour. Output: a short feasibility note.
A field-by-field mapping between systems, including which system is the source of truth for each record type, how conflicts are resolved and what happens to records that fail validation. You sign this off before the build.
Development in increments, with automated tests for the failure cases: timeouts, duplicate webhooks, partial outages and malformed responses. A staging environment runs against test accounts.
Where possible the integration first runs in read-only or shadow mode, with results compared against the manual process. It is then switched on for a subset of records, and then for everything. Handover includes the repository, configuration and a runbook.
Moving data between two systems on a good day is easy. The engineering lies in what happens when a network call times out halfway, a webhook arrives twice, or the other system is down for an hour. We build mainly with Node.js, TypeScript and PostgreSQL, and the patterns matter more than the language.
| Problem | Pattern we use | What it prevents |
|---|---|---|
| The same event delivered twice | Idempotency keys and deduplication on event IDs | Double charges, duplicate orders |
| Temporary outage on the other side | Job queue with retries, backoff and a dead-letter list | Silent data loss |
| Webhooks that never arrive | Periodic reconciliation against the source API | Systems drifting apart unnoticed |
| Rate limits | Throttled workers and batching | Blocked API keys during bulk syncs |
| Forged or replayed webhook calls | Signature verification and timestamp checks | Unauthorised state changes |
| Secrets and tokens | Environment-level secret storage, scoped keys, token refresh handling | Credentials in the repository, expired connections |
| Nobody knows it broke | Structured logs, failure alerts, an admin view of failed events with a retry button | Finding out from a customer |
For your own API we default to REST with an OpenAPI description, because every client and tool understands it. We use GraphQL or other styles when the consumers clearly benefit. Breaking changes are versioned, and existing consumers receive a migration path instead of a surprise.
We price integration work against a written scope once the API review is done. The main drivers are:
Integration work ranges from a two-day webhook to a multi-year enterprise programme. We sit towards the smaller, more focused end.
Often, yes. We review the available APIs and constraints first, then propose an integration boundary that preserves existing workflows where practical.
There are usually fallbacks: scheduled file exports and imports, a database read replica, email parsing, or the vendor’s own integration platform. Each is more fragile than a documented API, so we say which one we would use, what can break and how failures would be noticed. If the only route is scraping a web interface against the vendor’s terms, we will advise against it.
A single well-documented API such as a payment provider or email service is commonly one to two person-weeks including error handling and tests. Two-way synchronisation between business systems with different data models takes longer, and the range depends mostly on how many record types are involved and how conflicts are resolved. We estimate after reviewing the API documentation and a sample of real data.
You receive the code, configuration and a runbook that explains the data flow and how to diagnose failed events. Third-party APIs change, so some upkeep is unavoidable. You can handle it in-house, or arrange ongoing support with us, scoped separately from the build.
Yes. That covers resource design, authentication with API keys or OAuth, rate limiting, versioning, webhooks for your customers and reference documentation. It is often part of a larger SaaS build and can also be a standalone project on an existing backend.
List the systems involved, what data needs to move between them and how often. We reply with questions about the available APIs and a suggested integration approach.
Discuss your integration ↗