Gegevens importeren en updaten met Dataloader

Als beheerder zul je soms op grote schaal data moeten importeren, updaten of exporteren. Dataloader is hiervoor een bijzonder handige tool.

Voorbeelden van importscenario’s

  • Accounts en Contactpersonen vanuit je oude CRM systeem importeren
  • Configuratie die in records vastligt (dit zie je bij bijvoorbeeld Salesforce Field Service en Salesforce CPQ veel) vanuit de sandbox waar het gebouwd is naar je productie omgeving overhevelen

Voorbeelden van updatescenario’s

  • Statussen updaten van Campagneleden voor genodigden bij je webinar, om na afloop vast te leggen wie er wel en niet zijn komen opdagen
  • Met DataLoader kun je gegevens uit je Salesforce database exporteren als csv bestanden waar je in excel op los kunt gaan. Ook kun je met csv bestanden gegevens importeren.
  • Je kunt de download link voor DataLoader vinden in de Setup van Salesforce.
  • Volg de installatie instructies.
  • Let op: Tijdens de installatie zie je een zwart, DOS-achtig scherm met witte tekst. Daar wordt een aantal vragen aan je gesteld worden waar je een paar keer met Y of N moet antwoorden en op enter moet drukken.

Instellingen

  • Voor je begint met data importeren, is het eerst belangrijk om wat instellingen aan te passen.
  • Wanneer je Dataloader opent, klik dan op Settings
  • Let vooral op deze instellingen:
  • Zorg dat de CSV bestanden met UTF-8 tekenset gelezen worden. Dit voorkomt dat speciale tekens, zoals accentletters, verkeerd worden overgenomen in Salesforce.
  • Stel je datumformaat op Europees in. Als je ergens datums importeert, zorg dan dat ze deze schrijfwijze hebben. Lees hier hoe je dit kunt controleren in Excel.
  • Als je Excel in het Nederlands is geïnstalleerd is je kolomscheidingsteken niet een komma, maar een puntkomma. Binnen cellen (als daar bijvoorbeeld zinnen tekst in staan) kunnen komma’s voorkomen en je wilt niet dat die ten onrechte de tekst na de komma naar een nieuwe kolom verplaatsen. Bovendien geeft dat foutmeldingen omdat sommige regels in je bestand dan een afwijkend aantal kolommen hebben. Vink Allow comma as a CSV delimiter dus uit.
  • Als je data uit Excel copy-paste naar kladblok om daar je csv bestand te maken, zorg dan dat een tab (die daar dan het kolomscheidingsteken wordt) is toegestaan als kolomscheidingsteken.
  • Controleer je csv voor gebruik in kladblok. Vaak zit er een lege regel op het einde. Deze kun je het beste verwijderen.
  • Tot slot zorg je natuurlijk dat Dataloader begrijpt dat een puntkomma een nieuwe kolom betekent.
  • De laatste instelling hier die je absoluut niet mag vergeten is om de tijdzone goed in te stellen. Mocht je ooit datumwaarden importeren en de tijdzone klopt niet met de tijdzone waar je je bevindt, dan kunnen die datums allemaal een dag verspringen.

De mogelijkheden

De opties die je hebt, spreken redelijk voor zich. Vergeet vooral Hard Delete en Export All. De kans is klein dat je die echt gaat nodig hebben.

Insert                Nieuwe records importeren

  • Onderzoek voor je dit doet altijd welke gegevens verplicht zijn om een record van een bepaald object te mogen aanmaken. De naam en eigenaar zijn in de meeste gevallen verplicht, maar er kunnen meerdere verplichte velden zijn. Een Opportunity moet bijvoorbeeld een StageName en een CloseDate hebben. Controleer bij keuzelijstvelden ook welke waarden geldig zijn en of afwijkende waarden toegestaan zijn of niet.
  • Bestudeer het datamodel. Importeer eerst de records van objecten die het hoogst in de hiërarchie zitten, waar andere records dus naar verwijzen. Dus eerst importeer je Accounts, daarna Contacten, waar naar een Account wordt verwezen waar die persoon werknemer is. Opportunities en Cases verwijzen naar een Account én een Contact en die importeer je dus weer daarna.
    Lees meer over data modeling
  • Een verwijzing naar een ander record, zoals de eigenaar of de record in een lookup relatieveld, maak je door de record Id in die kolom in te vullen. Dat is de unieke code voor de record waarnaar je verwijst.
  • Gaat het om slechts enkele Id’s die je wilt weten, dan kun je in Salesforce naar het betreffende record gaan. In de adresbalk van je browser zie je dan de record Id en deze kun je daar gemakkelijk uit kopiëren en plakken.
  • Gaat het om grotere aantallen records, gebruik dan Dataloader om ze te exporteren. Als je de recordnaam en ID in je export meeneemt, kun je binnen Excel met verticaal zoeken de Id in je importtabel binnenhalen.
  • Je kunt ook Rapporten in Salesforce gebruiken en daar de naam en Id in de export opnemen, maar dit is riskant. De Id’s die dan in je exportbestand staan, bestaan namelijk uit slechts 15 karakters en zijn hoofdlettergevoelig. Dat werkt niet in Excel, dat niet hoofdlettergevoelig te werk gaat. Excel zal 015000000abcdef en 015000000ABCDEF niet als twee verschillende Id’s herkennen terwijl ze dat wél zijn.
  • De Id’s uit de adresbalk van de browser en in Dataloader Exports bestaan uit 18 karakters en zijn niet hoofdlettergevoelig.
  • Als je de Id’s nodig hebt van zojuist geïmporteerde records zoals Accounts voor in je importbestand met Contacten ga dan als volgt te werk:
    • Aan het einde van de import van je Accounts zie je een bericht dat je vertelt hoeveel records succesvol zijn geïmporteerd.
    • Klik op View Successes
    • In het scherm met tabel dat dan opent klik je op Open in external program
    • Het bestand met het succesrapport van je import opent dan als een CSV bestand in Excel.
    • Je ziet dat de data niet werkelijk in verschillende kolommen staan. Dat kun je oplossen.
    • Klik kolom A aan
    • Klik op het tabblad Gegevens en daarin op Tekst naar kolommen
    • Zorg dat Gescheiden geselecteerd is en klik op Volgende
    • Selecteer Komma en klik op Voltooien
    • Selecteer kolom A en kopieer de gehele kolom
    • Selecteer de kolom direct rechts van het gegeven waarmee je kunt zoeken en klik op Gekopieerde cellen invoegen
    • Dit doen we omdat we de Id’s opzoeken met de functie Verticaal zoeken en hiermee kun je alleen naar cellen rechts van je zoeksleutelkolom kijken. We gaan in de NAME kolom zoeken naar een waarde die we al kennen en halen dan de waarde op uit de cel daar direct rechts naast.
    • In je Exceltabblad waar je de record Id nodig hebt ga je naar de cel waar deze moet worden gevuld.
    • Het helpt om het tabblad van de export naar hetzelfde bestand te slepen waar je in werkt.
    • In de eerste cel van de kolom waar je ID’s terecht moeten komen, maak je een Verticaal zoeken functie
    • Dit doe je voor alle relaties die je ingevuld wilt hebben.
    • Als je bestand klaar is, sla je het op als een csv bestand en kun je het gebruiken om te importeren.
  • Zodra je de Insert (of update of upsert) knop aanklik kom je in het scherm waar je eerst selecteert
    • Voor wel object je gegevens gaat importeren
    • Welk bestand op je computer je gaat gebruiken voor de import
  • Als het Object dat je wilt importeren niet in de lijst te vinden is, vink dan Show all Salesforce objects aan
  • Object en bestand geselecteerd? Klik dan op Next
  • Klik op OK in het scherm dat je laat zien hoeveel records er in je import bestand zitten (1 minder dan het aantal rijen in Excel want de kolomkoppen staan in de bovenste rij)
  • Klik op Create or Edit a Map
  • Klik op Auto-Match Fields to Columns
  • Als je kolomkoppen in Excel goed genoeg matchen met de veldnaam (API naam) of het veldlabel (wat je ziet in de gebruikersinterface) worden ze automatisch gemapt. Map eventuele overige kolommen door in de bovenste lijst het juiste veld op te zoeken en het met de muisknop ingedrukt naar de juiste regel in het onderste deel van het scherm te slepen.
  • Kolommen uit je bestand niet mappen naar een Salesforce veld is overigens geen probleem. De gegevens uit de betreffende kolom worden dan helemaal niet geïmporteerd.
  • Klik op Finish om de import te starten
  • Heb je de record Id’s nodig voor een volgend importbestand, klik dan op View Successes
  • Mochten er records niet geïmporteerd zijn, klik dan op View Errors om te achterhalen waarom die records niet geïmporteerd kunnen worden.

Update           Bestaande records bijwerken

  • Zorg dat je de unieke 18-cijferige record ID in het bestand hebt zitten.
  • Verwijder alle kolommen en regels waarin geen enkele wijziging voorkomt. Importeer niet meer dan strikt noodzakelijk en zo voorkom je ook dat je per ongeluk iets aanpast dat niet aangepast mocht worden.

Upsert             In één import zowel nieuwe records importeren als bestaande records bijwerken

  • Zorg dat voor records die geüpdatet moeten worden de record ID op de juiste plaats in het bestand staat (in de ID kolom en de juiste regel).
  • Zorg dat bij records die nieuw aangemaakt moeten worden er géén ID is ingevuld

Delete             Records verwijderen

  • Hiervoor heb je alleen de ID’s nodig, geen andere kolommen. Controleer heel goed of je geen records in je bestand hebt zitten die niet weg mogen.
  • Toch een foutje gemaakt? Dan kun je ze binnen 14 dagen terughalen uit de prullenbak.
  • Bij hard delete zouden de records de prullenbak overslaan en meteen helemaal weg zijn.

Export             Records Exporteren

  • Je kunt records van één object tegelijk kiezen.
  • De meest gangbare objecten zie je meteen
  • Minder gangbare en custom objecten zie je pas als je Show all Salesforce objects aanvinkt
  • Selecteer de velden die je nodig hebt en maak eventueel filters aan (bijvoorbeeld alleen records waarbij IsActive gelijk is aan TRUE). Vergeet als je een filter maakt niet om ook op Add condition te klikken.
  • Mocht je zin hebben om je te verdiepen in SOQL (Salesforce Object Query Language) dan kun je de Query ook zelf schrijven of aanpassen.
  • Klik op Finish om je Export uit te voeren
  • Klik op Ja of Yes om te bevestigen
  • Klik op View Extraction om het geëxporteerde CSV bestand meteen te openen

Documentatie en lesmateriaal