← Integration and automation

CRM integration and automation

A CRM doesn't fail for lack of features. It fails because keeping it current is manual work, and manual work only happens when somebody is watching. Integration means taking the person doing the typing out of the middle.

How you recognize it from outside

The CRM looks immaculate the day before the sales meeting. The two months before that, it doesn't. When data quality tracks the meeting calendar, what you have is not a CRM: it is a report filled in after the fact.

Why switching CRM doesn't fix it either

A CRM migration is sold as the cure for the adoption problem, and for about three months it sometimes is. Then the same pattern comes back, because the cause was never the tool: it was that entering the information stayed the job of the person who gains least from entering it. A salesperson doesn't stop updating the CRM out of defiance; they stop because there are thirty seconds of friction between them and their next call. What changes behaviour is the record happening by itself.

The flows that have to be solved

Each one with the design decision that determines whether it survives production.

01

Multichannel lead capture with deduplication

Web form, WhatsApp, phone, paid campaign, trade fair. The same lead comes in through two or three doors with slightly different details, and it all has to resolve to a single record.

Where it breaks

Without an explicit identity rule —which field wins, how much variation in the name is tolerated, what happens with two people from the same company— the CRM fills with duplicates and the team stops trusting it.

02

Model-assisted qualification and routing

Classifying a lead by sector, intent and urgency from free text is precisely what a model does well and what a decision tree does badly. Who the lead gets assigned to, on the other hand, is a business rule and should stay readable code.

Where it breaks

Letting the model decide assignments or discounts turns an occasional mistake into a mistake nobody can explain to the customer.

03

Activity logged without typing

Calls, WhatsApp messages and emails show up on the record with their summary, without anyone copying anything across. The salesperson corrects; they don't transcribe.

Where it breaks

Logging automatically with no access control and no retention policy drops customer conversations into a system that was never designed to hold them. That is a decision worth taking before, not after.

04

CRM ↔ ERP sync

The customer exists in both systems and both allow edits. The question is who owns each field: the trading name is usually the CRM's, the tax details and the credit limit belong to the ERP.

Where it breaks

Bidirectional sync with no owner per field produces loops: A writes, B sees the change and writes back, A sees it again. You spot it immediately and it is a lot of work to clean up.

What you get

  • Contact identity rule and a deduplication process
  • Automated capture from every channel that is actually live
  • Classification and routing with auditable criteria
  • Sync with the ERP, with a declared owner per field
  • Data quality dashboard: duplicates, incomplete records, untouched leads

How we build it

Idempotent by default

Every operation can be repeated without duplicating anything. That is what makes a retry safe, and without it no integration survives its first dropped connection.

Observable state

Every message has a state you can query: pending, sent, confirmed, failed. An integration you only notice when it breaks had already been breaking for a while.

One owner per field

For each field there is one system that decides and the others follow. Bidirectional sync without that rule ends in loops and in data that changes on its own.

AI where it judges, not where it calculates

Classifying, extracting and drafting are model work. Adding up, validating and routing are code work. Swapping them round is expensive and impossible to audit.

How we work

The people who run the diagnosis are the people who build it. No hand-offs. The full method and the rest of the capabilities are on the systems integration page.

  1. 01
    Diagnosis · 3–5 days

    We map systems, data flows and the dependencies that actually exist, including the ones nobody wrote down. Output: a closed scope and the list of what is broken today.

  2. 02
    Integration design · 1 week

    Data contracts, direction of sync, retry policy and who owns each field. This is settled before any code gets written, because it is the expensive thing to change later.

  3. 03
    Build and testing · 2–6 weeks

    Built against the real edge cases, not the happy path. Tested against the actual systems and rolled out in stages.

  4. 04
    Production and observability · ongoing

    Status dashboard, alerts when something has gone too long without confirmation, and maintenance of the integrations when third-party APIs change under you.

Node / TypeScript Queues with retry Supabase / PostgreSQL n8n Signed webhooks LangChain Docker Vercel

Questions about this case

Does this work with any CRM? +

With any CRM that exposes an API or webhooks, which today is practically the whole market. The real difference isn't the brand, it is two things: whether it lets you create custom fields to store the integration's trail, and whether its per-minute call limits hold up at your volume. Both get checked during the diagnosis, before we commit to a scope.

Does the AI decide which salesperson gets each lead? +

No, and that is deliberate. The model classifies —sector, intent, urgency— because that requires reading free text. The assignment is resolved with explicit rules on top of that classification, because it has consequences for people and commissions and has to be explainable and auditable. It is the same split we apply everywhere: the model interprets, the code decides.

What about the duplicates we already have? +

They get handled separately, and usually before anything is connected. A CRM that already carries duplicates and then starts receiving automated capture multiplies the problem. The initial clean-up is a bounded piece of work: define the identity rule, group the candidates, and review the ambiguous merges by hand once.

Does this replace the sales team? +

It replaces the part of their day spent copying information from one place to another. In the projects we have run, the measurable effect isn't a smaller headcount: it is that follow-up stops depending on each person's memory and leads stop going cold while somebody remembers to call them.

Start with the diagnosis

Three to five days to know what gets connected first, with scope and price closed before a line of code is written.

Talk to a specialist ↗