CRM

De lead vulde je formulier tien minuten geleden in. Salesforce hoort het morgenochtend

Een prospect vult om negen uur 's avonds een contactformulier in. Het komt binnen als mail naar sales@, blijft een nacht in een inbox liggen en wordt de volgende ochtend doorgestuurd naar een accountmanager. Tegen de tijd dat iemand belt, heeft de prospect al een demo gehad bij een concurrent die binnen het uur reageerde.

Salesforce heeft die vertraging niet veroorzaakt. Het formulier praatte nooit met Salesforce. Het praatte met een inbox, en een inbox is geen CRM, hoe gedisciplineerd de lezer ook is.

  • REST API en Bulk API, met OAuth 2.0
  • Leads, Accounts, Opportunities, orders
  • Vanaf € 1.700 plus servicekosten
De tool

Wat Salesforce is, en waar de API-toegang echt zit

Salesforce is het grootste CRM-platform ter wereld, gebouwd rond een kleine set kernobjecten — Leads, Contacts, Accounts, Opportunities, Cases — waar bijna al het andere in het platform aan vasthangt. Sales Cloud regelt de pipeline, Service Cloud de supportcases, en boven op beide zit een echt diepe maatwerklaag: custom objects en velden, Apex-triggers, Flow-automatiseringen, validatieregels die een record kunnen afwijzen dat jouw koppeling net probeerde aan te maken.

Het detail waar mensen als eerste over struikelen is de licentie. API-toegang zit standaard in vanaf Enterprise edition; bij Professional edition is het een aparte betaalde add-on, en bij Essentials is het er helemaal niet. We vragen welke edition je hebt voordat we iets offreren, want een project dat ervan uitgaat dat er API-toegang is en er in week twee achter komt dat Professional eerst de add-on moet kopen en inrichten, is twee weken vertraging verstopt in wat een taak van twee dagen leek.

Salesforce geeft je ook sandboxes — Developer, Developer Pro, Partial Copy, Full — zodat een koppeling gebouwd en getest kan worden tegen een kopie van je echte data en org-configuratie voordat hij ooit productie raakt. Waar een sandbox bestaat, staan we daarop: Apex-triggers en validatieregels die automatisch draaien bij het aanmaken van een record kunnen ongemerkt afwijzen of veranderen wat een koppeling verstuurt, en de sandbox is waar je dat veilig ontdekt.

Wat er misgaat

Drie dingen die misgaan tussen een website en Salesforce

Geen bedachte gevallen. Dit zijn de drie die we het vaakst tegenkomen als een salesteam al Salesforce draait en de website er nooit iets van heeft gehoord.

De lead koelt af in een inbox voordat hij een Lead wordt

Reactietijd is de grootste voorspeller of een websitelead ooit klant wordt, en een formulier dat naar sales@ mailt in plaats van de API aan te roepen voegt standaard uren toe. Niemand heeft dat expres besloten; het formulier bestond al voordat Salesforce er was, en niemand heeft het er sindsdien nog eens bij gepakt.

Wat je in plaats daarvan ziet

Het formulier post rechtstreeks naar de REST API als Lead, met UTM-parameters en de pagina waar hij vandaan komt in custom velden. De eigen toewijzingsregels van Salesforce vuren meteen af, en de eigenaar krijgt binnen een minuut bericht, niet een ochtend.

Dezelfde persoon bestaat twee keer, en sales belt hem twee keer

Een terugkerende klant vult een formulier in en wordt een gloednieuwe Lead, los van de Contact die al onder een Account staat met een jaar Opportunity-geschiedenis. Twee records, twee opvolgingen, en een klant die moet uitleggen wie hij is aan iemand die zijn dossier al heeft.

Wat je in plaats daarvan ziet

Het formulier checkt op een bestaande Contact op e-mailadres voordat het iets aanmaakt, en stuurt een match naar het bijbehorende Account in plaats van een dubbele Lead te maken. Sales ziet één record met de volledige geschiedenis, geen twee halve.

De order en de Opportunity zijn het oneens over wat er gebeurd is

Een webshop of portaal toont een order als betaald en verzonden. De Opportunity in Salesforce zegt nog steeds "Offerte verstuurd", omdat niets anders heeft laten weten, en een accountmanager belt een klant om te checken over een offerte die twee weken geleden is geaccepteerd en geleverd.

Wat je in plaats daarvan ziet

De orderstatus zet de Opportunity-fase automatisch een stap verder, via de API in plaats van een mens die eraan denkt een keuzelijst aan te klikken. De pipeline weerspiegelt wat er echt is gebeurd, op de dag dat het gebeurde.

De rekening van het handwerk

Wat een gedeelde inbox vóór Salesforce je kost

Neem een bedrijf met 200 websiteleads per maand via een formulier dat naar een inbox mailt in plaats van de API aan te roepen. Iemand checkt die inbox twee of drie keer per dag en kopieert de gegevens met de hand als Lead naar Salesforce, ruwweg drie minuten per lead als je het zoeken naar de juiste eigenaar meetelt. Dat is 10 uur per maand puur overtypen, voordat er nog iets verkocht is.

De kosten van de reactietijd zijn groter en minder zichtbaar. Onderzoek naar leadopvolging laat consequent zien dat conversie sterk daalt na het eerste uur, en een keten van formulier naar inbox naar CRM duurt vaak langer dan dat. Als zelfs maar één extra lead per maand converteert omdat hij binnen minuten bij een verkoper was in plaats van de volgende ochtend, en je gemiddelde deal is meer dan een paar honderd euro waard, heeft de koppeling zichzelf al terugverdiend.

  • 200 leads per maand, drie minuten handmatige invoer per stuk: 10 uur per maand overtypen.
  • Een lead die de volgende ochtend wordt opgepakt in plaats van binnen het uur, en de conversie die met die vertraging verdwijnt.
  • Een dubbele Lead en Contact voor dezelfde persoon, en twee accountmanagers die allebei denken dat ze de relatie bezitten.
  • Een Opportunity-fase die twee weken achterloopt, en het ongemakkelijke telefoontje dat volgt op vertrouwen daarop.
Wat we bouwen

Wij bouwen ook het ding aan de andere kant

Bij Salesforce is de nuttige eerste vraag welke edition en welke licenties je echt hebt, want dat bepaalt meer van wat mogelijk is dan wat dan ook op deze pagina: een project afgebakend op Enterprise-niveau API-toegang terwijl de org Professional is zonder de add-on, is al verkeerd afgebakend voordat het begint.

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

Gebouwd op een Connected App met OAuth 2.0, zodat toegang afgebakend en intrekbaar is door je eigen Salesforce-beheerder, geen gedeeld wachtwoord. De pijl zegt welke kant de gegevens op gaan.

  • Webformulieren als Lead (in de tool)

    Naam, contactgegevens, UTM-parameters en de bronpagina, ontdubbeld tegen bestaande Contacts op e-mailadres voordat een nieuwe Lead wordt aangemaakt, met je eigen toewijzingsregels die de eigenaar bepalen.

  • Contacts en Accounts (beide kanten)

    Gematcht op e-mailadres of bedrijfsdomein, gelijk gehouden tussen je inlogsysteem op de website en Salesforce, met één kant aangewezen als eigenaar van een bepaald veld zodat de twee elkaar niet meer overschrijven.

  • Opportunity-fase naar een klantportaal (uit het gereedschap)

    Een ingelogde prospect of klant die ziet waar zijn offerte echt staat, rechtstreeks uit de pipeline gelezen in plaats van een status die iemand bijwerkt als hij eraan denkt.

  • Webshop- of portaalorders als Opportunity, of het een stap verder zetten van een bestaande (in de tool)

    Een afgeronde order kan een closed-won Opportunity aanmaken voor de rapportage, of gewoon een bestaande een stap verder zetten zodat de pipeline weergeeft wat al is gebeurd in plaats van erachteraan te lopen.

  • Supportvragen als Case (in de tool)

    Een contactformulier of portaalticket dat een Case wordt in Service Cloud met het juiste record type en de juiste wachtrij, zodat support nooit via een tweede e-mail moet horen dat een verzoek bestaat.

Een eerste Salesforce-project is bijna altijd leads en ontdubbeling, soms met de Opportunity- of portaalregel erbij. Cases en volledige tweerichting-Accountsync zijn meestal een tweede fase zodra de eerste zich heeft bewezen.

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 Salesforce: welke edition je hebt en of er custom objects bij komen kijken bewegen de prijs meer dan de stromen zelf. Enterprise en hoger met standaardobjecten is de eenvoudige kant; zware Apex-maatwerk of Marketing Cloud erbij betekent een langere intake voordat we offreren.

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

API-toegang zit standaard in vanaf Enterprise edition. Bij Professional edition is het een aparte betaalde add-on die je Salesforce-beheerder moet inschakelen; bij Essentials is het er helemaal niet, en geen enkele koppeling kan dat alsnog creëren.

Dat checken we in het eerste gesprek, want het is het feit dat een planning het meest kan verschuiven. Moet de add-on eerst gekocht en ingericht worden, dan is dat een gesprek met je Salesforce-accountteam, niet met ons, en dat kan het beste parallel aan de bouw lopen in plaats van ervoor.

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.