Een koppeling laten maken tussen uw systemen

Een koppeling is een stukje software dat twee systemen automatisch gegevens laat uitwisselen, zodat niemand ze meer hoeft over te typen. Een API is de officiële toegangsdeur die een pakket daarvoor openzet: een lijst afspraken over welke gegevens u mag opvragen of wegschrijven, en hoe. De koppeling gebruikt die deur.

Van Cloudzicht, Almere · Marc Herdes en John van den Bosch · bijgewerkt op

Wat er tussen twee systemen gebeurt, is het werk.
Wat er tussen twee systemen gebeurt, is het werk.

Uw boekhouding, uw planning en uw webshop weten niets van elkaar, tot iemand ze verbindt. Cloudzicht bouwt die verbindingen zelf, zonder tussenlaag, en laat ze eerst draaien in de eigen bedrijven.

Heet dit koppelen, integreren of een API?

Alle drie, en dat is precies waarom het lastig zoeken is. Wie wil dat twee programma’s elkaar begrijpen, tikt in: systemen koppelen, software koppelen, een API-koppeling laten maken, systeemintegratie. Het gaat steeds over hetzelfde: gegevens die nu met de hand van het ene scherm naar het andere gaan, laten lopen zonder mens ertussen.

Wij noemen het een koppeling, want dat is wat het is. Een API is niet het doel maar de deur die een pakket openzet, en zit die deur er niet, dan is er meestal nog een andere weg naar binnen. Welke wegen dat zijn, staat op systemen koppelen zonder API.

Wat is een koppeling, en wat is een API?

Een koppeling is een stukje software dat twee systemen automatisch gegevens laat uitwisselen, zodat niemand ze meer hoeft over te typen. Een API is de officiële toegangsdeur die een pakket daarvoor openzet: een lijst afspraken over welke gegevens u mag opvragen of wegschrijven, en hoe. De koppeling gebruikt die deur.

Elke leverancier bepaalt zelf hoe ver die deur opengaat. Het ene pakket laat alles lezen én schrijven, het andere alleen lezen. Daarom begint elk koppeltraject bij ons met de documentatie van het pakket: eerst vaststellen wat er kan, dan pas beloven wat er komt.

Wanneer heeft u een koppeling nodig, en wanneer niet?

U heeft een koppeling nodig zodra dezelfde gegevens in twee systemen moeten staan en iemand ze nu handmatig overneemt. Denk aan orders die naar de boekhouding moeten, of uren die naar de facturatie gaan. Gebeurt dat een paar keer per jaar, dan is overtypen prima en bouwt u niets.

De rekensom is simpel: tel de uren die uw mensen per week kwijt zijn aan overtypen en controleren, en tel de fouten erbij die dat oplevert. Rekent er een prijscalculator of configurator op uw site mee, dan is de vraag welke kant de gegevens op moeten; dat staat bij configurator koppelen aan uw administratie. Een koppeling staat daarnaast zelden op zichzelf. Wie software laat maken, heeft bijna altijd ook een verbinding met de boekhouding nodig. En een offerteconfigurator wordt pas echt af als de geaccepteerde offerte vanzelf als order in uw pakket belandt.

Wat komt er kijken bij een koppeling met Exact Online?

Van de pakketten op deze pagina is Exact het verst: de API dekt vrijwel alles wat u in het pakket ziet, en Exact meldt zichzelf via webhooks zodra er iets verandert. Eén ding bepaalt het ontwerp vooraf: een koppeling werkt binnen één administratie, in Exact-termen een divisie. Heeft u er meerdere, dan moet vastliggen wat waar vandaan komt.

Wie tienduizenden boekingen wil overhalen loopt tegen de porties aan waarin Exact zijn gegevens levert; wie dagelijks een handvol facturen doorzet, merkt daar niets van. Welke van de twee u bent, en wat dat betekent voor de bouw, staat bij een koppeling met Exact Online.

Wat komt er kijken bij een koppeling met SnelStart?

SnelStart heeft een openbare B2B-API met een eigen ontwikkelaarsportaal, waar wij kosteloos een tijdelijk ontwikkelaccount krijgen met documentatie en een testconsole. SnelStart maakt onderscheid tussen maatwerkkoppelingen voor één bedrijf en productiekoppelingen voor meerdere gebruikers. De definitieve sleutel geeft SnelStart pas af nadat de koppeling is beoordeeld.

Voor productiekoppelingen, software die meerdere SnelStart-gebruikers gaan gebruiken, stelt SnelStart extra eisen: OAuth als inlogmethode is verplicht en u geeft bij de aanvraag een webhook-adres op. SnelStart schrijft zelf dat het terughoudend is met nieuwe productiekoppelingen en elke aanvraag apart beoordeelt; voor de certificering noemt het bedrijf ongeveer twaalf dagen. Een maatwerkkoppeling voor alleen uw eigen administratie is dus de kortste route. Wij kennen die route van binnenuit: onze eigen bedrijven factureren via SnelStart, en de koppeling tussen ons klantsysteem en SnelStart draait daar elke dag. Wat er per soort gegeven mogelijk is, staat bij een koppeling met SnelStart.

Wat komt er kijken bij een koppeling met AFAS?

AFAS Profit heeft een REST-API die met connectoren werkt. GetConnectors halen gegevens op, UpdateConnectors schrijven ze weg. Anders dan bij veel pakketten bepaalt uw eigen AFAS-beheerder wat een koppeling mag: hij maakt een token aan en zet per connector open welke gegevens de koppeling kan lezen of aanpassen.

AFAS levert naast de productieomgeving een test- en een acceptatieomgeving, zodat een koppeling eerst kan proefdraaien met uw echte inrichting maar zonder risico. Er zijn grenzen om rekening mee te houden: AFAS adviseert per aanroep het aantal kolommen maal het aantal rijen onder de 150.000 te houden, en een filter in de URL mag maximaal 2.048 tekens lang zijn. Grote gegevenssets haalt een goede koppeling dus in delen op. Het inrichten van de connectoren en rechten gebeurt in uw eigen AFAS-omgeving, door uw AFAS-beheerder. Wij schrijven op welke connectoren en welke rechten er nodig zijn; het openzetten blijft bij hem. Hoe dat per stap gaat staat bij een koppeling met AFAS.

Wat als een pakket geen API heeft?

Bestaat er voor uw combinatie helemaal niets kant-en-klaars, dan is er nog steeds een weg, zie een koppeling laten maken die nog niet bestaat.

Dan is er bijna altijd nog een route: een export- of importfunctie, of een database waar we rechtstreeks bij kunnen. Werkt dat niet, dan kan software het scherm bedienen zoals een medewerker dat doet. Dat bouwen we alleen als de leverancier het toestaat, want die route is kwetsbaarder dan een echte API.

Denk aan een ouder kassasysteem of een branchepakket dat alleen een export naar een bestand kent. Dan leest de koppeling dat bestand automatisch in, op een vast moment of zodra het klaarstaat. Niet zo elegant als een API, wel betrouwbaar genoeg om dagelijks werk uit handen te nemen.

Probeer het zelf: wijs links een systeem aan en rechts wat er moet gebeuren

Wijs links een systeem aan en rechts wat er moet gebeuren.

Wat is een webhook, en waarin verschilt die van een koppeling?

Een webhook is geen alternatief voor een koppeling, maar een onderdeel ervan. Bij een gewone koppeling vraagt uw software steeds: is er iets nieuws? Met een webhook draait dat om: het pakket meldt zichzelf zodra er iets gebeurt, bijvoorbeeld bij een betaalde factuur. Dat scheelt wachttijd en onnodig berichtenverkeer.

Een webhook stelt wel een eis: er moet aan uw kant iets draaien dat berichten kan ontvangen, dag en nacht. Dat ontvangende deel bouwen wij mee, inclusief een vangnet voor berichten die dubbel of juist niet aankomen, want ook daar moet een koppeling tegen kunnen.

Hoe lang duurt het bouwen van een koppeling?

Dat hangt af van vier dingen: hoeveel soorten gegevens er over en weer moeten, of het verkeer één kant op gaat of twee, hoe goed de API van het pakket is gedocumenteerd, en hoeveel uitzonderingen uw administratie kent. Wij noemen pas een termijn nadat we die vier punten met u hebben doorgenomen.

Een koppeling die één richting op werkt met één soort gegevens is klein werk; verkeer twee kanten op met voorraad, prijzen en orders is een project. Wat wij altijd doen: eerst het smalste stuk live brengen dat al werk scheelt, en van daaruit uitbouwen. Zo ziet u resultaat voordat het hele traject af is.

Twee kanten van hetzelfde vak: de kast waar het samenkomt, en het scherm waarop je ziet dat het klopt.

Wat gaat er meestal mis bij koppelingen?

Zelden de techniek, bijna altijd de gegevens. Dubbele klantnummers bijvoorbeeld, of btw-codes die in beide pakketten anders heten. En de tweede valkuil: een koppeling die stilvalt zonder dat iemand het merkt. Daarom bouwen wij bewaking mee die meldt zodra er iets blijft hangen, in plaats van te wachten tot de boekhouder het ziet.

Daarom kijken we vóór de bouw eerst naar de kwaliteit van de gegevens in beide systemen, en spreken we af wat er moet gebeuren met een bericht dat niet verwerkt kan worden.

Wie is eigenaar van de koppeling als hij eenmaal draait?

U. Wij bouwen de koppeling voor uw situatie en daarna is hij van u, inclusief de code en de documentatie. U neemt dus geen tussenlaag af die per koppeling en per maand geld kost. Wilt u het beheer en de bewaking aan ons overlaten, dan spreken we dat apart af.

Dat is geen detail. Wie zijn koppelingen huurt bij een tussenpartij, betaalt elke maand opnieuw en is afhankelijk van wat die partij ondersteunt. Wij hebben onze koppelingen eerst in onze eigen bedrijven laten draaien. Daar merken we zelf direct wanneer er iets knelt. Wilt u weten of uw pakketten te koppelen zijn? Bel 036 52 98 447 of mail info@cloudzicht.nl. Op de voorpagina leest u hoe wij werken.

Heeft u een uitdaging?

Hoe rommeliger, hoe beter.

Systemen die niets van elkaar weten, een lijstje dat al jaren naast het pakket wordt bijgehouden, een proces dat niemand meer helemaal overziet. Dat is precies het soort vraag waar wij voor komen.

John van den Bosch van Cloudzicht
John van den BoschMede-eigenaar · forward deployed engineer

Zit u hier tegenaan?

Vertel in een paar zinnen wat er beter moet. Wij zeggen eerlijk of wij dit zouden oppakken, en zo niet, wie dan wel. Het eerste gesprek kost u niets.

Zullen we eens kijken wat er bij u mogelijk is?

Vertel kort wat er speelt. U hoort binnen een werkdag van ons, van een mens.

Liever meteen even bellen of mailen? Dat kan ook.

Uit de praktijk

Hoe dit er in het echt uitliep, staat als verhaal op de persoonlijke site van Marc Herdes. Deze twee gaan over hetzelfde als deze pagina.

Alle verhalen op herdes.nl →