We connect the platforms that were never designed to talk.
ERP to ecommerce, CRM to ERP, marketplace to carrier, everything to the warehouse. Custom connectors, middleware and automation for clients across Europe and the UK, delivered by senior engineers. White-label for agencies and ERP partners.
What this actually is
An integration is a service that keeps two systems agreeing about the same record.
It is not a nightly CSV export, and it is not a single automation that fires once and hopes. A real integration owns the mapping between an order in your shop and an order in your ERP. It decides which side wins when they disagree, retries when one of them is down, reconciles what got lost, and tells a named person when it finally gives up.
Most of the work is not the API call. It is the boring part: agreeing on the key that identifies the same customer in both systems, handling the webhook that arrives twice, and making sure the finance team can still close the month when a sync fails on a Friday night.
You probably got here because
One of these is happening every week.
None of them look like an integration problem from the inside. They look like a staffing problem, a data problem or a bad month.
01
Somebody re-types orders
An order lands in the shop and a person copies it into the ERP. That person is the integration, and they take holidays.
02
Stock is only right in one place
The shop keeps selling what the warehouse no longer has, because levels move once a night, if the export ran at all.
03
Two records, one customer
Sales works in the CRM, finance works in the ERP, and the two lists disagree about the tax ID of the same company.
04
The carrier never got the order
Labels are made by hand, tracking numbers get pasted into emails, and nobody notices a gap until the customer asks where the parcel is.
05
Every report starts with an export
The monthly pack begins with somebody pulling four spreadsheets and reconciling them by eye. The numbers are a week old before anyone reads them.
06
The last integration has no owner
A freelancer built it in 2021, it runs on a server nobody can log into, and it fails silently. Everybody is scared to touch it.
Integrations we build
Six connections cover most of what gets asked for.
Each one is a real project shape with its own failure mode. The systems listed are the ones that come up most often, not a limit.
01
ERP ⇄ Ecommerce
Systems
Odoo, SAP Business One, Business Central, Holded, Sage ⇄ Shopify, WooCommerce, PrestaShop, Magento
What syncs
+Catalogue and price lists
+Stock levels per warehouse
+Orders, refunds and credit notes
+Customers and tax IDs
Trigger
Webhook on order creation, plus a scheduled reconciliation for stock.
What usually breaks
Tax and rounding. A shop that stores prices with tax included and an ERP that stores them without will disagree by cents on every line, and then the invoices stop matching the orders.
02
CRM ⇄ ERP
Systems
HubSpot, Salesforce, Pipedrive, Zoho ⇄ Odoo, SAP Business One, Dynamics 365, Holded
What syncs
+Companies, contacts and tax IDs
+Quotes and closed-won deals
+Invoices and payment status
+Renewal and churn signals
Trigger
Deal stage change in the CRM, invoice status change in the ERP.
What usually breaks
Identity. Two systems, two ID schemes, no agreed key, and you have duplicates inside a week. We pick the key first and write down what happens when only one side has it.
03
Marketplace ⇄ ERP
Systems
Amazon, eBay, Miravia, Zalando, Carrefour ⇄ any ERP or PIM
What syncs
+Listings and per-channel pricing
+Stock allocation across channels
+Orders and cancellations
+Settlements and commission lines
Trigger
Polling inside each marketplace rate limit, orders pushed on arrival.
What usually breaks
Oversell. A single stock pool shared across three channels sells the last unit twice unless allocation is reserved per channel, and every marketplace throttles you differently while it happens.
04
Ecommerce ⇄ Carrier
Systems
Any shop or ERP ⇄ SEUR, GLS, DHL, Correos Express, UPS, regional couriers
What syncs
+Label and manifest generation
+Tracking numbers back onto the order
+Delivery and incident status
+Returns and scheduled pickups
Trigger
Order marked ready to ship; carrier status polled or pushed back.
What usually breaks
Addresses. Carrier APIs reject what a checkout happily accepted, so validation has to move upstream to the shop or every batch leaves a pile of manual exceptions.
05
CRM ⇄ Billing
Systems
HubSpot, Salesforce ⇄ Stripe, Redsys, SEPA direct debit, banking files
What syncs
+Subscriptions and plan changes
+Payments, failures and dunning
+Dunning outcome back to the account owner
+Revenue fields finance will sign off
Trigger
Payment provider webhooks, with signature verification on every call.
What usually breaks
Webhook delivery. Providers duplicate, reorder and replay events. Anything that is not idempotent will eventually double-charge or double-cancel, and you find out from a customer.
06
Everything ⇄ Data and AI
Systems
Any of the above ⇄ Supabase, Postgres, BigQuery, Claude, GPT, n8n, Make
What syncs
+Normalised entities across systems
+Event history for auditing
+Embeddings for retrieval over internal docs
+Metrics with one agreed definition
Trigger
Change data capture, or scheduled batches where near-real-time is not worth paying for.
What usually breaks
Definitions. Three systems hold three definitions of "active customer". The warehouse is the place where somebody is finally forced to pick one, and that decision is political, not technical.
Not listed here does not mean not possible. EDIFACT, SFTP drops, database replicas, SOAP endpoints from 2008 and portals with no API at all are normal starting points. It changes the design, not the feasibility.
The catalogue
Nine services. One senior team.
We don't subcontract. Everything is delivered by the people who designed it, and who ship our own products between engagements.
The parts that decide whether it still works in year two.
Any competent developer can make two APIs talk on a good day. These are the choices that keep it running on a bad one.
01
One integration layer, not point-to-point
Six systems wired directly to each other is thirty connections to maintain. Through a middleware layer it is six. We go point-to-point only when the pair really is the whole story.
02
An agreed key before any code
We decide which field identifies the same record on both sides, and what happens when only one side has it. Nearly every duplicate-data problem traces back to skipping this conversation.
03
Idempotent by default
Every message carries a key, so replaying it changes nothing. Providers duplicate webhooks constantly. The integration has to be boring about it rather than clever.
04
Retry with backoff, then a dead letter
A system being unreachable for ten minutes is normal and handled automatically. A message that can never succeed is parked where a human can see it, with the payload intact. Nothing is dropped quietly.
05
Reconciliation, not only streaming
Events get lost. A scheduled job compares both sides and reports the drift, so you learn about a gap from a dashboard instead of from an angry customer.
06
A field mapping you can actually read
Every field, direction, transformation and owner in one document that you keep. That document is the deliverable most likely to outlive the engagement.
07
Observability from day one
Throughput, failure rate, queue depth and last successful sync, with alerts that name a person. An integration nobody monitors is an outage waiting for a quiet week.
08
EU hosting and least privilege
Data stays inside the EU. Every connection gets its own credential with the narrowest scope that works, rotated on a schedule and written down where your team can find it.
How to buy
Three ways to put us on a project.
Most partners start with a single connector, decide whether they like working with us, and go from there. We fix a price on what we can scope today and give a range on what we cannot, with the conditions that move it.
01From 2 weeks
Connector sprint
One integration. Fixed scope, fixed price. Two to six weeks. Usually the first thing a new partner buys, and deliberately small enough to be a low-risk decision.
Signed before scoping. Our template or yours. We do not argue about it.
02
Written no-solicit
We do not approach your client during the engagement, or for 24 months after it ends.
03
Your brand on the work
Commits, documentation and release notes carry your name. We join client calls as your integration team, or not at all.
04
Fixed scope, fixed price
Quoted per connector, so you know your margin before you sign anything.
Odoo, HubSpot and Shopify partners: bring us the scope you would rather not quote.
Questions we get asked
Straight answers, before the call.
If your question is not here, send it. We would rather answer it in an email than in a proposal.
How long does a typical integration take?
A single connector between two systems that both have a documented API runs two to six weeks from kickoff to production. Add time when one side has no API and needs a database or SFTP adapter, when historical data has to be migrated, or when the two systems disagree about master data and somebody senior has to decide who wins.
Do you build on iPaaS tools like n8n and Make, or custom code?
Both, and we choose per project. n8n and Make are the right answer for low-volume workflows a client wants to edit without us. Custom middleware wins when volume is high, the mapping is complex, or the logic needs tests and version control. We tell you which one we recommend, and why, before you commit to either.
What happens when one of the systems goes down?
Messages queue and retry with exponential backoff, so a short outage resolves itself. Anything that still fails lands in a dead-letter queue with the original payload, and an alert goes to a named person rather than a shared inbox. Nothing is silently discarded.
Who owns the code when the project ends?
You do. The repository, the documentation and the infrastructure definitions are handed over at the end of the engagement. There is no runtime licence, no per-message fee and no technical lock-in to us.
Can you work under our brand for our client?
Yes, that is a standard engagement. We sign a mutual NDA and a written no-solicit before scoping. Commits, documentation and release notes carry your name, and we either join client calls as your integration team or stay entirely invisible. Your call.
What does an integration cost?
We fix a price on what we can genuinely scope today, and we give a range on what we cannot, naming the conditions that push it to the low or the high end. A single connector between two documented APIs is small enough to quote fixed. Anything larger gets a range until we have seen the systems from the inside, and a fixed price once we have. We would rather show you the band and what moves it than commit to a number before anyone has read the code.
Do you integrate systems that have no API?
Frequently. SFTP drops, read replicas of the database, EDIFACT messages, SOAP endpoints from 2008 and portals with nothing but a login are all normal starting points. The absence of a modern API changes the design and the testing strategy, not the feasibility.
Where does the data live?
Inside the EU by default, on AWS Frankfurt or Supabase EU, with AI services used under EU data residency. UK clients who need their data to stay in the UK get a UK region instead. If a contract names a specific region or provider, we deploy there.
Can you take over an integration someone else built?
Yes, and we start by documenting what is actually running rather than proposing a rewrite. Roughly half of these end in a targeted fix instead of a rebuild, and we will tell you that even though the rebuild would pay us better.
How do you handle the part you cannot see yet?
The first paid piece of work is a concrete deliverable at a fixed price, and it reserves time for us to look at your systems from the inside before recommending anything. Sometimes that exploration concludes the best answer is not an integration at all, and we say so. What it produces, a grounded plan and a range for the larger work, is yours to keep and to take elsewhere if you want to.
Tell us which two systems are fighting.
One business day, one clear next step. Not a proposal deck.