Zapier – Ik heb het een paar maal genoemd, maar wat is het eigenlijk?
In het verleden heb ik Zapier een aantal malen genoemd, maar wat is dat eigenlijk? Wanneer ik Zapier noemde, was het meestal in relatie met de mogelijkheden van een plugin of service, maar in dit blogartikel wil ik eigenlijk een helicopter view nemen en zonder direct aan WordPress en plugins te denken, bekijken wat Zapier is.
Goedemorgen!
In ons dagelijks leven hebben we heel wat routinematige handelingen. Wanneer ik opsta begin ik meestal met mijn wekker te vertellen (jawel, ik ben er zo eentje die zijn huis met een smart assistant heeft geautomatiseerd), dat de wekker voor deze morgen opnieuw geannuleerd kan worden omdat ik al wakker ben.
Ik wandel naar beneden en zet de thermostaat wat hoger (ik heb een klokthermostaat, maar het is een ding uit het jaar nul. Iedere keer wanneer ik de batterij vervang moet ik hem opnieuw instellen, waarvoor ik bedank), loop de badkamer in en meng het water tot een aangename temperatuur. Ik poets mijn tanden en na twee minuten stopt mijn electrische tandenborstel even om aan te geven, dat ik twee minuten gepoetst heb.
Daarna stap ik in het bad, vertel mijn ‘smart assistant’ om een wekker voor 20 minuten te zetten en geniet van het warme water.
Na 20 minuten ga ik het bad uit, laat het leeglopen en wandel naar mijn Nespresso. Afhankelijk van mijn voorkeur doe ik wat melk in de container voor een cappuccino of kies voor een espresso. Ik doe een capsule in het automaat en druk de juiste knop in om een perfecte kop koffie te krijgen.
In de tussentijd heb ik twee boterhammen in het broodrooster gedaan, of een afbakbroodje in de combi magnetronoven. Ik beleg mijn deegwaren en eet die op bij de kop koffie.
Daarna kijk ik op mijn telefoon of er belangrijke email is, terwijl mijn computer opstart en ik vertel mijn smart assistant om de muziek te spelen, waar ik op dat moment zin in heb.
Ongeveer een uur nadat ik begonnen ben met werken rolt mijn dochter Ruby uit haar bed, om mijn routine te herhalen.
Na het eten zetten we onze koppen, borden en bestek in de vaatwasser.
Kortom, een doorsnee morgen in huize van der Ploeg.
Mijn oma deed dat anders. ’s Morgens vroeg werd zij wakker gemaakt door de haan, die niet van ophouden wist, en ging ze de keuken in, waar zij begon met het malen van de koffiebonen met zo’n koffiemolen met een slinger. Ze zette koffie, pakte een brood en sneed daar plakken vanaf. Daarna pakte ze een homp kaas, een ham en sneed daar ook plakken vanaf. Wanneer ze dat gedaan had, riep zij mijn opa, mijn vader en mijn oom en tantes, dat het tijd was om op te staan.
Ik weet niet of tijdens het eten de radio aan stond. Als dat zo was, dan was het ongetwijfeld de NCRV, want mijn oma weigerde naar iets anders op de radio te luisteren.
Voor mijn tantes naar school mochten gaan, moesten ze eerst mijn oma helpen met de vaat van het ontbijt weg te wassen.
Andere tijden, andere zeden… maar vooral ook andere mogelijkheden.
We zijn geautomatiseerd zonder het te beseffen
Veel mensen beseffen niet hoe zeer vandaag de dag automatisering ons leven is binnengedrongen. Kijk bijvoorbeeld eens naar iets simpels als het maken van een kop koffie.
Maal jij zelf nog je bonen? En dan bedoel ik niet of jij in je superdeluxe Jura koffiemachine bonen in de machine doet, maar of jij daadwerkelijk met de hand koffiebonen maalt. Of wellicht met een elektrische koffiemolen. Vast niet. Giet je vanuit de ketel heet water op je gemalen bonen? Wacht je geduldig tot de koffie is doorgelopen?
Een enkeling zal waarschijnlijk naar waarheid zeggen dit te doen, maar de meesten van ons zien hoe de Senseo, Dolce Gusto, Nespresso of het traditionele koffiezetapparaat onze koffie klaarmaakt.
Een mooi voorbeeld van automatisering in ons dagelijks leven.
We zijn zo gewend geraakt aan automatisering, dat we niet eens beseffen hoeveel tijd we hebben gewonnen door bepaalde delen van ons leven te automatiseren.
Zapier… jouw zakelijke koffiezetmachine
In ons leven als ondernemer hebben we natuurlijk ook heel veel geautomatiseerd. Ik stuur geen brieven naar mijn klanten, maar emails. En wanneer ik een factuur verstuur, dan tik ik die niet helemaal in in een Word document, maar ik heb een factureringsprogramma, waar ik enkele gegevens in moet vullen om automatisch een factuur te versturen.
Sterker nog, wanneer jij iets online bestelt, dan tik ik niet eens zo’n factuur in, maar zorgt mijn webshop voor het verzenden van die factuur.
Maar hoe geautomatiseerd we ook zijn, onze automatisering is meestal eiland automatisering. We hebben verschillende systemen in gebruik, maar wanneer we de grenzen van die systemen bereiken, dan voeren we toch handmatige taken uit, om tot een gewenst resultaat te komen.
Stel je bijvoorbeeld voor. Ik heb een CRM (Customer Relation Management systeem). Maar om de één of andere reden ben ik niet blij met de factureringsmodule van mijn CRM, of mijn CRM heeft niet eens een factureringsmodule.
Jij meldt je aan met een vraag via het contactformulier op mijn WordPress website. Geweldig! Een nieuwe lead. En omdat jij een nieuwe lead bent, klop ik jou in in mijn CRM. Na enkele contacten besluit je, dat je jouw website door mij wilt laten bouwen. Hoera!
Via mijn CRM stuur ik je een offerte, en na wat communicatie zijn we het eens geworden. Jouw website wordt gebouwd.
Ik klop jouw gegevens dus over in mijn factureringssysteem om jou je eerste aanbetalingsfactuur te sturen.
Helaas, net na het versturen van de factuur is jouw bedrijf verhuisd. Dus ik pas de gegevens aan in het CRM, en mijn factureringssysteem. De verouderde gegevens in het contactformulier op de website zijn niet meer van belang.
Je ziet het al. Ik heb hier aardig wat taken die ik dubbel uit moet voeren. Dat hoeft met een klein bedrijf als WordXPression geen probleem te zijn. De meeste zaken zitten ‘in mijn hoofd’. Maar hoe groter een organisatie wordt, des te problematischer wordt het, wanneer er verschillende niet gekoppelde gegevensbronnen zijn. En een groot deel van de tijd wordt besteed met het overtikken van gegevens vanuit het ene systeem in het andere.
System integrator
Tot 2008 heb ik voor een groot deel van mijn tijd mijn mijn brood verdiend met het voorkomen dat mensen gegevens dubbel in moesten tikken. Van 1992 tot 2008 heb ik in de I(C)T sector gewerkt als ‘System integrator’, wat eigenlijk betekende dat ik twee of meer systemen aan elkaar moest knopen om ze te leren met elkaar te praten. Een soort relatietherapeut voor computers dus. Sloot leuk aan op mijn psychologie opleiding. Dat was altijd maatwerk en meestal kostbaar. Ik kan mij niet herinneren in die tijd gewerkt te hebben voor projecten met een budget met minder dan vijf cijfers.
Bedragen waar de meesten van ons niet eens aan willen denken… tenzij ze natuurlijk onze kant op stromen.
Het probleem in die tijd was niet het gebrek aan technologieën om systemen te koppelen, maar het gebrek aan conformiteit. Iedere applicatie wilde de gegevens net iets anders ontvangen.
Vandaag de dag is het echter zo, dat de markt behoorlijk geconformeerd is. Het aantal belangrijke spelers is behoorlijk kleiner geworden. En gelukkig voor ons is WordPress wel een heel grote speler op de markt.
Zapier op die nieuwe markt…
Zapier is een platform waar je informatie aan kan bieden… en die informatie kan vervolgens doorgestuurd worden naar een ander systeem. Dat alles natuurlijk wel binnen de grenzen van mijn eigen bedrijf, niets wordt ‘publiek’.
Wanneer iemand bijvoorbeeld op mijn website zijn gegevens ingeeft, is het mogelijk om die gegevens direct door te sturen naar Zapier. Ik heb Zapier verteld, dat wanneer een nieuwe lead via -bijvoorbeeld- een GravityForms formulier binnekomt dit in -bijvoorbeeld- mijn SugarCRM systeem moet worden toegevoegd. Verstuur ik een offerte via SugerCRM, dan zullen de contactgegevens van die lead moeten worden toegevoegd aan -opnieuw bijvoorbeeld- mijn Ninja Invoice factureringsprogramma.
En past iemand in het CRM de adresgegevens aan, dan kan je Zapier zo instellen, dat diezelfde aanpassing in het factureringsprogramma wordt doorgevoerd.
Object brokering
De techniek die hier achter zit werd in het verleden ‘object brokering’ genoemd. De term is inmiddels in onbruik geraakt, maar het idee blijft hetzelfde.
Er zijn verschillende informatieobjecten. En die verschillende informatieobjecten hebben dingen gemeenschappelijk.
Een persoon of bedrijf met locatie zal een naam en adres hebben. Zo’n adres zal een structuur van een straat met huisnummer, postcode en plaats hebben.
Ik kan huisnummer ‘huisnummer’, ‘hnr’, ‘huis_nummer’ of ‘nummer’ noemen, maar het gegeven blijft hetzelfde.
Als ik van systeem 1 naar systeem 2 een adres verstuur dan zal ik dus een vertaalslag moeten maken.
Maar wat nu, wanneer ik dat huisnummer naar verschillende systemen wil sturen?
Dan wil je eigenlijk een ’tussenobject’ aanmaken, met die gegevens. En dat wordt ‘object brokering’ genoemd.
Het huisnummer wat ik als ‘hnr’ binnen krijg sla ik intern op onder een willekeurige naam. Moet ik dit gegeven doorgeven aan een ander systeem, wat de naam ‘huisnummer’ verwacht, dan stuur ik het gewoon op die manier door. Eigenlijk heel simpel, wanneer ik tenminste weet hoe ik de binnenkomende gegevens moet interpreteren en de uitgaande gegevens kan converteren.
Zapier is een dienst, die van enkele duizenden andere diensten en applicaties ‘weet’ hoe de gegevens geformatteerd zijn. En daardoor is het (relatief) eenvoudig om die gegevens om te vormen. Heb je bijvoorbeeld een bestelling geplaats in WooCommerce, dan is het voor Zapier geen probleem om de gegevens van deze bestelling door te geven aan een boekhoudprogramma, wat ook bij Zapier bekend is.
En op deze manier kan je heel wat meer automatiseren in je bedrijf, dan je wellicht tot nu toe dacht.
Enkele voorbeelden
In de voorbeelden die ik tot nu toe genoemd heb, denk je waarschijnlijk vooral aan grote bedrijven. En mogelijk ben jij zo groot (nog) niet. Wat heb jij dan met Zapier te maken?
Maar laat me je eens enkele concrete voorbeelden geven hoe Zapier ook voor jou van belang zou kunnen zijn.
Laten we eens met iets heel simpels beginnen. De Zapier e-mail parser.
De e-mail parser
Het zal iedereen van ons overkomen, we krijgen automatisch gegenereerde mail. Ik krijg zo bijvoorbeeld regelmatig mail met betrekking tot abonnementen die ik heb, wanneer er een nieuwe factuur binnen komt, of mail van een online bewakingsservice, wanneer er een website down is. Gewoon om even twee voorbeelden te noemen.
Het formaat van deze mailberichten is redelijk vast. Een mailtje met een factuur zal normaliter het bedrag, het factuurnummer en een omschrijving van een periode omvatten. Een mailtje dat een website down is zal de naam van de website en een mogelijke reden bevatten.
Het mailtje van de factuur hoef ik eigenlijk niet te zien. Het enige wat er moet gebeuren, is dat de factuur in mijn administratie wordt verwerkt. Het mailtje van de online-bewaking wil ik direct zien. Ik zal actie moeten ondernemen.
Nu heeft Zapier zoiets als een e-mail parser. Een ‘app’ die in staat is informatie uit email te halen, wanneer ik tenminste eerst heb verteld waar die informatie gevonden kan worden.
Wanneer ik zo’n mailtje open tijdens het configureren van mijn app, dan highlight ik bijvoorbeeld het factuurnummer, en vertel dat dit het factuurnummer is. Datzelfde doe ik met het factuurbedrag, datum, enzovoort. Een tweede mailtje van dezelfde afzender met een factuur zal eenzelfde formaat hebben en Zapier is nu voortaan in staat mijn factuurmailtjes van die partij te lezen.
Nu heb ik er weinig aan, wanneer Zapier de mail alleen kan lezen. Dat kan ik zelf ook, daar heb ik geen app voor nodig. Maar de gegevens die Zapier hier leest kan ik vervolgens aan een andere app doorgeven. Bijvoorbeeld een app die in staat is om boekingen te doen in mijn boekhoud systeem. De factuur staat dan dus als binnengekomen factuur ingeboekt, het PDF document wordt geupload en het bericht wordt van mijn inbox verplaatst naar mijn archief folder.
Dat houdt de inbox lekker leeg.
In het tweede voorbeeld met de website die down is, moeten er heel andere dingen gebeuren. Ik wil dit natuurlijk zo snel mogelijk weten, er moet niet gewacht worden tot ik een keer in mijn email kijk. Dus nu, wanneer de Zapier app de email heeft gelezen, gaat er een ander proces van start. Zapier leest de mail, maar op basis van de afzender en het formaat van de mail wordt dit nu doorgegeven via ‘Slack’, een communicatiedienst die mij direct waarschuwt op mijn telefoon. Of ik zou voor een SMS dienst kunnen kiezen, zodat ik per SMS wordt gewaarschuwd.
Kortom, ik krijg direct bericht. Maar ook hier, wanneer het bericht verzonden is, hoeft de mail mijn inbox niet meer te vervuilen, en kan dit gelijk gearchiveerd worden. Ik kan op deze manier dus de afhandeling van veel ‘standaard emails’ helemaal automatiseren.
Dat is leuk meegenomen.
Zap!
In Zapier worden apps die met elkaar verbonden worden ‘Zaps’ genoemd. Leuk gevonden. Apps in een zap communiceren met elkaar door middel van het trigger / action mechanisme.
Stel je voor, wanneer iemand een bestelling bij je heeft gedaan, wil je na een x aantal dagen die persoon even persoonlijk (laten) bellen. In zo’n geval is de ’trigger’ een bestelling in je webshop. En gelukkig kan Zapier met heel veel webwinkels praten. De ‘action’ die vervolgens plaats moet vinden, is dat de verantwoordelijke persoon voor een bepaalde dag op zijn takenlijstje in -bijvoorbeeld- Google Calendar de taak krijgt een telefoontje met de klant te plegen.
Dat kan je dus totaal, zonder een regel programmacode te hoeven schrijven, automatiseren met Zapier.
Op dit moment heeft Zapier meer dan 3000 apps, waaronder de meest bekende online diensten en software. Zo worden bijvoorbeeld Magento, WooCommerce, MailChimp, WordPress, Joomla! en Google Contacts ondersteunt. Maar ook een groot aantal specifieke plugins voor WordPress worden ondersteund. Zoals bijvoorbeeld -met de juiste add on- GravityForms, NinjaForms, WPForms en nog veel meer.
Het aardige is echter, dat je die acties kan ‘schakelen’, of meerdere acties parallel uit laten voeren.
Stel je voor. Je verhuurt een huisje, caravan of iets vergelijkbaars. Op het moment dat iemand een boeking doet via jouw website, dan wil je dat voor de gast komt het object netjes schoon is gemaakt. Dat is makkelijk te regelen, wanneer je het zelf doet, maar wat nu wanneer je één of meerdere objecten in het buitenland hebt? Dan is het toch wel heel handig, wanneer je in de agenda van het schoonmaakbedrijf in kan boeken, dat de locatie klaargemaakt moet worden voor een nieuwe gast.
Maar misschien heb je ook een ophaalservice. Een afspraak met een taxibedrijf of een particuliere vervoerder om mensen op te pikken op het vliegveld. Wanneer mensen dit bij hun boeking in kunnen geven, is het toch wel heel aardig, wanneer ook dit direct in de agenda van het vervoersbedrijf wordt ingepland.
Kortom allemaal taken die je heel makkelijk kan automatiseren.
Webhooks
En voor waar nog geen actie voor bestaat, is er altijd de mogelijkheid van een webhook. Een webhook is een manier om informatie in het ‘JSON’ formaat (een formaat wat door veel applicaties wordt gebruikt om onderling te communiceren) te ontvangen of door te geven. En dat kan vooral met WordPress heel krachtig zijn.
Wanneer je een regelmatig lezer van mijn blog bent, dan weet je wel wat ‘custom post types’ zijn. Veel plugins voor WordPress die met gegevens werken, doen dit door gegevens op te slaan als die ‘custom post types’ (CPT’s).
Eén van de Zapier mogelijkheden is op het moment dat er een specifiek custom post type wordt aangemaakt of aangepast een ‘webhook’ aan te roepen. Veel online toepassingen kunnen reageren op die webhooks.
Opnieuw gewoon een praktisch voorbeeld. Stel je voor, ik heb een website met vacatures. Maar ik wil die vacatures ook op een aantal populaire vacaturebanken plaatsen. Helaas, geen van deze vacaturebanken heeft een integratie met Zapier, maar ze hebben allemaal wel een API, een ‘Application Program Interface’. En al die API’s spreken JSON. Dat moet vandaag de dag ook eigenlijk wel.
Voor een volslagen leek is zo’n koppeling misschien lastig te maken, maar wanneer je iets begrijpt van API’s dan valt het eigenlijk best mee en kan je zonder programmeren zo’n webhook maken, waarbij iedere keer waarbij je zo’n vacature CPT op je website maakt of aanpast, de updates worden doorgegeven via een webhook aan de API’s van de respectievelijke vacaturebanken.
Laten we het nog eens een beetje spannender maken. Stel je voor, dat mensen alleen direct op de vacaturesite kunnen reageren, dus niet via jouw site. Maar dat de maker van de vacaturesite ook een API heeft om de kandidaten door te geven. Normaliter zal dat ook via een webhook gebeuren, maar ditmaal jouw kant uit. Je zou die kandidaten op kunnen slaan in een CPT met de naam ‘kandidaten’. Wat je dus aan gaat maken is een inkomende webhook (ter info, die komt binnen bij Zapier, niet op jouw site). En de informatie die in die webhook te vinden is (in JSON formaat) kan je vervolgens weer om laten zetten in een nieuwe CPT ‘kandidaten’.
Je hebt zo zonder een regel te programmeren een complete integratie tussen jouw vacaturesite en een andere vacturebank opgezet.
Asynchrone verwerking
Zaps worden asynchroon verwerkt. En dat is goed ook. Want wanneer we naar ons laatste voorbeeld kijken van de vacaturebank… het zou toch jammer zijn, wanneer we een kandidaat zouden missen alleen omdat jouw website even een hik zou hebben en er uit zou liggen.
Zodra er een zap getriggerd wordt, dan zal Zapier proberen een actie uit te voeren. Dus zodra de webhook op Zapier wordt aangeroepen, zal Zapier proberen de kandidaat door te geven aan jouw vacaturesite. Lukt dat niet, geen probleem. Zapier wacht gewoon even en probeert het later nog een keer. Dit opnieuw proberen geldt overigens alleen voor het ‘professional plan’ en hoger. Net zo lang (met groeiende tussenpozen) tot het wel gelukt is.
Ook is het zo, dat het afhankelijk is van je pricing plan hoe vaak Zapier acties uit zal voeren. Heb je bijvoorbeeld een gratis plan of een starter plan, dan zal er eenmaal in het kwartier worden gekeken, of er iets gedaan moet worden. Heb je een ‘Professional’ plan dan wordt er iedere twee minuten gecontroleerd, en bij de nog duurdere plannen iedere minuut.
Tenzij je aangeeft, dat iets ‘instant’ plaats moet vinden. Zoals in het voorbeeld van de ‘site down’ email. Het nadeel van een ‘instant’ zap is echter, dat het slechts eenmaal wordt geprobeerd. Gebruik ‘instant’ dus alleen, indien het ook daadwerkelijk spoed heeft.
Door deze asynchrone verwerking kunnen we er dus ook niet op vertrouwen, dat de acties in een specifieke volgorde plaats zullen vinden.
Nu zal wanneer je apps na elkaar uitvoert dit geen probleem zijn, maar laat je apps parallel uitvoeren wel. Maak ik bijvoorbeeld een registratie in een systeem aan, en laat ik parallel daaraan aan een medewerker weten, dat die actie in het systeem is aangemaakt, dan kan dit tot verwarring leiden. Als beide acties gelijktijdig starten, wil het niet zeggen, dat het aanmaken van die registratie in het systeem is afgerond, wanneer de medewerker het signaal krijgt, dat deze hier iets mee moet doen.
De kosten
Zelf ben ik ooit met een gratis Zapier account begonnen. Daarmee kan je 5 zaps maken die uit maximaal twee apps bestaan. Dat is leuk om kennis te maken met het systeem en enkele taken te vereenvoudigen.
Wil je wat serieus met Zapier gaan doen, dan heb je toch al snel het ‘Starter plan’ of hoger nodig. En dat kost op dit moment $19,99 per maand, wanneer je per jaar betaalt. Je kan hier in het begin aardig op besparen. Wanneer je namelijk een 14 daags ’trial account’ neemt en na het verlopen van de trial even wacht, krijg je een aanbieding van 3 maanden voor 10 dollar voor een starter account.
Eén van de belangrijkste functies in het Starter account is de mogelijkheid om filters te kunnen gebruiken, ofwel om op basis van gegevens te kunnen zeggen, dat een actie wel of niet plaats moet vinden. Ook de ‘formatters’, de mogelijkheid om gegevens zoals bijvoorbeeld datums op een andere manier te presenteren zijn eigenlijk onmisbaar. Dit ontbreekt allemaal in het gratis account.
Of 20 dollar per maand veel of weinig is, is eigenlijk heel sterk afhankelijk van wat je precies doet. Ik heb zelf enkele zaps gemaakt om mijn eigen werkzaamheden makkelijker te maken (zoals het automatisch verwerken van de facturen in mijn voorbeeld over de email parser), maar voor mij is het vooral een ‘speeltuin’ om
Ik heb in de afgelopen twee jaar ook een aantal Zapier toepassingen voor klanten gebouwd. Hier ging het meestal om de integratie tussen meerdere systemen, om te voorkomen dat informatie naar verschillende systemen gedupliceerd zou moeten worden (zoals bijvoorbeeld het vacaturebank voorbeeld). In dit soort toepassingen bespaar je al snel enkele mandagen per jaar en verminder je de kans op fouten aanzienlijk. Hier verdienen de uitgaven aan een Zapier account zich al snel terug.
Hulp met Zapier?
Wil jij kijken hoe je met behulp van Zapier de ‘eindjes aan elkaar kunt knopen’, ofwel ervoor kan zorgen, dat jouw bedrijfsprocessen efficienter kunnen verlopen? Neem dan eens contact op. De meeste integraties die ik voor klanten via Zapier maak kunnen gewoon via de strippenkaart verrekend worden.