Stup

Migracija neurednih klijentskih podataka bez noćne more

Postoji poseban osjećaj nelagode kad otvorite izvoz klijenata star pet godina. Pola brojeva telefona ima prefiks +386, a pola nema. Stupac nazvan “Napomene” zbrka tri različite vrste informacija, ovisno o tome tko je toga dana žurio. Naziv nečije tvrtke napisan je na dva različita načina u dva različita retka, i vi zapravo ne znate je li riječ o istom klijentu.

Ne bi li bilo lijepo kad biste taj nered mogli jednostavno učitati onakav kakav jest, bez prethodnog čišćenja, bez preoblikovanja, a sustav bi vam pošteno rekao što je pronašao, što je pretpostavio i što nije mogao popuniti? Sada možete. Craft11 smo napravili da se prilagodi tome kako stvarne tvrtke zapravo vode svoju evidenciju, a ne obrnuto.

Kako to zapravo funkcionira

Kad učitate datoteku (CSV, Excel, PDF, čak i skenirani cjenik), ona ide Neu, dijelu Craft11 koji čita dokumente. Neo ne pokušava uskladiti vašu tablicu s krutom shemom. On čita stvarni sadržaj i predlaže strukturirane zapise: ovo izgleda kao ime, ovo izgleda kao e-mail, ovo izgleda kao djelatnost ili kategorija. Svaki prijedlog nosi razinu pouzdanosti (visoka, srednja, niska), tako da nikad ne morate pogađati za koja polja je siguran, a kod kojih razumno nagađa.

Ništa se još ne kreira. Prvo vidite tablicu za pregled. Točkice pouzdanosti uz svaki redak, izravno uređivanje ako nešto nije u redu, jasan broj onoga što je potpuno i onoga što nije. Odobravate ono što je dobro. Tipfeler možete ispraviti odmah na licu mjesta, ili to jednostavno ostaviti i popraviti kasnije. Oboje je u redu.

Ovo je dio koji ljude iznenadi: nikad vas ne blokira zbog nesavršenih podataka. Ako 47 od vaših 300 kontakata nema broj telefona, ostalih 253 svejedno se uredno uvozi, a vi dobivate pošten, konkretan popis tih 47, ne nejasno upozorenje tipa “neki zapisi možda nisu potpuni”, nego stvaran broj koji ne nestaje dok se stvarno ne riješi. Stark vam može pomoći da ih pronađete kroz razgovor kad god imate par slobodnih minuta. Taj nedostatak je informativan, a ne prepreka.

Problem dupliciranja o kojem nitko ne priča

Evo nečega što se ne spominje u većini prezentacija alata za uvoz: što se događa kad isti popis učitate dvaput? Ili kad je kolega već ručno napola unio klijenta, a masovni uvoz sad je na rubu toga da stvori drugu kopiju iste osobe pod malo drugačijim zapisom imena?

Ovo rješavamo namjerno jednostavnim pravilom, koje se primjenjuje automatski prije nego što uopće vidite ekran za pregled. Za uvoz klijenata to je podudaranje e-maila bez obzira na velika i mala slova s vašim postojećim zapisima. Za katalog resursa to je podudaranje naziva bez obzira na velika i mala slova. Svaki redak koji izgleda kao vjerojatan duplikat označava se i po zadanome ostaje neoznačen u tablici za pregled: nije blokiran, nije automatski spojen, samo je neoznačen. I dalje možete označiti kvadratić i ipak ga uvesti ako ste to stvarno namjeravali. Sustav to ne smije odlučiti umjesto vas. Samo se pobrinuo da nesreća ne prođe nezapaženo.

Ovo smo izravno testirali: učitali smo datoteku koja je sadržavala kontakt čiji se e-mail točno podudarao s postojećim klijentom, uz jedan stvarno novi kontakt. Duplikat je označen i ostao je neoznačen. Novi kontakt uredno se uvezao. Ponovno pokretanje iste datoteke drugi put nije stvorilo ništa dodatno. U tome je cijela poanta: ponovno učitavanje ne bi trebalo biti nešto oko čega morate biti oprezni.

Prava greška, pronađena na pošten način

Želim vam ispričati o nečemu što je stvarno pošlo po zlu dok smo ovo gradili, jer bi alternativa, pretvarati se da je sve od početka radilo savršeno, bila upravo ona vrsta marketinške neiskrenosti koju pokušavamo izbjeći.

Alat za uvoz kataloga resursa ima polje za stopu PDV-a. Naša baza podataka to zahtijeva. Zadana vrijednost je 25%, standardna stopa, pa bi resurs bez izričito navedene stope trebao automatski koristiti tu zadanu vrijednost. Osim što nije. Ako biste učitali cjenik bez ikakvog stupca za PDV (a to je izrazito uobičajeno, mnogi cjenici jednostavno ga nemaju), uvoz bi pao uz sirovu grešku poslužitelja u trenutku kad biste ga pokušali aktivirati.

Razlog je bio suptilan: zadana vrijednost baze podataka aktivira se samo kad je polje potpuno izostavljeno iz unosa. Naš kod je izričito upisivao null u to polje umjesto da ga jednostavno izostavi, što je značilo da sigurnosna mreža baze podataka nikad nije dobila priliku to uhvatiti. Ovo smo otkrili tek zato što smo pokrenuli stvaran end-to-end test, s realističnom datotekom koja doista nije imala stupac za PDV (ne hipotetski, nego stvarno učitavanje), i gledali kako pada. Ispravak je bio jedan redak koda: zadana vrijednost 25% u kodu, isti broj koji baza podataka sama dokumentira kao standard, primijenjena samo kad izvorna datoteka doista ništa ne kaže o tome.

Govorim vam ovo ne zato što je to laskava priča, nego zato što je to stvarna tekstura poštenog građenja nečega ovakvog. Instinkt da tu grešku pronađemo stvarnim testiranjem prave neuredne datoteke, umjesto pretpostavljanja idealnog scenarija, isti je instinkt koji stoji iza cijele te značajke. Softver koji je siguran u podatke koje nikad zapravo nije vidio točno je ona vrsta softvera koju pokušavamo izbjeći graditi.

Cijelu stvar testirali smo na tvrtki koja još ne postoji

Prije nego što je ovo objavljeno, pokrenuli smo potpuno simuliran mjesec korištenja za tim od četiri konzultanta: stvarni upiti koji stižu, stvarni razgovori s klijentima, stvarni uvozi kataloga, na namjenskom testnom nalogu, cijelo vrijeme koristeći stvaran AI model, ne skriptu. Mogli smo to provesti ovako temeljito jer smo od prvog dana već unijeli velik, realističan skup podataka i izgradili Velvet, naš vlastiti simulator za testiranje, upravo zato da ne budemo ograničeni na provjeru jednog rubnog slučaja odjednom. Više neurednih scenarija odvijalo se zajedno u istom mjesecu: CSV s kontaktom koji je već postojao pomiješan sa stvarno novima, uz sve ostalo što je taj mjesec bacio na sustav.

Ukupan trošak AI-ja za taj cijeli simulirani mjesec, za četiri osobe, bio je manje od dolara. Ovo spominjemo jer alati za uvoz “pokretani AI-jem” imaju reputaciju, ponekad zasluženu, da postanu skupa pretplata-unutar-pretplate. Na ovoj razini taj strah jednostavno ne izdrži provjeru.

Što ovo ne radi

U duhu toga da ovo ne uljepšavamo previše: ovo nije OCR magija za istinski nečitke skenove, i neće pogađati polje koje nikad nije postojalo u izvornoj datoteci. Strukturirani PDF-ovi i uredne tablice rade dobro; fotografirani, rukom pisani račun iz 2019. treba više ljudskog pregleda, i sustav to pošteno kaže umjesto da izmišlja pretpostavku.

Također namjerno ne spaja duplikate automatski. To ostaje odluka čovjeka, ne softvera. Jasno označavanje i zadano ponašanje “ne uvozi ovo dvaput” upravo je onoliko pomoći koliko treba.

Ako trenutno zurite u vlastiti neuredni izvoz podataka

Pošten odgovor na pitanje “koliko će ovo trajati” glasi: vjerojatno popodne, ne tjedan dana. Učitajte datoteku. Pregledajte što je Neo pronašao. Odobrite što je ispravno, popravite što nije, praznine ostavite za kasnije ako želite. I dalje će biti tu, jasno izbrojane, kad god budete spremni. Poanta nikad nije bila učiniti vaše podatke savršenima prije nego što počnete. Poanta je bila zaustaviti to da savršeni podaci budu cijena ulaska.


Craft11-ov Migracijski motor obrađuje i uvoz klijenata i uvoz resursa istom arhitekturom opisanom gore: izdvajanje podataka s ocjenom pouzdanosti, otkrivanje duplikata i pošteno praćenje praznina. Pogledajte to u prikazu proizvoda →

Pitanja koja ljudi stvarno postavljaju

Znači li prelazak na Craft11 da moram ručno ponovno unijeti sve podatke o klijentima?

Ne. Učitajte datoteku koju već imate (proračunsku tablicu, izvoz iz CRM-a, čak i PDF cjenik dobavljača) i Neo (Craft11-ov agent za uvoz) predlaže strukturirane zapise na temelju nje. Vi pregledavate i odobravate; ništa se ne kreira a da to prije ne vidite.

Što se događa s poljima koja ne uspije prepoznati?

Ostaju prazna i jasno označena, ne pogađaju se. Dobivate konkretan popis, '47 kontakata bez broja telefona', a ne nejasno upozorenje, i možete ih popraviti kad god vam se ukaže pet minuta, a ne prije nego što vam je uopće dopušteno početi koristiti sustav.

Što ako slučajno učitam isti popis dva puta?

Craft11 provjerava moguće duplikate u odnosu na vaše postojeće zapise (po e-mailu za klijente, po nazivu za stavke kataloga) i takve retke po zadanome ostavlja neoznačene. Vi odlučujete hoćete li ih ipak uvesti. Nikad tiho ne stvara drugu kopiju nekoga koga već imate.

Pridružite se Early Crew →← Natrag na sve tekstove

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.