“Ik maak wel even een export” – een veel gehoorde uitspraak bij het gebruik van een CRM-systeem of ERP-pakket. Het is misschien wel de meest gebruikte functionaliteit van dit soort applicaties: Export naar Excel. Hij staat in ieder geval als ‘must have’ bij iedere pakketselectie. Maar een Export naar Excel is eigenlijk levensgevaarlijk. Bedrijfsdata uit het bronsysteem halen levert grote risico’s op van datalekken (vaak per ongeluk, maar denk ook aan de vertrekkende accountmanager die nog even het relatiebestand veiligstelt) of het onrechtmatig gebruik van informatie vanuit privacy oogpunt met alle AVG-ellende van dien.
Toch is de Export naar Excel functie vaak de enige uitweg voor een gebruiker om data uit een applicatie te kunnen transformeren in informatie voor een analyse, een rapportage of een dashboard. De data worden vaak gecombineerd met gegevens uit andere systemen, of er worden bewerkingen op gedaan waardoor nieuwe inzichten ontstaan. Hele legitieme usecases dus.
Deze manier van dataextractie is helaas erg beperkt. Los van het feit dat het handmatige, foutgevoelige en vaak tijdrovende acties zijn, is de export vaak ook functioneel beperkt. Hij is bijvoorbeeld gelimiteerd op het aantal records, of de tijdspanne van een set gegevens (alleen de laatste 12 maanden) of juist een kwestie van alles of niets. Kortom, de gebruiker wordt niet echt optimaal ondersteund. En dat is jammer.
Een API alleen is niet de oplossing
“Hiervoor bieden wij een API!” is vaak het antwoord van de Software(aaS)-leverancier. Maar helaas gaat die vlieger ook, in de meeste gevallen, niet op. Nog even los van het feit dat een gemiddelde business user zich geen raad weet met een ‘aapie’. Sterker nog, grote kans dat hij of zij denkt dat je het over de dierentuin hebt…
De API’s die we doorgaans tegenkomen zijn erg beperkt; documentatie is summier, de performance is slecht en de mogelijkheden van de API-calls zijn vaak erg beperkt. Het gevolg? Een kostbaar maatwerktraject om een technische koppeling te realiseren door de collega’s van IT of een dure externe developer. Tuurlijk, een betaalde dienst afnemen bij een derde partij kan ook. Maar ook dat is niet ideaal. Want deze partij zal, in veel gevallen, een kopie trekken van de data in een eigen datawarehouse waardoor weer extra trust, security & privacy uitdagingen ontstaan, los van de kosten en afhankelijkheden van een derde partij. Dat moet toch anders kunnen?
Wat wij moesten doen om Simplicate sales- en projectdata in een Power BI dashboard te krijgen
Zelf liepen we hier ook tegen aan. Er was behoefte aan een paar standaard rapportages en dashboards voor onze projectleiders, accountmanagers en service delivery manager. Wij gebruiken Simplicate en (hoe kan het ook anders) Power BI. Dit is wat ervoor nodig was en waar we allemaal tegen aan liepen.
Om de juiste informatie op het scherm te krijgen, hanteerden we het volgende stappenplan:
- Eerst moeten we bepalen welke informatie en inzichten we nodig hebben;
- Vervolgens vertalen we dit naar welke datasets en -structuur we hiervoor nodig hebben uit Simplicate;
- Nu we dit bepaald hebben, moesten we de benodigde technische infrastructuur in Azure uitdenken, denk daarbij aan een SQL Azure database, hoe gaan we om met authenticatie, wat is er nodig voor logging en hoe regelen we een periodieke data refresh;
- Toen dat duidelijk was zijn we de koppeling gaan bouwen.
Het dashboard moet natuurlijk actueel zijn en daarmee dus ook de onderliggende datasets. Dit betekent dat er periodiek en geautomatiseerd een data refresh uitgevoerd moet worden. Omdat we, in de toekomst naast Simplicate ook data uit andere systemen willen combineren, hebben we er voor gekozen om in Azure SQL een datawarehouse op te bouwen.
Uiteraard willen we bij deze inrichting zoveel mogelijk low-code inzetten, daarom hebben we gekozen voor Azure Logic Apps; de API van Simplicate kan hierdoor worden aangeroepen met http-actions. We hadden dit ook met Power Automate kunnen oplossen, maar deze http-actions vereisen een Premium licentie en voor ons scenario bleek het goedkoper om met Azure Logic Apps te werken.
De grootste uitdaging bij het gebruik van de Simplicate API lag in het feit dat de API maximaal 100 items teruggeeft per keer. Dus om alle klanten op te halen, moesten we zelf een itereren functionaliteit aanmaken. En omdat de API niet de mogelijkheid geeft om alleen (sinds de laatste sync) gewijzigde records terug te geven, moeten we zelf functionaliteit bouwen om te bepalen welke items zijn gewijzigd.
Om het nog wat complexer te maken willen we niet alle informatie uit Simplicate gebruiken; adresgegevens of bankrekeningnummers van medewerkers hebben we niet nodig in onze rapportages, en hoeven we dus ook niet in ons datawarehouse. Om die reden hebben we zelf aanpassingen in het datamodel moeten maken zodat we alleen data ophalen die we ook echt nodig hebben.
Hoewel dit alles voor een doorgewinterde IT’er geen rocket science is, had het voor onze sales manager heel veel tijd gescheeld als er gewoon een nette data connector beschikbaar was voor Power BI, maar helaas is die (nog) niet beschikbaar.
Dat kan toch anders…
Je zult begrijpen dat wij van mening zijn dat dit anders kan, én moet. Low-code platformen, zoals het Microsoft Power Platform zijn er niet zonder reden. Ze bieden business users de mogelijkheid om in korte tijd, laagdrempelig oplossingen te maken die hen helpt om hun werk beter te doen. SaaS-vendoren moeten accepteren dat ze lang niet alle functionaliteit in hun applicatie krijgen die alle gebruikers ooit nodig kunnen hebben. Accepteer dat gebruikers de data in jouw applicatie, óók willen gebruiken buiten deze applicatie. Maar wel op een veilige, gecontroleerde en laagdrempelige manier.
Helaas zien veel SaaS-vendoren low-code als een bedreiging omdat het kannibaliserend zou kunnen werken. Maar wij zijn er juist van overtuigd dat het juist een kansen biedt door een goede integratie te hebben met low-code platformen zoals het Microsoft Power Platform. De usecases die hierdoor ontstaan zijn immers eindeloos waardoor antwoorden als ‘Helaas dat is nog niet mogelijk, maar komt misschien wel op de roadmap…’ niet meer nodig zijn. En door juist low-code koppelingen te bieden, bedenkt een van je klanten misschien wel een hele interessante nieuwe functionaliteit die je weer kunt opnemen in het applicatie. En niet in de laatste plaats, is het ook gewoon een soort van goed huisvaderschap door je klanten niet ‘op te sluiten’ in je applicatie maar juist een ‘open minded’ platform te bieden dat innovatie ondersteunt in plaats van tegenwerkt.
Als je een keer met ons van gedachten wil wisselen over dit onderwerp, dan nodigen we je graag uit voor een (virtuele) kop koffie!