Pilastro

Migrare dati clienti disordinati senza l'incubo

C’è un’angoscia molto particolare nell’aprire un’esportazione clienti vecchia di cinque anni. Metà dei numeri di telefono ha il prefisso +386, l’altra metà no. Una colonna chiamata “Note” mescola tre tipi diversi di informazioni, a seconda di chi era di fretta quel giorno. Il nome dell’azienda di qualcuno è scritto in due modi diversi in due righe diverse, e non sai davvero se si tratta dello stesso cliente.

Non sarebbe bello poter semplicemente caricare il disordine così com’è, senza una pulizia preventiva, senza riformattare nulla, e avere il sistema che ti dice onestamente cosa ha trovato, cosa ha ipotizzato e cosa non è riuscito a completare? Ora puoi. Abbiamo costruito Craft11 per adattarsi al modo in cui le aziende reali tengono davvero i loro archivi, non il contrario.

Come funziona davvero

Quando carichi un file (CSV, Excel, PDF, persino un listino prezzi scansionato), va a Neo, la parte di Craft11 che legge i documenti. Neo non cerca di far corrispondere il tuo foglio di calcolo a uno schema rigido. Legge il contenuto reale e propone record strutturati: questo sembra un nome, questo sembra un’email, questo sembra un settore o una categoria. Ogni proposta porta un livello di confidenza (alto, medio, basso), quindi non devi mai indovinare su quali campi è sicuro e su quali sta facendo una stima ragionevole.

Non viene ancora creato nulla. Prima vedi una tabella di revisione. Puntini di confidenza accanto a ogni riga, modifica in linea se qualcosa non va, un conteggio chiaro di cosa è completo e cosa no. Approvi ciò che va bene. Puoi correggere un refuso lì per lì se vuoi, oppure semplicemente lasciarlo e sistemarlo più tardi. Entrambe le opzioni vanno bene.

Questa è la parte che sorprende le persone: non ti blocca mai per dati imperfetti. Se a 47 dei tuoi 300 contatti manca il numero di telefono, gli altri 253 vengono comunque importati senza problemi, e ottieni un elenco onesto e preciso di quei 47, non un vago avviso del tipo “alcuni record potrebbero essere incompleti”, ma un conteggio reale che non sparisce finché non viene effettivamente risolto. Stark può aiutarti a rintracciarli in modo conversazionale ogni volta che hai qualche minuto. La lacuna è informativa, non un blocco.

Il problema dei duplicati di cui nessuno parla

Ecco qualcosa che non compare nella maggior parte delle presentazioni degli strumenti di importazione: cosa succede quando carichi lo stesso elenco due volte? O quando un collega ha già inserito a metà un cliente manualmente, e ora l’importazione massiva sta per creare una seconda copia della stessa persona con una grafia leggermente diversa?

Gestiamo questo con una regola deliberatamente semplice, applicata automaticamente prima ancora che tu veda la schermata di revisione. Per le importazioni dei clienti, è una corrispondenza dell’email che ignora maiuscole e minuscole rispetto ai tuoi record esistenti. Per un catalogo risorse, è una corrispondenza del nome che ignora maiuscole e minuscole. Qualsiasi riga che sembra un probabile duplicato viene segnalata e rimane deselezionata di default nella tabella di revisione: non bloccata, non unita automaticamente, semplicemente non selezionata. Puoi comunque spuntare la casella e importarla lo stesso se era davvero tua intenzione. Il sistema non può decidere questo al posto tuo. Si limita a impedire che un errore passi inosservato in silenzio.

Lo abbiamo testato direttamente: abbiamo caricato un file contenente un contatto la cui email corrispondeva esattamente a un cliente esistente, insieme a uno genuinamente nuovo. Il duplicato è stato segnalato ed è rimasto deselezionato. Il nuovo contatto è stato importato senza problemi. Rieseguire lo stesso file una seconda volta non ha creato nulla di aggiuntivo. Questo è il punto centrale: ricaricare un file non dovrebbe essere qualcosa per cui devi stare attento.

Un bug vero, trovato in modo onesto

Voglio raccontarti qualcosa che è davvero andato storto mentre costruivamo questo, perché l’alternativa, fingere che sia andato tutto perfetto fin dall’inizio, sarebbe esattamente il tipo di disonestà di marketing che cerchiamo di evitare.

L’importatore del catalogo risorse ha un campo per l’aliquota IVA. Il nostro database lo richiede. Il valore predefinito è 25%, l’aliquota standard, quindi una risorsa senza un’aliquota esplicita dovrebbe automaticamente ricadere su quel valore predefinito. Solo che non lo faceva. Se caricavi un listino prezzi senza alcuna colonna IVA (cosa estremamente comune, molti listini semplicemente non ce l’hanno), l’importazione andava in crash con un errore server grezzo nel momento in cui provavi ad attivarla.

Il motivo era sottile: il valore predefinito del database stesso scatta solo quando un campo viene omesso del tutto dall’inserimento. Il nostro codice scriveva esplicitamente null in quel campo invece di ometterlo, il che significava che la rete di sicurezza del database non aveva mai la possibilità di intervenire. Lo abbiamo scoperto solo perché abbiamo eseguito un vero test end-to-end, con un file realistico che genuinamente non aveva la colonna IVA (non un’ipotesi, un caricamento reale), e abbiamo osservato il fallimento. La correzione era una sola riga: valore predefinito del 25% nel codice, lo stesso numero che il database documenta come standard, applicato solo quando il file di origine è davvero silenzioso sulla questione.

Ti racconto questo non perché sia una storia lusinghiera, ma perché è la vera consistenza di costruire qualcosa del genere con onestà. L’istinto di trovare quel bug testando davvero un vero file disordinato, invece di supporre il percorso ideale, è lo stesso istinto dietro l’intera funzionalità. Un software sicuro di dati che in realtà non ha mai visto è esattamente il tipo di software che cerchiamo di non costruire.

Abbiamo testato tutto su un’azienda che ancora non esiste

Prima che questo venisse rilasciato, abbiamo eseguito un mese intero di utilizzo simulato per un team di consulenza di quattro persone: richieste reali in arrivo, conversazioni reali con i clienti, importazioni reali di catalogo, su un tenant di test dedicato, usando per tutto il tempo un vero modello AI, non uno script. Abbiamo potuto farlo con questo livello di accuratezza perché avevamo già inserito fin dal primo giorno una grande porzione di dati realistici e costruito Velvet, il nostro simulatore di test proprietario, proprio per non essere limitati a verificare un caso limite alla volta. Diversi scenari disordinati sono andati avanti insieme nello stesso mese: un CSV con un contatto già esistente mescolato ad altri genuinamente nuovi, oltre a tutto il resto che quel mese ha scagliato contro il sistema.

Il costo totale dell’AI per quell’intero mese simulato, per quattro persone, è stato di meno di un dollaro. Lo menzioniamo perché gli strumenti di importazione “basati sull’AI” hanno la reputazione, a volte meritata, di trasformarsi in un costoso abbonamento nascosto dietro l’abbonamento. A questa scala, quella paura semplicemente non regge.

Cosa questo non fa

Nello spirito di non esagerare: non è magia OCR per scansioni davvero illeggibili, e non indovinerà un campo che non è mai stato presente nel file di origine. I PDF strutturati e i fogli di calcolo puliti funzionano bene; una fattura fotografata e scritta a mano del 2019 richiede più revisione umana, e il sistema lo dice onestamente invece di inventare una supposizione.

Inoltre non unisce i duplicati automaticamente, di proposito. Quella resta una decisione umana, non del software. Segnalare chiaramente e impostare di default “non importare questo due volte” è esattamente la giusta quantità di aiuto.

Se in questo momento stai fissando la tua esportazione disordinata

La risposta onesta a “quanto tempo ci vorrà” è: probabilmente un pomeriggio, non una settimana. Carica il file. Rivedi cosa ha trovato Neo. Approva ciò che è corretto, correggi ciò che non lo è, lascia le lacune per dopo se vuoi. Saranno ancora lì, chiaramente contate, ogni volta che sarai pronto. Il punto non è mai stato rendere i tuoi dati perfetti prima di iniziare. Era impedire che dati perfetti fossero il prezzo d’ingresso.


Il Migration Engine di Craft11 gestisce sia le importazioni di Clienti che di Risorse con la stessa architettura descritta sopra: estrazione con punteggio di confidenza, rilevamento duplicati e monitoraggio onesto delle lacune. Guardalo nel percorso guidato del prodotto →

Domande che le persone fanno davvero

Passare a Craft11 significa dover reinserire a mano tutti i dati dei miei clienti?

No. Carica il file che hai già (un foglio di calcolo, un'esportazione dal CRM, persino un listino prezzi PDF di un fornitore) e Neo (l'agente di importazione di Craft11) propone record strutturati a partire da esso. Tu rivedi e approvi; niente viene creato senza che tu lo veda prima.

Cosa succede ai campi che non riesce a capire?

Restano vuoti e vengono segnalati chiaramente, non indovinati. Ottieni un elenco preciso, '47 contatti senza numero di telefono', non un avviso vago, e puoi correggerli quando hai davvero cinque minuti liberi, non prima di essere autorizzato a iniziare a usare il sistema.

E se carico accidentalmente lo stesso elenco due volte?

Craft11 controlla i probabili duplicati rispetto ai tuoi record esistenti (per email nel caso dei clienti, per nome nel caso delle voci di catalogo) e lascia quelle righe deselezionate di default. Sei tu a decidere se importarle comunque. Non crea mai in silenzio una seconda copia di qualcuno che hai già.

Unisciti all'Early Crew →← Torna a tutti gli articoli

Recorded on a live database and a live screen, but run by automated scripts standing in for a human's clicks and typing, not performed live. When Stark answers faster than the script expects, the screen can hold still for a beat before the next step starts. That's left in on purpose. The goal was never a polished demo reel, it was proof the feature actually works. Dejan's own verdict, after watching the raw footage: rough, but the best demo video we've made.