Een Salesforce-org naar Dynamics 365 verplaatsen is geen export met een ander logo. De records zijn het zichtbare deel. De lastige resten zitten in eigenaarschap, flows, Apex, integraties, beveiligingsrollen en uitzonderingen die pas tijdens een echte verkoopdag boven komen. Dynamics 365 Activate kan die eerste inventarisatie versnellen, maar het kan de menselijke vrijgave niet vervangen.
Microsoft kondigde Activate op 9 september 2026 aan als publieke preview voor organisaties die van Salesforce naar Dynamics 365 gaan. De aankondiging positioneert het als een bredere implementatie-ervaring; de actuele documentatie noemt het concreet een webapplicatie voor discovery, mapping, schema-aanmaak, datamigratie en reconciliatie. Gebruik het daarom als gecontroleerde proefroute, niet als automatische migratiebelofte. De publieke preview van Dynamics 365 Activate voor Salesforce-migraties is een goede aanleiding om te beginnen, geen reden om de controlepoort over te slaan.
Een controlepoort bij een Salesforce naar Dynamics 365-migratie is een expliciete go/no-go-stap met vooraf vastgelegde eisen voor data, mapping, beveiliging, bedrijfslogica, reconciliatie en rollback. De migratie gaat pas door als een aangewezen bedrijfseigenaar het bewijs heeft gezien en openstaande verschillen een besluit hebben. Een groene technische run is dus een voorwaarde, niet het eindresultaat.
Eerst het verdict: Activate versnelt discovery, niet het besluit
Dynamics 365 Activate ondersteunt in deze preview de route van Salesforce naar Dynamics 365 Sales en Dynamics 365 Customer Service. Het kan onder meer objecten, velden, relaties, flows, Process Builder, Apex, Lightning-pagina’s, pakketten, integraties, valuta, gebruikers en gebruikspatronen inventariseren. Voor standaardobjecten zoals Account, Contact, Lead, Opportunity en Case maakt het een bruikbare startmapping.
De grens is belangrijker dan de demo. Activate analyseert flows, workflowregels, Process Builder en Apex voor de migratie-inschatting, maar zet die bedrijfslogica niet automatisch om. Ook is de preview zelf een bewegend doel. Microsoft markeert de functie als preview en waarschuwt dat zij niet voor productiegebruik bedoeld is. Dat is geen semantisch detail. Het bepaalt hoeveel bewijs je vóór de echte cut-over nodig hebt. Microsoft beschrijft Activate als preview met analyse, mapping en reconciliatie, maar zonder automatische omzetting van automatisering en code, bijgewerkt op 9 september 2026.
Mijn beslisregel:
- Gebruik Activate als gecontroleerde versneller als je vooral standaard CRM-data wilt overzetten, een niet-productieomgeving kunt gebruiken en de huidige preview-regio en gegevensroute accepteert.
- Gebruik Activate plus maatwerk als je veel eigen objecten, beveiligingsregels, externe koppelingen of bedrijfslogica hebt. Laat Activate discovery en een proefbatch doen, maar ontwerp de herbouw apart.
- Kies een eigen migratiepad als de preview-regio, gegevensresidency, ondersteunde objecten of bestandsafhandeling niet passen. Een tool die je niet contractueel of technisch mag gebruiken, is geen versneller.
- Stel de migratie uit als niemand eigenaar is van de bedrijfsuitkomst, je Salesforce-data nog niet betrouwbaar is of het doelmodel nog niet bestaat.
Wat je nodig hebt voor een veilige proef
Accounts en rechten
Je hebt een Microsoft Entra-werkaccount nodig voor Activate, een workspace en een apart project per Salesforce-org en Dynamics 365-doelomgeving. De huidige toegangsstap ondersteunt de Verenigde Staten als enige regio en vermeldt meestal drie werkdagen voor nieuwe aanvragen. Plan die wachttijd vóór je projectdatum. Een Nederlandse organisatie moet ook vooraf vastleggen of deze preview-regio en de gegevensverwerking binnen het eigen contract, beleid en de relevante verwerkersafspraken passen. Deze gegevens zijn gecontroleerd op 27 september 2026.
Aan de Salesforce-kant maak je een aparte External Client App en een herkenbare integratiegebruiker, bijvoorbeeld D365 Migrate Discovery. Activate gebruikt OAuth 2.0 Client Credentials met een vaste Run As-gebruiker. Gebruik de My Domain-URL van je org, niet login.salesforce.com, test.salesforce.com of een volledige Lightning-URL. Geef de gebruiker alleen de objecten en velden die in de discovery horen. De Salesforce-documentatie noemt voor brede discovery onder meer API Enabled, View Setup and Configuration, Customize Application, toegang om metadatafuncties te lezen, Author Apex en Manage Flow. Sommige permissienamen klinken ruimer dan de feitelijke handelingen van Activate. De toepassing gebruikt deze toegang voor lezen en inventariseren, niet om Salesforce-configuratie te wijzigen.
Aan de Dynamics-kant heb je een niet-productieomgeving, een Microsoft Entra-appregistratie en een Dataverse application user nodig. Die identiteit moet precies de tabellen en kolommen kunnen lezen en de doelrecords kunnen aanmaken, bijwerken, koppelen en toewijzen die je proef omvat. Geef geen beheerdersrol omdat dat sneller voelt. Een te ruime target-identiteit maakt een geslaagde proef moeilijker te beoordelen.
Data, bewijs en mensen
Leg vóór de eerste verbinding vast:
- Scope: objecten, velden, bestanden, gebruikers, openstaande kansen, cases, activiteiten en integraties die wel of niet meegaan.
- Nulmeting: aantallen per object, gevulde velden, open kansen per fase, bedragen per valuta, eigenaar, laatste wijzigingsdatum en aantal relaties.
- Bronidentiteit: Salesforce-ID, eventuele externe sleutel en de sleutel waarmee het doelrecord later opnieuw wordt herkend.
- Acceptatie: wat moet gelijk zijn, wat mag transformeren en welke afwijking vereist een menselijk besluit?
- Eigenaarschap: Salesforce-beheerder, Dynamics-beheerder, proceseigenaar, technisch uitvoerder en één persoon met go/no-go-bevoegdheid.
- Herstel: laatste betrouwbare sleutel, freeze-moment, terugvaltrigger en de route voor records die na de omschakeling al zijn aangemaakt.
Maak een volledige Salesforce-back-up voordat je gaat experimenteren. Salesforce Data Export is hiervoor een vangnet, geen migratieplan. De officiële FAQ van 17 augustus 2026 vermeldt dat wekelijkse exports in bepaalde edities eenmaal per zeven dagen kunnen worden aangevraagd, maandelijkse exports eenmaal per 29 dagen, dat bestanden 48 uur beschikbaar blijven en dat er geen SLA voor voltooiing is. Een export die nog in de wachtrij staat, is geen cut-over-back-up. Bij grote exports is het verstandig alleen de benodigde objecten te selecteren en rekening te houden met een lange doorlooptijd zonder SLA.
Zet de mapping en de uitzonderingen in versiebeheer. Een spreadsheet is prima als werkblad, zolang elke regel een status, eigenaar, bron-ID, doel-ID, foutreden en beslissing heeft. Een migratiedossier met eigenaar, deadline, testbewijs en terugvaltrigger geeft daarvoor de juiste basis. Voor API-tests gebruik je bijvoorbeeld Postman Collection Runner. Voor herhaalbare validatie is een kleine testset in code, met bijvoorbeeld pytest en een CI-run, betrouwbaarder dan screenshots met 200 OK.
Concrete stappen: van read-only discovery naar vrijgave
De route hieronder gebruikt het principe expand, migrate, contract. Eerst houd je de bestaande route bruikbaar en maak je ruimte voor de nieuwe. Daarna migreer je in een gecontroleerde scope. Pas wanneer de nieuwe uitkomst aantoonbaar klopt, sluit je de oude route. Martin Fowler beschreef dit patroon op 13 mei 2014 als een veilige manier om een incompatibele interface in drie fasen te wijzigen: expand, migrate en contract maken een overstap incrementeel en testbaar.
1. Zet de scope en nulmeting vast
Begin niet met “alles uit Salesforce”. Maak werkstromen. Accounts en contacten zijn een andere stroom dan open opportunities, cases, activiteiten en bestanden. Zet per object de bron, het doel, de eigenaar, de recordselectie, het volume, de afhankelijkheden en het gewenste eindresultaat op papier.
Maak daarna een momentopname. Noteer bijvoorbeeld Account: 1.240, Contact: 8.600, Opportunity: 3.200, en de aantallen per eigenaar, status en valuta. Gebruik dezelfde filters in Salesforce en Dataverse. Een totaal zonder definitie is geen vergelijking: “alle opportunities” kan in Salesforce ook gesloten en gearchiveerde records bevatten, terwijl het nieuwe verkoopteam alleen open kansen nodig heeft.
2. Maak een Activate-project en bepaal de gegevensroute
Maak eerst de workspace en het project aan. Gebruik een naam met bron, doel en fase, bijvoorbeeld CRM-Salesforce-D365-Sales-proef-2026Q3. Kies vooraf of discoveryresultaten en tijdelijke migratierecords in Microsoft-beheerde Azure Storage mogen staan of dat Bring Your Own Storage nodig is. Een BYOS-keuze achteraf is niet neutraal: Microsoft vermeldt dat je na een wijziging van de projectdatabase opnieuw discovery moet draaien.
De officiële route bestaat uit workspace en project, optionele BYOS, Salesforce discovery, target discovery, object- en veldmapping, user mapping, solution deployment, datamigratie met verificatie en cleanup. De route bestaat uit acht fasen en ondersteunt Trial 100, Full en Delta als migratiemodi, gecontroleerd op 27 september 2026. Gebruik dit als werkvolgorde, niet als bewijs dat elke fase zonder ontwerpbesluit kan worden doorlopen.
3. Draai Salesforce discovery met minimale rechten
Maak in Salesforce de External Client App aan, zet de Client Credentials Flow aan, kies de dedicated Run As-gebruiker en sla consumer key en secret in een wachtwoordkluis op. Geef in Activate de kale My Domain-host op. Test de verbinding eerst. Een geslaagde tokenaanvraag bewijst alleen dat de identiteit mag inloggen.
Start daarna met Objects & Relationships. Controleer per categorie of de uitkomst logisch is voor de beheerder van Salesforce. Run vervolgens Flows & Automation, Apex Code, Business Processes, Lightning Pages, ISV Packages, Integrations, Localization & Currency, Licenses & Users en Usage & Tech Debt. Een lege categorie is geen mooie nul. Zij kan wijzen op ontbrekende objectrechten, field-level security of een ontbrekende feature-licentie. De dedicated gebruiker, My Domain, Client Credentials en de discoverycategorieën staan stap voor stap beschreven; de pagina is bijgewerkt op 9 september 2026 en gecontroleerd op 27 september 2026.
Download het readinessrapport in PDF, Word of JSON. Bewaar het naast de nulmeting en noteer de versie van de discovery. Verandert er later iets aan de Salesforce-org, dan moet je kunnen zien welk besluit op welke inventarisatie is gebaseerd.
4. Classificeer wat blijft, verandert of verdwijnt
Gebruik vier labels per gevonden onderdeel:
- Behouden: het proces is nog nodig en past bij Dynamics 365.
- Vereenvoudigen: de uitkomst blijft nodig, maar oude uitzonderingslogica kan weg.
- Herbouwen: de uitkomst blijft nodig, maar de implementatie verandert naar Dataverse, Power Automate, een plug-in of een eigen API.
- Uitsluiten: het onderdeel is ongebruikt, dubbel of alleen nog aanwezig uit historische angst.
Doe dit eerst voor flows, Process Builder, workflowregels, Apex, managed packages en connected apps. Een lijst met 68 automations is geen migratieplanning. De beslisregel is: welke bedrijfsuitkomst moet na de cut-over nog aantoonbaar gebeuren, wie merkt dat hij ontbreekt en welke nieuwe component voert hem uit?
Leg externe systemen apart vast. Denk aan marketing, facturatie, telefonie, agenda, datawarehouse, portals en rapportages. Een CRM-record dat netjes in Dataverse staat, kan nog steeds onbruikbaar zijn als de verkoopofferte, leadroutering of rapportage niet meer aanhaakt.
5. Maak de mapping controleerbaar
Laat Activate een startmapping maken, maar keur geen enkele laagwaardige of onduidelijke mapping automatisch goed. Leg per veld vast: bronveld, doelkolom, transformatie, default, null-gedrag, validatie, eigenaar en testgeval.
| Salesforce | Dynamics 365 / Dataverse | Besluit dat je vastlegt |
|---|---|---|
Account.Id | account.externalid of een eigen bron-ID | Blijft de Salesforce-ID zoekbaar na de overstap? |
Account.OwnerId | ownerid of team | Hoe worden Salesforce-gebruikers en teams gemapt? |
Contact.AccountId | parentcustomerid | Bestaat de Account eerst en blijft de relatie intact? |
Opportunity.StageName | salesstage of choice column | Welke picklistwaarden zijn gelijk, samengevoegd of vervallen? |
Amount plus CurrencyIsoCode | estimatedvalue plus transactievaluta | Hoe worden decimalen, valuta en afronding behandeld? |
Custom_Status__c | bestaande choice of nieuwe kolom | Wat is de betekenis van elke waarde in het nieuwe proces? |
Bewaar de Salesforce-ID naast een eigen externe sleutel. Dat helpt bij herhaalde Full- en Delta-runs, reconciliatie en incidentonderzoek. Zonder stabiele sleutel weet je niet of een afwijking een nieuw record, een update of een dubbel record is.
6. Map gebruikers, beveiliging en bedrijfslogica
Map Salesforce-gebruikers op e-mailadres of gebruikersnaam en controleer daarna handmatig de uitzonderingen. Leg inactieve en ontbrekende gebruikers apart vast. Map profielen en permission sets naar Dataverse security roles, role hierarchy naar business units en queues en teams naar de nieuwe ownershipstructuur. Een record kan correct zijn gemigreerd en toch onzichtbaar blijven voor de verkoper die hem nodig heeft.
Bouw de bedrijfslogica per uitkomst opnieuw. Een eenvoudige melding kan in Power Automate passen. Een transactieregel met strikte validatie hoort eerder in Dataverse of een eigen service. Een integratie die meerdere systemen, retries, idempotentie en een uitzonderingsqueue nodig heeft, verdient een expliciete API-laag. Zet nooit “Activate regelt dit” in een requirement. Activate analyseert het oude gedrag; jouw ontwerp bepaalt het nieuwe.
7. Deploy het schema in niet-productie en draai Trial 100
Laat Activate uit de bevestigde mappings een Dynamics 365 solution package maken voor nieuwe tabellen, kolommen, choices en relaties. Importeer die oplossing in de niet-productieomgeving. Als je voor testdata of configuratie tussen Dataverse-omgevingen extra ondersteuning nodig hebt, kan de Configuration Migration tool van Power Platform configuratie en testdata vastleggen, in bronbeheer plaatsen en opnieuw inzetten. Hij automatiseert geen volledige CRM-beslissing. Configuratie en testdata kunnen met de Configuration Migration tool tussen omgevingen worden vastgelegd en opnieuw ingezet, bijgewerkt op 20 augustus 2026.
Kies daarna Trial 100 per tabel. Dat is maximaal 100 records per tabel en bedoeld om mappings, transformaties, choices, lookups en targetgedrag te toetsen. Kies bewust een mix: normale records, records met lege velden, dubbele kandidaten, oude records, de nieuwste wijziging, meerdere valuta, afwijkende eigenaren en records met relaties. Een proefbatch met alleen de eerste honderd records test vooral de sorteervolgorde.
Maak de uitzonderingsqueue direct bruikbaar. Elke rij bevat minimaal:
- bronobject en Salesforce-ID;
- doelobject en eventueel Dataverse-ID;
- run-ID en mappingversie;
- fouttype, bijvoorbeeld lookup, choice, validatie, rechten of eigenaar;
- eigenaar, volgende actie en uiterste datum;
- besluit: herstellen, uitsluiten, handmatig overzetten of accepteren met reden.
8. Reconciliëer op aantallen, inhoud en bedrijfsuitkomst
Gebruik de ingebouwde reconciliatie voor de eerste controle. Activate vergelijkt per gemigreerd object de recordaantallen in Salesforce en Dataverse. De dashboardverificatie kan aanvullende steekproeven en veld-voor-veldvergelijkingen uitvoeren. Dat is nuttig, maar recordaantallen alleen vinden geen verkeerde valuta, eigenaar of relatie.
Werk in drie lagen:
- Volume: aantallen per object, status, eigenaar en geselecteerde periode.
- Integriteit: externe sleutels, verplichte velden, lookups, choices, valuta, datum/tijd en ownership.
- Bedrijfsuitkomst: open pipelinewaarde, aantal actieve cases, verkoopfasen, rapporten, routering en de eerste echte gebruikershandelingen.
Zet elk verschil in de queue. Een verschil mag alleen “verklaard” heten als een bronregel, transformatie of eigenaar het bevestigt. Trial 100, Full en Delta, de dependency-volgorde van ouders vóór kinderen, stop/resume, recordaantallen en handmatige controles staan in de verificatiestap van Activate. De pagina is bijgewerkt op 9 september 2026.
9. Maak de vrijgavekaart en voer een menselijke go/no-go uit
De vrijgavekaart is één pagina, geen presentatie. Zet er deze controles op:
- alle kritieke mappings hebben status goedgekeurd;
- nul onverklaarde verschillen in accounts, contacten en open opportunities;
- gebruikers, teams, rollen en record-eigenaars zijn gecontroleerd;
- flows, Apex, Process Builder en externe integraties hebben een eigenaar en nieuwe implementatie of expliciete uitsluiting;
- bestanden en attachments hebben een apart besluit;
- de eerste echte gebruikershandelingen zijn getest;
- monitoring meet geslaagde én ontbrekende runs;
- het freeze-moment, de laatste Salesforce-sleutel en de terugvaltrigger zijn bekend;
- de bedrijfseigenaar en technisch eigenaar zijn bereikbaar.
De ontwikkelaar mag aangeven dat de route technisch klaar is. De eigenaar van het verkoopproces beslist of een opportunity met de juiste eigenaar, valuta, fase en rapportage-uitkomst in Dynamics 365 staat. Laat die beslissing met datum, naam en mappingversie vastleggen.
10. Freeze, delta, cut-over en nazorg
Plan de omschakeling op een moment waarop verkoop, support en techniek beschikbaar zijn. Zet nieuwe invoer kort stil, maak de laatste Salesforce-back-up, leg de laatste betrouwbare sleutel vast en draai de laatste delta-run als de eerste succesvolle migratie en de gekozen tabel dat toelaten. Schakel daarna de oude Salesforce-integraties gecontroleerd uit en activeer de nieuwe route.
AWS beschrijft een cut-over als een volgorde van ingestion freeze, back-up, laatste data-sync, routeringswijziging en test. Die volgorde werkt hier ook: de “routering” kan een feature flag, integratiecredential of workflow-activatie zijn. Een gefaseerde overgang beperkt de blootstelling, maar werkt alleen als je per team, klantgroep of datastroom een grens kunt herkennen. Freeze, back-up, laatste synchronisatie, routing, testen en beschikbaarheid van support zijn vaste cut-overaandachtspunten, gecontroleerd op 27 september 2026.
Controleer na vijftien minuten, na de eerste volledige cyclus en na één werkdag. Houd de oude Salesforce-configuratie geblokkeerd maar herstelbaar. Verwijder credentials en projectdata pas wanneer de acceptatie rond is. Microsoft beschrijft cleanup als het intrekken van Salesforce- en Dynamics-toegang, verwijderen van stagingdata en opruimen van het Activate-project.
Valkuilen: waar Activate je niet redt
Je behandelt een preview als productieplatform
Een preview kan morgen anders werken, een regio kan ontbreken en een grens kan pas tijdens je proef zichtbaar worden. Mitigatie: leg de huidige documentatieversie, projectinstellingen, regio, testresultaten en fallback vast. Gebruik de preview eerst op een niet-productieomgeving. Houd een alternatief pad achter de hand.
Een read-only discovery voelt als een volledige audit
Activate ziet alleen wat de integration user mag zien. Een lege categorie kan een ontbrekende permission set zijn. Vergelijk de discoveryaantallen met de Salesforce-beheerder en controleer object- en field-level security. Een rapport met nul Apex-klassen is pas geruststellend als de gebruiker Apex ook mocht lezen.
Automatisering verdwijnt uit de scope
Een CRM-migratie wordt vaak verkocht als datawerk, terwijl de echte werking in Flow, Process Builder, Apex, approval processes, validatieregels en connected apps zit. Mitigatie: maak voor elke gevonden regel een behoud-, vereenvoudig-, herbouw- of uitsluitbesluit. Test de bedrijfsuitkomst, niet de aanwezigheid van de nieuwe record.
Een automatische mapping krijgt blind vertrouwen
Account en Account lijken hetzelfde, maar eigenaar, business unit, currency, record type, picklist en relationele sleutel kunnen anders werken. Mitigatie: keur mappings per object goed, leg transformaties vast en test minimaal één normaal, leeg, oud, recent en afwijkend record.
Reconciliatie stopt bij recordaantallen
1.240 accounts aan beide kanten kan nog steeds 37 verkeerde eigenaren, een verschoven valuta of een verbroken opportunityrelatie bevatten. Mitigatie: voeg veld-, relatie-, ownership- en bedrijfscontroles toe. Controleer een representatieve steekproef met een Salesforce-ID, een Dataverse-ID en het scherm waarop een gebruiker werkt.
Bestanden en attachments worden als gewone velden behandeld
De previewdocumentatie is op dit punt niet volledig eenduidig. De overzichtspagina noemt ondersteuning voor geselecteerde bestanden, ContentNotes, klassieke attachments, e-mailattachments en recordafbeeldingen. De securitypagina beschrijft de migratie als structured table data en noemt bestanden en documenten niet als onderdeel van de gegevensroute. Mitigatie: zet bestanden in een apart werkpakket, test precies jouw bestandstype en laat de vrijgave blokkeren zolang de uitkomst niet bewezen is. Tijdelijke Azure-staging, dataverwijdering en de previewbeperkingen zijn beschreven in de actuele securitydocumentatie, gecontroleerd op 27 september 2026.
Salesforce API-limieten worden pas op de migratiedag ontdekt
De actuele Salesforce-documentatie, gecontroleerd op 27 september 2026, beschrijft voor productieomgevingen maximaal 25 gelijktijdige langlopende aanvragen, een REST/SOAP-time-out van tien minuten en een dagelijkse toewijzing die onder meer afhangt van editie en licenties. Mitigatie: meet bestaande API-consumptie, plan batches, gebruik retries met back-off en reserveer ruimte voor de normale bedrijfsintegraties. Je kunt API-gebruik in Setup en via Sforce-Limit-Info controleren. Een onafhankelijke bespreking van de Sforce-Limit-Info-header dateert van 22 augustus 2014; gebruik voor limietwaarden altijd de actuele documentatie.
Rollback betekent alleen de oude URL terugzetten
Voor de eerste schrijfactie kan terugvallen eenvoudig zijn: stop de nieuwe route en hervat de oude. Na nieuwe Dataverse-records heb je een dataprobleem. De oude Salesforce-omgeving loopt achter, en een routewissel terug kan dubbele records of verloren wijzigingen opleveren. Mitigatie: leg vóór de cut-over een watermark vast, stop bij een incident nieuwe writes, bewaar de run- en bron-ID’s en beslis expliciet tussen fix-forward, gecontroleerde correctie of terugzetten. AWS waarschuwt dat rollback na nieuwe transacties een eigen strategie voor gewijzigde data vereist, zoals fail-forward, dual-write of geteste restore. AWS werkt die rollbackkeuzes uit in de migratierichtlijn van 24 maart 2026.
Je sluit de oude route te vroeg af
Een oude connector kan weken later nog nodig blijken voor een rapportage, partnerfeed of vergeten batchjob. Mitigatie: monitor oud verkeer, blokkeer de route eerst gecontroleerd en verwijder pas na een volledige normale cyclus, een maandafsluiting en een eigenaarbesluit.
Beslis-kader: wanneer Activate, wanneer maatwerk?
Leg de keuze langs vijf assen. De zwaarste uitkomst wint.
1. Is je data- en objectmodel standaard genoeg? Accounts, contacten, leads, opportunities en cases met bekende relaties zijn geschikt voor een Activate-pilot. Veel custom objects, Big Objects, External Objects, managed packages of complexe files vragen een apart ontwerp. Unsupported is een stoplicht, geen uitnodiging om harder te klikken.
2. Hoeveel bedrijfslogica zit er rond de records? Enkele eenvoudige flows kun je opnieuw bouwen in Power Automate. Veel Apex, goedkeuringen, uitzonderingen, synchronisaties en tijdafhankelijke acties duwen naar maatwerk. Activate versnelt de inventarisatie, niet de herbouw.
3. Hoe streng is de vrijgave? Een CRM met alleen historische contacten kan met een lichtere proef. Een verkoopproces met open opportunities, contractwaarde, eigenaarschap en rapportage vraagt een volledige controlepoort. De hogere foutkosten bepalen de testdiepte.
4. Mag de preview-regio? Staat de enige ondersteunde regio niet toe binnen je beleid of afspraken, stop dan vóór je Salesforce-credentials invoert. Onderzoek een andere migratieroute, een eigen Azure-opzet of een partner met passende residency.
5. Wie beheert het na livegang? Een kant-en-klaar pad is passend als de logica standaard is en de leverancier een actuele route en support levert. Maatwerk is passend als je eigen proces afwijkt, de koppeling meerdere systemen raakt of de terugvalgrens bedrijfskritisch is. In beide gevallen blijft een eigenaar nodig.
De eerlijke keuze is vaak hybride: Activate voor read-only discovery, mapping en Trial 100; een eigen integratieservice voor uitzonderingen, herbouwde logica, delta’s, monitoring en reconciliatie. Dat geeft je de versnelling van een product zonder de bedrijfsbeslissingen aan een preview over te dragen.
Wat zit vooral in je migratiescope?
Uitgewerkt voorbeeld: 1.240 accounts naar Dynamics 365 Sales
Dit is een rekenvoorbeeld, geen klantverhaal. Een B2B-softwareleverancier met 38 verkopers wil Salesforce Enterprise vervangen door Dynamics 365 Sales. De scope bevat 1.240 Accounts, 8.600 Contacts, 3.200 Opportunities, 410 Cases, 24 custom objects, 68 Salesforce Flows en 11 Apex-klassen. Zeven externe systemen lezen of schrijven CRM-data.
Discovery maakt het werk zichtbaar
De Salesforce-beheerder maakt D365 Migrate Discovery aan als External Client App. De dedicated Run As-gebruiker krijgt object- en veldtoegang voor de gekozen scope. De eerste discovery vindt de vier standaardobjecten, 24 custom objects, 68 flows, 11 Apex-klassen, drie actieve managed packages, zeven connected apps en een oud rapportageobject dat al twee jaar niet meer wordt gevuld.
De projectgroep maakt vervolgens vier besluiten. Accounts, Contacts, Opportunities en Cases blijven. Zes custom objects worden nieuwe Dataverse-tabellen. Tien custom objects gaan op in bestaande tabellen. Acht worden gearchiveerd als historische data en niet als actieve CRM-functionaliteit gemigreerd. Het oude rapportageobject verdwijnt.
Van de 68 flows gaan er 19 naar Power Automate, 12 worden onderdeel van de nieuwe verkoopinrichting, 21 worden vervangen door een eenvoudiger proces en 16 krijgen een handmatig besluit. De 11 Apex-klassen worden niet “meegenomen”; voor elke klasse komt een testbare vervanging of een onderbouwde uitsluiting.
Mapping en proefbatch
De hoofdrelaties worden eerst gemapt: Account vóór Contact, Account vóór Opportunity en Contact vóór Case. Account.Id blijft als externe bron-ID bewaard. Salesforce OwnerId wordt gekoppeld aan een Dynamics-gebruiker of team. Opportunity.StageName wordt niet op tekst gelijkgetrokken, maar aan een goedgekeurde choice-mapping gekoppeld. Bedragen gaan samen met valuta over, zodat 1.000 dollar niet als 1.000 euro eindigt.
In de niet-productieomgeving wordt de solution voor de zes nieuwe tabellen geïmporteerd. Per tabel kiest het team Trial 100. De proef bevat recente en oude records, meerdere verkopers, lege telefoonvelden, twee valuta, gesloten opportunities, cases met bijlagen en opportunities met ontbrekende contactrelaties.
De eerste uitkomst heeft vier soorten uitzonderingen:
- 7 opportunities missen een geldige choice-waarde omdat
OnderhandelingenNegotiationin Salesforce naast elkaar bestaan; - 5 contacts verwijzen naar een Account die buiten de gekozen scope valt;
- 3 opportunities hebben een inactieve eigenaar;
- 2 cases hebben een bestandstype dat nog niet is goedgekeurd voor deze preview.
Geen van deze 17 regels gaat stil mee. De eerste elf krijgen een mappingbesluit, de drie eigenaars worden naar een actief team gemapt en de twee cases blokkeren de bestandsscope. De proef draait opnieuw voordat Full aan bod komt.
Reconciliatie en vrijgave
Na de tweede Trial 100 kloppen de aantallen en de lookups in de gekozen scope. De projectgroep draait daarna een Full-migratie naar de acceptatieomgeving en controleert:
| Controle | Uitkomst in het rekenvoorbeeld | Besluit |
|---|---|---|
| Accounts in scope | 1.240 tegenover 1.240 | Goed, inclusief steekproef op eigenaar |
| Contacts in scope | 8.600 tegenover 8.600 | Goed, relaties en lege velden gecontroleerd |
| Open Opportunities | 3.200 tegenover 3.200 | Goed, fase, bedrag en valuta gecontroleerd |
| Cases in scope | 410 tegenover 408 | Niet vrijgeven, 2 bestandsuitzonderingen open |
| Kritieke flows | 19 opnieuw gebouwd, 19 getest | Goed na proces-owner akkoord |
| Connected apps | 7 geïnventariseerd, 2 nog niet vervangen | Niet vrijgeven |
De teller voor Cases is niet “bijna gelijk”. Hij is rood totdat de twee bestanden een bewezen route hebben of de business owner schriftelijk beslist dat die inhoud buiten scope valt. Ook de twee externe systemen zonder nieuwe koppeling blokkeren de cut-over, omdat de verkopers anders een correct CRM zien met een incompleet verkoopproces.
Na oplossing draait het team een laatste delta-run na een Salesforce-freeze. De eigenaar van Sales controleert drie opportunities met verschillende valuta, een case met relatie en een record van een vertrokken verkoper. De technische eigenaar controleert logs, retries, API-limieten en de uitzonderingsqueue. De beslissing wordt om 16:00 vastgelegd. Na vijftien minuten en één volledige cyclus zijn aantallen, pipelinewaarde en ownership gelijk. De oude Salesforce-route blijft geblokkeerd maar herstelbaar tot de eerste maandafsluiting is gecontroleerd.
Als de eerste livegang een fout in opportunity-eigenaarschap laat zien, is de eerste actie niet “Salesforce weer aan”. De nieuwe writes stoppen, de watermark en de getroffen Dataverse-ID’s worden opgeslagen, de eigenaar bepaalt fix-forward of rollback en de queue wordt op dubbele verwerking gecontroleerd. Dat is de controlepoort in actie.
Vergelijkingstabel: Activate, kant-en-klaar of maatwerk
De prijsorde hieronder is gecontroleerd op 27 september 2026. De prijzen van Dynamics 365 Sales zijn euro-lijstprijzen op de Belgische Microsoft-prijspagina, jaarlijkse betaling en exclusief btw. Een Nederlandse offerte kan afwijken.
| Route | Wat je krijgt | Prijs- en licentieorde | Sterk punt | Breekpunt |
|---|---|---|---|---|
| Activate in publieke preview | Discovery, mapping, solution, Trial 100, Full, Delta, logs en reconciliatie | De migratieapplicatie zelf is tijdens de preview kosteloos. Dynamics 365, Dataverse-opslag, Azure-opslag en Salesforce API-gebruik kunnen wel kosten geven | Snel zicht op verborgen objecten, logica en afhankelijkheden | Preview, huidige regio US, automatisering niet automatisch omgezet, bestanden apart bewijzen |
| Salesforce Data Export plus handmatige import | Back-upbestanden en een eenvoudige start voor kleine, historische datasets | Binnen de Salesforce-editie; wekelijkse export eenmaal per 7 dagen of maandelijks eenmaal per 29 dagen, bestanden 48 uur beschikbaar | Onafhankelijke bronkopie vóór de migratie | Geen mapping van bedrijfslogica, geen veilige relationship-run en geen SLA op exporttijd |
| Kant-en-klare partner of ETL-route | Beheerde extractie, transformatie, targetload en support, afhankelijk van het product | Partner- en implementatieofferte, plus eventuele connector-, Azure- of Dataverse-kosten | Minder eigen bouw- en beheerwerk bij standaardprocessen | Vrije velden, security, files, Apex en uitzonderingen vallen vaak buiten het pakket |
| Eigen API- of ETL-migratie | Eigen mapping, queues, retries, idempotentie, logging, delta’s en rollbackgrenzen | Bouwbudget, Azure/Dataverse-verbruik en onderhoud; geen vaste Microsoft-migratieprijs | Volledige controle over jouw proces en gegevensroute | Meer ontwerpwerk en een blijvende beheerafspraak nodig |
| Dynamics 365 Sales als doellicentie | De gebruikerslicentie voor de nieuwe CRM-omgeving | Professional € 56,30, Enterprise € 91,00, Premium € 130,00 per gebruiker/maand bij jaarlijkse betaling, exclusief btw | Heldere basis voor begroting van de doelomgeving | Dit is geen migratie- of implementatieprijs en extra Power Platform- of opslagkosten kunnen gelden |
De licentiekeuze voor Dynamics 365 Sales staat los van de vraag of Activate jouw data veilig kan verplaatsen. Microsoft vermeldt voor de actuele Sales-plannen Professional € 56,30, Enterprise € 91,00 en Premium € 130,00 per gebruiker per maand bij jaarlijkse betaling, exclusief btw. De actuele prijzen zijn gecontroleerd op 27 september 2026; de werkelijke catalogusprijs kan per land en valuta verschillen.
Een migratie is geslaagd wanneer de nieuwe records bestaan, de juiste mensen ze kunnen gebruiken, de oude bedrijfsuitkomsten aantoonbaar zijn herbouwd en iedere afwijking een eigenaar heeft. Activate kan het landschap sneller zichtbaar maken. De controlepoort bepaalt of je het resultaat mag vertrouwen. Wie die volgorde omdraait, ontdekt de echte migratie pas na de eerste fout in productie.
Veelgestelde vragen
Salesforce-migratie met controle
Ik vertaal je Salesforce-landschap naar een werkbare doelarchitectuur, bouw de koppeling en richt de proefbatch, reconciliatie en menselijke vrijgave end-to-end in.
Dit artikel is geproduceerd samen met het Agent Team. Meer over de redactie.
