Jak na import dat do Salesforce

Proboha co asi tak složitého může být na importu dat do Salesforce? Vždyť můžete použít Data Loader, Data Import Wizard nebo Keboola Connection, jednodušší úkol snad ani neexistuje.

Nebo je to celé trochu složitější? Jasně že je, protože největší problém vždycky bývá v těch vstupních datech, zvláště pokud zahrnují provázání více objektů dohromady.

Dostal se mi do rukou ukázkový soubor – co řádka, to kompletní údaje o člověku a ještě ke všemu údaje, které potřebuji přesunout do dalšího objektu. Jeden člověk tam tedy může být několikrát, podle toho, kolik dalších objektů k němu bude navázaných.

Import dat s duplicitami

Jak z toho nejjednodušeji ven? Rko se mi tentokrát pouštět nechtělo, musí být přeci jednodušší cesty. A jsou.

Duplicate Management

První co mě napadlo byl Duplicate Management, který už je v Salesforce dostupný. Prostě nastavím, že jméno, příjmení a adresa musí být unikátní, první záznam se mi naimportuje a další už neprojdou. Vyřešeno naklikáním během 5 minut a mám hotovo.

Salesforce Duplicate Management

Vlastně nemám, protože jsem zapomněl, že potřebuji vyřešit ty navázané objekty a vázat je jenom podle jména mi přijde dost odvážné. Tak druhá myšlenka.

External ID

Externí ID záznamu mi přijde (a osvědčuje se mi) jako velký pomocník. Na objektu nadefinuji další textové pole a označím ho jako External ID.

Salesforce External ID

Teď jenom zbývá si to externí ID vygenerovat. Buď si do něj prostě uložíte složenou hodnotu polí (typicky jméno, příjmení a adresa) nebo (z nějakého divného důvodu, stejně jako já) budete chtít mít tuto hodnotu zakódovanou. Excel bohužel nemá zabudovat nějakou HASH funkci, ale tato funkce funguje velmi pěkně. Doplníte ji do vstupních dat a vzhůru na import.

Salesforce už si pohlídá, aby vložil jenom jeden záznam pro každý klíč a navíc ten samý klíč pak použijete i pro vkládání dalších objektů. Pokud v Data loaderu použijete funkci Upsert, tak můžete záznamy vzájemně prolinkovat nejen podle jejich ID, ale právě i podle External ID. Stejně tak je podle External ID můžete i aktualizovat, což u obyčejného update bohužel nejde.

Shrnutí

Externí ID vás ochrání od nutnosti deduplikovat vstupní data (samozřejmě jenom částečně) a navíc vám umožní i snadno provázat jednotlivé objekty mezi sebou. Pro firmy, které doteď žily v Excelu a vše řešili dalšími sloupci nebo kopírováním řádků je to neskutečná úspora času a nervů při importu dat.

3 komentáře

  1. Martine, již jsme diskutovali na blogu KBC – tak jen krátký follow-up 🙂

    Jak byste navrhoval postupovat v případě, když:

    1) velká část zákazníků v SF je dostupná díky DataLoaderu.
    2) na úrovni Contactů mám u některých dostupné pole `user_id`, které ale není formálně ExternalID

    Chtěl bych pomocí UPSERT nastavit sync mezi interní DB a SF, stačilo by, kdybych vytvořil nové pole ExternalID a použil jej jakožto hlavní Id u writer v Keboole?

    • Změnil bych pole na ExternalID (ničemu by to nemělo ublížit, akorát si ho dá SF do indexu a bude vyžadovat unikátnost) a pak už upsert a jede se. Pokud by se vytvářelo nové pole, tak by bylo nutné do záznamů na obou stranách naplnit správné hodnoty a pak to pojede také ok.

Zajímá mě tvůj názor