Koppelen met Salesforce
AFAS en Salesforce laten samenwerken
Een scenario waar wij regelmatig aan bouwen: bedrijven die AFAS gebruiken voor HR, financiën en operations, en Salesforce voor sales en klantrelaties. Beide sterk in wat ze doen, maar zonder koppeling ontstaan dubbele registraties, verkeerde klantgegevens en handmatige overtypslagen.
We bouwen bidirectionele integraties waarbij accounts uit Salesforce automatisch als debiteur in AFAS worden aangemaakt, contactgegevens synchroniseren, en facturen of betaalstatus uit AFAS zichtbaar zijn in Salesforce voor sales en customer success. Aan AFAS-zijde werken we met GetConnectors en UpdateConnectors, aan Salesforce-zijde met de REST API. Tussen beide zit een Laravel-laag die de logica en foutafhandeling regelt.
Dezelfde aanpak werkt voor de combinatie Salesforce met Exact Online of andere administratiepakketten.
Wat Salesforce biedt aan koppelmogelijkheden
Salesforce bestaat uit meerdere Clouds, elk met eigen API-mogelijkheden:
- Sales Cloud: leads, opportunities, accounts, contacts, forecasting
- Service Cloud: cases, klantenservice, knowledge base
- Marketing Cloud: campagnes, journeys, marketing automation
- Experience Cloud: klantenportalen, communities en partner-portals
- Field Service: teams die buiten kantoor werken
Alle Clouds worden ontsloten via een uitgebreide REST API. Voor grote datasets is er de Bulk API 2.0, voor real-time updates de Streaming API, en voor gecombineerde operations de Composite API. Authenticatie loopt via OAuth 2.0 met External Client Apps.
Voor developers is Salesforce een van de best gedocumenteerde CRM’s om mee te bouwen. De uitdaging zit niet in de API-toegang, maar in de complexiteit van het datamodel. Custom objects, workflow rules, validation rules en flows kunnen samen een kluwen worden waar een externe integratie zich doorheen moet manoeuvreren zonder iets te breken.
Wanneer heb je maatwerk nodig?
Salesforce AppExchange bevat duizenden standaardintegraties. Voor generieke tools (LinkedIn, DocuSign, Mailchimp) zijn die vaak de snelste route. Maatwerk wordt interessant zodra:
- Je een Nederlandse of Europese tool gebruikt waar geen goede AppExchange-app voor is (AFAS is een klassieker)
- Je een portaal wilt bouwen dat verder gaat dan Experience Cloud biedt qua branding en gebruikerservaring
- Je bestaande integraties tegen API-limits aanlopen omdat ze niet met Bulk of Composite werken
- Je complexe custom objects en workflows hebt die geen standaard app kan volgen
- Je real-time synchronisatie wilt zonder batch-vertraging
Lead capture die klopt
De klassieker: een formulier op je website dat leads doorzet naar Salesforce. Standaard oplossingen (Web-to-Lead, Pardot forms) werken, maar hebben beperkingen. Geen conditionele logica, geen validatie op KvK-gegevens, geen automatische ontdubbeling.
Wij bouwen formulierintegraties waarbij leads eerst worden gevalideerd, verrijkt met bedrijfsdata (KvK-nummer omzetten naar bedrijfsgegevens, e-maildomein koppelen aan bekende accounts) en pas dan als Lead of Contact in Salesforce belanden. Dubbele leads worden automatisch samengevoegd met bestaande records. Zo houdt Salesforce alleen kwaliteitsdata over.
Portalen bovenop Salesforce
Voor situaties waar Experience Cloud te beperkt aanvoelt, bouwen we maatwerk portalen die direct met de Salesforce API praten. De data blijft in Salesforce als single source of truth, de gebruikerservaring bouwen we op in Nuxt of Laravel, met volledige controle over branding en workflow. Denk aan:
- Klantportalen waarin klanten hun cases, contracten en accountdata zien
- Dealer- of partnerportalen met account-specifieke producten, prijzen en opportunities
- B2B-bestelomgevingen die realtime prijzen uit Salesforce halen
- Ledenportalen voor verenigingen die Salesforce Nonprofit Success Pack gebruiken, waar leden zelf hun gegevens beheren, contributie betalen (via Mollie of SEPA) en inschrijven voor evenementen
- Event- en webinar-registratie waarbij inschrijvingen automatisch als Campaign Members in Salesforce belanden
Voor de bredere aanpak van deze portalen zie klantomgevingen en mijn omgeving.
Waar je op moet letten
Een paar dingen die we in bijna elke Salesforce integratie in de gaten houden:
API-limits. Salesforce heeft duidelijke daily API request limits per org. Bij high-volume koppelingen combineren we Bulk API 2.0, caching van referentiedata, Composite API voor gebundelde operations, en event-driven updates. Zo blijven we binnen limits.
Idempotency. Elke koppeling die we bouwen is idempotent: een tweede aanroep leidt nooit tot dubbele records. Fouten vangen we op in queues met exponential backoff, en na drie mislukkingen wordt er alarm geslagen zodat er niks stilletjes verdwijnt.
Platform Encryption. Als je Salesforce Shield gebruikt, zijn er beperkingen op SOQL-filters en queries. We passen de integratie aan zodat ‘ie correct werkt binnen die beperkingen.
Sandbox eerst. Alle koppelingen testen we grondig in een Salesforce Sandbox voordat we live gaan. Voor complexe workflows draaien we test-scenarios die alle uitzonderingen dekken.
Onze aanpak
Denk je aan een Salesforce koppeling? Plan een vrijblijvende kennismaking.
Hoe ideeën werkelijkheid worden
Geen theorie, maar echte trajecten. Bekijk hoe richting, techniek en ontwerp samen zorgen voor resultaat dat blijft staan.
Inzichten uit ons digitaal vakmanschap
Van praktijkverhalen en slimme oplossingen tot updates uit ons eigen team. Een inkijk in wat ons bezighoudt, wat we ontdekken en hoe ideeën langzaam vorm krijgen.
Veelgestelde vragen over koppelen met Salesforce
-
Kunnen jullie Salesforce koppelen aan AFAS of Exact Online?
Voor de AFAS-koppeling gebruiken we GetConnectors en UpdateConnectors, gecombineerd met de Salesforce REST API. Accounts, contacts, opportunities, projecten en facturen synchroniseren bidirectioneel. Voor Exact Online werken we via de OAuth 2.0 API. Beide koppelingen bouwen we met een Laravel integratielaag die betrouwbaar en schaalbaar is.
-
Werken jullie met alle Salesforce Clouds?
Ja, met Sales Cloud, Service Cloud, Marketing Cloud, Experience Cloud en Field Service. We bepalen per project welke Clouds relevant zijn en ontwerpen de integratie zodanig dat data tussen Clouds consistent blijft. De technische aanpak verschilt per Cloud, maar het uitgangspunt is hetzelfde: betrouwbare, veilige datadoorvoer.
-
Kunnen jullie een klantportaal of ledenportaal bouwen met Salesforce-data?
Ja. Voor situaties waar Experience Cloud niet volstaat (bijvoorbeeld wanneer je een unieke branding wilt, of complexe workflows die verder gaan dan Salesforce’s UI-mogelijkheden) bouwen we maatwerk portalen in Nuxt of Laravel, met directe API-koppeling naar Salesforce. Klanten of leden zien hun eigen data live opgehaald uit Salesforce, en aanpassingen komen direct terug in het CRM.
-
Hoe zit het met API-limits en performance?
Salesforce heeft duidelijke daily API request limits per org. Voor high-volume koppelingen combineren we meerdere strategieën: Bulk API 2.0 voor grote datasets, caching van referentiedata, Composite API voor het bundelen van operations, en event-driven updates via de Streaming API in plaats van polling. Zo blijven we binnen limits en houden we de koppeling performant.
-
Werkt de koppeling ook met Salesforce Shield of Platform Encryption?
Ja, met aandachtspunten. Platform Encryption beperkt bepaalde SOQL-bewerkingen en filtermogelijkheden. We passen queries en logica aan zodat de integratie correct functioneert binnen de encryptie-beperkingen van je organisatie. Voor compliance-gedreven omgevingen leggen we vast hoe de koppeling voldoet aan de betreffende eisen.
-
Kunnen jullie een bestaande Salesforce integratie overnemen?
Ja. We starten met een audit van de bestaande koppeling: authenticatie (Connected Apps of External Client Apps), API-gebruik, foutafhandeling, security en scalability. Vaak zien we dat oude Connected Apps niet meer voldoen aan de huidige standaarden en dat External Client Apps de betere route zijn. We leveren een concreet plan voor overname of vernieuwing.