Torna al blog

Integrazione ERP CRM: architettura, metodi e un primo flusso che puoi costruire

Decidi quale sistema possiede ogni campo, scegli il metodo di integrazione adatto all’interfaccia del tuo ERP e metti in produzione un evento affidabile prima di sincronizzare altro.

Benjamin WagnerBenjamin Wagnerdi Benjamin Wagner
CRMERPIntegrazione

Un’integrazione ERP CRM passa un piccolo insieme di identificativi e stati tra il sistema in cui vendi e quello in cui consegni e fatturi. Il CRM possiede persone, relazioni, trattative e conversazioni. L’ERP possiede l’anagrafica cliente usata per la fatturazione, gli articoli, gli ordini, le giacenze e i pagamenti. L’integrazione scatta su eventi di business definiti, come «trattativa vinta», e scrive il numero di riferimento di ciascun sistema nell’altro.

La maggior parte dei piccoli team dovrebbe partire da un solo flusso a senso unico: una trattativa vinta crea il cliente e un ordine nell’ERP, e il numero d’ordine dell’ERP torna sulla trattativa. Costruiscilo con un connettore nativo, se i tuoi due sistemi ne hanno uno, altrimenti con l’API REST e i webhook dell’ERP, usando una piattaforma di automazione come n8n o un piccolo servizio che gestisci tu.

Questa guida la pubblica Customermates, un CRM nativo per l’IA. Customermates è solo un CRM, senza funzioni ERP e senza un connettore ERP nativo; la sezione che lo riguarda più avanti mostra come si collega tramite la sua API REST e i webhook. I dettagli dei fornitori di ERP sono stati verificati l’8 ottobre 2026 sulle pagine dei fornitori stessi, linkate in fondo.

Per un’integrazione fissa e un client IA, confronta MCP e API sullo stesso compito su un record cliente. La scoperta degli strumenti cambia il modo in cui il client trova un’operazione; autenticazione e permessi valgono comunque.

Per un workflow n8n, il confronto tra le vie MCP di n8n con un esempio a versione fissata distingue il collegare n8n a un server di dati dei clienti dall’esporre n8n stesso a un client IA. Scegli la direzione prima di configurare le credenziali.

In sintesi

Cosa si sposta
Identificativi e pochi stati per ogni evento di business. Non ogni campo, e non in entrambe le direzioni per impostazione predefinita.
Metodi
Connettore nativo, piattaforma di automazione (iPaaS o n8n), integrazione diretta via API o middleware. Oppure un’unica suite il cui ERP include un’app CRM.
Da decidere prima
Un solo sistema proprietario per campo, una strategia di ID stabili e cosa succede quando un evento arriva due volte o fallisce.
Controlla il tuo ERP
Se la sua API è inclusa nel tuo piano, se invia webhook e quali sono i suoi limiti di frequenza. Cambiano molto da fornitore a fornitore.
Customermates
API REST su ogni piano Cloud, webhook su ogni piano a pagamento, ed entrambi in self-hosting. I riferimenti ERP stanno in campi Testo personalizzati.

A quale sistema appartiene ogni campo nell’architettura dell’integrazione?

Scrivi questa tabella per i tuoi sistemi prima di confrontare gli strumenti. La proprietà si decide per campo, non per oggetto: l’organizzazione può vivere in entrambi i sistemi mentre il suo indirizzo di fatturazione appartiene all’ERP e le note sull’account appartengono al CRM.

DatoDi solito di proprietà diCosa tiene l’altro lato
Contatti, storico delle relazioni, conversazioniCRML’ERP tiene una persona di contatto solo se i suoi documenti ne richiedono una
Trattativa, fase, prossimo passoCRMNiente, oppure un riferimento sull’ordine
Anagrafica cliente per la fatturazione (ragione sociale, partita IVA, indirizzo di fatturazione, condizioni di pagamento)ERPNumero cliente dell’ERP; l’integrazione lo tratta come di proprietà dell’ERP
Articoli e prezziERPNumero articolo sul record di prodotto o servizio del CRM
Ordini, consegne, giacenzeERPNumero d’ordine e uno stato visibile al cliente
Documenti di fatturazione e pagamentiERPNumero del documento e uno stato di pagamento sintetico, se gli account manager ne hanno bisogno

Se due sistemi scrivono lo stesso campo, hai un conflitto in attesa di accadere. Scegli un proprietario e indirizza lì le correzioni. Fai rispettare questa regola nella tua integrazione; un CRM potrebbe non offrire un permesso a livello di campo che renda di sola lettura proprio questo campo.

Quattro modi per realizzare l’integrazione tra CRM e ERP

MetodoVa bene quandoA cosa fare attenzione
Connettore nativoEntrambi i sistemi vengono da fornitori che offrono un connettore l’uno per l’altroQuali oggetti, campi e direzioni copre, quali edizioni richiede e chi lo supporta quando si rompe
Piattaforma di automazione (iPaaS, n8n, Make, Zapier)Ti servono pochi flussi tra due sistemi con API REST e vuoi una logica visualeIdempotenza, code di errori e segreti restano compito tuo. Un flusso visuale è software di produzione
Integrazione diretta via APIUn solo flusso stretto e prezioso tra due API stabili, e qualcuno nel team scrive codiceAutenticazione, nuovi tentativi, cambi di versione dell’API e monitoraggio sono tuoi
Middleware o servizio di integrazionePiù sistemi o volumi elevati, con un modello di dati condiviso e codePiù parti in movimento. Troppo pesante per spostare cinque campi

C’è una quinta risposta che interessa a chi cerca una «soluzione CRM ERP completa» o si chiede se un CRM possa far parte di un ERP: un’unica suite. Odoo, per esempio, offre un’app CRM accanto alle sue app ERP, quindi l’anagrafica cliente è condivisa e non c’è nulla da sincronizzare. Il compromesso è che usi il CRM della suite. Tieni presente che Odoo rende disponibile la sua API esterna solo nel piano Custom, quindi collegare a Odoo qualsiasi sistema esterno richiede quel piano.

Schemi di sincronizzazione e quando usarli

SchemaCome funzionaQuando usarlo
Guidato da eventi, a senso unicoUna modifica nel sistema proprietario provoca una scrittura nell’altroIl primo flusso. Direzione e proprietà restano evidenti
Riconciliazione pianificataUn job confronta i riferimenti incrociati ed elenca o ripara le lacuneUna rete di sicurezza sotto ogni flusso a eventi
Consultazione al momento della letturaUn sistema chiede all’altro i dati attuali senza conservarne una copiaStato di giacenza o di pagamento mostrato a richiesta
BidirezionaleEntrambi i sistemi aggiornano dati correlatiSolo quando l’azienda cambia davvero i dati in entrambi i posti, con proprietà per campo e regole sui conflitti

Il «tempo reale» raramente è il requisito che sembra. Un account manager che vede uno stato di pagamento con un minuto di ritardo non perde nulla; un ordine duplicato nell’ERP costa denaro vero. Progetta prima per nuovi tentativi e duplicati, poi per la velocità.

Cosa offre davvero l’interfaccia del tuo ERP

Il lato ERP di solito decide quanto è difficile l’integrazione. Quattro esempi mostrano quanto le interfacce possano differire:

ERPInterfaccia, secondo il fornitoreCosa significa per l’integrazione
Microsoft Dynamics 365 Business CentralAPI REST v2.0 con entità come customers, items, salesQuotes, salesOrders e salesInvoices, più sottoscrizioni webhookLe sottoscrizioni scadono dopo tre giorni se non rinnovate, e le notifiche aspettano 30 secondi dopo la prima modifica. Più di 1.000 modifiche in quella finestra arrivano come un’unica notifica «collection» che devi risolvere con una query
OdooAPI esterna XML-RPC nella versione 18; la versione 19 documenta l’API JSON-2 e un percorso di migrazione da XML-RPC e JSON-RPCDisponibile solo nel piano Custom. Verifica quale API usa la tua versione di Odoo prima di costruire
Lexware OfficeAPI REST per contatti, articoli, offerte, conferme d’ordine, documenti di trasporto e altri documenti, con sottoscrizioni agli eventiFino a 2 richieste al secondo per client, quindi i job in blocco richiedono un rallentamento
XentralAPI REST per clienti, prodotti, ordini di vendita, ordini di acquisto, documenti di trasporto e fatture, con webhook e un elenco dei tipi di evento webhookEsistono più versioni dell’API affiancate, quindi fissa la versione nella tua mappatura

Due domande fanno risparmiare più tempo: l’API è inclusa nel piano che paghi, e l’ERP invia le modifiche tramite webhook o devi interrogarlo tu a intervalli?

Eventi, idempotenza e riconciliazione

Un’integrazione che gestisce solo il percorso felice creerà duplicati nel giro di poche settimane. I webhook vengono ritentati, le persone cliccano due volte e un timeout può nascondere una scrittura che in realtà è riuscita.

  • Idempotenza. Prima di creare qualcosa nella destinazione, controlla se esiste già. Il controllo più semplice è il riferimento incrociato stesso: se la trattativa contiene già un numero d’ordine dell’ERP, non creare un altro ordine.
  • ID stabili. Conserva l’ID dell’altro sistema dopo la prima corrispondenza. Non abbinare mai le aziende per nome a ogni esecuzione; i nomi cambiano e le filiali li condividono.
  • Nuovi tentativi. Ritenta timeout, limiti di frequenza ed errori del server con attesa progressiva. Fermati sugli errori di validazione e metti l’evento in una coda di riparazione con il motivo.
  • Conflitti. Decidili come regole di business: vince il proprietario, o decide una persona. Non applicare mai «vince l’ultima scrittura» in modo generalizzato.
  • Riconciliazione. Esegui un controllo pianificato che elenca i record senza riferimento incrociato o con stati diversi nei due lati. Intercetta ciò che il flusso a eventi ha perso.
  • Registrazione. Annota evento, record di origine, riferimento di destinazione, numero di tentativi ed esito, senza copiare nei log più dati dei clienti di quanti ne servano alla diagnosi.

Costruire il primo flusso

  1. Scegli un evento di business

    «Una trattativa vinta crea il cliente e l’ordine nell’ERP» è un buon primo evento. «Sincronizzare CRM ed ERP» non è un evento.

  2. Definisci le precondizioni

    Elenca i campi che devono essere compilati prima che l’evento possa scattare: indirizzo di fatturazione, partita IVA, articoli, quantità. Decidi cosa blocca l’evento e chi lo risolve.

  3. Scrivi la mappa dei campi

    Per ogni campo: origine, destinazione, tipo, proprietario, trasformazione e cosa succede quando manca o non è valido. Tieni la mappa versionata accanto all’integrazione.

  4. Scegli il metodo

    Un connettore nativo se ne esiste uno che copre il flusso; altrimenti una piattaforma di automazione o un piccolo servizio verso entrambe le API REST.

  5. Costruisci l’idempotenza e la scrittura di ritorno

    Controlla il riferimento incrociato prima di creare, poi scrivi il numero dell’ERP sul record del CRM nella stessa esecuzione.

  6. Prova i casi scomodi

    Cliente già esistente, due aziende con lo stesso nome, indirizzo mancante, articolo sconosciuto, timeout dell’ERP, lo stesso evento consegnato due volte, trattativa riaperta dopo «vinta».

  7. Metti in produzione con la riconciliazione

    Parti con un team o un tipo di trattativa, confronta a mano i due sistemi per le prime settimane, poi attiva la riconciliazione pianificata e indica la persona che gestisce i fallimenti.

Esempio: dalla trattativa vinta all’ordine ERP con Customermates

Ecco la configurazione in Customermates per il primo flusso descritto sopra. Usa l’API REST e i webhook, che funzionano in un’installazione self-hosted e su Customermates Cloud: l’API REST su ogni piano, i webhook su ogni piano a pagamento. Il ricevitore nel mezzo è tuo: un workflow n8n o un piccolo servizio.

Campi. In Modello dati aggiungi campi personalizzati di tipo Testo: «N. cliente ERP» sulle organizzazioni, «N. ordine ERP» sulle trattative e «N. articolo ERP» sui servizi. Le voci di una trattativa contengono ciascuna un servizio e una quantità, quindi le voci e i numeri articolo dei loro servizi diventano le righe dell’ordine. Se gli account manager hanno bisogno dello stato di consegna o di pagamento, aggiungi un campo Scelta singola come «Stato ERP» sulle trattative e rendi esplicita nel tuo adattatore la proprietà dell’ERP. Customermates ha permessi per lista e per ruolo, non permessi a livello di campo che riservino questo campo all’integrazione.

Attivazione. Si presuppone che la tua lista di trattative abbia un campo Fase di tipo Scelta singola con un’opzione «Vinta» (le fasi non sono predefinite). In Impostazioni → Webhook sottoscrivi un URL a record.updated per la lista Trattative, se vuoi con Fase sotto Campi modificati, e imposta un segreto. Ogni consegna è firmata con HMAC-SHA256 nell’intestazione X-Webhook-Signature e, per gli eventi di aggiornamento, data.record.fields elenca ogni campo modificato con il suo valore before e after. Il tuo ricevitore agisce solo quando la fase è passata a «Vinta».

Idempotenza. Ogni evento porta un id che resta lo stesso nei nuovi tentativi e nei reinvii, quindi deduplica con quello. Come secondo controllo, usa il riferimento incrociato: se il «N. ordine ERP» della trattativa è già compilato, fermati.

Abbinamento del cliente. Cerca il «N. cliente ERP» dell’organizzazione. Se è vuoto, cerca nell’ERP per partita IVA oppure crea il cliente, poi riscrivi il numero. Per trovare in seguito un’organizzazione del CRM dal numero ERP, chiama POST /api/v1/records/query per le Organizzazioni con un filtro eq sull’ID di quel campo (sintassi dei filtri).

Scrittura di ritorno. Dopo che l’ERP ha accettato l’ordine, invia una mutazione update per la trattativa a POST /api/v1/records/mutate con il nuovo «N. ordine ERP» e la versione attuale della trattativa. I campi che ometti restano invariati.

Fallimenti. Customermates ritenta automaticamente una consegna non riuscita per timeout, errori di rete, risposte 5xx e 408, 425 e 429. Le altre risposte 4xx non vengono ritentate, perché fallirebbero allo stesso modo. Ogni consegna compare in Impostazioni → Log dei webhook, dove puoi reinviarla dopo aver rimosso la causa.

Riconciliazione. Salva una vista delle trattative filtrata su Fase «Vinta» e «N. ordine ERP» vuoto. Condividila con la persona che gestisce i fallimenti dell’integrazione, o con tutto il team. Tutto ciò che compare lì è sfuggito al flusso a eventi.

La direzione inversa. Se il tuo ERP invia webhook, puntali allo stesso ricevitore, cerca la trattativa dal «N. ordine ERP» e imposta «Stato ERP». Se non li invia, interroga l’ERP a intervalli. La guida a n8n elenca le chiamate REST che servono a un workflow n8n; esiste anche un nodo della community.

In Customermates Cloud anche Mate può lavorare con questi campi, per esempio «elenca le trattative vinte questo mese senza un numero d’ordine ERP». Mate usa crediti IA ospitati. Un tuo client IA può fare lo stesso tramite MCP.

Cosa ha dimostrato davvero il piccolo esempio di integrazione?

Scarica la mappa della proprietà dei campi CRM ed ERP e il risultato dell’esempio circoscritto. L’esempio usa il cliente fittizio C-001 e il riferimento ERP ERP-C-001. Tieni la tua mappatura accanto all’adattatore:

ValoreAutoritàControllo dopo la scrittura
Nome visualizzato del clienteCRMLeggi il record attuale del CRM prima dell’invio
ID del record CRMCRMConserva l’ID invariato nella mappatura
ID cliente dell’ERPERPRiscrivilo solo dopo che il ricevitore conferma il cliente salvato
Politica di fatturazione e fiscaleERPNon sovrascriverla da una nota del CRM

Verificato il 29 ottobre 2026 su uno spazio di lavoro Customermates locale usa e getta e un ERP simulato in loopback. Un piccolo adattatore invocato a mano ha letto il vero endpoint REST del CRM, ha inviato un cliente al simulatore e ha scritto l’ID ERP restituito in un campo Testo personalizzato usando la versione attuale del record. Abbiamo scartato di proposito la prima risposta dopo che il simulatore aveva salvato il cliente. Ritentare lo stesso evento ha prodotto due tentativi, una scrittura ERP. Una lettura da ciascun lato ha poi trovato corrispondenza tra ID del record CRM, nome del cliente e ID ERP.

Questo dimostra la mappa degli ID, la regola dei nuovi tentativi e lettura, scrittura e rilettura del CRM in quell’esempio. Non dimostra un connettore ERP di produzione, la consegna automatica dei webhook, la creazione di fatture o un job di riconciliazione distribuito. Prima di usare il tuo ERP, ripeti questi controlli sulla sua sandbox, verifica autenticazione e firme e prova le sue reali validazioni e i suoi limiti di frequenza. Le opzioni di integrazione spiegano dove si colloca un adattatore o un n8n gestito a parte.

Cosa determina costi e impegno

Nessun benchmark onesto copre tutte le integrazioni ERP CRM; un evento a senso unico tra due API documentate e una sincronizzazione bidirezionale di ordini e giacenze sono progetti diversi. Stima partendo da questi fattori:

  • se l’API dell’ERP è nel tuo piano attuale o richiede un upgrade;
  • se entrambi i sistemi inviano webhook o uno va interrogato a intervalli;
  • il numero di oggetti, campi, direzioni e trasformazioni;
  • quanto sono disordinati i dati attuali dei clienti e quanti duplicati vanno abbinati una volta sola;
  • limiti di frequenza e volume;
  • chi gestisce la piattaforma di automazione o il servizio e chi risponde ai suoi avvisi.

Sul lato CRM, l’API REST non richiede un piano Customermates particolare e i webhook sono inclusi in ogni piano a pagamento. Un team di tre persone su Starter paga 36 € al mese. La posta in arrivo unificata, che porta le conversazioni di e-mail, LinkedIn e WhatsApp sugli stessi record, parte da Pro (29 € per utente al mese).

Prima che una trattativa vinta diventi un ordine ERP, la conversazione che l’ha vinta sta sulla scheda del cliente, con una risposta e un prossimo passo preparati da Mate o dal tuo client IA perché tu li riveda e li invii. Per vedere questa parte sui tuoi clienti, inizia la prova di 14 giorni. Senza carta di credito.

Errori comuni

  • sincronizzare ogni campo prima che un evento funzioni da un capo all’altro;
  • lasciare che entrambi i sistemi possiedano lo stesso campo;
  • abbinare le aziende per nome invece che con ID conservati;
  • nessuna coda di riparazione, quindi gli eventi falliti spariscono nei log;
  • ignorare annullamenti, trattative riaperte e correzioni;
  • partire senza un controllo di riconciliazione o una persona designata per gli avvisi.

Per la differenza tra i due tipi di sistema, e per capire quando un piccolo team ha davvero bisogno di un ERP, leggi CRM ed ERP a confronto.

Domande frequenti

Che cos’è l’integrazione ERP CRM?

È lo scambio automatico di identificativi e stati selezionati tra il CRM, dove gestisci relazioni e trattative, e l’ERP, dove gestisci ordini, articoli, giacenze e fatturazione. Fatta bene, sposta solo ciò che serve a un evento di business definito e mantiene un unico proprietario per ogni campo.

Come si integrano un CRM e un ERP?

Definisci la proprietà dei campi, scegli un evento di business come «trattativa vinta» e scegli un metodo: un connettore nativo se i tuoi sistemi ne hanno uno, altrimenti l’API e i webhook dell’ERP tramite una piattaforma di automazione o un piccolo servizio. Aggiungi controlli di idempotenza, la scrittura di ritorno dell’ID dell’altro sistema e una riconciliazione pianificata prima di andare in produzione.

CRM ed ERP sono la stessa cosa, e un CRM può far parte di un ERP?

Sono sistemi diversi: il CRM copre la vendita e le relazioni con i clienti, l’ERP copre consegna, acquisti, giacenze e finanza. Alcune suite includono entrambi. Odoo, per esempio, offre un’app CRM accanto alle sue app ERP, il che elimina la necessità di un’integrazione tra i due.

CRM ed ERP devono sincronizzarsi in entrambe le direzioni?

Di solito all’inizio no. Un evento a senso unico dal CRM all’ERP, più un numero d’ordine di ritorno e un campo di stato, copre la maggior parte delle esigenze di un piccolo team. Aggiungi una seconda direzione solo per i campi che cambiano davvero in entrambi i posti, con proprietà per campo.

Si possono integrare CRM ed ERP senza codice?

Spesso sì, con un connettore nativo o una piattaforma di automazione come n8n, Make o Zapier. Devi comunque decidere la proprietà dei campi, gestire duplicati e fallimenti e controllare se il piano del tuo ERP include l’accesso all’API.

Customermates si integra con i sistemi ERP?

Tramite la sua API REST e i webhook, sì, usando una piattaforma di automazione o un servizio che gestisci tu. Non c’è un connettore ERP nativo, e Customermates stesso non contiene dati ERP come ordini o pagamenti. I riferimenti ERP vanno in campi personalizzati su organizzazioni, trattative e servizi.

Dati dei fornitori di ERP verificati l’8 ottobre 2026 su API v2.0 di Business Central e webhook di Business Central di Microsoft, API esterna di Odoo per la versione 18, API esterna per la versione 19 e prezzi di Odoo, documentazione dell’API di Lexware e documentazione per sviluppatori di Xentral.

Parti da una descrizione

Una descrizione. Uno spazio di lavoro costruito dal tuo agente.

Ecco cosa costruisce la configurazione a partire da una frase. Dati di esempio, il prodotto vero.

  1. Descrivi la tua attività

    Una frase sul tuo team, i tuoi clienti e come vendi.

  2. Mate lo costruisce

    Fa qualche domanda, poi crea liste, pipeline, dashboard e playbook.

  3. Lavoraci

    Collega LinkedIn e l’e-mail. Esplora qui sotto un esempio già pronto.

La tua descrizione per Mate

Siamo una società di consulenza strategica di quattro persone. Tieni traccia di clienti, incarichi e proposte e aiutaci a fare follow up con i potenziali clienti su LinkedIn.

Dashboard nello spazio di lavoro di esempio, con dati dimostrativiDashboard nello spazio di lavoro di esempio, con dati dimostrativi
Incarichi nello spazio di lavoro di esempio, con dati dimostrativiIncarichi nello spazio di lavoro di esempio, con dati dimostrativi

Widget creati dalle liste e dai campi dello spazio

Customermates per i consulenti

Ogni conversazione con i clienti da email, LinkedIn e WhatsApp in un unico posto. Mate configura il tuo spazio e prepara il follow-up, tu lo controlli e lo invii. Funziona con Claude, ChatGPT o qualsiasi agente che parla MCP. Film in inglese.

Customermates

Segui ogni conversazione con i clienti

Parti da un canale e da un cliente su Customermates Cloud, oppure ospita da te il nucleo open source.

✓ Nessuna carta di credito richiesta ✓ Primi 14 giorni gratis