Základní datová migrace - Ajeje...

Pozitivně do začátku!
Když se řekne datová migrace, občas mi vyskočí husí kůže. Nejsem ten typ člověka, který se v datech vyžívá či ho nějak naplňují transformace, extrakce a podobně. Datovou migraci, já osobně, považuji vždy za jeden z nejdůležitějších a hlavně i těch nejtěžších bodů projektu. U tohoto tématu jsem opatrný a snažím se již na začátku projektu zjistit, co nás může čekat.
Tedy to:
- Kde data aktuálně jsou
- Jaké jsou možnosti exportu
- Jaké jsou možnosti formátu
- Jak jsou data kvalitní a kdo bude za kvalitu ručit
- Co vše bude potřeba exportovat/importovat
- Kdo data připraví do použitelného stavu
...a mnohem více. Kdo někdy migraci řešil (a spálil se) mi dá určitě za pravdu a určitě mě i doplní.
Samozřejmě cílem každé migrace je dodat, pokud možno, importovaná data do Salesforce v nejlepší kondici, bez duplicit, provázané mezi sebou a navázané na správné uživatele/fronty.
Use case a omáčka
Pojďme si představit takovou obyčejnou datovou migraci, která se neskládá z moc objektů. Řekněme, že zákazník chce přemigrovat z aktuálního CRM řešení tyto pouze tyto objekty:
- Lead
- Account
- Contact
- Opportunity (bez produktů a ceníků)
To, co uvidíte na první pohled je to, že se bavíme pouze o Sales cloudu.
Zde vyvstává otázka "S čím pracují nejčastěji obchodníci?" Ano, jsou to aktivity, proto bychom měli myslet i na import těch.
Zákazník nám dodá data ve formátu csv (jaká radost!) a řekne "importuj!". V tuto chvíli, vlastně už i před ní, by měl být vztyčený ukazováček - jak říkám já - varovníček. Už před předávkou by mělo být (ideálně) domluveno několik věcí:
- Struktura dat
- Mapování polí - nový vs starý systém
- Data očištěná od duplicit
- Emaily ve správném formátu (platí i pro země, telefony, atd)
- (External) ID - informace o vazbách
Řekněme, že toto by pro začátek mohlo stačit, ale jelikož by to stejně přišlo, budeme potřebovat ještě další informace. Na co si tedy určitě dát ještě pozor?
- Record Types - musíme myslet na to, že record types jsou všude a občas se o tom někdo zapomene zmínit
- Názvosloví (př. názvy Opportunity stages, Lead sources, atd)
- Vlastníci záznamů - obdržíte data historická, kde vlastníci již nejsou zaměstnanci a tudíž ani uživateli Salesforce - je tedy nutno assignovat na nové vlastníky
- Created date - chceme držet i původní created date záznamu? Nebo pouze jen ten, co bude nově existující v Salesforce? Ano, i na tohle je potřeba myslet v reportingu
Výborně! Vypadá to, že máme data připravena!
Začněme tedy s importem. Prvním otázkou je, jaký nástroj chceme použít. Jako první se nabízí ten nejznámější a to Data Loader (pšššt! chystám sérii návodů jak s ním pracovat!).
Vyvarujeme se nástroji "Import Wizard". Nevím proč, ale nikdy mi k srdci nepřirostl. Pokud máme ambice, můžeme pohledat i v nástrojích třetích stran a vlastně proč ne! Do teď s láskou vzpomínám na doby, kdy jsem datové migrace měl vyřešené poměrně rychle a to jen díky nástroji Talend. Bylo krásné připravit si ETL job, který za vás odvedl to nejdůležitější a navíc, všechno se to dalo jen naklikat a pospojovat.
Pokud by vás zajímalo více nástrojů pro data import, tak mě namátkou napadají tyto:
- Jitterbit
- Dataloader.io
- Starfish
Pokud znáte nějaké lepší, nebo máte doporučení, tak se určitě ozvěte!
Import - A hurá do toho!
Určitě před prvotním importem doporučím zamyslet se nad těmito věcmi:
- Import prvně do UAT - validace dat od zákazníka je důležitá
- Validace - Není potřeba je před importem vypnout?
- Automatizace - Chci, aby mi import spouštěl Triggers nebo Flows?
- Mám očištěná data od duplicit? Mám zapnuté Duplicate rules?
- Funkce "Duplicates" v excelu je zlatá a email je skvělý identifikátor
- Potřebuji importovat i externí ID? - Já mohu doporučit vždy, nikdy nevíte, jestli nepřijde zákazník a neřekne - potřebuji k tomu doimportovat ještě tyto specifické entity, které jsou na objekt navázány
Začněme tím prvním a to je objekt Lead.
Ideálně je začínat zdánlivě od toho nejsnadnějšího. Tím bezesporu objekt Lead může být. U něj určitě doporučím dbát na správné mapování polí (to platí pro všechny objekty), vytvořit si specifický Lead source pro tyto záznamy (př. Import), myslet na rozřazení mezi uživatele či případně do front.
A s chutí do toho! Honem zahřát data loader, nastavit batch size limit a správný oddělovač pro csv.
To nejsnadnější může být za námi. Následuje větší zábava a to objekty Account, Contact a Opportunity. Na první pohled už je zřejmé, že se jedná o entity, které jsou na sebe navzájem navázané a už tvoří tu pomyslnou 360.
Začněme Accountem. Musíme namapovat vše potřebné, stále hlídáme, aby nám seděli picklist value, record types, atd. Tento objekt do systému naimportujeme i s externím IDs, které je evidované i na kontaktech (z externího sys), které potřebujeme importovat také. A proč? Abych mohli Accounts s Contacts provázat!
Následně importujeme kontakty do Salesforce a jako párovací klíč, použijeme specifické ID z externího systému.
A můžeme opět importovat. Díky doplnění vazeb získáváme napárování mezi entitami a máme napůl vyhráno. Tento proces (obdobně) aplikujeme i na další objekty, v našem případě na Opportunity, ale dá se použít na vše potřebné, kde to dává smysl.
A co ty aktivity?!
Jak jsme zmínil už na začátku, občas je potřeba migrovat i aktivity, tedy:
- Task
- Event
- Log a Call
Musím říct, že příprava vstupních dokumentů je skutečně otravná, člověk musí znát rozdíl mezi WhoID (Contact/Lead) a WhatID (associate record - Account, Opportunity,...), musí pracovat s typy aktivit, myslet i na Task Subtype (Task Subtype = Call naimportuje záznam jako Log a Call) či si hlídat formát data.
Doporučím tento článek od SF: https://help.salesforce.com/s/articleView?id=000385233&type=1 či tento: https://help.salesforce.com/s/articleView?id=000390206&language=en_US&type=1
Závěrem
Existuje několik přístupů k migraci, mně se osvědčil tento. Nechci však tvrdit, že se jedná o ten nejlepší. Máte dotaz nebo se chcete podělit o jiný, lepší přístup? Dejte vědět! info@salesforcestuff.org