CRM

Een Zoho-koppeling die ongemerkt naar het verkeerde datacenter wijst faalt op een manier die willekeurig lijkt

Zoho CRM en Zoho Books ogen van buitenaf als één product met twee namen. Het zijn in werkelijkheid twee losse applicaties met twee losse API's en, vaak, twee losse logins, en een bedrijf dat beide gebruikt vindt regelmatig een klant die twee keer bestaat — één keer als Lead in de CRM, één keer als Contact in Books — omdat geen van beide apps van de ander wist.

Zet daar het feit bij dat een Zoho-account wordt ingericht in een specifiek regionaal datacenter — de VS, de EU, India en andere hebben elk hun eigen — en een koppeling die het verkeerde aanneemt faalt met foutmeldingen die eruitzien als een bug in plaats van wat ze zijn: een aanvraag gestuurd naar een domein waar jullie account nooit op zat.

  • REST API's per app, met OAuth 2.0
  • Leads, Deals, Contacts, facturen, producten
  • Vanaf € 1.700 plus servicekosten
De tool

Wat Zoho is, en waarom "welke app" de eerste vraag is

Zoho is een suite van meer dan veertig losse bedrijfsapplicaties — CRM, Books voor boekhouding, Desk voor support, Campaigns voor e-mailmarketing, en nog veel meer — los verkocht of gebundeld als Zoho One. Elke app heeft zijn eigen database, zijn eigen REST API, en meestal zijn eigen OAuth-scopes, ook al kunnen ze zo ingesteld worden dat ze onderling data delen binnen het eigen ecosysteem van Zoho.

Die structuur per app is het eerste dat we in elk Zoho-project vaststellen: "koppel onze website aan Zoho" is geen ene koppeling, het is één koppeling per app die je echt bedoelt. Een leadkoppeling naar Zoho CRM en een facturatiekoppeling naar Zoho Books worden apart gebouwd en geauthenticeerd, ook voor dezelfde klant.

Het tweede is het datacenter. Elk Zoho-account leeft op één van meerdere regionale domeinen — .com voor de VS, .eu, .in en andere — vastgesteld toen het account werd aangemaakt, en niet iets wat een koppeling kan raden. Dit verkeerd hebben is de meest voorkomende reden dat een eerste Zoho-koppeling ronduit faalt in plaats van zich alleen maar misdraagt.

Wat er misgaat

Drie dingen die misgaan met een Zoho-koppeling

Twee van deze zijn specifiek voor hoe Zoho als suite van apps is gestructureerd in plaats van als één product, en precies daarom verrassen ze teams die Zoho One kochten in de verwachting dat het ene ding vanzelf met het andere zou praten.

De klant bestaat in CRM en nog eens in Books

Een deal sluit in Zoho CRM. Zoho Books heeft dat nooit gehoord, dus als het tijd is om te factureren, maakt iemand de klant daar opnieuw vanaf nul aan, en de twee records lopen uit elkaar zodra een van de twee wordt bijgewerkt.

Wat je in plaats daarvan ziet

Een gewonnen deal in CRM maakt of matcht automatisch het contact in Books, met een afgesproken veld dat het adres bezit, zodat een factuur nooit naar een verouderd adres gaat.

De koppeling faalt met foutmeldingen die nergens op lijken te slaan

Een koppeling gebouwd op het .com API-domein voor een account dat eigenlijk op .eu is ingericht geeft authenticatiefouten die lijken op een kapot token, en een ontwikkelaar besteedt een dag aan het vernieuwen van inloggegevens die nooit het probleem waren.

Wat je in plaats daarvan ziet

Het datacenter van het account wordt bevestigd voordat er ook maar één regel koppelingscode geschreven wordt, en het is het eerste dat gecheckt wordt zodra een Zoho-koppeling zich misdraagt.

Verborgen velden verdwijnen via het standaard web-to-lead-formulier

De ingebouwde webformuliergenerator van Zoho is snel opgezet maar laat alles vallen dat niet een van de eigen velden is — UTM-parameters, een productinteresse gekozen op de pagina, een verwijzingscode — waardoor het CRM-record magerder is dan wat de bezoeker jou echt heeft verteld.

Wat je in plaats daarvan ziet

Het formulier post in plaats daarvan via de API, zodat elk veld dat de site echt vastlegt het Lead-record bereikt, custom velden inbegrepen.

De rekening van het handwerk

Wat CRM en Books als twee losse apps laten draaien kost

De kosten zitten hier minder in overtypen en meer in de afstemming die het afdwingt: een bedrijf dat 80 klanten per maand factureert die ook als CRM-Deal bestaan, besteedt vaak een uur of twee per maand puur aan bevestigen dat de twee klantenlijsten nog overeenkomen, tijd die puur wordt besteed omdat twee apps die kunnen praten dat niet doen.

Het adresverschil is de dure als hij toeslaat: een factuur gestuurd naar welk record dan ook het laatst is bijgewerkt, teruggestuurd of betwist, kost een creditnota en vertraging in betaald krijgen — dezelfde rekensom als elke boekhoudkoppeling in deze bank, alleen veroorzaakt door twee Zoho-apps die het oneens zijn in plaats van één systeem en een spreadsheet.

Wat we bouwen

Wij bouwen ook het ding aan de andere kant

Bij Zoho moet het afbakeningsgesprek eerst de specifieke apps benoemen voordat er iets anders gebeurt, want "Zoho" op zich beschrijft een suite, geen systeem, en de prijs hangt volledig af van hoeveel van die losse API's een project echt raakt.

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 Zoho en je website gekoppeld kan worden

Elke regel hieronder is tegen de eigen API en OAuth-toestemming van een specifieke Zoho-app. Een project gebruikt ze zelden allemaal; meestal is het CRM plus één andere app.

  • Webformulieren als Lead in Zoho CRM (in de tool)

    Verstuurd via de CRM API met elk veld dat de site vastlegt, inclusief UTM-parameters en paginabron die de ingebouwde webformuliergenerator anders zou laten vallen.

  • Contacten tussen CRM en Books (beide kanten)

    Een gewonnen Deal die de klant in Books aanmaakt of matcht, met één systeem aangewezen als eigenaar van het factuuradres zodat de twee nooit ongemerkt uit elkaar lopen.

  • Webshoporders als factuur in Zoho Books (in de tool)

    Regelitems, klant, btw en het orderkenmerk, zodat een shoporder een factuur wordt zonder opnieuw invoeren, gematcht aan het juiste klantrecord uit de regel hierboven.

  • Producten en prijzen (uit het gereedschap)

    Uitgelezen uit Zoho Inventory of Books naar een website of shop, zodat de productlijst die een klant ziet overeenkomt met wat echt verkoopbaar is.

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 Zoho schaalt de prijs met het aantal losse apps dat erbij komt, niet met de complexiteit van één ervan. Een leadkoppeling met alleen CRM zit onderaan de range; CRM plus Books plus een shopkoppeling is dichter bij drie kleinere projecten dan bij één.

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 Zoho koppelen

Het is zichtbaar in het eigen domein van je account als je ingelogd bent — zoho.eu tegenover zoho.com tegenover zoho.in, bijvoorbeeld — en we bevestigen het als een van de eerste dingen in de intake, voordat er iets geschreven wordt, juist omdat het de meest voorkomende oorzaak is dat een Zoho-koppeling ronduit faalt.

Het kan niet gewijzigd worden nadat het account is aangemaakt zonder dat Zoho-support het migreert, dus dit is een gegeven waar we omheen werken en niet iets wat we kunnen oplossen.

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.