
Tekunda Team

Tekunda Team

Kort antwoord: een Salesforce-datamigratie wordt beslist in de datakwaliteitsfase, weken voor de laaddag. Profileer de brondata, bepaal bewust wat je niet meeneemt, breng elk veld in kaart met een external ID erachter, en repeteer de cutover tot hij saai is. Laden is het makkelijke deel, en het is bijna nooit wat misgaat.
Zelden door het laden. Data Loader, de Bulk API en de ETL-tools werken gewoon. Mislukkingen zijn terug te voeren op beslissingen die eerder zijn ontweken:
Alle vier zijn goedkoop op te lossen in week twee en genadeloos in de nacht van de cutover. Dat is het hele argument om datakwaliteit naar voren te halen.
Profileren is meten, niet rondkijken. Voordat iemand een mappingregel schrijft, lever je cijfers per bronobject:
De uitkomst is een kort profielrapport. Zijn echte taak is meningen omzetten in cijfers, zodat scopegesprekken eindigen in een besluit in plaats van een vergadering.
Dit is de beslissing met de meeste hefboom en die de meeste plannen overslaan. Elk record heeft vier mogelijke bestemmingen, en maar een ervan is duur:
Verstandige uitgangspunten: gesloten records ouder dan je rapportagehorizon worden samengevat, contacten zonder activiteit en zonder bereikbaar e-mailadres worden gearchiveerd, en vrije tekstvelden waarop niemand rapporteert komen helemaal niet mee. Elk record dat je uitsluit scheelt mappingwerk, validatiefouten, testgevallen en support na livegang. Minder scope is de goedkoopste prestatiewinst die er is.
Een regel per doelveld, en elke regel bevat: bronveld, transformatieregel, standaardwaarde, eigenaar, de validatie die het moet doorstaan, en de datum waarop het besluit is bekrachtigd. Heeft een regel geen eigenaar, dan is het geen mapping maar een hoop.
Twee technische keuzes bepalen hoe rustig de rest van het project verloopt:
Leg daarna schriftelijk vast welke automatisering tijdens het laden uitstaat en wie hem weer aanzet: validatieregels, triggers, flows, toewijzingsregels, duplicaatregels en e-mailmeldingen. Een onbedoelde welkomstmail aan 40.000 gemigreerde contacten is de klassieke versie van deze fout.
Minimaal drie, in een sandbox die op productie lijkt.
Bewaar elk foutenlogboek en behandel het foutpercentage als een trend. Is run drie niet duidelijk schoner dan run een, dan convergeert de mapping niet en is de livedatum fictie.
Een cutoverplan is een reeks met kloktijden en een eigenaar per regel, geen verhaal:
Definieer de rollback voor de cutovernacht, wanneer het nog een ontwerpvraag is en geen paniek. In de praktijk betekent dat: houd het oude systeem leidend en read-only tot de akkoordverklaring, en houd op elk gemigreerd record een external ID zodat een gerichte verwijdering of een volledige herlading mogelijk blijft. Bemens daarna de eerste 48 tot 72 uur fatsoenlijk, want de vragen van dag een laten zien wat het profielrapport gemist heeft.
Wij doen migraties op deze manier binnen onze Salesforce-trajecten, en dat is mede hoe we 16+ organisaties live in productie hebben gebracht. Ben je er een aan het afbakenen en wil je een tweede mening over de data voordat er een datum vastligt, begin dan hier.
Hoe lang duurt een Salesforce-datamigratie?
Het laden duurt uren. Het project duurt zo lang als de datakwaliteitsbesluiten duren, en daarom moet de getimede dry run je cutovervenster bepalen, niet de planning.
Schonen we de data in het bronsysteem of tijdens het laden?
Waar mogelijk in de bron, waar de eigenaars zitten. Transformatieregels in een laadscript zijn onzichtbaar voor de business en worden na livegang opnieuw ter discussie gesteld.
Hebben we external IDs nodig als we maar een keer migreren?
Ja. Ze maken herstarts veilig, lossen relaties op zonder Salesforce-ID's en maken later een rollback of gerichte herlading mogelijk.
Hoeveel historie nemen we mee?
Alleen wat een benoemd proces of rapport gebruikt. Vat de rest samen en archiveer het overige buiten het CRM: historie is in dit soort projecten de meest voorkomende bron van scope creep.