CRM

Dataverse kent de klant al. Je website is er alleen nog niet aan voorgesteld

Een lead vult een contactformulier in. Het wordt een e-mail, wordt doorgestuurd, en uiteindelijk opent iemand Dynamics en typt hem in als Lead — ervan uitgaande dat diegene de juiste beveiligingsrol heeft om er een aan te maken, en dat is zelf al een klein avontuur in een Microsoft-ecosysteem waar rechten op drie verschillende plekken wonen.

Dataverse, onder Dynamics, is een echt capabele database met een echte API. Het gat is bijna nooit technisch. Het is dat niemand de brug tussen het formulier en het record heeft gebouwd, dus is een mens de koppeling.

  • Web API (OData v4), Azure AD app-registratie
  • Leads, Accounts, Opportunities, orders
  • Vanaf € 1.700 plus servicekosten
De tool

Wat Dynamics 365 is, en hoe Dataverse eronder past

Dynamics 365 is de bedrijfsapplicatiesuite van Microsoft — Sales, Customer Service, Field Service, Business Central voor financiën, en meer — die allemaal op Dataverse zitten, het gedeelde dataplatform dat vroeger Common Data Service heette. Standaardentiteiten als accounts, contacts, leads en opportunities leven daar, naast welke custom tabellen een organisatie ook heeft toegevoegd via het Power Platform.

Een koppeling praat met Dataverse via de Web API, een OData v4 REST-interface, geauthenticeerd met een Azure AD-app-registratie in plaats van een persoonlijke login. Die app-registratie heeft een beheerder nodig die de juiste applicatierechten toekent, en in grotere organisaties is die beheerder vaak IT en niet degene die Dynamics dagelijks beheert — de moeite waard om vroeg te melden, want die goedkeuring krijgen kan langer duren dan de koppeling zelf bouwen.

Microsoft biedt ook Power Automate als low-code alternatief voor een maatwerk-API-koppeling. Dat werkt prima voor eenvoudige, laagvolume stromen — een formulierinzending die een Lead aanmaakt, bijvoorbeeld — en wordt snel fragiel zodra je echte foutafhandeling, retries of enig serieus volume nodig hebt. We zeggen eerlijk aan welke kant van die grens een verzoek valt voordat we maatwerk voorstellen.

Wat er misgaat

Drie dingen die misgaan tussen een website en Dynamics 365

Twee van deze zijn specifiek voor hoe het rechtenmodel van Microsoft werkt, en precies daarom verrassen ze teams die dachten dat "het is allemaal Microsoft" het simpeler zou maken.

Het Azure AD-recht werd ingetrokken, en niemand vertelde het de website

Een tenant-brede beveiligingscheck of een verlenging van de app-registratie trekt stilletjes een clientsecret in of laat het verlopen, en een koppeling die daarop draaide faalt zonder zichtbare foutmelding aan de Dynamics-kant — want voor Dynamics is er niets gebeurd, een externe applicatie mocht simpelweg niet meer naar binnen.

Wat je in plaats daarvan ziet

Een geplande hartslagaanroep bewijst dat de koppeling leeft, en een mislukte authenticatie geeft een melding met precies welke inloggegevens het lieten afweten, zodat IT ze kan vernieuwen vóór een week aan leads verloren is, niet erna.

Er bestaat een custom veld in Dynamics dat de koppeling niet kent

Iemand in de organisatie heeft via het Power Platform een verplicht custom veld toegevoegd aan de Lead-entiteit, maanden nadat een koppeling live ging. Nieuwe leads vanaf de website falen ineens stil op validatie, omdat Dataverse nu iets verplicht dat de koppeling nooit meestuurt.

Wat je in plaats daarvan ziet

Mislukte records komen met de specifieke validatiefout in de wachtrij, zodat de oplossing een mapping-update van vijf minuten is in plaats van een raadsel dat een week duurt om te achterhalen.

Het account bestaat twee keer, één keer in Dynamics en één keer in Business Central

Organisaties die zowel Dynamics 365 Sales als Business Central voor financiën draaien, eindigen vaak met dezelfde klant als een Account in de ene en een Customer-record in de andere, onafhankelijk aangemaakt, onafhankelijk bijgewerkt, en door niemand gelijkgetrokken.

Wat je in plaats daarvan ziet

Eén systeem wordt aangewezen als eigenaar van het klantstamrecord, en de koppeling houdt het andere gelijk — meestal bezit financiën het record en leest sales eruit, want daar telt factuurnauwkeurigheid het zwaarst.

De rekening van het handwerk

Wat handmatige invoer in Dynamics je kost

Bij 150 webleads per maand en drie tot vier minuten per stuk om de juiste beveiligingsrol te checken, het Account te vinden of aan te maken en de Lead correct in te vullen, is dat 8 tot 10 uur per maand voor werk dat puur bestaat omdat niets de overdracht heeft geautomatiseerd.

Het grotere risico specifiek in een Microsoft-omgeving is de stille rechtenstoring hierboven beschreven: omdat een kapotte Azure AD-koppeling geen foutmelding binnen Dynamics zelf oplevert, is de realistische kostenpost niet "uren getypt" maar "weken ontbrekende leads voordat iemand in sales vraagt waarom de pipeline er dun uitziet".

Wat we bouwen

Wij bouwen ook het ding aan de andere kant

Bij Dynamics is het praktische knelpunt meestal niet de API maar de Azure AD-app-registratie goedgekeurd krijgen door wie jullie tenant beheert, dus starten we dat verzoek parallel aan de technische bouw en niet erna.

Een koppeling heeft twee kanten. Er zijn genoeg bureaus die de API-call voor je bouwen en je een JSON-payload overhandigen; dat is de makkelijke helft. De moeilijke helft is waar die data in landt — een website, een webshop, een portaal waar je klanten op inloggen, een intern hulpmiddel dat een spreadsheet vervangt. JKC bouwt beide kanten, en daarom blijven de koppelingen die wij bouwen meestal werken: aan de ontvangende kant is voor ons niets een zwarte doos.

API-koppelingen

De koppeling zelf: authenticatie, veldmapping, rate limits, retries en een wachtrij die overleeft dat het andere systeem een uur uit de lucht is. Gebouwd op de gedocumenteerde API als die er is, en op wat de leverancier werkelijk aanbiedt als die er niet is.

Websites

WordPress-sites die uit je systemen lezen in plaats van ze met de hand na te typen: een vacaturepagina die uit je HR-systeem komt, een teampagina die je salarisadministratie volgt, prijzen en beschikbaarheid die de echte zijn.

Webshops

WooCommerce-shops waarin de order de laatste keer is dat iemand hem intypt: hij wordt een factuur in je boekhoudpakket, een label bij je vervoerder, een voorraadmutatie in je warehouse en een regel in je CRM, uit zichzelf.

Webapplicaties

Als het proces in geen enkel standaardproduct past: een klantportaal, een offertetool, een planbord, een dashboard dat drie systemen tegelijk uitleest. Gebouwd op jouw data, met jouw systemen als bron in plaats van een kopie ervan.

Wat er gekoppeld kan worden

Wat er tussen Dynamics 365 en je website gekoppeld kan worden

Gebouwd op de Dataverse Web API via een Azure AD-app-registratie, zodat jullie tenant-beheerder precies bepaalt en kan intrekken wat is toegekend.

  • Webformulieren als Lead (in de tool)

    Gematcht tegen bestaande Contacts en Accounts op e-mailadres of bedrijfsdomein voordat een nieuwe Lead wordt aangemaakt, met respect voor welke custom velden jullie Dataverse-configuratie vereist.

  • Accounts en Contacts (beide kanten)

    Gelijk gehouden tussen het eigen inlogsysteem van de website en Dataverse, met per veld één systeem als eigenaar aangewezen, vooral als Business Central ook meespeelt.

  • Opportunity- of case-status naar een klantportaal (uit het gereedschap)

    Een ingelogde klant of prospect die zijn eigen offerte- of ticketstatus rechtstreeks uit Dataverse leest, in plaats van een statuspagina die niemand bijwerkt.

  • Webshop- of portaalorders als Opportunity of Order (in de tool)

    Een afgeronde transactie die het bijbehorende Dataverse-record aanmaakt of een stap verder zet, zodat de salesrapportage weerspiegelt wat een klant echt op de site heeft gedaan.

Hoe het werkt

Hoe een koppeling bij JKC gebouwd wordt

Elke keer dezelfde vier stappen, om welke tool het ook gaat. Niets hiervan is een workshop waar je voor betaalt: stap één bestaat omdat een koppeling verkeerd afbakenen het duurste is wat er met zo'n koppeling kan gebeuren.

  1. 1. We kijken wat er nu écht wordt overgetypt

    Niet "welke velden bestaan er" maar "welke velden verplaatst iemand nu met de hand, hoe vaak, en wat gaat er stuk als het misgaat". De meeste projecten blijken twee of drie stromen nodig te hebben, geen volledige tweerichtingssync van alles. Dat gesprek is wat de offerte laag houdt.

  2. 2. We kiezen de route, en zeggen waarom

    Een onderhouden connector van de leverancier, een platform als Make of Zapier, of een maatwerkkoppeling op de API. Goedkoopste eerst, niet maatwerk eerst: als een ondersteunde plugin precies doet wat je nodig hebt, dan is dat het antwoord en zeggen we dat ook. Maatwerk is voor de gevallen waarin de kant-en-klare optie zoveel configuratie vraagt dat hij juist het fragiele onderdeel wordt.

  3. 3. We bouwen hem zo dat hij het andere systeem overleeft

    Elke koppeling krijgt retries, een wachtrij en een idempotency-sleutel mee, zodat een order die binnenkomt terwijl de andere kant eruit ligt later wordt afgeleverd in plaats van verdwijnt, en een retry geen tweede factuur aanmaakt. Eerst op een testomgeving waar de leverancier die aanbiedt, zodat het eerste wat je echte administratie ziet een werkende koppeling is.

  4. 4. We dragen hem over met de faalgevallen opgeschreven

    Welke meldingen je krijgt, wat elke melding betekent, wat je eraan doet en wie je belt. Plus de inloggegevens op jouw naam, in jouw eigen kluis — niet in de onze. Een koppeling die niemand behalve wij kan onderhouden is een koppeling die niet van jou is.

Nadat hij live is

Een koppeling die stil faalt is erger dan geen koppeling

Dit is het deel dat in de meeste offertes ontbreekt. Een koppeling die stopt met werken zonder dat iemand het merkt is erger dan handwerk, want bij handwerk merkt iemand het tenminste als het niet gedaan is. Elke koppeling die JKC bouwt wordt gemonitord, en die monitoring is geen bijverkoop — die zit in de servicekosten.

Een melding per mislukt bericht, geen maandrapport

Een bericht dat niet doorkomt geeft binnen het uur een melding, met de regel waar het over ging. Geen dashboard dat je moet onthouden om te bekijken.

Opnieuw versturen, niet opnieuw invoeren

Wat mislukt is blijft in een wachtrij staan en kan opnieuw verstuurd worden zodra de oorzaak weg is, in de juiste volgorde. Niemand hoeft gisteren door te spitten op zoek naar de vier orders die niet zijn aangekomen.

Wij volgen de wijzigingen van de leverancier, zodat jij dat niet hoeft

API's krijgen nieuwe versies, worden uitgefaseerd en gaan op rate limits. Kondigt een leverancier een wijziging aan die jouw koppeling raakt, dan is meebewegen onderdeel van de servicekosten en geen nieuw project.

Wat het kost

Vanaf € 1.700, en de grootste variabele is wie de andere kant heeft gebouwd

Specifiek voor Dynamics: reken vooraf extra tijd in voor de Azure AD-app-registratie en de goedkeuring van rechten — dat is meer een organisatorische stap dan een technische, en die beweegt de planning meer dan de complexiteit van de koppeling.

Een koppeling begint vanaf € 1.700 plus maandelijkse servicekosten, waar de monitoring, de wachtrij en het bijhouden van API-wijzigingen van de leverancier in zitten. Werk buiten een vaste scope is € 95 per uur.

Wat het bedrag beweegt is niet de tool — het is hoe goed het systeem aan de andere kant bekend is. Heeft JKC je website, je webshop of je webapplicatie gebouwd, dan kennen we het datamodel, de uitzonderingen en waar de voorraadaantallen echt vandaan komen, en is een koppeling erin vooral configureren en testen. Is het een systeem dat we nooit hebben opengeslagen, dan beginnen we met een korte technische check aan beide kanten en offreren we daarna, zodat je niet op uurbasis betaalt voor ons uitzoekwerk.

Twee dingen die het bedrag verder bewegen, in onze ervaring meer dan al het andere: of de tool een echte API heeft of alleen een CSV-export, en of de sync twee kanten op moet. Eenrichting is ruwweg de helft van het werk van tweerichting, want tweerichting betekent per veld beslissen welk systeem wint als ze het oneens zijn — en die beslissing is het dure deel, niet de code.

Vragen

Veelgestelde vragen over Microsoft Dynamics koppelen

Wat past bij het volume en de betrouwbaarheid die je echt nodig hebt, en dat zeggen we vooraf. Power Automate is een prima, goedkoop antwoord voor een laagvolume stroom als één formulier dat Leads voedt, en dat offreren we liever dan je maatwerk aan te praten dat je niet nodig hebt.

Zodra je echte retry-logica, een idempotency-garantie of enig serieus volume nodig hebt, is een maatwerkkoppeling op de Web API de betrouwbaardere route, want de foutafhandeling van Power Automate is daar niet voor gebouwd.

Gratis, 10 minuten

Geen idee waar de handmatige uren echt naartoe gaan?

Daar is de Groeicheck voor. Tien minuten, zonder verkoopgesprek eraan vast: je krijgt terug waar het dubbele werk zit, welke koppeling zich als eerste terugverdient, en welke eerlijk gezegd niet.